Download OpenAPI specification:Download
Свои предложения и идеи о документации можно оставить в репозитории по адресу: https://github.com/Raiffeisen-DGTL/ecom-API/blob/master/fiscal.yaml
По закону от 22.05.2003 № 54–ФЗ "О применении контрольно-кассовой техники при осуществлении расчетов в Российской Федерации" при оплате товаров, работ или услуг необходимо формировать фискальный чек и отправлять его в налоговую с помощью кассы.Клиенты Райффайзенбанка, подключившие интернет-эквайринг, также могут воспользоваться услугой фискализации чеков через онлайн-кассу. Пошаговые инструкции приведены ниже.
Клиенты Райффайзенбанка, подключившие интернет-эквайринг, также могут воспользоваться услугой фискализации чеков через онлайн-кассу. Пошаговые инструкции приведены ниже.
| Поставщик кассового оборудования | ФФД 1.05 | ФФД 1.2 |
|---|---|---|
| АТОЛ Онлайн | + | + |
| Билайн | - | + |
| БИФИТ | + | - |
| Чек-Онлайн | + | - |
| Эвотор | + | + |
| LIFE PAY | + | + |
| ОFD.ru | + | + |
| Orange Data | + | + |
| Модулькасса | - | + |
Поддерживает ФФД 1.05 и ФФД 1.2.
Поддерживает ФФД 1.2
Поддерживает ФФД 1.05
Поддерживает ФФД 1.05
Поддерживает ФФД 1.05 и ФФД 1.2
Поддерживает ФФД 1.05 и ФФД 1.2
Поддерживает ФФД 1.05 и ФФД 1.2

Поддерживает ФФД 1.05 и ФФД 1.2
Поддерживает ФФД 1.2
Для фискализации чеков через партнёра Райффайзенбанк предоставляет API из следующих запросов:
Взаимодействие осуществляется по протоколу HTTP с использованием методов POST, PUT, GET.
В описании каждого запроса явно указаны требуемые метод, адрес и параметры.
POST-запросы используют JSON-структуру, PUT- и GET-запросы работают со строками запросов.
Ответ любого метода возвращает HTTP-код. Если при обработке запроса происходит ошибка, API дополнительно возвращает ее описание.
Метод предназначен для создания нового чека прихода с указанным receiptNumber. Также позволяет обновить уже существующий чек прихода при повторном запросе с тем же receiptNumber. Метод возвращает тело чека, а также его тип и статус в дополнительных параметрах ответа.
Отправка чека по ФФД 1.2 не поддерживается для сервисов БИФИТ и Chekonline.
Отправка чека по ФФД 1.05 не поддерживается для сервисов Билайн и Модулькасса.
Если Вы хотите перейти с ФФД 1.05 на ФФД 1.2, то отправьте заявку в поддержку ecom@raiffeisen.ru
| Authorization required | string |
| receiptNumber required | string <A-Za-z0-9_-> <= 99 characters Уникальный номер чека |
| timezone | string
|
| onlinePayment | boolean
|
required | object Данные о покупателе |
required | Array of objects (ФФД 1.05 | ФФД 1.2) non-empty unique Позиции чека |
Array of objects (платежи) non-empty unique Данные об оплате | |
| total required | number
|
object (additionalUserProperty)
|
{- "receiptNumber": "3000827351831",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1000,
- "quantity": 1.2,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20"
}
], - "total": 1200
}{- "receiptNumber": "3000827351831",
- "receiptType": "SELL",
- "status": "NEW",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1000,
- "quantity": 1.2,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20"
}
], - "total": 1200
}Метод предназначен для отправки чека прихода на регистрацию в ОФД. Метод возвращает тело чека, а также его тип и статус в дополнительных параметрах ответа. После отправки чека на регистрацию он будет недоступен для редактирования.
| receiptNumber required | string <= 99 characters Уникальный номер чека |
| Authorization required | string |
curl --location --request PUT 'https://test.ecom.raiffeisen.ru/api/fiscal/v1/receipts/sell/3000827351831' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "receiptNumber": "3000827351831",
- "receiptType": "SELL",
- "status": "IN_PROGRESS",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1200,
- "quantity": 1,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20",
- "agentType": "ANOTHER",
- "supplierInfo": {
- "phone": "+79991234567",
- "name": "ООО «Ромашка»",
- "inn": "287381373424"
}
}
], - "total": 1200
}Метод предназначен для получения актуального статуса чека прихода. Чек может принимать один из статусов:
| receiptNumber required | string <= 99 characters Уникальный номер чека |
| Authorization required | string |
curl --location --request GET 'https://test.ecom.raiffeisen.ru/api/fiscal/v1/receipts/sell/3000827351831' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "receiptNumber": "3000827351831",
- "receiptType": "SELL",
- "status": "DONE",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1000,
- "quantity": 1.2,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20",
- "agentType": "ANOTHER",
- "supplierInfo": {
- "phone": "+79991234567",
- "name": "ООО «Ромашка»",
- "inn": "287381373424"
}
}
], - "total": 1200,
- "ofdDocumentNumber": 133,
- "ofdDocumentAttribute": "3449555941"
}Метод предназначен для создания нового чека возврата с указанным receiptNumber. Также позволяет обновить уже существующий чек возврата при повторном запросе с тем же receiptNumber. Метод возвращает тело чека, а также его тип и статус в дополнительных параметрах ответа.
Отправка чека по ФФД 1.2 не поддерживается для сервисов БИФИТ, Orange Data и Chekonline.
Отправка чека по ФФД 1.05 не поддерживается для сервисов Билайн и Модулькасса.
Если Вы хотите перейти с ФФД 1.05 на ФФД 1.2, то отправьте заявку в поддержку ecom@raiffeisen.ru
| Authorization required | string |
| receiptNumber required | string <A-Za-z0-9_-> <= 99 characters Уникальный номер чека |
| timezone | string
|
| onlinePayment | boolean
|
required | object Данные о покупателе |
required | Array of objects (ФФД 1.05 | ФФД 1.2) non-empty unique Позиции чека |
Array of objects (платежи) non-empty unique Данные об оплате | |
| total required | number
|
object (additionalUserProperty)
|
{- "receiptNumber": "3000827351831",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1000,
- "quantity": 1.2,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20"
}
], - "total": 1200
}{- "receiptNumber": "3000827351831",
- "receiptType": "REFUND",
- "status": "NEW",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1000,
- "quantity": 1.2,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20"
}
], - "total": 1200
}Метод предназначен для отправки чека возврата на регистрацию в ОФД. Метод возвращает тело чека, а также его тип и статус в дополнительных параметрах ответа. После отправки чека на регистрацию он будет недоступен для редактирования.
| receiptNumber required | string <= 99 characters Уникальный номер чека |
| Authorization required | string |
curl --location --request PUT 'https://test.ecom.raiffeisen.ru/api/fiscal/v1/receipts/refund/3000827351831' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "receiptNumber": "3000827351831",
- "receiptType": "REFUND",
- "status": "IN_PROGRESS",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1000,
- "quantity": 1.2,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20",
- "agentType": "ANOTHER",
- "supplierInfo": {
- "phone": "+79991234567",
- "name": "ООО «Ромашка»",
- "inn": "287381373424"
}
}
], - "total": 1200
}Метод предназначен для получения актуального статуса чека возврата. Чек может принимать один из статусов:
| receiptNumber required | string <= 99 characters Уникальный номер чека |
| Authorization required | string |
curl --location --request GET 'https://test.ecom.raiffeisen.ru/api/fiscal/v1/receipts/refund/3000827351831' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "receiptNumber": "3000827351831",
- "receiptType": "REFUND",
- "status": "DONE",
- "client": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович"
}, - "items": [
- {
- "name": "Шоколадные конфеты",
- "price": 1000,
- "quantity": 1.2,
- "amount": 1200,
- "paymentObject": "COMMODITY",
- "paymentMode": "FULL_PAYMENT",
- "measurementUnit": "кг",
- "nomenclatureCode": "00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00",
- "vatType": "VAT20",
- "agentType": "ANOTHER",
- "supplierInfo": {
- "phone": "+79991234567",
- "name": "ООО «Ромашка»",
- "inn": "287381373424"
}
}
], - "total": 1200,
- "ofdDocumentNumber": 133,
- "ofdDocumentAttribute": "3449555941"
}Стандартный ответ сервиса содержит код сообщения (code). Если в процессе обработки запроса произойдет логическая ошибка, API вернет описание ошибки (message).
Описание основных ошибок:
| code | message |
|---|---|
| FISCAL_CLIENT_NOT_FOUND | Фискальный клиент {value} не найден |
| MERCHANT_NOT_FOUND | Мерчант с publicId = {value} не зарегистрирован в сервисе |
| CREDENTIALS_NOT_FOUND | Учетные данные ОФД для мерчанта с publicId = {value} не найдены |
| RECEIPT_TYPE_NOT_SUPPORTED | Регистрация чеков типа {value} не поддерживается |
| RECEIPT_VALIDATION_FAILED | Чек не прошел валидацию. Причина: {value} |
| RECEIPT_NOT_FOUND | Чек {value} не найден |
| RECEIPT_FOR_ORDER_NOT_FOUND | Чек для заказа {value} не найден |
| RECEIPT_STATUS_CONFLICT | Чек {value} в статусе {value}, действие невозможно |
| TOKEN_REQUEST_FAILED | Не удалось получить токен для отправки чека в ОФД |
| RECEIPT_REGISTRATION_FAILED | Не удалось зарегистрировать чек {value} |
| STATUS_REQUEST_FAILED | Не удалось запросить статус чека ofdId = {value} мерчанта с publicId = {value} |
| USER_PERMISSIONS_VALIDATION_FAILED | Мерчант с publicId {value} не прошел валидацию user permissions |
Версия документации 1.1: