API интеграции Системы быстрых платежей (СБП) для B2B

Download OpenAPI specification:Download

Support e-mail: ecom@raiffeisen.ru

Подключение к СБП

Для приёма и / или отправки СБП-платежей оставьте заявку в РБО → Продукты → В2В-платежи по СБП.

Райффайзенбанк выполнит регистрацию. После завершения процесса вы будете оповещены по электронной почте.

Схема работы

На схеме ниже представлен сценарий работы с заказом со стороны Получателя.

Авторизация

Для авторизация запросов необходимы:

  • secretKey - секретный ключ, который используется для межсервисного взаимодействия.

Тестовый хост: https://pay-test.raif.ru

Продуктовый хост: https://pay.raif.ru

BАЖНО: Секретный ключ необходимо хранить в защищённом месте, нельзя публиковать на сторонних ресурсах или передавать третьим лицам.

Межсервисные запросы авторизуются посредством секретного ключа API (SECRET_KEY). Параметр авторизации указывается в заголовке Authorization, значение которого формируется как "Bearer SECRET_KEY".

Посмотреть боевой publicId и сгенерировать ключи можно в РБО → Прием платежей → Настройки.

Для генерации тестового секретного ключа необходимо обратиться по адресу: ecom@raiffeisen.ru

Получатель

Отмена заказа

Метод позволяет отменить неоплаченный заказ. После отмены оплата заказа с текущим id будет недоступна. Но вы можете переиспользовать этот id для создания нового заказа

path Parameters
id
required
string

Идентификатор заказа

header Parameters
Authorization
required
string
Example: eyJ0eXA***

Responses

Response samples

Content type
application/json
{
  • "code": "FORBIDDEN",
  • "message": "Доступ запрещен"
}

Получение данных заказа

path Parameters
id
required
string

Идентификатор заказа

header Parameters
Authorization
required
string
Example: eyJ0eXA***

Responses

Response samples

Content type
application/json
Example

Ответ на создание заказа без указаниям ограничений Отсутствует блок restrictions

{}

Генерация изображения платёжной ссылки

path Parameters
qrId
required
string

Уникальный идентификатор платёжной ссылки

query Parameters
format
any
Enum: "SVG" "PNG"

Формат изображения

withLogo
boolean
Default: true

Отображение логотипа СБП в QR-коде

Responses

Уведомления об операциях

Для информирования клиента о проведённых платежах могут использоваться HTTP-уведомления на адрес, указанный в его настройках.

Боевой адрес можно указать в личном кабинете во вкладке "Прием платежей"

Также адрес для тестовой и боевой среды можно указать с помощью метода в API.

Для партнёра уведомление представляет собой входящий POST-запрос, который использует JSON-структуру.

Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200.

Ответы с любыми другими HTTP-кодами будут считаться невалидными. Повторные попытки отправки будут проводиться в течение суток с нарастающим интервалом.

Для проверки подлинности уведомления по QRStatic и QRDynamic к данным добавляется подпись в заголовке X-Api-Signature-SHA256 , полученная на основе общего секретного ключа и контрольной строки id|qr.id|payment.id|payment.status.value|payment.amount|payment.status.date с помощью HMAC-SHA-256.

Необходимо проверять сумму для проверки корректности уведомления.

Уведомления отправляются с IP 193.28.44.23

Уведомление о входящем платеже Webhook

Request Body schema: application/json
event
string
Value: "B2B_PAYMENT"

Тип операции

object

Responses

Request samples

Content type
application/json
{
  • "event": "B2B_PAYMENT",
  • "data": {
    }
}

Настройка url для callback

Для подписи уведомлений будет использоваться ключ из заголовка авторизации.

header Parameters
Authorization
required
string
Example: eyJ0eXA***
Request Body schema: application/json
callbackUrl
required
string

URL для приёма уведомлений

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Реестр

Реестры по платежам отправляются на ежедневной, еженедельной, ежемесячной основе, в зависимости от выставленной настройки. В РБО -> Прием платежей -> Реестры

Инструкция по настройке реестров

В случае отсутствия операций за день, реестр на следующий день не отправляется.

Формат реестра:

Наименование колонки Значение
Мерчант Идентификатор в системе СБП
Дата операции МСК Дата и время проведения операции (МСК)
ID платежной ссылки Уникальный идентификатор платежной ссылки (qrId)
ID операции Внутренний идентификатор платежа
ID операции НСПК Идентификатор операции в системе НСПК
ID заказа Уникальный идентификатор заказа в системе партнёра
Основание операции в выписке Назначение платежа в выписке получателя
Назначение платежа Расширенное Назначение Платежа
Сумма Сумма Операции
НДС Сумма НДС
Дополнительные поля Дополнительные поля, указанные получателем (extra)
Комиссия Комиссия за транзакцию
Наименования плательщика Наименование Юридического Лица Плательщика
Банковский счёт плательщика Номер банковского счета Плательщика
ИНН плательщика Идентификационный номер налогоплательщика Плательщика
ID банка плательщика Идентификатор Банка Плательщика
Наименование банка плательщика Наименование Банка Плательщика
Бик банка плательщика Банковский Идентификационный Код Банка Плательщика

Пример реестра в кодировке WIN-1251

Пример реестра в кодировке UTF-8

Тестирование СБП

Для получения тестовых данных для интеграции напишите на ecom@raiffeisen.ru. В ответном письме мы отправим вам токен для авторизации в тестовой среде и два счёта для тестирования сервиса.

Ниже представлены запросы ТОЛЬКО для тестового окружения, запросы для продуктового окружения описаны тут

Также для тестовой платы можно использовать R-Future со сканированием qr. Для оплаты методом сканирования нужно открыть ссылку imageUrl(в ответе на создание qr) или перейти по адресу https://pay-test.raif.ru/api/b2b/sbp/v1/qrs/{qrId}/image - появится изображение QR Далее открыть https://pay-test.raif.ru/pay/rfuture/# нажать кнопку "Сканировать QR", навести камеру и появится форма оплаты, по которой можно произвести платеж.

Создание тестовой оплаты

!! Данные endpoint можно использовать только в ТЕСТОВОМ окружении !!

path Parameters
qrId
required
string

Уникальный идентификатор платёжной ссылки

Request Body schema: application/json
required
amount
required
number <float> (Amount) <= 1000000

Сумма операции в рублях

Responses

Request samples

Content type
application/json
{
  • "amount": 8573.79
}

Response samples

Content type
application/json
{
  • "code": "INVALID_DATA",
  • "message": "Некорректные данные"
}