Фискализация на кассах «АТОЛ Онлайн»: форматы запросов
Содержание
- Требования ФНС и протоколы
- Схема взаимодействия с сервисом
- Формат запросов:
Требования ФНС и протоколы
С помощью «АТОЛ Онлайн» фискализирует чеки один из наших партнеров — интернет-магазин. При предоплаченных заказах чеки фискализируют на арендованных у «АТОЛ Онлайн» кассах (ККТ) посредством разработанного клиентского API. Сервис поддерживает формат фискальных данных версии 1.2 (ФФД 1.2) согласно вступившему в силу приказу ФНС России от 14.09.2020 № ЕД-7-20/662@.
Вся информация по фискализации чеков есть в документации API «АТОЛ Онлайн»: схема взаимодействия с сервисом, описание методов, схемы пакетов, названия полей, теги ФФД. В описании POST-запросов для чеков есть обязательные и необязательные поля (колонка 3). У нас используются только обязательные поля.
Полезные ссылки:
- API: Описание протокола АТОЛ Онлайн ФФД 1.2.
- Реквизиты фискальных документов: Приказ ФНС России от 14.09.2020 № ЕД-7-20/662@.
- Изменения в форматах фискальных документов, которые вступают в силу с 01.09.2025: Приказ ФНС России от 12.04.2023 № ЕД-7-20/239@.
- Схема бизнес-процесса «Продажа курьером».
- Схема бизнес-процесса «Продажа предоплаченного заказа».
Схема взаимодействия с сервисом
Мы работаем по 100% предоплате. Это значит, что пробивается два чека: при оплате пробивается чек о 100% предоплате, а в момент передачи товара пробивается чек о полном расчете.
Схема взаимодействия:
- Онлайн-касса формирует POST-запрос на регистрацию чека о 100% предоплате.
- Сервис возвращает пакет, содержащий уникальный идентификатор чека и статус обработки чека.
- На указанный в первом запросе callback_url сервис POST-запросом возвращает результат обработки чека.
- Онлайн-касса формирует POST-запрос на регистрацию чека о полном расчете.
- Сервис возвращает пакет, содержащий уникальный идентификатор чека и статус обработки чека.
- Результат обработки чека запрашивается GET-запросом к сервису.

