Реквизиты чека: состав и справочники
Здесь — полный состав объекта receipt (для чеков коррекции он называется correction) и все справочники значений, которые принимает API кассового сервера. Всё, что описано ниже, проверяется на приёме: непрошедший проверку чек возвращает ошибку 32, и текст ошибки называет конкретное поле.
1. Каркас#
{
"client": { "email": "buyer@example.com" },
"company": { "email": "shop@example.com", "sno": "usn_income",
"inn": "7736570901", "payment_address": "https://shop.example" },
"items": [ /* 1…100 позиций */ ],
"payments": [ /* минимум одна оплата */ ],
"vats": [ { "type": "vat20", "sum": 416.67 } ],
"total": 2500.00,
"cashier": "Иванов И.И.",
"cashier_inn": "123456789047",
"additional_check_props": "Заказ №10421",
"additional_user_props": { "name": "Менеджер", "value": "Петров" },
"internet": true,
"device_number": "web-1"
}
Обязательный минимум: client (для операций-продаж), company, items, payments, total.
Денежные правила#
| Правило | Проверка |
|---|---|
total = сумма items[].sum |
Допуск 0.01 ₽ на позицию (округления) |
total > 0 |
Строго |
Σ payments[].sum = total |
Точно (эпсилон 0.005 ₽) |
| Все суммы — в рублях | Дробная часть — копейки: 1250.50 |
Суммы передаются числами, не строками. Позиция считается как price × quantity, но итог позиции берётся из sum — если у вас скидка на позицию, кладите в sum фактическую стоимость.
2. client — покупатель#
Для интернет-расчёта чек всегда электронный, поэтому нужен адрес доставки чека: минимум одно из email / phone. Если заданы оба, ОФД отправит чек на e-mail.
| Поле | Тег | Описание |
|---|---|---|
email |
1008 | Электронная почта покупателя |
phone |
1008 | Телефон в формате +7XXXXXXXXXX |
name |
1227 | Наименование/ФИО покупателя (для B2B и подакцизных) |
inn |
1228 | ИНН покупателя |
birthdate |
1243 | Дата рождения, дд.мм.гггг |
citizenship |
1244 | Код страны по ОКСМ, например 643 |
document_code |
1245 | Код вида документа, удостоверяющего личность |
document_data |
1246 | Данные документа |
address |
1254 | Адрес покупателя |
Расширенные реквизиты (name…address) нужны в отдельных отраслевых случаях — обычному интернет-магазину достаточно email или phone. Их поддержка зависит от модели кассы: если ККТ их не умеет, документ вернётся с ошибкой драйвера — текстом самой кассы (например: «реквизиты покупателя (теги 1227/1228/1008/1256)… не поддерживаются»), без отдельного кода ошибки.
3. company — продавец#
| Поле | Тег | Обяз. | Описание |
|---|---|---|---|
inn |
1018 | да | ИНН организации или ИП: 10 или 12 цифр |
sno |
1055 | рекомендуется | Система налогообложения, см. таблицу ниже |
payment_address |
1187 | рекомендуется | Место расчётов — адрес вашего сайта |
email |
1117 | рекомендуется | Адрес отправителя чека |
ИНН обязан совпадать с ИНН, на который зарегистрирован ФН вашей кассы. Несовпадение отклоняется сразу при регистрации: HTTP 400, ошибка 32, текст называет оба ИНН — чека и группы. Документ в очередь не попадает.
Системы налогообложения (sno)#
| Значение | Расшифровка |
|---|---|
osn |
Общая |
usn_income |
Упрощённая, доход |
usn_income_outcome |
Упрощённая, доход минус расход |
envd |
Единый налог на вменённый доход |
esn |
Единый сельскохозяйственный налог |
patent |
Патентная система |
Если поле не передано, применяется СНО по умолчанию, заданная для вашей кассовой группы.
4. items — позиции#
{
"name": "Кофе в зёрнах, 1 кг",
"price": 1250.00,
"quantity": 2,
"sum": 2500.00,
"measure": 11,
"payment_method": "full_payment",
"payment_object": 1,
"vat": { "type": "vat20" },
"user_data": "Артикул A-100"
}
| Поле | Тег | Обяз. (v5) | Описание |
|---|---|---|---|
name |
1030 | да | Наименование, ≤ 128 символов |
price |
1079 | да | Цена за единицу |
quantity |
1023 | да | Количество, > 0, допускается дробное |
sum |
1043 | да | Стоимость позиции |
measure |
2108 | да | Числовой код единицы измерения |
payment_method |
1214 | да | Признак способа расчёта |
payment_object |
1212 | да | Признак предмета расчёта, число 1…33 |
vat.type |
1199 | да | Ставка НДС |
vat.sum |
1200 | нет | Сумма НДС, если считаете сами |
user_data |
1191 | нет | Дополнительный реквизит позиции |
excise |
1229 | нет | Акциз |
country_code |
1230 | нет | Код страны происхождения (ОКСМ) |
declaration_number |
1231 | нет | Номер таможенной декларации |
mark_code |
1163 | нет | Код маркировки, см. §7 |
mark_quantity |
1291 | нет | Дробное количество маркированного товара |
agent_info / supplier_info |
1222/1224 | нет | Агентская схема, см. §8 |
sectoral_item_props |
1260 | нет | Отраслевой реквизит позиции |
Признак способа расчёта (payment_method)#
| Значение | Смысл | Когда типично в интернет-магазине |
|---|---|---|
full_prepayment |
Предоплата 100 % | Оплата на сайте до отгрузки |
prepayment |
Частичная предоплата | Оплачена часть заказа |
advance |
Аванс | Оплата без конкретной номенклатуры (подарочный сертификат) |
full_payment |
Полный расчёт | Оплата и передача товара одновременно |
partial_payment |
Частичный расчёт и кредит | Часть оплачена, остальное в рассрочку |
credit |
Передача в кредит | Товар отгружен без оплаты |
credit_payment |
Оплата кредита | Гасится ранее выданный кредит |
Признак предмета расчёта (payment_object, v5 — число)#
| Код | Предмет | Код | Предмет |
|---|---|---|---|
| 1 | Товар | 17 | Торговый сбор |
| 2 | Подакцизный товар | 18 | Курортный сбор |
| 3 | Работа | 19 | Залог |
| 4 | Услуга | 20 | Расход |
| 5 | Ставка азартной игры | 21 | Взносы на ОПС у ИП |
| 6 | Выигрыш азартной игры | 22 | Взносы на ОПС |
| 7 | Лотерейный билет | 23 | Взносы на ОМС у ИП |
| 8 | Выигрыш лотереи | 24 | Взносы на ОМС |
| 9 | Результат интеллектуальной деятельности | 25 | Взносы на ОСС |
| 10 | Платёж | 26 | Платёж казино |
| 11 | Агентское вознаграждение | 27 | Выдача денежных средств |
| 12 | Выплата | 30 | Подакцизный маркируемый товар без кода |
| 13 | Иной предмет расчёта | 31 | Подакцизный маркируемый товар с кодом |
| 14 | Имущественное право | 32 | Маркируемый товар без кода |
| 15 | Внереализационный доход | 33 | Маркируемый товар с кодом |
| 16 | Иные платежи и взносы |
Обычный товар интернет-магазина — код 1; услуга — 4; маркируемый товар со сканированным кодом — 33.
В протоколе v4 то же поле передаётся строкой (commodity, service, job, payment, agent_commission, another и т. д.) — исторические имена v4 принимаются и приводятся к современной таблице автоматически.
Единица измерения (measure, v5 — число)#
| Код | Единица | Код | Единица | Код | Единица |
|---|---|---|---|---|---|
| 0 | Штука, единица | 30 | см² | 70 | Сутки |
| 10 | Грамм | 31 | дм² | 71 | Час |
| 11 | Килограмм | 32 | м² | 72 | Минута |
| 12 | Тонна | 40 | Миллилитр | 73 | Секунда |
| 20 | Сантиметр | 41 | Литр | 80 | Килобайт |
| 21 | Дециметр | 42 | м³ | 81 | Мегабайт |
| 22 | Метр | 50 | кВт·ч | 82 | Гигабайт |
| 51 | Гкал | 83 | Терабайт | ||
| 255 | Иная единица |
В v4 вместо кода передаётся строка measurement_unit («шт», «кг», «л», «час»); нераспознанная строка приводится к «иной единице».
Ставки НДС (vat.type)#
| Значение | Ставка |
|---|---|
none |
НДС не облагается |
vat0 |
0 % |
vat5 |
5 % (УСН) |
vat7 |
7 % (УСН) |
vat10 |
10 % |
vat20 |
20 % |
vat22 |
22 % |
vat105 |
5/105 — расчётная |
vat107 |
7/107 — расчётная |
vat110 |
10/110 — расчётная |
vat120 |
20/120 — расчётная |
vat122 |
22/122 — расчётная |
Расчётные ставки применяются к суммам, в которых налог уже «сидит» внутри, — например к авансам и предоплатам.
Ставки 22 % и 22/122 требуют кассы с прошивкой, знающей новую ставку. Часть моделей старых поколений её физически не принимает — уточните у своего ЦТО.
5. payments — оплаты#
"payments": [ { "type": 1, "sum": 2500.00 } ]
type |
Форма расчёта | Когда |
|---|---|---|
| 0 | Наличные | Курьер принял наличные |
| 1 | Безналичные | Оплата картой, СБП, электронный кошелёк |
| 2 | Предоплата (аванс) | Зачёт ранее полученного аванса |
| 3 | Постоплата (кредит) | Товар передан в кредит |
| 4 | Встречное предоставление | Взаимозачёт, бартер |
Оплат может быть несколько, их сумма обязана совпадать с total; своего лимита на число оплат сервис не ставит — ограничение задаёт сама ККТ и формат фискальных документов. Для интернет-магазина, принимающего оплату картой на сайте, это всегда {"type": 1, "sum": <итог>}.
6. vats — сводные ставки#
Необязательный блок: сводка по НДС на весь чек ([{ "type": "vat20", "sum": 416.67 }]). Если не передан, касса посчитает налоги по позициям сама.
7. Маркировка#
Код маркировки передаётся ровно одним полем-форматом:
"payment_object": 33,
"mark_code": { "gs1m": "MDEwNDYwNzQyODY3OTA5MDIxOU..." },
"mark_quantity": { "numerator": 1, "denominator": 2 }
| Формат | Что это |
|---|---|
unknown |
Нераспознанный код (передаётся как есть) |
ean8, ean13, itf14 |
Товарные штрихкоды |
gs10, gs1m |
GS1 DataMatrix (gs1m — в Base64) |
short |
Сокращённый код |
fur |
Меховое изделие |
egais20, egais30 |
ЕГАИС (алкоголь) |
mark_quantity (дробная продажа маркированного товара) допускается только вместе с кодом маркировки. В протоколе v4 вместо mark_code используется nomenclature_code — hex-строка.
Важно. Код маркировки передаётся в вашу кассу как есть: проверку кода в «Честном знаке» и разрешительный режим (ТС ПИоТ) сервис не выполняет. Если ваш товар подлежит разрешительному режиму, проверку нужно выполнять до отправки чека — на стороне вашей учётной системы или кассового ПО.
8. Агентская схема#
Когда вы продаёте товар принципала (маркетплейс, платёжный агент, комиссионер), позиция дополняется двумя блоками:
"agent_info": { "type": "commission_agent" },
"supplier_info": { "name": "ООО Поставщик", "inn": "7736570901", "phones": ["+79001234567"] }
agent_info.type |
Роль |
|---|---|
bank_paying_agent |
Банковский платёжный агент |
bank_paying_subagent |
Банковский платёжный субагент |
paying_agent |
Платёжный агент |
paying_subagent |
Платёжный субагент |
attorney |
Поверенный |
commission_agent |
Комиссионер |
another |
Иной агент |
supplier_info с корректным ИНН обязателен, если задан agent_info, — иначе чек не пройдёт валидацию. Для платёжных агентов дополнительно заполняются телефоны оператора приёма платежей и данные оператора перевода внутри agent_info.
9. Прочие реквизиты чека#
| Поле | Тег | Описание |
|---|---|---|
cashier / cashier_inn |
1021 / 1203 | Кассир и его ИНН |
additional_check_props |
1192 | Дополнительный реквизит чека (например, номер заказа) |
additional_user_props |
1084 | Дополнительный реквизит пользователя: {name, value} |
device_number |
1036 | Номер автомата/канала продаж |
internet |
1125 | Признак расчёта в Интернете (для операций через API подставляется автоматически) |
cashless_payments |
1234 | Сведения о безналичных оплатах |
operating_check_props |
1270 | Операционный реквизит чека |
sectoral_check_props |
1261 | Отраслевой реквизит чека: federal_id, date, number, value |
10. Чек коррекции#
Для операций *_correction тело документа передаётся в корне correction, а основание — в correction_info:
{
"timestamp": "04.08.2026 15:00:00",
"external_id": "corr-10421",
"correction_info": { "type": "self", "base_date": "03.08.2026", "base_number": "1" },
"correction": {
"company": { "sno": "usn_income", "inn": "7736570901", "payment_address": "https://shop.example" },
"items": [ /* как в обычном чеке */ ],
"payments": [ { "type": 1, "sum": 2500.00 } ],
"total": 2500.00
}
}
correction_info.type:self— самостоятельно,instruction— по предписанию налогового органа.base_dateобязателен всегда,base_number— обязателен приinstruction.- Блок
clientв коррекции не обязателен.
Когда какой чек коррекции нужен по закону — в справочнике Чек коррекции и разборе типовых ситуаций рядом с ним.
Дальше: сценарии интернет-магазина · ошибки и диагностика · справочник API.