Download OpenAPI specification:Download
Для подключения заполните заявку в онлайн-банке или мобильном приложении.
По вопросам работы с API можно обращаться в службу поддержки Raiffeisenbank:
Чтобы принимать платежи:
Для интеграции платежной страницы используйте:
Демонстрация платежной формы:
В процессе платежа пользователь совершает следующие действия:
Банк поддерживает возможность оплаты с использованием сценария подписки клиента на магазин и дальнейшей оплаты с помощью идентификатора подписки subscriptionId
.
Для формирования подписки необходимо воспользоваться методом [Создание заказа с получением платежной ссылки], в теле запроса необходимо передать объект subscription
.
На форме оплаты плательщику будет предоставлена возможность выбора оплаты с подпиской, либо просто оплаты. В случае успешной подписки на адрес мерчанта будет отправлено [Уведомление о подписке на адрес мерчанта], а также отдельное [Уведомление о платеже].
Для дальнейших списаний по успешно созданной подписке необходимо использовать Методы работы с подпиской.
По закону от 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
Для получения данных по подключенной кассе в OFD.ru перейдите в раздел Ferma в личном кабинете клиента и пролистайте до виджета "Реквизиты доступа". Скопируйте логин, пароль и идентификатор группы ККТ для подключения. Эти данные понадобятся на следующем шаге.
После этого чеки будут автоматически регистрироваться через выбранную кассу. Помимо автоматической фискализации чеков также доступна фискализация через API банка.
Поддерживает ФФД 1.05 и ФФД 1.2
Поддерживает ФФД 1.2
Взаимодействие осуществляется по протоколу HTTP с использование методов POST
GET
PUT
DELETE
.
При отправке запросов на открытие платежной формы и создание заказа с открытием платежной формы, API возвращает ответ в формате HTML документа, ответы на остальные запросы возвращаются в формате JSON.
Для авторизации запросов необходимы:
publicId
- Идентификатор, который используется для открытия платежной формы и является публичным.secretKey
- Секретный ключ, который используется для межсервисного взаимодействия. Является приватным, необходимо хранить в защищенном месте и не передавать третьим лицам.Контур | Адрес обращения |
---|---|
Production | https://pay.raif.ru |
Test | https://pay-test.raif.ru |
Межсервисные запросы авторизуются посредством секретного ключа secretKey
. Параметр авторизации передается в заголовке Authorization
, значение которого формируется как Bearer + secretKey
Посмотреть боевой publicId
и сформировать secretKey
можно в Онлайн Банке, либо Личном Кабинете.
Инструкции по формированию secretKey
можно посмотреть в Справочном Центре:
Для формирования secretKey
в тестовом контуре необходимо обратиться в службу поддержки ecom@raiffeisen.ru
Платежная форма Банка
:
PAN карты | Срок действия карты | CVV | OTP код | Сценарий платежа |
---|---|---|---|---|
4000001000000018 | 12/35 | 880 | 1234 | Успешная оплата |
4000001000000018 | 12/35 | 880 | 1111 | Неуспешная оплата |
Для полного цикла тестирования оплаты необходимо указывать сумму платежа больше 10 рублей.
Для полного цикла тестирования Райффайзенбанк предоставляет возможность использования демо-приложения для оплаты QR-кода от имени покупателя: WEB-приложение для оплаты по QR-коду
Приложение можно открыть в браузере любого устройства, имеющего камеру. После открытия приложения необходимо нажать на кнопку "Сканировать QR" (при необходимости разрешить браузеру доступ к камере) и отсканировать изображение тестового QR-кода.
Приложения банков не будут работать для оплаты QR-кодов в тестовой среде
Использование JS SDK позволяет открывать форму с frontend части в pop-up окне, либо осуществлять редирект пользователя на страницу Райффайзенбанка, что обеспечивает бесшовный сценарий оплаты для клиента.
Дополнительно можно кастомизировать интерфейс платежной формы и передавать дополнительные параметры для последующей оплаты. Настроить визуальную часть формы (название компании, логотип, цвет кнопок) можно в Конфигураторе платежной формы.
Также конфигуратор платежной формы позволяет получить код для встраивания его в JS-библиотеку.
Доступные SDK:
JS SDK позволяет открывать платежную форму с frontend части вашего приложения. При использовании остальных SDK для работы с платежной формой необходимо либо самостоятельно использовать методы, описанные в разделе [Платежная форма], либо использовать дополнительно JS SDK.
Также плагины для различных CMS можно найти в GitHub.
Вопросы по поддержке решений можно направлять в техническую поддержку: ecom@raiffeisen.ru
Простой способ для интеграции. Клиента необходимо перенаправить на платежную форму, передав параметры заказа.
[Схема взаимодействия].
При редиректе клиента на полученный URL откроется форма для оплаты. Для проверки суммы, поступившей от клиента, рекомендуется настроить Уведомление о платеже и сверять суммы созданного заказа и оплаты. Кастомизация интерфейса платежной формы или передача дополнительных полей в данном варианте интеграции недоступна.
publicId required | string Идентификатор мерчанта в системе Банка |
orderId | string <= 40 characters ^[A-z0-9-_.]+$ Example: orderId=order-test Идентификатор заказа в системе мерчанта |
amount required | number >= 0.01 Сумма платежа в рублях. Для копеек доступно два знака после точки. |
comment | string <URL encoded> <= 140 characters Example: comment=%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B9 Комментарий. Не может быть пустым или содержать только пробелы. Может содержать: |
successUrl | string <uri> URL-адрес ресурса, куда будет перенаправлен плательщик в случае успешной оплаты |
failUrl | string <uri> URL-адрес ресурса, куда будет перенаправлен плательщик в случае неуспешной оплаты |
paymentMethod | string Enum: "ONLY_SBP" "ONLY_ACQUIRING" Метод оплаты |
locale | string Default: "ru" Enum: "ru" "en" Язык, используемый в интерфейсе платежной формы |
expirationDate | string <YYYY-MM-DDТHH24:MM:SS±HH:MM> Срок жизни заказа. YYYY-MM-DDТHH24:MM:SS±HH:MM |
successSbpUrl | string <uri> Ссылка для автоматического возврата плательщика из приложения Банка в приложение или на сайт мерчанта. Ссылка должна содержать https:// для web-страниц или уникальную схему для мобильного приложения |
paymentDetails | string <URL encoded> <= 140 characters Назначение платежа в выписке, используется при оплате по СБП |
Метод позволяет создать заказ с открытием формы
publicId required | string Идентификатор мерчанта в системе Банка |
orderId | string <= 40 characters ^[A-Za-z0-9-_.]+$ Идентификатор заказа. Если не передан будет сформирован на стороне Банка. Рекомендуем использовать UUID v4 |
amount required | number >= 0.01 Сумма платежа в рублях. Для копеек доступно два знака после точки. |
comment | string <= 140 characters ^(?=.*\S)[A-Za-zА-Яа-яЁё0-9 !"#$%''()*+,\-./:... Комментарий. Доступен в реестрах и Онлайн-Банке. Не может быть пустым или содержать только пробелы. Может содержать: |
successUrl | string <uri> Адрес, на который будет перенаправлен плательщик с платежной формы в случае успешной оплаты
|
failUrl | string <uri> Адрес, на который будет перенаправлен плательщик с платежной формы в случае неуспешной оплаты
|
object Дополнительные поля в формате key-value. Отображаются в реестрах | |
paymentMethod | string (PayformPaymentMethod) Enum: "ONLY_SBP" "ONLY_ACQUIRING" Способ оплаты
|
locale | string = 2 characters Default: "ru" Enum: "ru" "en" Язык, используемый в интерфейсе платежной формы |
expirationDate | string <date-time> Срок жизни заказа |
successSbpUrl | string^[A-Za-z][A-Za-z0-9]*://\S+$ Ссылка, по котрой плательщик будет перенаправлен из приложения Банка в приложение или на сайт мерчанта в случае успешной оплаты по СБП
|
paymentDetails | string <= 140 characters Назначение платежа в выписке, используется при оплате по СБП |
{- "publicId": "000001680200002-80200002",
- "orderId": "order-test",
- "amount": 1200.37,
- "comment": "Тестовый комментарий",
- "extra": {
- "property1": "string",
- "property2": "string"
}, - "paymentMethod": "ONLY_SBP",
- "locale": "ru",
- "expirationDate": "2025-01-10T20:10:00+03:00",
- "paymentDetails": "Назначение платежа"
}
{- "timestamp": "2024-12-15T06:36:32+03:00",
- "status": 415,
- "error": "Unsupported Media Type",
- "path": "string"
}
Метод позволяет сформировать заказ и получить платежную ссылку для последующего редиректа / открытия на стороне мерчанта. Метод также позволяет изменить данные заказа, если заказ уже был сформирован ранее.
publicId required | string Идентификатор мерчанта в системе Банка |
id | string <= 40 characters ^[A-Za-z0-9-_.]+$ Идентификатор заказа. Если не передан будет сформирован на стороне Банка. Рекомендуем использовать UUID v4 |
amount required | number >= 0.01 Сумма платежа в рублях. Для копеек доступно два знака после точки. |
comment | string (OrderComment) <= 140 characters ^(?=.*\S)[A-Za-zА-Яа-яЁё0-9 !"#$%''()*+,\-./:... Комментарий. Доступен в реестрах и Онлайн-Банке. Не может быть пустым или содержать только пробелы. Может содержать: |
object Дополнительные поля в формате key-value. Отображаются в реестрах. | |
expirationDate | string <date-time> Срок жизни заказа |
paymentDetails | string <= 140 characters Назначение платежа в выписке, используется при оплате по СБП |
paymentMethods | Array of strings (PaymentMethod) Items Enum: "ACQUIRING" "SBP" Способы оплаты, отображаемые плательщику на платежной форме. Если не передать, будут включены все способы оплаты, доступные мерчанту. |
locale | string Default: "RU" Enum: "RU" "EN" Язык, используемый в интерфейсе платежной формы |
object Адреса для перенаправления плательщика на ресурсы мерчанта | |
object (Splits) Набор параметров для сплитования. | |
object (Receipt) Данные чека. Объект должен быть передан, если подключена фискализация чеков. При отсутствии объекта receipt чек не будет создан. Если объект receipt был передан, но заполнен некорректно, сервис вернет ошибку. | |
object (Subscription) Данные для оформления платежа с последующей подпиской. Результат подписки зависит от плательщика. При успешной подписке будет отправлено [Уведомление о подписке на адрес мерчанта], а также [Уведомление о платеже]. |
{- "id": "order-test",
- "amount": 0.01,
- "comment": "Тестовый комментарий",
- "paymentDetails": "Назначение платежа",
- "paymentMethods": [
- "ACQUIRING"
], - "returnUrls": {
- "successSbpUrl": "someapp://test-site.ru/thank_you/order-test?success=true"
}, - "splits": {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}, - "receipt": {
- "customer": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович",
- "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "items": [
- {
- "name": "Шоколадный торт",
- "price": 1200,
- "quantity": 1,
- "amount": 1200,
- "paymentObject": "COMMODITY_MARKING_WITH_CODE",
- "paymentMode": "FULL_PREPAYMENT",
- "measurementUnit": "PIECE",
- "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"
}, - "marking": {
- "quantity": {
- "numerator": 1,
- "denominator": 3
}, - "code": {
- "format": "GS1M",
- "value": "MDEwNDYwNzQyODY3OTA5MDIxNmVKSWpvV0g1NERkVSA5MWZmZDAgOTJzejZrU1BpckFwZk1CZnR2TGJvRTFkbFdDLzU4aEV4UVVxdjdCQmtabWs0PQ=="
}
}, - "sectoralProperties": [
- {
- "federalId": "030",
- "documentDate": "2023-11-21",
- "documentNumber": "1944",
- "value": "UUID=2ce10bdb-6515-4d37-be04-dd475b98c728&Time=1692691702067"
}
]
}
], - "payments": [
- {
- "type": "PREPAID",
- "amount": 1200
}
], - "additionalUserProperty": {
- "name": "string",
- "value": "string"
}
}
}
{- "id": "order-test",
- "amount": 0.01,
- "comment": "Тестовый комментарий",
- "extra": {
- "property1": "string",
- "property2": "string"
}, - "expirationDate": "2025-01-10T20:10:00+03:00",
- "paymentDetails": "string",
- "status": {
- "value": "NEW",
- "date": "2025-01-10T20:10:00+03:00"
}, - "splits": {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}, - "receipt": {
- "receiptNumber": "string",
- "customer": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович",
- "extra": {
- "property1": "string",
- "property2": "string"
}
}, - "items": [
- {
- "name": "Шоколадный торт",
- "price": 1200,
- "quantity": 1,
- "amount": 1200,
- "paymentObject": "COMMODITY_MARKING_WITH_CODE",
- "paymentMode": "FULL_PREPAYMENT",
- "measurementUnit": "PIECE",
- "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"
}, - "marking": {
- "quantity": {
- "numerator": 1,
- "denominator": 3
}, - "code": {
- "format": "GS1M",
- "value": "MDEwNDYwNzQyODY3OTA5MDIxNmVKSWpvV0g1NERkVSA5MWZmZDAgOTJzejZrU1BpckFwZk1CZnR2TGJvRTFkbFdDLzU4aEV4UVVxdjdCQmtabWs0PQ=="
}
}, - "sectoralProperties": [
- {
- "federalId": "030",
- "documentDate": "2023-11-21",
- "documentNumber": "1944",
- "value": "UUID=2ce10bdb-6515-4d37-be04-dd475b98c728&Time=1692691702067"
}
]
}
], - "payments": [
- {
- "type": "PREPAID",
- "amount": 1200
}
], - "additionalUserProperty": {
- "name": "string",
- "value": "string"
}
}
}
В данном разделе описаны методы, с помощью которых можно провести списание по оформленной подписке, а также получить статус платежа.
API для данного сценария может быть расширяемым.
В РАЗРАБОТКЕ
Метод позволяет сформировать платеж по ранее созданной подписке.
При успешном списании на адрес мерчанта будет отправлено [Уведомление о платеже]
publicId required | string Идентификатор мерчанта в системе Банка |
id | string <= 40 characters ^[A-Za-z0-9-_.]+$ Идентификатор платежа. Если не передан будет сформирован на стороне Банка. Рекомендуем использовать UUID v4 |
amount required | number > 0 Сумма платежа в рублях. Для копеек доступно два знака после точки. |
object Заказ | |
object Дополнительные поля в формате key-value. Отображаются в реестрах. | |
flow required | string (PaymentFlow) Сценарий проведения платежа
|
paymentDetails | string <= 140 characters Назначение платежа. Используется для оплаты по подписке СБП. |
subscriptionId required | string^[A-Za-z0-9-_.]+$ Идентификатор подписки |
recurringType required | string (SubscriptionRecurringType) Enum: "SCHEDULED" "UNSCHEDULED" Тип повторяющегося платежа
|
object (Receipt) Данные чека. Объект должен быть передан, если подключена фискализация чеков. При отсутствии объекта receipt чек не будет создан. Если объект receipt был передан, но заполнен некорректно, сервис вернет ошибку. |
{- "id": "payment-test",
- "amount": 540,
- "order": {
- "id": "order-test",
- "comment": "Оплата молока"
}, - "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "SUBSCRIPTION",
- "recurringType": "UNSCHEDULLED",
- "paymentDetails": "Оплата молока на Фрунзе 1",
- "subscriptionId": "subscription-test"
}
{- "id": "payment-test",
- "amount": 540,
- "order": {
- "id": "order-test",
- "comment": "Оплата молока"
}, - "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "SUBSCRIPTION",
- "status": {
- "value": "SUCCESS",
- "date": "2025-11-29T19:43:54+03:00"
}, - "objectType": "SUBSCRIPTION_PAYMENT",
- "paymentDetails": "Оплата молока на Фрунзе 1",
- "subscriptionId": "subscription-test",
- "recurringType": "UNSCHEDULLED",
- "parameters": {
- "paymentMethod": "ACQUIRING",
- "eci": "02",
- "rrn": "935014591810",
- "authCode": "259AA"
}
}
В РАЗРАБОТКЕ
Метод позволяет получить состояние платежа.
publicId required | string Идентификатор мерчанта в системе Банка |
id required | string Идентификатор платежа |
{- "id": "payment-test",
- "amount": 540,
- "order": {
- "id": "order-test",
- "comment": "Оплата молока"
}, - "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "SUBSCRIPTION",
- "status": {
- "value": "SUCCESS",
- "date": "2025-11-29T19:43:54+03:00"
}, - "objectType": "SUBSCRIPTION_PAYMENT",
- "paymentDetails": "Оплата молока на Фрунзе 1",
- "subscriptionId": "subscription-test",
- "recurringType": "UNSCHEDULLED",
- "parameters": {
- "paymentMethod": "ACQUIRING",
- "eci": "02",
- "rrn": "935014591810",
- "authCode": "259AA"
}
}
В РАЗРАБОТКЕ
Метод позволяет отменить подписку. После отмены проведение списаний по подписке будет недоступно.
publicId required | string Идентификатор мерчанта в системе Банка |
id required | string Идентификатор подписки |
{- "code": "ERROR.FORBIDDEN",
- "message": "Доступ запрещен",
- "traceId": "abb066c61a7c8b74af83f245c7706813"
}
В РАЗРАБОТКЕ
Метод позволяет получить информацию по подписке
publicId required | string Идентификатор мерчанта в системе Банка |
id required | string Идентификатор подписки |
{- "id": "subscription-test",
- "status": {
- "value": "SUBSCRIBED",
- "date": "2024-12-31T10:00:00+03:00"
}, - "purpose": "Подписка на интернет магазин",
- "paymentMethod": "ACQUIRING",
- "paymentSystem": "MIR",
- "cardNumber": "22013*********39",
- "expirationDate": "2035-10"
}
Для реализации взаимодействия с партнёром Райффайзенбанк предоставляет API для:
Метод позволяет получить статус транзакции. Необходимо проверять сумму, так как у плательщика есть возможность ее изменить.
orderId required | string <= 40 characters Идентификатор заказа в системе мерчанта |
{- "code": "SUCCESS",
- "transaction": {
- "id": 120059,
- "orderId": "order-test",
- "status": {
- "value": "SUCCESS",
- "date": "2024-12-31T17:00:00+03:00"
}, - "paymentMethod": "acquiring",
- "paymentParams": {
- "rrn": "935014591810",
- "authCode": "259AA"
}, - "amount": 12500.5,
- "comment": "Покупка шоколадного торта",
- "extra": {
- "apiClient": "Payform Software",
- "apiClientVersion": "1.0.0"
}
}
}
Метод позволяет выполнить отмену/возврат по платежу, как полную, так и частичную. В случае с СБП выполняется только возврат.
Для мерчантов с подключенной фискализацией метод также позволяет сформировать фискальный чек по возврату. Для этого необходимо в теле запроса передать данные чека в объекте receipt, чек возврата будет сформирован автоматически.
orderId required | string <= 40 characters Идентификатор заказа в системе мерчанта |
refundId required | string Уникальный идентификатор запроса на возврат в системе мерчанта |
amount required | number Сумма возврата в рублях |
paymentDetails | string <= 140 characters Назначение платежа для СБП. Не может быть пустым или содержать только пробелы. Может содержать: |
{- "amount": 1200,
- "paymentDetails": "Покупка в магазине №1"
}
{- "code": "SUCCESS",
- "amount": 1200,
- "refundStatus": "COMPLETED",
- "receipt": {
- "customer": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович",
- "extra": { }
}, - "items": [
- {
- "name": "Шоколадный торт",
- "price": 1200,
- "quantity": 1,
- "amount": 1200,
- "paymentObject": "COMMODITY_MARKING_WITH_CODE",
- "paymentMode": "FULL_PREPAYMENT",
- "measurementUnit": "PIECE",
- "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"
}, - "marking": {
- "quantity": {
- "numerator": 1,
- "denominator": 3
}, - "code": {
- "format": "GS1M",
- "value": "MDEwNDYwNzQyODY3OTA5MDIxNmVKSWpvV0g1NERkVSA5MWZmZDAgOTJzejZrU1BpckFwZk1CZnR2TGJvRTFkbFdDLzU4aEV4UVVxdjdCQmtabWs0PQ==",
- "plannedStatus": 1
}
}, - "sectoralProperties": [
- {
- "federalId": "030",
- "documentDate": "2023-11-21",
- "documentNumber": "1944",
- "value": "UUID=2ce10bdb-6515-4d37-be04-dd475b98c728&Time=1692691702067"
}
]
}
], - "payments": [
- {
- "type": "PREPAID",
- "amount": 1200
}
], - "additionalUserProperty": {
- "name": "string",
- "value": "string"
}
}
}
Метод позволяет получить статус по отмене или возврату.
orderId required | string <= 40 characters Идентификатор заказа в системе мерчанта |
refundId required | string Уникальный идентификатор запроса на возврат в системе мерчанта |
<?php
$orderId = 'order-test';
$refundId = 'refund-test';
/** @var \Raiffeisen\Ecom\Client $client */
$response = $client->getOrderRefund($orderId, $refundId);
print_r($response);
?>
{- "code": "SUCCESS",
- "amount": 1200,
- "refundStatus": "COMPLETED"
}
Метод позволяет получить данные о заказе.
orderId required | string <= 40 characters Идентификатор заказа в системе мерчанта |
<?php
$orderId = 'order-test';
/** @var \Raiffeisen\Ecom\Client $client */
$response = $client->getOrder($orderId);
print_r($response);
?>
{- "amount": 12500.5,
- "comment": "Покупка шоколадного торта",
- "extra": {
- "apiClient": "Payform Software"
}, - "status": {
- "value": "NEW",
- "date": "2024-12-31T10:00:00+03:00"
}, - "expirationDate": "2024-12-31T17:00:00+03:00"
}
Метод позволяет отменить заказ, если он не был оплачен. После отмены страница оплаты будет недоступна.
orderId required | string <= 40 characters Идентификатор заказа в системе мерчанта |
<?php
$orderId = 'order-test';
/** @var \Raiffeisen\Ecom\Client $client */
$client->deleteOrder($orderId);
?>
{- "code": "string",
- "message": "string"
}
Метод позволяет получить по заказу список чеков, которые успешно зарегистрированы в ОФД и имеют статус DONE
. По умолчанию возвращаются как чеки прихода, так и чеки возврата. Чтобы получить чеки определенного типа, необходимо в строке запроса передать дополнительный параметр receiptType.
Если ни один чек не найден, в ответ вернется 200 OK и пустой массив.
orderId required | string <= 40 characters Идентификатор заказа в системе мерчанта |
receiptType | string Тип чека:
|
<?php
$orderId = 'order-test';
/** @var \Raiffeisen\Ecom\Client $client */
$response = $client->getOrderReceipts($orderId);
print_r($response);
?>
[- {
- "receiptNumber": "3000827351832",
- "receiptType": "REFUND",
- "status": "DONE",
- "orderNumber": "order-test",
- "total": 1200,
- "ofdDocumentNumber": 133,
- "ofdDocumentAttribute": "3449555941",
- "customer": {
- "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": "956839506500"
}
}
], - "payments": [
- {
- "type": "PREPAID",
- "amount": 1200
}
]
}
]
Метод позволяет получить чек возврата по идентификатору заказа и идентификатору возврата.
orderId required | string <= 40 characters Идентификатор заказа в системе мерчанта |
refundId required | string Уникальный идентификатор запроса на возврат в системе мерчанта |
<?php
$orderId = 'order-test';
$refundId = 'refund-test';
/** @var \Raiffeisen\Ecom\Client $client */
$response = $client->getOrderRefundReceipt($orderId, $refundId);
print_r($response);
?>
{- "receiptNumber": "3000827351831",
- "receiptType": "REFUND",
- "status": "DONE",
- "orderNumber": "order-test",
- "total": 1200,
- "ofdDocumentNumber": 133,
- "ofdDocumentAttribute": "3449555941",
- "customer": {
- "email": "customer@test.ru",
- "name": "Иванов Иван Иванович",
- "extra": { }
}, - "items": [
- {
- "name": "Шоколадный торт",
- "price": 1200,
- "quantity": 1,
- "amount": 1200,
- "paymentObject": "COMMODITY_MARKING_WITH_CODE",
- "paymentMode": "FULL_PREPAYMENT",
- "measurementUnit": "PIECE",
- "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"
}, - "marking": {
- "quantity": {
- "numerator": 1,
- "denominator": 3
}, - "code": {
- "format": "GS1M",
- "value": "MDEwNDYwNzQyODY3OTA5MDIxNmVKSWpvV0g1NERkVSA5MWZmZDAgOTJzejZrU1BpckFwZk1CZnR2TGJvRTFkbFdDLzU4aEV4UVVxdjdCQmtabWs0PQ==",
- "plannedStatus": 1
}
}, - "sectoralProperties": [
- {
- "federalId": "030",
- "documentDate": "2023-11-21",
- "documentNumber": "1944",
- "value": "UUID=2ce10bdb-6515-4d37-be04-dd475b98c728&Time=1692691702067"
}
]
}
], - "payments": [
- {
- "type": "PREPAID",
- "amount": 1200
}
], - "additionalUserProperty": {
- "name": "string",
- "value": "string"
}
}
Для информирования ТСП о проведенных платежах и возвратах могут использоваться HTTP-уведомления на адрес, указанный в его настройках.
Адрес для уведомлений можно указать в личном кабинете во вкладке "Прием платежей"
Также адрес для тестовой и боевой среды можно указать с помощью метода в API.
Для партнёра уведомление представляет собой входящий POST-запрос, который использует JSON-структуру.
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200.
Ответы с любыми другими HTTP-кодами будут считаться невалидными. Повторные попытки отправки будут проводиться в течение суток с нарастающим интервалом.
Для проверки подлинности уведомления по оплате к данным добавляется подпись в заголовке x-api-signature-sha256
, полученная на основе общего секретного ключа и контрольной строки, зашифрованная с помощью HMAC-SHA-256
.
Тип уведомления | Шаблон проверки |
---|---|
Уведомление о платеже | data.amount|data.publicId|data.order.id|data.status.value|data.status.date |
Уведомление о возврате | refund.amount|publicId|refund.id|refund.status.value|refund.status.date |
Уведомление о подписке | data.publicId|data.id|data.status.value|data.status.date |
Необходимо проверять сумму, так как у клиентов есть возможность ее изменить.
Уведомления отправляются с IP 193.28.44.23
X-Api-Signature-SHA256 required | string Заполняется подписью, полученной алгоритмом HMAC-SHA-256 с использованием выбранного секретного ключа и контрольной строки |
event required | string Value: "PAYMENT" Тип сообщения |
required | any Данные по операции |
{- "event": "PAYMENT",
- "data": {
- "id": "payment-test",
- "publicId": "000001780049001-80049001",
- "amount": 540,
- "order": {
- "id": "order-test",
- "comment": "Оплата молока"
}, - "status": {
- "value": "SUCCESS",
- "date": "2025-11-29T19:43:54+03:00"
}, - "extra": {
- "email": "pavel@mail.ru"
}, - "paymentMethod": "ACQUIRING",
- "parameters": {
- "eci": "02",
- "rrn": "935014591810",
- "authCode": "259AA"
}
}
}
X-Api-Signature-SHA256 required | string Заполняется подписью, полученной алгоритмом HMAC-SHA-256 с использованием выбранного секретного ключа и контрольной строки |
object |
{- "refund": {
- "id": "refund-test",
- "ecom": {
- "rrn": "556435345345435",
- "authCode": "123456AA"
}, - "amount": 1500.2,
- "status": {
- "value": "COMPLETED",
- "date": "2024-12-31T15:00:00+03:00"
}, - "paymentParams": {
- "transactionId": 935014591810,
- "orderId": "order-test"
}
}
}
X-Api-Signature-SHA256 required | string Заполняется подписью, полученной алгоритмом HMAC-SHA-256 с использованием выбранного секретного ключа и контрольной строки |
event required | string Value: "SUBSCRIPTION" Тип сообщения |
required | any Данные о подписке |
{- "event": "SUBSCRIPTION",
- "data": {
- "publicId": "000001780049001-80049001",
- "id": "subscription-test",
- "status": {
- "value": "SUBSCRIBED",
- "date": "2025-11-29T19:43:54+03:00"
}, - "purpose": "Подписка на интернет магазин",
- "paymentMethod": "ACQUIRING",
- "paymentSystem": "MIR",
- "cardNumber": "22013*********39",
- "expirationDate": "2035-10"
}
}
event | string Value: "payment" Тип операции |
any (Transaction) Данные по операции |
{- "event": "payment",
- "transaction": {
- "id": 120059,
- "orderId": "order-test",
- "status": {
- "value": "SUCCESS",
- "date": "2024-12-31T10:00:00+03:00"
}, - "paymentMethod": "acquiring",
- "paymentParams": {
- "rrn": "935014591810",
- "authCode": "259AA"
}, - "amount": 12500.5,
- "comment": "Покупка шоколадного торта",
- "extra": {
- "apiClient": "Payform Software",
- "apiClientVersion": "1.0.0"
}
}
}
Уведомления будут подписываться ключом, переданным в заголовке авторизации.
callbackUrl required | string URL-адрес для приема уведомлений |
{
}
{
}
Для подключения отправки реестров необходимо написать на ecom@raiffeisen.ru
Реестры по платежам отправляются на ежедневной основе.
В случае отсутствия операций за день, реестр на следующий день не отправляется.
Формат реестра:
Наименование колонки | Значение |
---|---|
Мерчант | Идентификатор в системе банка |
Дата операции МСК | Дата и время проведения операции |
Тип | Тип операции |
id заказа | Id заказа в системе партнера (orderId) |
id возврата | Id возврата в системе партнера (refundId) |
Комментарий | Комментарий к заказу (comment) |
Способ оплаты | Instant Payment QR - при оплате по СБП, Название платежной системы - по Эквайрингу |
Данные оплаты | QR id - для СБП, authCode и rnn -для Эквайринга |
id клиента | СБП - маскированный код плательщика. Для Эквайринга - маскированный номер карты |
Сумма | Сумма транзакции (amount) |
Комиссия | Комиссия по транзакции |
Дополнительные поля | Дополнительная информация (extra) |
Методы позволяют получить список операций и итоговые суммы за определенный промежуток времени. Возможно использование методов для закрытия кассового периода.
Отчёт по транзакциям за указанный период (не более трёх дней).
from required | string <ENCODE 'YYYY-MM-DDТHH24:MM:SS±HH:MM'> Дата и время начала выборки |
to required | string <ENCODE 'YYYY-MM-DDТHH24:MM:SS±HH:MM'> Дата и время окончания выборки |
operationTypes | string Enum: "Payment" "Refund" Тип операции. Если значение не передано - выгружаются все типы операций |
qrId | string Example: qrId=AD1F2CD7212E48FA919AB52EF0AEFB33 Идентификатор QR-кода. Если значение не передано - выгружаются все операции по мерчанту |
{- "sbp": {
- "payments": {
- "sum": 21,
- "count": 2
}, - "refunds": {
- "sum": 10,
- "count": 1
}, - "total": {
- "sum": 11,
- "count": 3
}
}, - "card": {
- "payments": {
- "sum": 23,
- "count": 2
}, - "refunds": {
- "sum": 11,
- "count": 1
}, - "total": {
- "sum": 12,
- "count": 3
}
}
}
Получение детализированного отчёта по транзакциям за указанный период (не более трёх дней).
from required | string <ENCODE 'YYYY-MM-DDТHH24:MM:SS±HH:MM'> Дата и время начала выборки |
to required | string <ENCODE 'YYYY-MM-DDТHH24:MM:SS±HH:MM'> Дата и время окончания выборки |
operationTypes | string Enum: "Payment" "Refund" Тип операции. Если значение не передано - выгружаются все типы операций |
qrId | string Example: qrId=AD1F2CD7212E48FA919AB52EF0AEFB33 Идентификатор QR-кода. Если значение не передано - выгружаются все операции по мерчанту |
{- "sbp": {
- "payment": [
- {
- "orderId": "order-test",
- "amount": 77,
- "transactionDate": "2024-12-31T10:00:00+03:00",
- "paymentSystem": "Instant Payment QR",
- "paymentDetails": "Благотворительное пожертвование",
- "transactionId": 178657,
- "clientId": "007910******4567",
- "qrId": "AS1A007L7B8IPA1F8CBQ8RK2D27FHST9",
- "sbpTransactionId": "A23091339574920E000009529E6B66DF",
- "orderComment": "Комментарий",
- "fee": 0.31
}
], - "refund": [
- {
- "orderId": "order-test-1",
- "amount": 17,
- "transactionDate": "2024-12-31T10:00:00+03:00",
- "paymentSystem": "Instant Payment QR",
- "paymentDetails": "Возврат денежных средств",
- "transactionId": 178658,
- "clientId": "007910******4567",
- "qrId": "AS1A007L7B8IPA1F8CBQ8RK2D27FHST9",
- "sbpTransactionId": "B229701403532102000016268EEA632B",
- "refundId": "refund-1",
- "fee": 0
}
]
}, - "card": {
- "payment": [
- {
- "orderId": "order-test-2",
- "amount": 14,
- "transactionDate": "2024-12-31T10:50:00+03:00",
- "paymentSystem": "VISA",
- "paymentDetails": "Назначение платежа",
- "transactionId": 5252420,
- "clientId": "200043****823",
- "authCode": "259AA",
- "rrn": "935014591810",
- "orderComment": "Благотворительное пожертвование",
- "fee": 0.38
}
], - "refund": [
- {
- "orderId": "order-test-3",
- "amount": 13,
- "transactionDate": "2022-12-14T10:01:24.84+03:00",
- "paymentSystem": "VISA",
- "paymentDetails": "Назначение платежа",
- "transactionId": 5252440,
- "clientId": "200043****823",
- "authCode": "259AA",
- "rrn": "935014591810",
- "refundId": "refund-2",
- "fee": 0
}
]
}
}
Ответ любого метода содержит код сообщения (code). Если в процессе обработки любого запроса произойдет логическая ошибка, API вернет описание ошибки (message).
Описание основных ошибок:
code | message |
---|---|
ERROR.NOT_FOUND | Счет не найден у данного партнера |
ERROR.REFUND_INSUFFICIENT_FUNDS | Сумма возврата больше суммы остатка по платежу |
ERROR.INVALID_REQUEST | Некорректные параметры запроса |
RECEIPT_VALIDATION_FAILED | Чек не прошел валидацию. Причина: * |
Описание ошибок при работе с платежной формой клиента:
code | message | http code |
---|---|---|
ERROR.BAD_REQUEST | Платёж с данным идентификатором уже существует | 400 |
ERROR.BAD_REQUEST | Некорректное значение поля: %s %s | 400 |
ERROR.BAD_REQUEST | Тело запроса некорректно | 400 |
Отсутствует | 401 | |
ERROR.FORBIDDEN | Доступ запрещен | 403 |
ERROR.PAYMENT_NOT_FOUND | Платеж не найден | 404 |
ERROR.INTERNAL_ERROR | Внутренняя ошибка сервиса | 500 |
В таблице отражены важные изменения в методах API.
Дата | Описание |
---|---|
02.09.2025 | * Добавлен сценарий работы с подпиской |
01.09.2025 | * В фискальные чеки добавлены поля timezone (тег 1011, для ФФД 1.2), onlinePayment (тег 1125) и plannedStatus (тег 2003) |
10.08.2025 | * Добавлен метод формирования заказа с получением короткой ссылки |
20.05.2025 | * Добавлен ФФД 1.2 для сервиса "Модулькасса" и обновлена инструкция подключения фискализации |
14.02.2025 | * Добавлен ФФД 1.2 для сервиса "Orange Data" и обновлена инструкция подключения фискализации |
24.07.2024 | * Объединена документация для чеков по ФФД 1.05 и ФФД 1.2 |
10.07.2024 | * Добавлены уведомления на операции возвратов |
18.04.2024 | * В методы сверок операций за период добавлен новый параметр комиссия |
29.03.2023 | * Внесены ограничения по полям comment при создании заказов и paymentDetails при возвратах |
16.12.2022 | * Добавлены методы для сверки операций по картам и СБП |
11.10.2022 | * Добавлены SDK с описанием в методах |
30.09.2022 | * Реализована поддержка авансовых чеков и чеков частичной предоплаты |
26.08.2022 | * Добавлен ФФД 1.2 для сервиса "АТОЛ Онлайн" |
29.07.2022 | * Изменены хосты : * Боевой с e-commerce.raiffeisen.ru на pay.raif.ru * Тестовый c ecom.test.raiffeisen.ru на pay-test.raif.ru |
27.07.2022 | * Добавлен параметр paymentDetails, позволяет указать назначение платежа для вашей выписки для операций СБП |
30.05.2022 | * Добавлен параметр successSbpUrl, который позволяет передать ссылку для перенаправления клиента, из приложения банка, в случае успешной операции |
17.05.2022 | * Добавлен метод открытия платежной формы через POST-метод |
15.04.2022 | * В документацию добавлен партнер "БИФИТ", приведена инструкция по подключению онлайн-кассы сервиса БИФИТ * Скорректированы примеры запроса на сохранение чека (удалены параметры для агентских операций) * Дополнено правило заполнения номенклатурного кода для партнера "БИФИТ" * Небольшие правки по тексту |
25.03.2022 | * В модель чека добавлен параметр paymentMode для передачи способа расчёта (100% предоплата, полный расчет) |
05.03.2022 | * Расширен API для оформления возврата для возможности пробить чек. В т.ч. в POST-метод добавлен новый объект receipt для передачи данных чека * Добавлен API для получения массива чеков по заказу * Добавлен API для получения чека возврата по заказу и идентификатору возврата * Реализовано переключение через кнопки "с чеком/без чека" для API, где возможен один из вариантов * Добавлен перевод документации на английский язык |
18.01.2022 | * Для фискализации в чек прихода добавлены новые параметры для агентских операций: agentType, supplierInfo |
30.12.2021 | * Обновлена диаграмма последовательности UML в разделе "Схема работы" |
29.10.2021 | * Добавлены методы для отмены заказа и получения его статуса |
21.10.2021 | * Добавлен параметр expirationDate - отвечающий за срок жизни заказа |