В документе приводятся технические сведения о программном интерфейсе приложений (API), предоставляющем возможность сторонним (клиентским) веб-приложениям выполнять регистрацию контрольно-кассовой техники (KKT) с помощью асинхронных HTTP-запросов к ИС «OFD.RU».
Обмен данными происходит по протоколу HTTP с использованием зашифрованного канала (HTTPS). Данные запросов и ответов передаются в виде структуры JSON. Вне зависимости от наличия ошибок в данных, обязательным условием успешного выполнения запроса является ответ с кодом 200 согласно протоколу HTTP.
Для получения токена авторизации, который будет использоваться для выполнения запросов, пользователю необходимо обратиться в раздел «Настройки» в Личном кабинете партнера.
Далее пользователь переходит на вкладку «API для партнеров» и попадает в блок генерации ключей доступа к использованию API 2.0.
Сгенерированный ключ появляется на вкладке «API для партнеров» в блоке «Ваши ключи доступа».
Созданный ключ доступа будет иметь указания данных о датах создания и последней активности, статусе ключа и типе доступа, которое будет использоваться в запросах API 2.0.
Используемое обозначение параметра ключа доступа в запросах — AuthToken={Code}
Метод используется партнерами для автоматизации оплаты касс клиентов кодами активации (далее КА) на услуги ОФД. Метод имеет следующий вид:
POST https://ofd.ru/api/integration/partner/v2/kkt/pay??AuthToken={Code}
Чтобы применить КА, необходимо передавать в метод обязательные параметры, со значениями данных своих клиентов в API-запрос.
После прохождении проверок выполняются следующие действия:
Параметры запроса располагаются в теле запроса и имеют вид следующей структуры (приведены примеры значений):
{
"Inn": string,
"Kpp": string,
"Rnm": string,
"ActivationCode": string,
"Email": string
}
В таблице 1 представлены параметры необходимые для выполнения запроса.
Таблица 1. Параметры запроса для применения КА
Параметры | Формат значения | Описание | Признак обязательности в запросе1) |
---|---|---|---|
Inn | String | ИНН идентификационный налоговый регистрационный номер (Клиента) | Да |
Kpp | String | КПП идентификационный признак юридического лица (Клиента) | Нет2) |
String | Email клиента (Необходим для создания ЛКК в OFD.ru. Логин для входа в ЛКК) | Да | |
ActivationCode | String | Код активации для применения на кассах клиента | Да |
Rnm | String | РНМ регистрационный номер кассы клиента | Да |
В ответ на запрос возможны следующие вариант.
Ответ со значением «ККТ оплачена»:
{
"IsCompleted": true,
"IsWaiting": false
}
Ответ со значением «ККТ ожидает первый ФД»:
{
"IsCompleted": false,
"IsWaiting": true
}
Параметры ответа:
Возможные ошибки при обработке запроса на применение КА:
После применения КА на ИНН, если нет созданного ЛКК, но есть ККТ, создается ЛКК и отправляется на email письмо параметрами (логин и пароль) входа в ЛКК. После прохождения всех проверок, КА успешно применяется и активирует услуги ОФД.
Если ККТ не была настроена на передачу фискальных данных (далее ФД) в OFD.ru, КА для кассы действует в течении 3-х суток.
Особенности и ограничения:
Для получения списка статусов оплат используется метод «GET».
Запрос на получение списка статусов имеет вид:
GET https://ofd.ru/api/integration/partner/v2/kkt/paystatus?AuthToken={Code}&DateFromUtc={dateFrom}&DateToUtc={dateTo}
Заменяемые параметры:
Пример успешного ответа на запрос имеет следующий вид (приведены примеры значений):
{
"Data": [
{
"DateUtc": datetime,
"Inn": string,
"Rnm": string,
"ActivationCode": string,
"Status": string,
"ActivationDateUtc": datetime
}
],
"Success": true
}
Описание параметров ответа на запрос представлено в таблице 2.
Таблица 2. Поля структуры ответа на запрос статусов оплат
Параметр | Вложенный параметр | Формат значения | Описание |
---|---|---|---|
Data | Array | Массив данных со списком касс с примененным КА | |
Object | Структура данных по кассе с примененным КА | ||
DateUtc | String | Дата и время отправки запроса | |
Inn | String | ИНН клиента | |
Rnm | String | Регистрационный номер кассы (РНМ) клиента | |
ActivationCode | String | Код активации услуг ОФД | |
Status | String | Статус КА. В параметре могут быть следующие значения: Undefined - Не определено; WaitingActivation - Ожидание активации ККТ; Payed - ККТ оплачена; Cancelled - Отмена |
|
ActivationDateUtc | String | Дата и время применения кода | |
Success | Boolean | Статус выполнения запроса |
Метод получения списка касс клиентов имеет следующий вид:
GET https://ofd.ru/api/integration/partner/v2/inn/{inn}/kkts?AuthToken={Code}
Пример успешного ответа на запрос:
{
"Data": [
{
"Id": "60854103-3e26-49d5-942b-07c34f7b9446",
"KktRegId": "0005792715046206",
"SerialNumber": "00105703738735",
"FnNumber": "9960440301038465",
"CreateDate": "2021-09-01T15:43:28",
"LastDocOnKktDateTime": "2021-12-13T16:34:00",
"LastDocOnOfdDateTimeUtc": "2021-12-13T13:37:03",
"FiscalAddress": "Москва, Ленинская Слобода, 19",
"FiscalPlace": "ofd.ru",
"KktModel": "АТОЛ 25Ф",
"FnEndDate": "2022-11-25T15:43:57",
"ContractStartDateUtc": "2021-09-01T00:00:00"
}
],
"Success": true
}
Описание параметров ответа представлено в таблице 3.
Таблица 3. Описание параметров ответа на запрос
Параметр | Вложенный параметр | Формат значения | Описание |
---|---|---|---|
Data | Array | Массив данных со списком касс клиентов партнера | |
Object | Структура данных по кассе | ||
Id | String | Идентификатор кассы | |
KktRegId | String | РНМ — регистрационный номер кассы | |
SerialNumber | String | Заводской номер кассы | |
FnNumber | String | Заводской номер фискального накопителя | |
CreateDate | String | Дата регистрации кассы в личном кабинете клиента | |
LastDocOnKktDateTime | String | Дата и время3) последнего документа, сгенерированного кассой | |
LastDocOnOfdDateTimeUtc | String | Дата и время4) получения последнего документа кассы в ОФД | |
FiscalAddress | String | Адрес установки кассы | |
FiscalPlace | String | Место расчетов | |
KktModel | String | Модель кассы (ККТ) | |
FnEndDate | String | Дата и время5) окончания работы фискального накопителя | |
Tariff | String | Тарифный план: | |
«Red» | |||
«Yellow» | |||
«Green» | |||
«Blue» | |||
«Orange» | |||
LastBuyDateUtc | String | Оплата услуги ОФД | |
ContractStartDateUtc | String | Дата и время6) начало предоставления услуги ОФД | |
ContractEndDateUtc | String | Дата и время7) окончания предоставления услуги ОФД | |
Success | Boolean | Статус выполнения запроса |
Для того, чтобы перейти к удаленной оплате услуг и регистрации кассы, партнеру необходимо выполнить запрос на создание личного кабинета клиента с одним пользователем. После создания ЛКК клиенту на E-mail приходит письмо, в котором содержится ссылка для перехода и создания логина и пароля личного кабинета.
POST https://ofd.ru/api/integration/partner/v2/PartnerCreateClientCabinet?AuthToken={Code}
Code — значение действующего кода авторизации, полученного в ЛКК;
Пример запроса:
{
"Inn": "String",
"Kpp": "String",
"CompanyName": "String",
"Email": "String",
"Name": "String",
"Phone": "String",
}
Описание параметров запроса для создания ЛКК представлено в таблице 4.
Таблица 4. Параметры запроса на создание ЛКК
Параметр | Формат | Описание |
---|---|---|
Inn | String | ИНН клиента. Длина 10-12 цифр |
Kpp | String | КПП клиента |
CompanyName | String | Наименование организации |
String | Адрес электронной почты клиента | |
Name | String | Имя пользователя с логином из поля Email. Параметр необязательный |
Phone | String | Контактный телефон. Параметр необязательный |
Пример успешного ответа на запрос:
{
"OfdAgreementId": "String"
}
Описание параметра ответа:
Возможные ошибки представлены в таблице 5.
Таблица 5. Возможные ошибки в ответе на запрос
HTTP код | Код ошибки | Описание ошибки | Причина ошибки |
---|---|---|---|
500 | 1 | Неизвестная ошибка | Пользователь или ЛКК с таким Email уже |
400 | 1007 | Некорректный ИНН | ЛКК для такого ИНН/КПП уже существует |
Для создания заказа партнер указывает требуемое количество касс, тип тарифа и тип фискального накопителя (общие для всех касс в одном заказе).
Эти данные содержатся в одном заказе и привязываются к идентификатору заказа OrderID.
POST https://pre.ofd.ru/api/integration/partner/v2/PartnerBookingKkt?AuthToken={Code}
Пример запроса
{
"OfdAgreementId": "String",
"quantity": "Integer",
"tariffType": "String",
"fnType": "String",
"PaymentType": "String"
}
Описание параметров запроса представлено в таблице 6.
Таблица 6. Параметры запроса на бронирование касс и передачу запроса на формирование ссылки на оплату нового клиента
Параметр | Формат | Описание | |
---|---|---|---|
OfdAgreementId | String | Идентификатор юридического лица клиента, прикрепленного к ЛК OFD.ru | |
quantity | Integer | Количество касс по выбранным tariffType и fnType | |
tariffType | String | Тип тарифа на кассе. Возможные значения: | |
Urgent1M | Количества месяцев | ||
Urgent6M | |||
Urgent12M | |||
Urgent13M | |||
Urgent15M | |||
Urgent18M | |||
Receipt399 | Количества чеков | ||
Receipt699 | |||
Receipt999 | |||
fnType | String | Тип фискального накопителя, установленного в кассу. Возможные значения: | |
Fn15 | ФН15 | ||
Fn36 | ФН36 | ||
PaymentType | String | Значения способа оплаты заказа: Bill - выставление счета; CreditCard - оплата картой; SBP - оплата по СБП |
Пример ответа
{
"OrderID": "String"
"OrderReceiptUrl": "String",
}
Описание параметров ответа на запрос представлено в таблице 7.
Таблица 7. Параметры ответа на запрос
Параметр | Формат | Описание |
---|---|---|
OrderID | String | Идентификатор заказа |
OrderReceiptUrl | String | Возможные значения в зависимости от выбранного PaymentType в заказе: QR-код в формате Base64; Ссылка на оплату по карте; Ссылка на счет в формате PDF |
Партнер может получить статус заказа посредством запроса статуса бронирования:
GET https://ofd.ru/api/integration/partner/v2/kkt/GetStatus?AuthToken={Code}&OrderID={orderid}
Параметры запроса:
Пример ответа на запрос
{
"Status": "Integer",
"DueDate": "String"
}
Описание параметров ответа на запрос представлено в таблице 8.
Таблица 8. Поля структуры ответа на запрос статуса заказа
Параметр | Формат | Описание |
---|---|---|
Status | Integer | Статус заказа. Доступными результатами ответа в значении поля Status являются: 1 – Оплачен; 2 – Ожидает оплату; 3 – Просрочен |
DueDate | String | Дата и время8), до которой на бронировании оплачен тариф, в формате UTC+0 «dd.mm.yyyy HH:MM:SS». Параметр отображается в ответе только в случае значения статуса 1 – Оплачен. |
Версия 1.0
Выпущена 20 Февраля 2025 г.
Первая регистрируемая версия документа.