Параметры для формирования чека

Attention. Это старая версия API. Переходите на API Яндекс.Кассы.

Параметры для передачи фискальных данных добавляются в стандартную платежную форму. Они обязательно передаются, если вы настраиваете взаимодействие со своей онлайн-кассой через Яндекс.Кассу (для этого необходимо подключить онлайн-кассу одного из наших партнеров и выставить соответствующие настройки в личном кабинете, см. Изменения в протоколе для работы по 54-ФЗ).

В форму добавляется один дополнительный параметр, в котором передаются все нужные данные — ym_merchant_receipt.

Переход на ФФД 1.05

С 1 января 2019 года вступает в силу новый формат фискальных документов (ФФД 1.05). Добавляются дополнительные параметры:
  • признак предмета расчёта (paymentSubjectType);
  • признак способа расчёта (paymentMethodType).

В протоколе эти параметры необязательные. В 2019 году они становятся обязательными для налоговой, но пока что онлайн-кассы обрабатывают их по-разному.

АТОЛ Онлайн

Чтобы передавать новые параметры, нужно поменять настройки на стороне АТОЛ. Как это сделать:

  1. Сначала настройте отправку дополнительных параметров по нашему протоколу.
  2. Потом зайдите в личный кабинет АТОЛ и перейдите на новый формат фискальных документов.

Обязательно в таком порядке: если вы выберете на стороне АТОЛ новый формат, а новые данные отправлять не будете, сломаются платежи или отправка чеков.

Orange Data, МодульКасса и Бизнес.Ру Онлайн-Чеки

Новые параметры можно передавать. Пока вы их не передаете, ваша онлайн-касса будет подставлять значения по умолчанию на своей стороне.

Дополнительный параметр для чека

Параметр Тип Описание

ym_merchant_receipt

string

Данные для формирования чека в формате JSON.

Параметр Тип Описание

ym_merchant_receipt

string

Данные для формирования чека в формате JSON.

Формат данных для чека

Данные для чека передаются в JSON. Параметры customerContact и taxSystem (необязательный) передаются в формате «ключ»—«значение». Вместе с ними передается массив товаров, в который входят товары с характеристиками. Характеристики товара отправляются в одном объекте, для каждого товара формируется свой объект.

Пример данных в JSON

{
    "customerContact": "+79001231212",
    "taxSystem": 1,
    "items": [{
        "quantity": 1.154,
        "price": {
            "amount": 300.23
        },
        "tax": 3,
        "text": "Зеленый чай \"Юн Ву\", кг",
        "paymentMethodType": "full_prepayment ",
        "paymentSubjectType": "commodity"
    }, 
    {
        "quantity": 2,
        "price": {
            "amount": 200.00
        },
        "tax": 3,
        "text": "Кружка для чая, шт., скидка 10%",
        "paymentMethodType": "full_prepayment",
        "paymentSubjectType": "commodity"
    }]
}

Параметры для чека

Параметр Тип Обязательность Описание

customerContact

string, 64 символа

Обязательный

Телефон или эл. почта покупателя.

Ограничения:

  • номер телефона в формате +79210000000 или адрес электронной почты (проверяется соответствие);
  • следует передавать что-то одно: только адрес почты или только телефон;
  • не следует передавать несколько адресов или телефонов.

taxSystem

int

Необязательный

Система налогообложения магазина (СНО). Параметр необходим, только если у вас несколько систем налогообложения. В остальных случаях не передается.

Возможные значения — число от 1 до 6:

1 — общая СН;

2 — упрощенная СН (доходы);

3 — упрощенная СН (доходы минус расходы);

4 — единый налог на вмененный доход;

5 — единый сельскохозяйственный налог;

6 — патентная СН.

Важно: товары с разным значением taxSystem необходимо передавать в разных чеках.

items Объект Обязательный Товары
Товар

quantity

Десятичное число с точностью 3 символа после запятой. Максимально возможное значение зависит от модели вашей онлайн-кассы

Обязательный

Количество товара. Описывает количество товаров в заказе или количество весового товара.

price

Объект

Обязательный

Цена товара.

amount

CurrencyAmount (десятичное число с точностью до 2 символов после точки)

Обязательный

Цена за единицу товара.

currency

CurrencyCode

Необязательный

Код валюты: RUB (рубль РФ).

tax

int

Обязательный

Ставка НДС. Возможные значения — число от 1 до 6:

1 — без НДС;

2 — ставка НДС 0%;

3 — ставка 10%;

4 — ставка 20%;

5 — расчетная ставка 10/110;

6 — расчетная ставка 20/120.

text

string, 128 символов

кириллица или латиница

Обязательный

Название товара.

Ограничения:

  • Специальные символы (например, кавычки) необходимо экранировать по правилам JSON. Пример: "text": "Зеленый чай \"Юн Ву\", кг"
paymentSubjectType string, 128 символов Необязательный Признак предмета расчета — категория этого товара для налоговой.
Возможные значения:
  • commodity — товар;

  • excise — подакцизный товар;

  • job — работа;

  • service — услуга;

  • gambling_bet — ставка в азартной игре;

  • gambling_prize — выигрыш в азартной игре;

  • lottery — лотерейный билет;

  • lottery_prize — выигрыш в лотерею;

  • intellectual_activity — результаты интеллектуальной деятельности;

  • payment — платеж;

  • agent_commission — агентское вознаграждение;

  • property_right — имущественные права;

  • non_operating_gain — внереализационный доход;

  • insurance_premium — страховой сбор;

  • sales_tax — торговый сбор;

  • resort_fee — курортный сбор;

  • composite — несколько вариантов;

  • another — другое.

paymentMethodType string, 128 символов Необязательный Признак способа расчета  — категория способа оплаты для налоговой.
Возможные значения:
  • full_prepayment — полная предоплата;

  • partial_prepayment — частичная предоплата;

  • advance — аванс;

  • full_payment— полный расчет;

  • partial_payment —  частичный расчет и кредит;

  • credit — кредит;

  • credit_payment — выплата по кредиту.

Параметр Тип Обязательность Описание

customerContact

string, 64 символа

Обязательный

Телефон или эл. почта покупателя.

Ограничения:

  • номер телефона в формате +79210000000 или адрес электронной почты (проверяется соответствие);
  • следует передавать что-то одно: только адрес почты или только телефон;
  • не следует передавать несколько адресов или телефонов.

taxSystem

int

Необязательный

Система налогообложения магазина (СНО). Параметр необходим, только если у вас несколько систем налогообложения. В остальных случаях не передается.

Возможные значения — число от 1 до 6:

1 — общая СН;

2 — упрощенная СН (доходы);

3 — упрощенная СН (доходы минус расходы);

4 — единый налог на вмененный доход;

5 — единый сельскохозяйственный налог;

6 — патентная СН.

Важно: товары с разным значением taxSystem необходимо передавать в разных чеках.

items Объект Обязательный Товары
Товар

quantity

Десятичное число с точностью 3 символа после запятой. Максимально возможное значение зависит от модели вашей онлайн-кассы

Обязательный

Количество товара. Описывает количество товаров в заказе или количество весового товара.

price

Объект

Обязательный

Цена товара.

amount

CurrencyAmount (десятичное число с точностью до 2 символов после точки)

Обязательный

Цена за единицу товара.

currency

CurrencyCode

Необязательный

Код валюты: RUB (рубль РФ).

tax

int

Обязательный

Ставка НДС. Возможные значения — число от 1 до 6:

1 — без НДС;

2 — ставка НДС 0%;

3 — ставка 10%;

4 — ставка 20%;

5 — расчетная ставка 10/110;

6 — расчетная ставка 20/120.

text

string, 128 символов

кириллица или латиница

Обязательный

Название товара.

Ограничения:

  • Специальные символы (например, кавычки) необходимо экранировать по правилам JSON. Пример: "text": "Зеленый чай \"Юн Ву\", кг"
paymentSubjectType string, 128 символов Необязательный Признак предмета расчета — категория этого товара для налоговой.
Возможные значения:
  • commodity — товар;

  • excise — подакцизный товар;

  • job — работа;

  • service — услуга;

  • gambling_bet — ставка в азартной игре;

  • gambling_prize — выигрыш в азартной игре;

  • lottery — лотерейный билет;

  • lottery_prize — выигрыш в лотерею;

  • intellectual_activity — результаты интеллектуальной деятельности;

  • payment — платеж;

  • agent_commission — агентское вознаграждение;

  • property_right — имущественные права;

  • non_operating_gain — внереализационный доход;

  • insurance_premium — страховой сбор;

  • sales_tax — торговый сбор;

  • resort_fee — курортный сбор;

  • composite — несколько вариантов;

  • another — другое.

paymentMethodType string, 128 символов Необязательный Признак способа расчета  — категория способа оплаты для налоговой.
Возможные значения:
  • full_prepayment — полная предоплата;

  • partial_prepayment — частичная предоплата;

  • advance — аванс;

  • full_payment— полный расчет;

  • partial_payment —  частичный расчет и кредит;

  • credit — кредит;

  • credit_payment — выплата по кредиту.

Пояснения

Контакты покупателя

  • Поле customerContact обязательное. В нем следует передавать синтаксически корректный номер телефона или электронную почту. Если поле пустое или содержит некорректные данные, оплата не пройдет.
  • Чек покупателю доставляет ОФД (условия доставки зависят от вашего ОФД). Чеки приходят на мобильные номера российских операторов (они начинаются с +7). На иностранный мобильный номер чек может не дойти.

Количество товаров, вес, цена

  • В поле amount указывается цена за единицу товара, в поле quantity — количество. Если в amount указана цена за один товар, следует передавать количество штук (quantity=2, например, два одинаковых пирога). Если в amount указана цена за кг, следует передавать вес товара (quantity=1.253, например, пирог весом 1 кг 253 г).
  • Цена указывается без учета налогов.
  • Общая сумма, которую вы передаете в ym_merchant_receipt, должна совпадать с суммой в sum. Если они не совпадают, чек не сформируется, оплата может не пройти.
  • В ym_merchant_receipt можно передать не больше 100 товаров — то есть не больше 100 таких блоков: {"quantity": 1.154,"price": {"amount": 300.23},"tax": 3,"text": "Товар А"}
  • Информацию о скидке или предоплате можно добавить в название товара. Пример: "text": "Предоплата 30%, настольная игра \"Tea Time\""}

Пример платежной формы с параметрами для чека

<form action="https://money.yandex.ru/eshop.xml" method="post">
        <input name="shopId" value="1234" type="hidden"/>
        <input name="scid" value="4321" type="hidden"/>
        <input name="sum" value="746.47" type="hidden">
        <input name="customerNumber" value="abc000" type="hidden"/>
        <input name="paymentType" value="AC" type="hidden"/>
        <input name="orderNumber" value="abc1111111" type="hidden"/>
        <input name="cps_phone" value="+79123456543" type="hidden"/>
        <input name="cps_email" value="user@domain.com" type="hidden"/>
        <input name="ym_merchant_receipt" value='{"customerContact": "+79001231212","taxSystem": 1, "items":[{"quantity": 1.154, "price": {"amount": 300.23},  "tax": 3,"text": "Зеленый чай \"Юн Ву\", кг","paymentMethodType": "full_prepayment ","paymentSubjectType": "commodity"},{"quantity": 2, "price": {"amount": 200.00},  "tax": 3,"text": "Кружка для чая, шт., скидка 10%","paymentMethodType": "full_prepayment ","paymentSubjectType": "commodity"}]}'
        type="hidden"/>
        <input type="submit" value="Заплатить"/>
        </form>

Смотрите также

Изменения в протоколе для работы по 54-ФЗ

Отправка данных для чека