Работа с фискальными чеками РФ

Общая информация

В соответствии с законодательством Российской Федерации всем организациям и большинству индивидуальных предпринимателей при осуществлении расчётов с использованием электронных средств платежа необходимо применять контрольно-кассовую технику и информировать Федеральную налоговую службу о совершённых платежах. При этом передача данных в налоговую службу регулируется Федеральным законом РФ от 22.05.2003 № 54-ФЗ «О применении контрольно-кассовой техники при осуществлении расчётов в Российской Федерации».

Платёжная платформа ecommpay позволяет организовывать работу с фискальными чеками через сервисы фискализации «АТОЛ Онлайн» и Orange Data. Для подключения какого-либо из этих сервисов со стороны мерчанта необходимо заключить соответствующий договор с компанией — поставщиком услуги; при этом с вопросами о подключении можно обращаться к курирующему менеджеру.

В платёжной платформе ecommpay формирование фискальных чеков с использованием сервисов фискализации возможно при проведении разовых и повторяемых оплат через Payment Page. Данные для формирования фискального чека передаются в виде JSON-объекта, закодированного с использованием алгоритма Base64, в запросах на открытие платёжной формы. После успешного проведения платежа пользователю отправляется фискальный чек, а веб-сервису мерчанта отправляются два оповещения — оповещение с информацией о результате проведения платежа и оповещение с данными фискального чека.

Особенности работы

Общие

  • Настройка срока ожидания чека на стороне ecommpay выполняется в зависимости от условий предоставления сервиса. Эти данные необходимо предоставить при подключении сервиса на стороне ecommpay.
  • Следует иметь ввиду ограничения кодировки передаваемых строк. Фискальные данные передаются в фискальный накопитель в кодировке CP866, которая поддерживает меньший набор символов, чем кодировка UTF-8. Например, в CP866 отсутствуют символы кавычек («»), поэтому они не передаются в фискальный накопитель. Соответственно, наименование товара Сок «Груша» в фискальном чеке передаётся как Сок Груша.
  • При использовании онлайн-касс не осуществляется проверка полученных данных на соответствие форматам фискальных документов (ФФД), утверждённых ФНС России. Например, согласно ФФД телефон покупателя имеет формат +{Ц}, где Ц — это атрибут, обозначающий, что данные реквизита должны быть представлены в виде цифры, а электронный адрес имеет формат {С}@{C}, где С — это атрибут, обозначающий, что данные реквизита должны быть представлены в виде символа. Однако онлайн-кассы принимают любую строку длиной от 1 до 64 символов. Также в онлайн-кассах не выполняется проверка на корректное использование тегов (в том числе реквизита «данные агента»), поэтому мерчантам необходимо ознакомиться с документацией о ФФД, предоставляемой ФНС (документ Форматы фискальных документов, обязательных к использованию), и внимательно следить за использованием тегов в зависимости от конкретного сценария работы.
  • В настоящее время сервисы «АТОЛ Онлайн» и Orange Data работают с использованием ФФД 1.05.
  • В платёжной платформе ecommpay не выполняется формирование чека коррекции. Такие чеки мерчанту необходимо формировать через сервис фискализации.
  • В платёжной платформе ecommpay не выполняется формирование штрих-кода или QR-кода.

Особенности работы с сервисом Orange Data

  • Максимальная сумма для одной позиции и максимальная сумма всех позиций составляет 99 999 999,99 рублей. Максимальное количество предмета расчёта — 281 474 976,710655.
  • При проведении оплаты с предварительной блокировкой средств отправка чека выполняется после подтверждения оплаты в результате списания блокированных средств. При этом данные для формирования фискального чека можно передавать только в запросе на открытие Payment Page для выполнения блокировки средств.

Особенности работы с сервисом «АТОЛ Онлайн»

  • Максимальная сумма для одной позиции и максимальная сумма всех позиций составляет 42 949 672,95 рублей.
  • При проведении оплаты с предварительной блокировкой средств отправка чека выполняется после подтверждения оплаты в результате списания блокированных средств. При этом данные для формирования фискального чека можно передавать как в запросе на открытие Payment Page для выполнения блокировки средств, так и в запросе на выполнение списания заблокированных средств (с использованием интерфейса Gate). Если данные не переданы ни в одном из запросов, то операция создания чека отклоняется. В случае изменения суммы оплаты уточнённые данные для формирования фискального чека следует обязательно передать в запросе на выполнение списания заблокированных средств, чтобы операция создания чека не была отклонена.
  • При работе с сервисом необходимо обеспечить передачу необязательного параметра payment_address, содержащего сведения о реквизите «место расчётов». Значение параметра можно указать либо при подключении возможности работы с фискальными чеками в платёжной платформе, либо передавать в запросах.

