Download OpenAPI specification:Download
Свои предложения и идеи о документации можно оставить в репозитории по адресу: https://github.com/Raiffeisen-DGTL/ecom-API/blob/master/payout.yaml
Bзаимодействие осуществляется по протоколу HTTP с использованием методов GET/POST (в описании каждого запроса явно указан требуемый метод и адрес).
POST-запросы используют JSON-аргументы, GET-запросы работают со строками запросов.
API всегда возвращает ответ в формате JSON, независимо от типа запроса.
Стандартный ответ сервиса содержит код сообщения (code). Если в процессе обработки запроса произойдет логическая ошибка, API вернет описание ошибки (message).
При двухстадийной обработке создается заявка на выплату, банк проверяет возможность проведения такой операции и возвращает результат. Далее ожидается подтверждение выплаты со стороны партнера. Данная схема взаимодействия подходит, когда требуется разделение создания заявки и ее согласования. Пример: менеджер создает заявку на выплату, руководитель или главный бухгалтер подтверждает выплату.
Авторизация производится посредством секретного ключа API (secretKey). Параметр авторизации указывается в заголовке Authorization, значение которого формируется как "Bearer secretKey".
Также настраивается список IP, с которых система будет пропускать запросы.
Для реализации взаимодействия с партнёром Райффайзенбанк предоставляет API из следующих запросов:
Список банков, подключенных к приему выплат по СБП, Вы сможете посмотреть на сайте https://sbp.nspk.ru/participants/ в разделе "Оплата по QR".
Мы автоматически поддерживаем актуальный список и возвращаем его в запросе на получение банков-участников.
Получение списка банков, принимающих выплаты по СБП
Authorization required | string |
[- {
- "alias": "RAIFFEISEN",
- "name": "Райффайзенбанк"
}, - {
- "alias": "TINKOFF",
- "name": "Тинькофф"
}, - {
- "alias": "VTB",
- "name": "ВТБ"
}
]
Получение списка банков, принимающих выплаты по СБП
Authorization required | string |
[- {
- "alias": "RAIFFEISEN",
- "name": "Райффайзенбанк",
- "bankId": "100000000007"
}, - {
- "alias": "TINKOFF",
- "name": "Тинькофф Банк",
- "bankId": "100000000004"
}, - {
- "alias": "YANDEX BANK",
- "name": "Яндекс Банк",
- "bankId": "100000000150"
}
]
Проведение выплаты. Если в запросе переданы ФИО, по ним произойдет сверка данных с данными получателя в системе. Если данные не совпадут, платеж отобъется с ошибкой.
Authorization required | string |
id | string <^[Aa-Zz0-9_-]+> non-empty Уникальный идентификатор выплаты в вашей системе, используется как номер документа в выписке |
account required | string <= 20 characters Счет, с которого будет происходить списание |
amount required | number Сумма в рублях. Действует несколько лимитов от НСПК:
|
currency required | string = 3 characters Value: "RUB" Валюта платежа |
paymentDetails | string [ 1 .. 140 ] characters Назначение платежа. Значение попадает в выписку после системного префикса. Не может быть пустым или содержать только пробелы. Может сождержать: |
payoutMethod required | string non-empty Value: "SBP" Тип выплаты |
required | object |
incomeTypeCode | |
object Дополнительные данные. |
{- "id": "1404fhr7i272a2",
- "account": "40700000000000000000",
- "amount": 1110.01,
- "currency": "RUB",
- "paymentDetails": "Выплата от страховой компании",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}
}
{- "id": "1404fhr7i272a2",
- "amount": 1110.01,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "IN_PROGRESS",
- "date": "2019-07-11T17:45:13+03:00"
}, - "creationDate": "2019-07-11T17:45:13+03:00"
}
Метод позволяет создавать заявку на выплату для двухстадийного взаимодействия. При создании заявки также проводятся все необходимые проверки на возможность провести платеж. Если в запросе переданы ФИО, по ним произойдет сверка данных с данными получателя в системе. Если данные не совпадут, заявка отобъется с ошибкой. Для дальнейшей работы с заявкой необходимо смотреть на ее статус. Успешное прохождение проверок при создании заявки не гарантирует успешное проведение платежа.
Authorization required | string |
id | string <^[Aa-Zz0-9_-]+> non-empty Уникальный идентификатор выплаты в вашей системе, используется как номер документа в выписке |
account required | string <= 20 characters Счет, с которого будет происходить списание |
amount required | number Сумма в рублях. Действует несколько лимитов от НСПК:
|
currency required | string = 3 characters Value: "RUB" Валюта платежа |
paymentDetails | string [ 1 .. 140 ] characters Назначение платежа. Значение попадает в выписку после системного префикса. Не может быть пустым или содержать только пробелы. Может сождержать: |
payoutMethod required | string non-empty Value: "SBP" Тип выплаты |
required | object |
incomeTypeCode | |
object Дополнительные данные. |
{- "id": "1404fhr7i272a2",
- "account": "40700000000000000000",
- "amount": 1110.01,
- "currency": "RUB",
- "paymentDetails": "Выплата от страховой компании",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}
}
{- "id": "1404fhr7i272a2",
- "amount": 1110.01,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "PENDING",
- "date": "2019-07-11T17:45:13+03:00"
}, - "creationDate": "2019-07-11T17:45:13+03:00"
}
Получение информации по платежу.
id required | string <^[Aa-Zz0-9_-]> <= 20 characters id выплаты |
Authorization required | string |
{- "id": "1404fhr7i272a2",
- "amount": 1110.01,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "COMPLETED",
- "date": "2019-07-11T17:45:13+03:00"
}, - "creationDate": "2019-07-11T17:45:13+03:00"
}
Данный метод позволяет произвести несколько выплат одним запросом. В одном пакете можно передать до 1000 выплат.
Authorization required | string |
id | string Идентификатор пакета |
account | string Номер счета |
Array of objects Массив выплат |
{- "id": "b-0001",
- "account": "40700000000000000000",
- "payouts": [
- {
- "id": "1404fhr7i272a2",
- "amount": 1110.01,
- "currency": "RUB",
- "paymentDetails": "Выплата от страховой компании",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}
}, - {
- "id": "120445r7i272a2",
- "amount": 500,
- "currency": "RUB",
- "paymentDetails": "Выплата от страховой компании",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "VTB",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}
}
]
}
{- "id": "b-0001",
- "account": "40700000000000000000",
- "payouts": [
- {
- "id": "1404fhr7i272a2",
- "amount": 1110.01,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "IN_PROGRESS",
- "date": "2019-07-11T17:45:13+03:00"
}, - "creationDate": "2019-07-11T17:45:13+03:00"
}, - {
- "id": "120445r7i272a2",
- "amount": 500,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "VTB",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "IN_PROGRESS",
- "date": "2019-07-11T17:45:13+03:00"
}, - "creationDate": "2019-07-11T17:45:13+03:00"
}
]
}
Позволяет получить данные по пакету со статусами операций.
id required | string Идентификатор пакета |
status | string Enum: "IN_PROGRESS" "COMPLETED" "DECLINED" "PENDING" Запрашиваемые статусы |
Authorization required | string |
{- "id": "b-0001",
- "account": "40700000000000000000",
- "payouts": [
- {
- "id": "1404fhr7i272a2",
- "amount": 1110.01,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "COMPLETED",
- "date": "2019-07-11T17:45:13+03:00"
}, - "creationDate": "2019-07-11T17:45:13+03:00"
}, - {
- "id": "120445r7i272a2",
- "amount": 500,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "VTB",
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": 123456789101
}, - "incomeTypeCode": "1",
- "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "DECLINED",
- "declineReason": "RECEIVER_ACCOUNT_ERROR",
- "date": "2019-07-11T17:45:13+03:00"
}, - "creationDate": "2019-07-11T17:45:13+03:00"
}
]
}
Для информирования ТСП о проведенных операциях могут использоваться HTTP-уведомления на адрес, указанный в его настройках.
Для партнёра уведомление представляет собой входящий POST-запрос, который использует JSON-структуру.
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200.
Ответы с любыми другими HTTP-кодами будут считаться невалидными.
Повторные попытки отправки будут проводиться в течение суток с нарастающим интервалом.
Для проверки подлинности уведомления к данным добавляется подпись в заголовке x-api-signature-sha256, полученная на основе общего секретного ключа и контрольной строки amount|id|statusValue|statusDate
с помощью HMAC-SHA-256.
Уведомления отправляются с IP 193.28.44.23
event | string Тип уведомления |
object |
{- "event": "payout",
- "payout": {
- "id": "p210730t2jboNkN0ft1",
- "amount": 0.01,
- "currency": "RUB",
- "payoutMethod": "SBP",
- "payoutParams": {
- "phone": "79191234567",
- "bankAlias": "RAIFFEISEN",
- "bankId": 100000000007,
- "firstName": "Иван",
- "middleName": "Иванович",
- "lastName": "Иванов",
- "inn": "123456789101"
}, - "extra": {
- "apiClient": "Payout Software",
- "apiClientVersion": "1.0.0"
}, - "status": {
- "value": "COMPLETED",
- "date": "2021-07-30T14:16:32+03:00"
}, - "creationDate": "2021-07-30T14:16:31+03:00",
- "incomeTypeCode": "1"
}
}
Метод позволяет настроить url для получения уведомлений.
Authorization required | string |
callbackUrl required | string non-empty |
{
}
{
}
Для подключения отправки реестров необходимо написать на ecom@raiffeisen.ru.
Реестры по платежам отправляются на ежедневной основе.
В случае отсуствия операций за день, реестр на следующий день не отправляется.
Формат реестра:
Наименование колонки | Значение |
---|---|
Мерчант | Идентификатор в системе СБП |
Дата операции МСК | Дата и время проведения операции (МСК) |
Тип | Тип операции |
id заказа | Id заказа в системе партнера (id) |
Назначение платежа | Назначение платежа (paymentDetails) |
id клиента | Маскированный код получателя |
Сумма | Сумма транзакции |
Комиссия | Комиссия по транзакции |
Дополнительные поля | Дополнительная информация (extra) |
id операции НСПК | Идентификатор операции в системе НСПК |
Выписку можно выгрузить в банк-клиенте в разных форматах. Пример выписки
В назначении платежа есть системный префикс: номер проводки, тип операции, идентификатор мерчанта НСПК.
В примере выписки указаны стандартные назначения платежа. Вы можете его изменить, для этого необходимо при выплате передавать параметр paymentDetails с вашими данными, при этом ваше значение будет идти после системного префикса.
Если передан paymentDetails, то назначение платежа в выписке будет формироваться как: