Документ описывает сценарий использования программного интерфейса приложений (API) сервиса Orange Data для взаимодействия с интернет-кассой Ferma®.
Кодировка, используемая в запросах и ответах, в CP866. Запросы выполняются методом POST, параметры запроса располагаются в структуре данных формата JSON, передаваемой в блоке данных запроса. Ответы выдаются сервером в формате JSON. Код ответа по протоколу HTTP зависит от выполняемого метода и результата обработки запроса — подробные значения кодов приведены в описании соответствующих методов (разделы 2.1—2.3).
Пример запроса с подписью:
POST https://ferma-o.ofd.ru/api/v2/documents/
{
"id": "2_loc_z5bYWHvD",
"inn": 1234567890,
"group": "Main",
"key": 1234567890,
"content": {
"type": 1,
"positions": [
{
"quantity": 2.0,
"price": 10.0,
"tax": 1,
"text": "\u0421\u0430\u043c\u043e\u0432\u044b\u0432\u043e\u0437 ru",
"paymentMethodType": 4,
"paymentSubjectType": 1
},
{
"quantity": 1.0,
"price": 0.0,
"tax": 1,
"text": "\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430",
"paymentMethodType": 4,
"paymentSubjectType": 4
}
],
"checkClose": {
"payments": [
{
"type": 2,
"amount": 20.0
}
],
"taxationSystem": 0
},
"customerContact": "user@domain.com"
}
}
Подробно параметры можно посмотреть в таблице Таблица 1.
Вид запроса:
POST https://ferma-o.ofd.ru/api/v2/documents/
Тело запроса представляет собой структуру JSON, содержащую необходимые параметры и имеющую следующий обобщенный вид:
{
"id": "12345678990",
"inn": "123456789012",
"group": "Main",
"content": {
"type": 1,
"positions": [
{
"quantity": 1.000,
"price": 123.45,
"tax": 6,
"text": "Булка",
"paymentMethodType": 4,
"paymentSubjectType": 1
},
{
"quantity": 2.000,
"price": 4.45,
"tax": 4,
"text": "Спички",
"paymentMethodType": 3,
"paymentSubjectType": 13
}
],
"checkClose": {
"payments": [
{
"type": 1,
"amount": 123.45
},
{
"type": 2,
"amount": 8.90000
}
],
"taxationSystem": 1
},
"customerContact": "foo@example.com"
}
}
Таблица 1. Параметры элементов структуры «Тело запроса»
| Параметр | Вложенный параметр | Вложенный параметр | Вложенный параметр | Формат значения | Описание | Признак обязательности в запросе |
|---|---|---|---|---|---|---|
| Id | Строка | Идентификатор документа | да | |||
| Inn | Строка | ИНН организации, для которой пробивается чек | да | |||
| group | Строка | Группа устройств, с помощью которых будет пробит чек | нет | |||
| callbackUrl | Строка | URL для отправки результатов обработки чека POST запросом | нет | |||
| content | Структура | Содержимое документа | да | |||
| type | Число | Признак расчета, 1054: 1 - Приход; 2 - Возврат прихода; 3 - Расход; 4 - Возврат расхода. | да | |||
| useTax20 | Булево | Флаг, определяющий необходимость формирования чека со ставками НДС 20% и 20/120 после перехода на ставки 22% и 22/122 с 01.01.2026. Актуально, например, для возвратов чеков, пробитых до 01.01.2026, и в некоторых других случаях. | нет | |||
| positions | Массив | Список товарных позиций чека. Важно! Если чек пробился и был ответ 201, то перепробивать чек нужно с другим Id. Если при пробитии чека статус ответа не 201, то он пробивается с тем же invoiceId | да | |||
| quantity | Число | Количество предмета расчета, 1023 | да | |||
| price | Число | Цена за единицу предмета расчета с учетом скидок и наценок, 1079 | да | |||
| tax | Число | Ставка НДС, 1199: 1 – ставка НДС 20% (с 01.01.2026 — 22%) 2 – ставка НДС 10% 3 – ставка НДС расчетная 20/120 (с 01.01.2026 — 22/122) 4 – ставка НДС расчетная 10/110 5 – ставка НДС 0% 6 – НДС не облагается 7 – ставка НДС 5% 8 – ставка НДС 7% 9 – ставка НДС расчетная 5/105 10 – ставка НДС расчетная 7/107 Важно! С 01.01.2026 коды 1 и 3 по умолчанию соответствуют ставкам 22% и 22/122. Чтобы сформировать чек по ставке 20% или 20/120 (например, для возврата чека, пробитого до 01.01.2026), передайте параметр useTax20 со значением true. | да | |||
| taxSum | Число | Сумма НДС за предмет расчета, 1200. Параметр актуален для ставок НДС 1-4, 7-10. Для ставок 5 и 6 данный тег в предмете расчета не передается, переданное значение игнорируется. Если передать значение 0, то тег не будет записан. | нет | |||
| text | Строка | Наименование предмета расчета, 1030. Строка до 128 символов. | да | |||
| paymentMethodType | Число | Признак способа расчета, 1214: 1 – Предоплата 100%; 2 – Частичная предоплата; 3 – Аванс; 4 – Полный расчет; 5 – Частичный расчет и кредит; 6 – Передача в кредит; 7 – оплата кредита. | нет | |||
| paymentSubjectType | Число | Признак предмета расчета, 1212: 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 – Платеж казино | да | |||
| checkClose | Структура | Параметры закрытия чека | да | |||
| payments | Структура | |||||
| type | Число | Тип оплаты: 1 – сумма по чеку наличными, 1031; 2 – сумма по чеку безналичными, 1081; 14 – сумма по чеку предоплатой (зачетом аванса и (или) предыдущих платежей), 1215; 15 – сумма по чеку постоплатой (в кредит), 1216; 16 – сумма по чеку (БСО) встречным предоставлением, 1217. | да | |||
| amount | Число | Параметры закрытия чека | да | |||
| taxationSystem | Число | Система налогообложения, 1055: 0 – Общая, ОСН, доход; 1 – Упрощенная доход, УСН; 2 – Упрощенная доход минус расход, УСН доход - расход; 3 – Единый налог на вмененный доход, ЕНВД; 4 – Единый сельскохозяйственный налог, ЕСН; 5 – Патентная система налогообложения, Патент; | да | |||
| customerContact | Строка | Телефон или электронный адрес покупателя, 1008 | да |
Пример запроса с данными агента, дополнительным реквизитом пользователя, данными поставщика, номером автомата, адресом расчета и местом расчета:
{
"id": "12345678990",
"inn": "123456789012",
"group": "Main",
"key": "1234567",
"content": {
"type": 1,
"positions": [
{
"quantity": 1.000,
"price": 123.45,
"tax": 6,
"text": "Булка",
"paymentMethodType": 4,
"paymentSubjectType": 1,
"nomenclatureCode": "igQVAAADMTIzNDU2Nzg5MDEyMwAAAAAAAQ==",
"agentType": 127,
"agentInfo": {
"paymentTransferOperatorPhoneNumbers": [ "+79200000001", "+74997870001" ],
"paymentAgentOperation": "Какая-то операция 1",
"paymentAgentPhoneNumbers": [ "+79200000003" ],
"paymentOperatorPhoneNumbers": [ "+79200000002", "+74997870002" ],
"paymentOperatorName": "ООО \"Атлант\"",
"paymentOperatorAddress": "Воронеж, ул. Недогонная, д. 84",
"paymentOperatorINN": "7727257386"
},
"unitOfMeasurement": "Кг",
"additionalAttribute": "Доп. атрибут и все тут",
"manufacturerCountryCode": "643",
"customsDeclarationNumber": "АД 11/77 от 01.08.2018",
"excise": 23.45
},
{
"quantity": 2.000,
"price": 4.45,
"tax": 4,
"text": "Спички",
"paymentMethodType": 3,
"paymentSubjectType": 13,
"supplierINN": "9715225506",
"supplierInfo": {
"phoneNumbers": [ "+79266660011", "+79266660022" ],
"name": "ПАО \"Адамас\""
}
}
],
"checkClose": {
"payments": [
{
"type": 1,
"amount": 123.45
},
{
"type": 2,
"amount": 8.90000
}
],
"taxationSystem": 1
},
"customerContact": "foo@example.com",
"agentType": 127,
"paymentTransferOperatorPhoneNumbers": [ "+79260000001", "+74957870001" ],
"paymentAgentOperation": "Какая-то операция",
"paymentAgentPhoneNumbers": [ "+79260000003" ],
"paymentOperatorPhoneNumbers": [ "+79260000002", "+74957870002" ],
"paymentOperatorName": "ООО \"Росинка\"",
"paymentOperatorAddress": "Москва, Мастеркова 4",
"paymentOperatorINN": "9715225506",
"supplierPhoneNumbers": [ "+74957870004" ],
"additionalUserAttribute": {
"name": "Любимая цитата",
"value": "В здоровом теле здоровый дух, этот лозунг еще не потух!"
},
"automatNumber": "123456789",
"settlementAddress": "г.Москва, Красная площадь, д.1",
"settlementPlace": "Палата №6",
"additionalAttribute": "Доп атрибут чека",
"customer": "Кузнецов Иван Петрович",
"customerINN": "789456123488"
}
}
Пример ответа с ошибкой:
{
"errors": [
"Не указан идентификатор документа 'Id'",
"Не указан ИНН организации 'INN'",
"Отсутствует содержимое документа 'Content'"
]
}
В ответ API может возвращать следующие http статус-коды:
Запрос:
GET https://ferma-o.ofd.ru/api/v2/documents/{inn}/status/{document_id}
{inn} – ИНН организации, для которой пробивается чек; {document_id} –идентификатор документа, который был указан при его создании
В ответ API может возвращать следующие статус-коды:
Пример ответа:
{
"id": "12345678990",
"deviceSN": "0000000000001358",
"deviceRN": "0000000400054952",
"fsNumber": "9999078900001341",
"ofdName": "ООО \"Ярус\"(\"ОФД-Я\")",
"ofdWebsite": "www.ofd-ya.ru",
"ofdinn": "7728699517",
"fnsWebsite": "www.nalog.ru",
"companyINN": "123456789012",
"companyName": "ЗАО ТОРГОВЫЙ ОБЪЕКТ №1",
"documentNumber": 117,
"shiftNumber": 20,
"documentIndex": 5,
"processedAt": "2017-02-14T14:16:00",
"content": {
"type": 1,
"positions": [
{
"quantity": 1.000,
"price": 123.45,
"tax": 6,
"text": "Булка",
"paymentMethodType": 4,
"paymentSubjectType": 1
},
{
"quantity": 2.000,
"price": 4.45,
"tax": 4,
"text": "Спички",
"paymentMethodType": 3,
"paymentSubjectType": 13
}
],
"checkClose": {
"payments": [
{
"type": 1,
"amount": 123.45
},
{
"type": 2,
"amount": 8.90000
}
],
"taxationSystem": 1
},
"customerContact": "+79123456789"
},
"change": 974.01,
"fp": "2364009522
Таблица 2. «Параметры состояния чека»
| Параметр | Формат значения | Строка от 1 до 64 символов |
|---|---|---|
| id | Заводской номер устройства, пробившего чек | Строка до 20 символов |
| deviceSN | Регистрационный номер устройства, пробившего чек | Строка до 20 символов |
| deviceRN | Регистрационный номер устройства, пробившего чек | Строка до 20 символов |
| fsNumber | Номер фискального накопителя | Строка 16 символов |
| ofdName | Наименование ОФД | Строка до 256 символов |
| odfWebsite | Web-сайт ОФД | Строка до 58 символов |
| odfINN | ИНН ОФД | Строка 12 символов |
| fnsWebsite | Web-сайт ФНС | Строка до 256 символов |
| companyINN | ИНН пользователя | Строка 12 символов |
| companyName | Наименование пользователя | Строка до 256 символов |
| documentNumber | Номер ФД | Число |
| shiftNumber | Номер смены | Число |
| documentIndex | Номер чека за смену | Число |
| processedAt | Время регистрации фискального документа в ФН | Время в виде строки в формате ISO8601 |
| content | Содержимое документа | Структура |
| change | Сдача | Десятичное число с точностью до 2 символов после точки |
| fp | Фискальный признак | Строка 10 символов |
| callbackUrl | URL для отправки результатов обработки чека POST запросом | Строка от 1 до 1024 символов или null |
Важно! В каждом предмете расчета структуры content.positions ответа дополнительно присутствует поле taxRate — фактическая ставка НДС, с которой был пробит предмет расчета.
Запрос на формирование чека коррекции выполняется самостоятельно или по предписанию из ФНС. Чек коррекции формируется запросом методом POST с передачей параметров в JSON-структуре.
Запрос на формирование чека коррекции имеет следующий вид:
POST https://ferma-o.ofd.ru/api/v1/corrections
В таблице 3 приведено описание параметров запроса для формирования чека коррекции.
Таблица 3. Описание параметров запроса для формирования чека коррекции
| Параметр | Вложенный параметр | Формат значения | Описание | Признак обязательности |
|---|---|---|---|---|
| Id | Строка | Идентификатор документа | да | |
| Inn | Строка | ИНН организации, для которой пробивается чек | да | |
| key | Строка | Название ключа | да | |
| callbackUrl | Строка | URL-адрес для отправки результатов обработки чека. Результат обработки выполняется методом POST | нет | |
| content | Структура | Содержимое документа | да | |
| correctionType | Строка | Тип коррекции. Тип коррекции может принимать значения: - SELF — коррекция производится самостоятельно; - INSTRUCTION — коррекция производится по предписанию | да | |
| useTax20 | Булево | Флаг, определяющий необходимость формирования чека коррекции со ставками НДС 20% и 20/120 после перехода на ставки 22% и 22/122 с 01.01.2026. Актуально, например, для возвратов чеков, пробитых до 01.01.2026, и в некоторых других случаях. | нет | |
| type | Число | Признак расчета может принимать следующие значения: 1 - Приход; 3 - Расход. | да | |
| causeDocumentDate | Строка | Дата документа основания для коррекции. Значение даты передается в формате «ДД.ММ.ГГ», где ДД — день, ММ — месяц, ГГ — год. | да | |
| causeDocumentNumber | Строка | Номер предписания налогового органа | да | |
| totalSum | Строка | Общая сумма чека | да | |
| cashSum | Строка | Сумма платежа наличными расчетом | да | |
| eCashSum | Строка | Сумма платежа безналичными расчетом | да | |
| prepaymentSum | Строка | Сумма платежа расчета по предоплате | да | |
| postpaymentSum | Строка | Сумма платежа расчета по постоплате | да | |
| otherPaymentTypeSum | Строка | Сумма другого типа платежа | да | |
| tax1Sum | Число | Сумма удерживаемого налога на добавленную стоимость (НДС) по ставке 20 % (с 01.01.2026 — 22%) | ||
| tax2Sum | Число | Сумма удерживаемого налога на добавленную стоимость (НДС) по ставке 10 % | ||
| tax3Sum | Число | Сумма по операциям, облагаемая НДС по ставке 0% | ||
| tax4Sum | Число | Сумма по операциям, не облагаемая НДС | ||
| tax5Sum | Число | Сумма удерживаемого налога на добавленную стоимость (НДС) по ставке в 20/120 (с 01.01.2026 — 22/122) | ||
| tax6Sum | Число | Сумма удерживаемого налога на добавленную стоимость (НДС) по ставке 10/110 | ||
| tax7Sum | Число | Сумма НДС чека по ставке 5% | ||
| tax8Sum | Число | Сумма НДС чека по ставке 7% | ||
| tax9Sum | Число | Сумма НДС чека по расч. ставке 5/105 | ||
| tax10Sum | Число | Сумма НДС чека по расч. ставке 7/107 | ||
| taxationSystem | Число | Система налогообложения принимает следующие значения: 0 – Общая, ОСН, доход; 1 – Упрощенная доход, УСН; 2 – Упрощенная доход минус расход, УСН доход - расход; 3 – Единый налог на вмененный доход, ЕНВД; 4 – Единый сельскохозяйственный налог, ЕСН; 5 – Патентная система налогообложения, Патент; | да | |
| automatNumber | Строка | Номер автоматического устройства | ||
| settlementAddress | Строка | Полный адрес места расчёта | ||
| settlementPlace | Строка | Место расчёта | ||
Пример запроса на формирование чека коррекции имеет вид:
POST https://ferma-o.ofd.ru/api/v1/corrections
Content-Type: application/json
{
"id": "9c4c3f8a-a166-4ccf-8a20-6325efe41955",
"inn": "7724465109",
"group": "409",
"content": {
"correctionType": 1,
"type": 1,
"causeDocumentDate": "2017-08-10T00:00:00",
"causeDocumentNumber": "ФЗ-54",
"totalSum": 17.25,
"cashSum": 1.23,
"eCashSum": 2.34,
"prepaymentSum": 5.67,
"postpaymentSum": 4.56,
"otherPaymentTypeSum": 3.45,
"tax1Sum": 1.34,
"taxationSystem": 1,
"settlementAddress": "г.Москва, Красная площадь, д.1",
"settlementPlace": "Палата №6"
}
}
В ответ на запрос возможны следующие ответы:
Проверка статуса чека коррекции выполняется запросом описанным в разделе "2.2 Состояние чека".
Раздел описывает способ тестирования программного интерфейса приложений (API) сервиса «Orange Data» для информационной системы Ferma® с пробитием чеков и возможностью их просмотра. Для тестирования используется демонстрационный личный кабинет клиента (ЛКК), а также кассовый аппарат с установленным тестовым фискальным накопителем (ФН МГМ), который подключен к тестовой информационной системе Ferma®.
Для того чтобы пробить чеки на тестовой кассе Ferma®, которая находится в демо ЛКК, используйте данные:
Чтобы войти в демо личный кабинет клиента для дальнейшего просмотра чеков, нужно выполнить следующие действия:

После того, как вошли в демо ЛКК, для просмотра пробитых чеков на кассе, нужно:

.
Для того, чтобы пробить чеки на кассе Ferma® в продовом режиме, воспользуйтесь следующей инструкцией:
Авторизация осуществляется по сертификату.
Для получения продового сертификата сделайте следующие действия:


Версия 1.0
Выпущена 10 марта 2021 г.
Первая регистрируемая версия документа.
Версия 1.2
Выпущена 15 марта 2021 г.
Версия 1.3
Выпущена 16 марта 2021 г.
Версия 1.4
Выпущена 11 октября 2021 г.
Версия 1.5
Выпущена 11 октября 2021 г.
Версия 1.6
Выпущена 24 апреля 2024 г.
Версия 1.7
Выпущена 14 июня 2024 г.
Версия 1.8
Выпущена 30 апреля 2025 г.
Версия 1.9
Выпущена 24 августа 2026 г.
Версия 1.10
Выпущена 7 сентября 2026 г.