Формат данных

Данные для формирования фискального чека передаются в объекте cash_voucher_data. Этот объект кодируется в строку с использованием алгоритма Base64 для URL. Затем кодированная строка передаётся в параметре cash_voucher_data в запросе на открытие Payment Page. Структура объекта приведена в модели CashVoucherData в спецификации API.

Прим.: Если длина запроса превышает 2000 символов — это может произойти, например, когда чек содержит более пяти позиций, — то для передачи данных рекомендуется использовать метод POST.

В объекте cash_voucher_data следующие параметры являются обязательными при работе с сервисами «АТОЛ Онлайн» и Orange Data:

  • email — адрес электронной почты пользователя;
  • inn — ИНН мерчанта;
  • taxation_system — применяемая система налогообложения.

Параметр group, в котором передаётся наименование группы торговых устройств, используемых для выдачи фискального чека, является обязательным при работе с сервисом «АТОЛ Онлайн» и необязательным при работе с сервисом Orange Data.

Также в объекте передаются два массива:

  • positions с перечислением товарных позиций чека. Параметры price для указания стоимости, position_description для описания товара или услуги и tax для определения ставки налога на добавленную стоимость являются обязательными. При работе с сервисом «АТОЛ Онлайн» параметр quantity для указания количества единиц товарной позиции является обязательным; при работе с сервисом Orange Data — необязательным.
  • payments с указанием типа и суммы оплаты (в параметрах payment_type и amount).

Далее представлен пример преобразования JSON-объекта для последующей его передачи в параметре cash_voucher_data запроса на открытие Payment Page.

Рис.: Исходный объект cash_voucher_data

 {
    "send_cash_voucher":true,
    "inn":"5050091719",
    "group":"main_1204",
    "taxation_system":0,
    "email":"cciolkowski@gmail.com",
    "positions":[
      {
        "quantity":1,
        "tax":1,
        "position_description":"Книга На Луне",
        "payment_method_type":4,
        "payment_subject_type":1,
        "price":25000
      },
      {
        "quantity":2,
        "tax":1,
        "position_description":"Модель аэростата",
        "payment_method_type":4,
        "payment_subject_type":1,
        "price":40000
      }
    ],
    "payments":[
      {
        "payment_type":2,
        "amount":105000
      }
    ]
 }

Рис.: Объект, закодированный с применением алгоритма Base64 для URL

ewogICAgInNlbmRfY2FzaF92b3VjaGVyIjp0cnVlLAogICAgImlubiI6IjUwNTAwOTE3MTkiLAogICAgImdyb3VwIjoibWFpbl8xMjA0IiwKICAgICJ0YXhhdGlvbl9zeXN0ZW0iOjAsCiAgICAiZW1haWwiOiJjY2lvbGtvd3NraUBnbWFpbC5jb20iLAogICAgInBvc2l0aW9ucyI6WwogICAgICB7CiAgICAgICAgInF1YW50aXR5IjoxLAogICAgICAgICJ0YXgiOjEsCiAgICAgICAgInBvc2l0aW9uX2Rlc2NyaXB0aW9uIjoi0JrQvdC40LPQsCDQndCwINCb0YPQvdC1IiwKICAgICAgICAicGF5bWVudF9tZXRob2RfdHlwZSI6NCwKICAgICAgICAicGF5bWVudF9zdWJqZWN0X3R5cGUiOjEsCiAgICAgICAgInByaWNlIjoyNTAwMAogICAgICB9LAogICAgICB7CiAgICAgICAgInF1YW50aXR5IjoyLAogICAgICAgICJ0YXgiOjEsCiAgICAgICAgInBvc2l0aW9uX2Rlc2NyaXB0aW9uIjoi0JzQvtC00LXQu9GMINCw0Y3RgNC-0YHRgtCw0YLQsCIsCiAgICAgICAgInBheW1lbnRfbWV0aG9kX3R5cGUiOjQsCiAgICAgICAgInBheW1lbnRfc3ViamVjdF90eXBlIjoxLAogICAgICAgICJwcmljZSI6NDAwMDAKICAgICAgfQogICAgXSwKICAgICJwYXltZW50cyI6WwogICAgICB7CiAgICAgICAgInBheW1lbnRfdHlwZSI6MiwKICAgICAgICAiYW1vdW50IjoxMDUwMDAKICAgICAgfQogICBdCn0

Рис.: URL для открытия Payment Page с переданным параметром cash_voucher_data

https://paymentpage.ecommpay.com/payment?payment_id=CSMSHP-7654321-778&payment_amount=105000&payment_currency=RUB&project_id=92724&payment_description=CSMSHP_7654321_778&region_code=ru&language_code=RU&force_payment_method=card&cash_voucher_data=ewogICAgInNlbmRfY2FzaF92b3VjaGVyIjp0cnVlLAogICAgImlubiI6IjUwNTAwOTE3MTkiLAogICAgImdyb3VwIjoibWFpbl8xMjA0IiwKICAgICJ0YXhhdGlvbl9zeXN0ZW0iOjAsCiAgICAiZW1haWwiOiJjY2lvbGtvd3NraUBnbWFpbC5jb20iLAogICAgInBvc2l0aW9ucyI6WwogICAgICB7CiAgICAgICAgInF1YW50aXR5IjoxLAogICAgICAgICJ0YXgiOjEsCiAgICAgICAgInBvc2l0aW9uX2Rlc2NyaXB0aW9uIjoi0JrQvdC40LPQsCDQndCwINCb0YPQvdC1IiwKICAgICAgICAicGF5bWVudF9tZXRob2RfdHlwZSI6NCwKICAgICAgICAicGF5bWVudF9zdWJqZWN0X3R5cGUiOjEsCiAgICAgICAgInByaWNlIjoyNTAwMAogICAgICB9LAogICAgICB7CiAgICAgICAgInF1YW50aXR5IjoyLAogICAgICAgICJ0YXgiOjEsCiAgICAgICAgInBvc2l0aW9uX2Rlc2NyaXB0aW9uIjoi0JzQvtC00LXQu9GMINCw0Y3RgNC-0YHRgtCw0YLQsCIsCiAgICAgICAgInBheW1lbnRfbWV0aG9kX3R5cGUiOjQsCiAgICAgICAgInBheW1lbnRfc3ViamVjdF90eXBlIjoxLAogICAgICAgICJwcmljZSI6NDAwMDAKICAgICAgfQogICAgXSwKICAgICJwYXltZW50cyI6WwogICAgICB7CiAgICAgICAgInBheW1lbnRfdHlwZSI6MiwKICAgICAgICAiYW1vdW50IjoxMDUwMDAKICAgICAgfQogICBdCn0

После успешного проведения оплаты информация о сформированном фискальном чеке передаётся мерчанту в отдельном оповещении. Также оповещение содержит ссылку на страницу платформы ОФД (оператора фискальных данных) со сформированным фискальным чеком. Далее представлен пример таких данных, переданных в оповещении.

Рис.: Пример данных о сформированном фискальном чеке

 "cash_voucher_info": {
    "type": "cash_voucher_info",
    "device_rn": "00000000017190509",
    "fp": 164316,
    "document_number": 643,
    "document_index": 124,
    "fs_number": "9468906279",
    "fns_website": "www.nalog.ru",
    "processed_at": "2020-09-17T12:04:00+00:00",
    "shift_number": 138,
    "ofd_inn": "5551260691",
    "ofd_website": "https://lk.platformaofd.ru/web/noauth/cheque?fn=9468906279&fp=164316&i=643"
 }

Допустимые значения отдельных параметров

Для ряда параметров, передаваемых в объекте cash_voucher_data, необходимо знать расшифровку их численных значений. Это параметры, в которых содержится информация о реквизитах фискальных документов согласно требованиям ФНС.

Табл. 1. Система налогообложения (параметр taxation_system)
Значение Расшифровка
0 Общая, ОСН
1 Упрощённая доход, УСН доход
2 Упрощённая доход минус расход, УСН доход - расход
3 Единый налог на вменённый доход, ЕНВД
4 Единый сельскохозяйственный налог, ЕСН
5 Патентная система налогообложения, Патент
Табл. 2. Ставка НДС (параметр tax)
Значение Расшифровка
1 Ставка НДС 20 %
2 Ставка НДС 10 %
3 Ставка НДС расч. 20/120
4 Ставка НДС расч. 10/110
5 Ставка НДС 0 %
6 НДС не облагается
Табл. 3. Признак способа расчёта (параметр payment_method_type)
Значение Расшифровка
1 Предоплата 100 %
2 Частичная предоплата
3 Аванс
4 Полный расчёт
5 Частичный расчёт и кредит
6 Передача в кредит
7 Оплата кредита
Табл. 4. Признак предмета расчёта (параметр payment_subject_type)
Значение Расшифровка
1 Товар
2 Подакцизный товар
3 Работа
4 Услуга
5 Ставка азартной игры
6 Выигрыш азартной игры
7 Лотерейный билет
8 Выигрыш лотереи
9 Предоставление РИД
10 Платеж
11 Агентское вознаграждение
12 Составной предмет расчета
13 Иной предмет расчета
14 Имущественное право
15 Внереализационный доход
16 Страховые взносы
17 Торговый сбор
18 Курортный сбор
Прим.: При передаче значений 15 или 16 в параметре payment_subject_type мерчанту необходимо передать численное значение в параметре position_description. Если передаётся значение 15 (внереализационный доход), то параметр position_description должен принимать численное значение от 1 до 25. Если передаётся значение 16 (страховые взносы), то параметр position_description должен принимать численное значение от 26 до 31. Подробная информация о расшифровке этих значений представлена в таблице «Наименование предмета расчёта».

Рис.: Наименование предмета расчёта (параметр position_description)

Табл. 5.
Значение Расшифровка
1 доход от долевого участия в других организациях
2 доход в виде курсовой разницы, образующейся вследствие отклонения курса продажи (покупки) иностранной валюты от официального курса
3 доход в виде подлежащих уплате должником штрафов, пеней и (или) иных санкций за нарушение договорных обязательств
4 доход от сдачи имущества (включая земельные участки) в аренду (субаренду)
5 доход от предоставления в пользование прав на результаты интеллектуальной деятельности
6 доход в виде процентов, полученных по договорам займа и другим долговым обязательствам
7 доход в виде сумм восстановленных резервов
8 доход в виде безвозмездно полученного имущества (работ, услуг) или имущественных прав
9 доход в виде дохода, распределяемого в пользу налогоплательщика при его участии в простом товариществе
10 доход в виде дохода прошлых лет, выявленного в отчётном (налоговом) периоде
11 доход в виде положительной курсовой разницы
12 доход в виде основных средств и нематериальных активов, безвозмездно полученных атомными станциями
13 доход в виде стоимости полученных материалов при ликвидации выводимых из эксплуатации основных средств
14 доход в виде использованных не по целевому назначению работ, услуг, имущества
15 доход в виде использованных не по целевому назначению средств, предназначенных для формирования резервов по обеспечению безопасности производств
16 доход в виде сумм, на которые уменьшен уставной (складочный) капитал (фонд) организации
17 доход в виде сумм возврата от некоммерческой организации ранее уплаченных взносов (вкладов)
18 доход в виде сумм кредиторской задолженности, списанной в связи с истечением срока исковой давности или по другим основаниям
19 доход в виде доходов, полученных от операций с производными финансовыми инструментами
20 доход в виде стоимости излишков материально-производственных запасов и прочего имущества, которые выявлены в результате инвентаризации
21 доход в виде стоимости продукции СМИ и книжной продукции, подлежащей замене при возврате либо при списании
22 доход в виде сумм корректировки прибыли налогоплательщика
23 доход в виде возвращённого денежного эквивалента недвижимого имущества и (или) ценных бумаг, переданных на пополнение целевого капитала некоммерческой организации
24 доход в виде разницы между суммой налоговых вычетов из сумм акциза и указанных сумм акциза
25 доход в виде прибыли контролируемой иностранной компании
26 взносы на ОПС
27 взносы на ОСС в связи с нетрудоспособностью
28 взносы на ОМС
29 взносы на ОСС от несчастных случаев
30 пособие по временной нетрудоспособности
31 платежи по добровольному личному страхованию
Табл. 6. Тип оплаты (параметр payment_type)
Значение Расшифровка
1 Сумма по чеку наличными
2 Сумма по чеку безналичными
14 Сумма по чеку предоплатой (зачётом аванса и (или) предыдущих платежей)
15 Сумма по чеку постоплатой (в кредит)
16 Сумма по чеку встречным предоставлением