В документации API запросы на регистрацию чеков называются «Запрос для чеков расхода, прихода, возврат расхода и возврат прихода». Тип чека — 100% предоплата или полный расчет, указывается в значении атрибута payment_method.
1. Запрос на регистрацию чека о 100% предоплате
Пример запроса:
{
"timestamp": "19.08.2025 16:23:35",
"external_id": "68a47a8799aaf-0000000000000",
"service": {
"callback_url": "https://server/app/callback-receipt"
},
"receipt": {
"client": {
"email": "example@rambler.ru",
"phone": "+79999999999"
},
"company": {
"email": "admin@example.ru",
"sno": "osn",
"inn": "7777777777",
"payment_address": "https://www.example.ru;1"
},
"items": [
{
"name": "Коврик развивающий Meying",
"price": 1379,
"quantity": 1,
"measure": 0,
"sum": 1379,
"payment_method": "full_prepayment",
"payment_object": 1,
"vat": {
"type": "vat20"
}
}
],
"payments": [
{
"type": 1,
"sum": 1379
}
],
"total": 1379
}
}
Таблица 1: запрос на регистрацию чеков о 100% предоплате.
Примечание: в первой колонке точки перед полями обозначают уровень вложенности в списке.
НАЗВАНИЕ ПОЛЯ | ТЕГ ФНС | ОПИСАНИЕ РЕКВИЗИТА | ПРИМЕР |
● timestamp | - | Дата и время документа внешней системы в формате: «dd.mm.yyyy HH:MM:SS». | 19.08.2025 16:23:35 |
● external_id | - | Идентификатор документа внешней системы. Максимум 128 символов. | 68a47a8799aaf-0000000000000 |
● service | - | Вложенный словарь с URL. | |
●● callback_url | - | URL, на который необходимо ответить после обработки документа. Максимальная длина строки – 256 символов. | https://server/app/callback-receipt |
● receipt | - | Вложенный словарь с данными чека. | |
●● client | - | Вложенный словарь с данными покупателя. | |
1008 | Электронный адрес покупателя. Обязательно заполняется либо это поле email, либо phone. | example@rambler.ru | |
●●● phone | 1008 | Телефон покупателя. Обязательно заполняется либо email, либо phone. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 2 1234567» необходимо передать как «+37121234567»). До 19 символов. Маски: +{Ц} или значение “none“. | +79999999999 |
●● company | - | Вложенный словарь с данными о компании. | |
1117 | Электронная почта отправителя чека. При передаче ОФД кассового чека (БСО), кассового чека коррекции (БСО коррекции) покупателю (клиенту) в электронной форме указывается адрес электронной почты ОФД. Максимальная длина строки – 64 символа. Маска: {С}@{С} или значение “none“. | admin@example.ru | |
●●● sno | 1055 |
Система налогообложения. Должно принимать одно из значений:
|
osn |
●●● inn | 1018 | ИНН организации. Используется для предотвращения ошибочных регистраций чеков на ККТ зарегистрированных с другим ИНН (сравнивается со значением в ФН). Допустимое количество символов 10 или 12. | 7777777777 |
●●● payment_address | 1187 | Место расчетов. Максимальная длина строки – 256 символов. | https://www.example.ru |
●● items | - | Вложенный список с данными по товарам. | |
●●●● name | 1030 | Наименование товара, работы, услуги, платежа, выплаты, иного предмета расчета. Максимальная длина строки – 128 символов. | Коврик развивающий Meying |
●●●● price | 1079 |
Цена за единицу товара, работы, услуги, платежа, выплаты, иного предмета расчета с учетом скидок и наценок. Цена в рублях:
|
1379 |
●●●● quantity | 1023 | Количество/вес: значение от 0.000001 до 99999.999999. При wholesale = true значение должно быть больше 1. | 1 |
●●●● measure | 2108 |
Единицы измерения количества предмета расчета. Может принимать одно из значений:
|
0 |
●●●● sum | 1043 |
Сумма в рублях:
|
1379 |
●●●● payment_method | 1214 |
Признак способа расчёта. Возможные значения:
|
full_prepayment |
●●●● payment_object | 1212 |
Признак предмета расчёта. Должен принимать одно из значений от 1 до 33.
|
1 |
●●●● vat | - | Вложенный словарь с данными по НДС. | |
●●●●● type | 1199 |
Ставка НДС. Устанавливает номер налога в ККТ. Перечисление со значениями:
|
vat20 |
●● payments | - | Вложенный словарь «Оплаты». Ограничение по количеству от 1 до 10. | |
●●● type |
1031 - сумма по чеку (БСО) наличными; 1081 - сумма по чеку (БСО) безналичными; 1215 - сумма по чеку (БСО) предоплатой (зачетом аванса и (или) предыдущих платежей); 1216 - сумма по чеку (БСО) постоплатой (в кредит); 1217 - сумма по чеку (БСО) встречным предоставлением. |
Вид оплаты. Возможные значения:
|
1 |
●●● sum | - |
Сумма к оплате в рублях:
|
1379 |
●● total | 1020 |
Сумма расчета, указанного в чеке (БСО). Итоговая сумма чека в рублях с заданным в CMS округлением:
|
2. Ответ сервера на запрос о регистрации
Пример ответа сервера на запрос:
{
"uuid": "46aa2aca-cfdd-4d2f-a49f-000000000000",
"status": "wait",
"error": null,
"timestamp": "19.08.2025 16:24:03"
}
Таблица 2: ответ сервера на запрос.
Примечание: в первой колонке точки перед тегами обозначают уровень вложенности в списке.
НАЗВАНИЕ ПОЛЯ | ТЕГ ФНС | ОПИСАНИЕ РЕКВИЗИТА | ПРИМЕР |
● uuid | - | Уникальный идентификатор. Максимальная длина строки – 128 символов. Если документ не удалось зарегистрировать, документу не будет присвоен UUID. | 46aa2aca-cfdd-4d2f-a49f-000000000000 |
● status | - |
Статус. Возможные значения:
|
wait |
● timestamp | - | Дата и время получения запроса в формате: «dd.mm.yyyy HH:MM:SS». | 19.08.2025 16:24:03 |
● error | - | null или вложенный словарь с описанием ошибки. | null или словарь |
●● error_id | - | Уникальный идентификатор ошибки. | |
●● code | - | Код ошибки. Отображается только при ошибке. Если параметр присутствует, то со значением «fail» или «wait». | |
●● text | - | Текст ошибки (кодировка utf–8). | |
●● type | - |
Тип источника ошибки. Возможные значения:
|
3. Результат обработки чека о 100% предоплате
На указанный callback_url сервис POST-запросом возвращает результат обработки чека.
Пример результата:
{
"uuid": "46aa2aca-cfdd-4d2f-a49f-000000000000",
"timestamp": "19.08.2025 16:24:05",
"callback_url": "https://server/app/callback-receipt",
"status": "done",
"group_code": "group_code",
"daemon_code": "some_string",
"device_code": "some_string",
"external_id": "68a47a8799aaf-0000000000000",
"error": null,
"payload": {
"fiscal_receipt_number": 6,
"shift_number": 297,
"receipt_datetime": "19.08.2025 16:24:03",
"total": 1379,
"fn_number": "7380440801381533",
"ecr_registration_number": "0004079004044140",
"fiscal_document_number": 5597,
"fiscal_document_attribute": {
"$numberLong": "4101953533"
},
"fns_site": "nalog.gov.ru",
"ofd_inn": "9715260691",
"ofd_receipt_url": "https://lk.platformaofd.ru/web/noauth/cheque?further-path"
}
}
Таблица 3: результат обработки чека о 100% предоплате.
Примечание: в первой колонке точки перед тегами обозначают уровень вложенности в списке.
НАЗВАНИЕ ПОЛЯ | ТЕГ ФНС | ОПИСАНИЕ РЕКВИЗИТА | ПРИМЕР |
● uuid | - | Уникальный идентификатор. Максимальная длина строки – 128 символов. Если документ не удалось зарегистрировать, документу не будет присвоен UUID. | 46aa2aca-cfdd-4d2f-a49f-000000000000 |
● timestamp | - | Дата и время документа внешней системы в формате: «dd.mm.yyyy HH:MM:SS». | 19.08.2025 16:24:05 |
● callback_url | - | URL, на который необходимо ответить после обработки документа | https://server/app/callback-receipt |
● status | - |
Статус. Возможные значения:
|
done |
● group_code | - | Идентификатор группы ККТ. | group_code |
● daemon_code | - | Наименование сервера. | some_string |
● device_code | - | Код ККТ. | some_string |
● external_id | - | Идентификатор документа внешней системы, уникальный среди всех документов, отправленных в данную группу ККТ. | 68a47a8799aaf-000000000000 |
● error | - | Описание ошибки. | null |
● payload | - | Реквизиты фискализации документа. Вложенный словарь с данными платежа. | |
●● fiscal_receipt_number | 1042 | Номер чека в смене. | 6 |
●● shift_number | 1038 | Номер смены. | 297 |
●● receipt_datetime | 1012 | Дата и время документа из ФН. | 19.08.2025 16:24:03 |
●● total | 1020 |
Итоговая сумма документа в рублях с заданным в CMS округлением:
|
|
●● fn_number | 1041 | Номер ФН. | 7380440801381533 |
●● ecr_registration_number | 1037 | Регистрационный номер ККТ. | 0004079004044140 |
●● fiscal_document_number | 1040 | Фискальный номер документа. | 5597 |
●● fiscal_document_attribute | 1077 | Фискальный признак документа. | 4101953533 |
● fns_site | 1060 | Адрес сайта ФНС. | nalog.gov.ru |
● ofd_inn | 1017 | Идентификационный номер налогоплательщика оператора фискальных данных. | 9715260691 |
● ofd_receipt_url | - |
URL для просмотра чека на сайте ОФД. Отображается только для чеков, зарегистрированных с помощью:
|
https://lk.platformaofd.ru/web/noauth/cheque?further-path |
4. Запрос на регистрацию чека о полном расчете
Пример запроса:
{
"timestamp": "20.08.2025 09:51:20",
"external_id": "10dd6e07-7d92-11f0-942c-000000000000",
"receipt": {
"company": {
"email": "company@mail.ru",
"sno": "osn",
"inn": "7800000000",
"payment_address": "https://www.shop.ru"
},
"payments": [
{
"type": 2,
"sum": 1199
}
],
"cashier": "Фамилия Имя Отчество",
"client": {
"email": "buyer@email.ru",
"phone": "89999999999"
},
"vats": [
{
"type": "vat20",
"sum": 106.67
},
{
"type": "vat10",
"sum": 50.82
}
],
"items": [
{
"name": "Шарф Acoola Benoit-s",
"price": 559,
"quantity": 1,
"measure": 0,
"sum": 559,
"payment_method": "full_payment",
"mark_processing_mode": "0",
"payment_object": 33,
"mark_code": {
"gs1m": "MDEwMjkwMTA1MTc2OTI3NTIxNW1VTDhkM1RLR2NzPR05MUVFMTEdOTJNjYzTnhjMk00TGF0aEVlbk90VUtibnZULzhU1o3ODh6UWlJUi9HV1VNPQ=="
},
"vat": {
"type": "vat10",
"sum": 50.82
}
},
{
"name": "Доставка курьером",
"price": 640,
"quantity": 1,
"measure": 0,
"sum": 640,
"payment_method": "full_payment",
"payment_object": 4,
"vat": {
"type": "vat20",
"sum": 106.67
}
}
],
"total": 1199
}
}
Таблица 4: запрос на регистрацию чека о полном расчете.
Примечание: в первой колонке точки перед полями обозначают уровень вложенности в списке.
НАЗВАНИЕ ПОЛЯ | ТЕГ ФНС | ОПИСАНИЕ РЕКВИЗИТА | ПРИМЕР |
● timestamp | - | Дата и время документа внешней системы в формате: «dd.mm.yyyy HH:MM:SS». | 20.08.2025 09:51:20 |
● external_id | - | Идентификатор документа внешней системы. Максимум 128 символов. | 10dd6e07-7d92-11f0-942c-000000000000 |
● receipt | - | Вложенный словарь с данными чека. | |
●● company | - | Вложенный словарь с данными о компании. | |
1117 | Электронная почта отправителя чека. При передаче ОФД кассового чека (БСО), кассового чека коррекции (БСО коррекции) покупателю (клиенту) в электронной форме указывается адрес электронной почты ОФД. Максимальная длина строки – 64 символа. Маска: {С}@{С} или значение “none“. | company@mail.ru | |
●●● sno | 1055 |
Система налогообложения. Должно принимать одно из значений:
|
osn |
●●● inn | 1018 | ИНН организации. Используется для предотвращения ошибочных регистраций чеков на ККТ зарегистрированных с другим ИНН (сравнивается со значением в ФН). Допустимое количество символов 10 или 12. | 7800000000 |
●●● payment_address | 1187 | Место расчетов. Максимальная длина строки – 256 символов. | https://www.shop.ru |
●● payments | - | Вложенный список словарей «Оплаты». Ограничение по количеству от 1 до 10. | |
●●●● type |
1031 - сумма по чеку (БСО) наличными; 1081 - сумма по чеку (БСО) безналичными; 1215 - сумма по чеку (БСО) предоплатой (зачетом аванса и (или) предыдущих платежей); 1216 - сумма по чеку (БСО) постоплатой (в кредит); 1217 - сумма по чеку (БСО) встречным предоставлением. |
Вид оплаты. Возможные значения:
|
2 |
●●●● sum | - |
Сумма к оплате в рублях:
|
1199 |
●● cashier | 1021 | ФИО кассира. Максимальная длина строки – 64 символа. | Фамилия Имя Отчество |
●● client | - | Вложенный словарь с данными покупателя. | |
1008 | Электронный адрес покупателя. Обязательно заполняется либо это поле email, либо phone. | buyer@email.ru | |
●●● phone | 1008 | Телефон покупателя. Обязательно заполняется либо email, либо phone. Номер телефона необходимо передать вместе с кодом страны без пробелов и дополнительных символов, кроме символа «+» (номер «+371 21234567» необходимо передать как «+37121234567»). До 19 символов. Маски: +{Ц} или значение “none“. | 89999999999 |
●● vats | - | Вложенный список словарей с данными по НДС. | |
●●●● type | 1199 |
Ставка НДС. Устанавливает номер налога в ККТ. Перечисление со значениями:
|
vat20 |
●●●● sum | 1020 |
Сумма расчета, указанного в чеке (БСО). Итоговая сумма чека в рублях с заданным в CMS округлением:
|
106.67 |
●● items | - | Вложенный список словарей с данными по товарам. | |
●●●● name | 1030 | Наименование товара, работы, услуги, платежа, выплаты, иного предмета расчета. Максимальная длина строки – 128 символов. | Шарф Acoola Benoit-s |
●●●● price | 1079 |
Цена за единицу товара, работы, услуги, платежа, выплаты, иного предмета расчета с учетом скидок и наценок. Цена в рублях:
|
559 |
●●●● quantity | 1023 |
Количество/вес: Значение от 0.000001 до 99999.999999 При wholesale = true значение должно быть больше 1. |
1 |
●●●● measure | 2108 |
Единицы измерения количества предмета расчета. Может принимать одно из значений:
|
0 |
●●●● sum | 1043 |
Сумма в рублях:
|
559 |
●●●● payment_method | 1214 |
Признак способа расчёта. Возможные значения:
|
full_payment |
●●●● mark_processing_mode | 2102 | Включается в чек в случае, если предметом расчета является товар, подлежащий обязательной маркировке средством идентификации. Должен принимать значение равное «0». | 0 |
●●●● payment_object | 1212 |
Признак предмета расчёта. Должен принимать одно из значений от 1 до 33.
|
33 |
●●●● mark_code | 1163 | Вложенный словарь с КМ. Включается в чек в случае, если предметом расчета является товар, подлежащий обязательной маркировке средством идентификации. Обязательно при wholesale = true. | |
●●●●● gs1m | 1305 | Код товара в формате GS1, нанесенный на товар, подлежащий маркировке средствами идентификации. | MDEwMjkwMTA1MTc2OTI3NTIxNW1VTDhkM1RLR2NzPR05MUVFMTEdOTJNjYzTnhjMk00TGF0aEVlbk90VUtibnZULzhU1o3ODh6UWlJUi9HV1VNPQ== |
●●●● vat | - | Вложенный словарь с данными по НДС. | |
●●●●● type | 1199 |
Ставка НДС. Устанавливает номер налога в ККТ. Перечисление со значениями:
|
vat10 |
●●●●● sum | 1200 |
Сумма налога позиции в рублях:
|
50.82 |
●● total | 1020 |
Сумма расчета, указанного в чеке (БСО). Итоговая сумма чека в рублях с заданным в CMS округлением:
|
1199 |
5. Ответ сервера на запрос о регистрации
Ответ такой же, как в п. 2 — посмотреть.
6. Результат обработки чека о полной оплате
Результат обработки чека запрашивается GET-запросом к сервису по пути: /{path}/{uuid}, где uuid берется из ответа сервера п.5.
Пример ответа с результатом:
{
"payload": {
"ecr_registration_number": "0000896122051850",
"fiscal_document_attribute": 3198892507,
"fiscal_document_number": 4345,
"fiscal_receipt_number": 5,
"fn_number": "7380440801027606",
"fns_site": "nalog.gov.ru",
"receipt_datetime": "20.08.2025 09:51:22",
"shift_number": 249,
"total": 1199,
"ofd_inn": "9715260691",
"ofd_receipt_url": "https://lk.platformaofd.ru/web/noauth/cheque?further-path",
"marks_result": [
{
"position": 0,
"mark_code": "MDEwMjkwMTA1MTc2OTI3NTIxNW1VTDhkM1RLR2NzPR05MUVFMTEdOTJNjYzTnhjMk00TGF0aEVlbk90VUtibnZULzhU1o3ODh6UWlJUi9HV1VNPQ==",
"result": 15
}
]
},
"callback_url": "",
"daemon_code": "some_string",
"device_code": "some_string",
"warnings": null,
"error": null,
"external_id": "10dd6e07-7d92-11f0-942c-000000000000",
"group_code": "some_string",
"status": "done",
"uuid": "318148aa-455b-496a-8bc2-000000000000",
"timestamp": "20.08.2025 09:51:23"
}
Таблица 6: результат обработки чека о полном расчете.
Примечание: в первой колонке точки перед тегами обозначают уровень вложенности в списке.
НАЗВАНИЕ ПОЛЯ | ТЕГ ФНС | ОПИСАНИЕ РЕКВИЗИТА | ПРИМЕР |
● payload | - | Реквизиты фискализации документа. Вложенный словарь с данными платежа. | |
●● ecr_registration_number | 1037 | Регистрационный номер ККТ. | 0000896122051850 |
●● fiscal_document_attribute | 1077 | Фискальный признак документа. | 3198892507 |
●● fiscal_document_number | 1040 | Фискальный номер документа. | 4345 |
●● fiscal_receipt_number | 1042 | Номер чека в смене. | 5 |
●● fn_number | 1041 | Номер ФН. | 7380440801027606 |
●● fns_site | 1060 | Адрес сайта ФНС. | nalog.gov.ru |
●● receipt_datetime | 1012 | Дата и время документа из ФН. | 20.08.2025 09:51:22 |
●● shift_number | 1038 | Номер смены. | 249 |
●● total | 1020 |
Итоговая сумма документа в рублях с заданным в CMS округлением:
|
1199 |
●● ofd_inn | 1017 | Идентификационный номер налогоплательщика оператора фискальных данных. | 9715260691 |
●● ofd_receipt_url | - |
URL для просмотра чека на сайте ОФД. Отображается только для чеков, зарегистрированных с помощью:
|
https://lk.platformaofd.ru/web/noauth/cheque?further-path |
●● marks_result | - | Вложенный список словарей с данными по КМ. | |
●●●● position | - | Номер позиции предмета расчета в исходном чеке, для которого был указан код маркировки, начиная с 0. | 0 |
●●●● mark_code | - | КМ, переданный в исходном чеке. | MDEwMjkwMTA1MTc2OTI3NTIxNW1VTDhkM1RLR2NzPR05MUVFMTEdOTJNjYzTnhjMk00TGF0aEVlbk90VUtibnZULzhU1o3ODh6UWlJUi9HV1VNPQ== |
●●●● result | 2106 | Значение результата проверки сведений о товаре для данной позиции. Перечень возможных значений указан в таблице «Перечень значений объекта result». | 15 |
● callback_url | - | URL, на который необходимо ответить после обработки документа. | |
● daemon_code | - | Наименование сервера. | some_string |
● device_code | - | Код ККТ. | some_string |
● warnings | - | Важная информация. Имеет значение «callback_url не соответствует маске». Отображается в случае, если значение параметра callback_url в запросе на регистрацию документа было указано некорректно. | null |
● error | - | Описание ошибки. | null |
● external_id | - | Идентификатор документа внешней системы, уникальный среди всех документов, отправленных в данную группу ККТ. | 10dd6e07-7d92-11f0-942c-000000000000 |
● group_code | - | Идентификатор группы ККТ. | some_string |
● status | - |
Статус. Возможные значения:
|
done |
● uuid | - | Уникальный идентификатор. Максимальная длина строки – 128 символов. Если документ не удалось зарегистрировать, документу не будет присвоен UUID. | 318148aa-455b-496a-8bc2-000000000000 |
● timestamp | - | Дата и время документа внешней системы в формате: «dd.mm.yyyy HH:MM:SS». | 20.08.2025 09:51:23 |