Фискализация на онлайн-кассах Ferma: форматы запросов

Один из наших партнеров, строительная компания, фискализирует чеки с помощью облачной кассы Ferma®. В этой статье расскажем, как работает обмен данными с сервисом, и покажем форматы запросов.


Содержание


Чеки фискализируют на арендованных у Ferma кассах (ККТ) посредством клиентского API. Кассы в сервисе Ferma® работают с версиями ФФД 1.1 и 1.2. в соответствии с приказом ФНС России от 14.09.2020 № ЕД-7-20/662@. Вся информация по фискализации чеков есть в документации на API.

Полезные ссылки:


Схема взаимодействия с сервисом

Data exchange with Ferma


POST-запрос на регистрацию чека

Пример запроса:

    
        { 
            "Request": { 
                "Inn": "7800000000", 
                "Type": "Income", 
                "InvoiceId": "8f537134-7d94-11f0-80d4", 
                "LocalDate": "2025-08-20T10:09:07", 
                "CustomerReceipt": { 
                    "TaxationSystem": "0", 
                    "Email": "buyer@mail.ru", 
                    "Phone": "79999999999999", 
                    "PaymentType": 10, 
                    "ClientInfo": { 
                        "Name": "Фамилия Имя Отчество", 
                        "Inn": "760999999999" 
                    }, 
                    "Items": [ 
                        { 
                            "Label": "Услуга по бронированию", 
                            "Price": 20000, 
                            "Quantity": 1, 
                            "Amount": 20000, 
                            "Vat": "CalculatedVat20120", 
                            "MarkingCode": "", 
                            "PaymentMethod": 1, 
                            "PaymentType": 10 
                        } 
                    ], 
                    "PaymentItems": [ 
                        { 
                            "PaymentType": 1, 
                            "Sum": 20000 
                        } 
                    ] 
                } 
            } 
        }
    


Пример ответа:

    
        {"Status":"Success","Data":{"ReceiptId":"2b6a4574-0bdc-4da8-8154-f00000000000"}} 
    


Таблица 1: поля запроса на регистрацию чека.

Примечание: в первой колонке точки перед полями обозначают уровень вложенности в списке.

НАЗВАНИЕ ПОЛЯ ТЕГ ФНС ОПИСАНИЕ РЕКВИЗИТА ПРИМЕР
● Inn 1018 ИНН нашей компании. 7800000000
● Type 1054 Тип формируемого фискального документа (чек). Тип может принимать следующие значения:
  • «Income» — получение денежных средств от покупателя;
  • «IncomeReturn» — возврат денежных средств, полученных от покупателя;
  • «IncomePrepayment» — авансовый платеж от покупателя;
  • «IncomeReturnPrepayment» — возврат аванса;
  • «IncomeCorrection» — чек коррекции/приход;
  • «BuyCorrection» — чек коррекции/расход;
  • «IncomeReturnCorrection» - чек коррекции/Возврат прихода;
  • «ExpenseReturnCorrection» - чек коррекции/возврат расхода;
  • «Expense» — выдача денежных средств покупателю;
  • «ExpenseReturn» — возврат денежных средств, выданных покупателю.
Income
● InvoiceId - Идентификатор, присвоенный нашей информационной системой в запросе на формирование кассового чека. Использование идентификатора предотвращает формирование дублей чеков. 8f537134-7d94-11f0-80d4-000000000000
● LocalDate - 2025-08-20T10:09:07
● CustomerReceipt - Вложенный словарь с данными чека.
●● TaxationSystem 1055 Система налогообложения.
Внимание! Список применения значений систем налогообложения формируется на этапе регистрации кассы. Чтобы изменить список допустимых значений, необходимо выполнить перерегистрацию кассы.
Параметр определения системы налогообложения может принимать следующие значения:
  • «Common» или «0» — общая система налогообложения;
  • «SimpleIn» или «1» — упрощенная система налогообложения (доход);
  • «SimpleInOut» или «2» — упрощенная система налогообложения (доход минус расход);
  • «Unified» или «3» — единый налог на вмененный доход;
  • «UnifiedAgricultural» или «4» — единый сельскохозяйственный налог;
  • «Patent» или «5» — патентная система налогообложения.
0
●● Email 1008 Адрес электронной почты клиента. buyer@mail.ru
●● Phone 1008 Контактный телефон клиента. 79999999999999
●● PaymentType 1212 Признак предмета расчета. Принимает значение от 1 до 33.
  • 1 — о реализуемом товаре, за исключением подакцизного товара (наименование и иные сведения, описывающие товар) – «ТОВАР» или «Т»;
  • 10 — об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета – «ПЛАТЕЖ» или «П», «ВЫПЛАТА» или «В».
Остальные значения в таблице 3.1.4 API Ferma.
●● ClientInfo 1256 Вложенный словарь с данными о покупателе.
●●● Name 1227 ФИО или наименование организации, если клиент юр. лицо. Не более 256 символов в поле. Фамилия Имя Отчество
●●● Inn 1228 ИНН покупателя. Длина 10-12 цифр. 760999999999
●● Items 1059 Данные о покупке.
●●●● Label 1030 Передаются значения в текстовом виде. Здесь могут присутствовать описание товара или описание услуги. Параметр всегда требуется в запросе на формирование фискального документа. Услуга по бронированию
●●●● Price 1079 Цена товарной позиции в рублях. 20000
●●●● Quantity 1023 Количество товара в товарной позиции. 1
●●●● Amount 1043 Общая стоимость товара в товарной позиции в рублях. Правила округления для стоимости товара зависят от типа кассы. В кассах типа Эфир Pro ФС и Эфир Pro ФА стоимость округляется по математическим правилам округления. Результат умножения значений параметров «Price» и «Quantity» должно быть равно значению параметра «Amount». 20000
●●●● Vat 1199 Вид вычисляемого НДС. Обязательное поле для чеков коррекции, если Items не равен NULL. Параметр может принимать следующие значения:
  • «VatNo» — налог на добавленную стоимость без НДС;
  • «Vat5» — налог на добавленную стоимость (НДС) 5%25);
  • «Vat7» — налог на добавленную стоимость (НДС) 7%26);
  • «Vat10» — налог на добавленную стоимость (НДС) 10%;
  • «Vat20» — НДС 20%;
  • «Vat0» — НДС 0%;
  • «CalculatedVat5105» — вычисленный НДС 5% от 105% суммы27);
  • «CalculatedVat7107» — вычисленный НДС 7% от 107% суммы28);
  • «CalculatedVat10110» — вычисленный НДС 10% от 110% суммы;
  • «CalculatedVat20120» — вычисленный НДС 20% от 120% суммы.
CalculatedVat20120
●●●● MarkingCode 1163 Код маркировки товарной позиции. Передается структура. Структура содержит информацию о маркировке товарных позиций.
●●●● PaymentMethod 1214 Признак способа расчета:
  • 1 — предоплата 100%;
  • 2 — предоплата;
  • 3 — аванс;
  • 4 — полный расчет;
  • 5 — частичный расчет;
  • 6 — передача в кредит;
  • 7 — оплата в кредит.
1
●●●● PaymentType 1212 Признак предмета расчета для конкретной позиции в чеке. Если значение отсутствует, берется значение для всего чека. Возможные значения в таблице 3.1.4 API Ferma. 10
●● PaymentItems - Суммы по типам оплат. Вложенный список словарей.
●●●● PaymentType 1031: наличными;
1081: безналичными;
1215: предварительная оплата (аванс);
1216: предварительная оплата (кредит);
1217: встречным предоставлением.
Тип оплаты:
  • 0 – наличными;
  • 1 – безналичными;
  • 2 – предварительная оплата (аванс);
  • 3 – предварительная оплата (кредит);
  • 4 – встречным предоставлением.
1
●●●● Sum 1020 Сумма по типу, в рублях. 20000



POST-запрос о проверке статуса

Пример запроса:

    
        {"Request":{"ReceiptId":"2b6a4574-0bdc-4da8-8154-000000000000"}}
    


Пример ответа, если статус New:

    
        {
            "Status": "Success",
            "Data": {
                "StatusCode": 0,
                "StatusName": "NEW",
                "StatusMessage": "Запрос на чек получен в Ferma",
                "ModifiedDateUtc": "2025-08-20T10:09:06",
                "ReceiptDateUtc": null,
                "ModifiedDateTimeIso": "2025-08-20T10:09:06.378+03:00[Europe/Moscow]",
                "ReceiptDateTimeIso": null,
                "ReceiptId": "2b6a4574-0bdc-4da8-8154-f00000000000",
                "Device": null
            }
        }
    


Пример ответа, если статус Confirmed:

    
        {
            "Status": "Success",
            "Data": {
                "StatusCode": 2,
                "StatusName": "CONFIRMED",
                "StatusMessage": "Чек передан в ОФД",
                "ModifiedDateUtc": "2025-08-20T10:09:06",
                "ReceiptDateUtc": "2025-08-20T10:09:06",
                "ModifiedDateTimeIso": "2025-08-20T10:09:06+03:00[Europe/Moscow]",
                "ReceiptDateTimeIso": "2025-08-20T10:09:06+03:00[Europe/Moscow]",
                "ReceiptId": "2b6a4574-0bdc-4da8-8154-f00000000000",
                "Device": {
                    "DeviceId": 52972,
                    "RNM": "0008300461059738",
                    "ZN": "9954684823",
                    "FN": "7380440800991918",
                    "FDN": "3144",
                    "FPD": "3849908495",
                    "ShiftNumber": 259,
                    "ReceiptNumInShift": 9,
                    "DeviceType": "Эфир Pro ФС",
                    "OfdReceiptUrl": "https://check.ofd.ru/rec/further-path"
                }
            }
        }
    


Таблица 2: поля ответа на запрос о статусе чека.

Примечание: в первой колонке точки перед полями обозначают уровень вложенности в списке.

НАЗВАНИЕ ПОЛЯ ОПИСАНИЕ РЕКВИЗИТА ПРИМЕР
● Status Состояние обработки запроса. Success
● Data Словарь с данными чека.
●● StatusCode Возможные значения:
  • Запрос на чек принят ИС Ferma®:
    • «StatusCode»: 0
    • «StatusName»: «NEW»;
    • «StatusMessage»: «Запрос на чек принят Фермой».
  • Чек сформирован на кассе:
    • «StatusCode»: 1;
    • «StatusName»: «PROCESSED»;
    • «StatusMessage»: «Чек сформирован на кассе».
  • Чек передан в ОФД:
    • «StatusCode»: 2;
    • «StatusName»: «CONFIRMED»;
    • «StatusMessage»: «чек передан в ОФД».
  • Чек не передан в ОФД, нужно отправить повторно:
    • «StatusCode»: 3;
    • «StatusName»: «KKT_ERROR».
2
●● StatusName CONFIRMED
●● StatusMessage Чек передан в ОФД
●● ModifiedDateUtc Дата и время последнего обновления информации о чеке по московскому времени. 2025-08-20T10:09:06
●● ReceiptDateUtc Дата и время, указанные в чеке по московскому времени. 2025-08-20T10:09:06
●● ModifiedDateTimeIso Дата и время последнего обновления информации о чеке по московскому времени. 2025-08-20T10:09:06+03:00[Europe/Moscow]
●● ReceiptDateTimeIso Дата и время, указанные в чеке по московскому времени. 2025-08-20T10:09:06+03:00[Europe/Moscow]
●● ReceiptId Идентификатор чека, присвоенный сервисом Ferma®. 2b6a4574-0bdc-4da8-8154-f00000000000
●● Device Словарь с данными об устройстве, на котором был сгенерирован чек.
●●● DeviceId Сервисный идентификатор устройства, на котором был сгенерирован чек. 52972
●●● RNM Регистрационный номер кассы. 0008300461059738
●●● ZN Заводской номер кассы. 9954684823
●●● FN Номер фискального накопителя, установленного в кассу. 7380440800991918
●●● FDN Номер фискального документа. 3144
●●● FPD Фискальный признак документа. 3849908495
●●● ShiftNumber Номер смены. 259
●●● ReceiptNumInShift Номер чека в смене. 9
●●● DeviceType Модель кассы, на которой пробит чек. Эфир Pro ФС
●●● OfdReceiptUrl Ссылка на чек. https://check.ofd.ru/rec/further-path"