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
Для фискализации чеков через партнёра Райффайзенбанк предоставляет API из следующих запросов:
Bзаимодействие осуществляется по протоколу HTTP с использованием методов POST, PUT, GET.
В описании каждого запроса явно указаны требуемые метод, адрес и параметры.
POST-запросы используют JSON-структуру, PUT- и GET-запросы работают со строками запросов.
Ответ любого метода возвращает HTTP-код. Если при обработке запроса происходит ошибка, API дополнительно возвращает ее описание.
Метод предназначен для создания нового чека прихода с указанным 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 Уникальный номер чека |
required | object Данные о покупателе |
required | Array of objects (ФФД 1.05 | ФФД 1.2) non-empty unique Позиции чека |
Array of objects (платежи) non-empty unique Данные об оплате | |
total required | number Итоговая сумма чека в рублях. Допустимо 8 символов для целой части и 2 символа для дробной |
{- "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,
}
Метод предназначен для создания нового чека возврата с указанным 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 Уникальный номер чека |
required | object Данные о покупателе |
required | Array of objects (ФФД 1.05 | ФФД 1.2) non-empty unique Позиции чека |
Array of objects (платежи) non-empty unique Данные об оплате | |
total required | number Итоговая сумма чека в рублях. Допустимо 8 символов для целой части и 2 символа для дробной |
{- "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,
}
Стандартный ответ сервиса содержит код сообщения (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: