Download OpenAPI specification:Download
Для получения тестовых данных для интеграции напишите на ecom@raiffeisen.ru. В ответном письме мы отправим вам токен для авторизации в тестовой среде и два счёта для тестирования сервиса.
Для приёма и / или отправки СБП-платежей оставьте заявку на сайте. Райффайзенбанк выполнит регистрацию. После завершения процесса вы будете оповещены по электронной почте.
Для авторизация запросов необходимы:
Продовый хост: https://pay.raif.ru
Тестовый хост: https://pay-test.raif.ru
BАЖНО: Секретный ключ необходимо хранить в защищенном месте, нельзя публиковать на сторонних ресурсах или передавать третьим лицам.
Межсервисные запросы авторизуются посредством секретного ключа API (SECRET_KEY). Параметр авторизации указывается в заголовке Authorization, значение которого формируется как "Bearer SECRET_KEY".
Посмотреть боевой publicId и сгенерировать ключи можно в личном кабинете во вкладке "Прием платежей"
Для генерации тестового секретного ключа необходимо обратиться по адресу: ecom@raiffeisen.ru
Authorization required |
qrType required | string Enum: "DYNAMIC" "STATIC" Тип платёжной ссылки. Возможные значения: |
qrName | string <= 255 characters Наименование платёжной ссылки |
account required | string 20 characters Банковский счёт ЮЛ или ИП для зачисления средств |
takeTax required | boolean Информация о взимании НДС. Допустимые значения: |
totalTaxAmount | number <float> <= 1000000 Сумма НДС в рублях. Поле не заполняется при takeTax = "false". Поле обязательное при qrType = "DYNAMIC" И takeTax = "true". Не должна превышать значение суммы операции (amount) |
amount | number <float> <= 1000000 Сумма операции в рублях. Поле обязательное при qrType = "DYNAMIC" ИЛИ qrType = "STATIC" И takeTax = "true" И totalTaxAmount не пустое значение. Максимальное значение - 1000000 рублей |
paymentPurpose | string <= 210 characters Назначение платежа. Поле обязательное при qrType = "DYNAMIC". Если назначение платежа не указано, то плательщик обязан заполнить самостоятельно. |
expirationDate | string <date-time> Срок жизни платёжной ссылки. Поле не заполняется при qrType = "STATIC". Если указывается в минутах, то не может быть меньше 1 минуты. Максимальное значение - 90 суток. Если параметр не передан, то по умолчанию QR будет действителен 3 суток. После истечения срока действия QR-кода оплату по нему провести нельзя. |
redirectUrl | string <= 1024 characters Cсылка для автоматического возврата плательщика из приложения банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986 |
orderId | string <= 35 characters ^[A-z0-9-_.]+$ УИП (уникальный идентификатор платежа). Поле не заполняется при qrType = "STATIC" |
extra | object Дополнительные поля. Строка в формате json |
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
qrType required | string Enum: "DYNAMIC" "STATIC" Тип платёжной ссылки |
qrName | string <= 255 characters Наименование платёжной ссылки |
account required | string 20 characters Банковский счёт ЮЛ или ИП для зачисления средств |
takeTax required | boolean Информация о взимании НДС |
totalTaxAmount | number <float> <= 1000000 Сумма НДС в рублях |
amount | number <float> <= 1000000 Сумма операции в рублях |
paymentPurpose | string <= 210 characters Назначение платежа |
creationDate required | string <date-time> Дата создания платёжной ссылки |
expirationDate | string <date-time> Срок жизни платёжной ссылки |
redirectUrl | string <= 1024 characters Cсылка для автоматического возврата плательщика из приложения банка в приложение или на сайт ТСП |
orderId | string <= 35 characters ^[A-z0-9-_.]+$ УИП (уникальный идентификатор платежа) |
payload required | string <= 999 characters Функциональная ссылка |
qrStatus required | string Enum: "CREATED" "EXPIRED" "PAID" Статус платёжной ссылки: |
qrUrl | string URL с изображением зарегистрированного QR-кода в СБП |
extra | object Дополнительные поля |
{- "qrType": "DYNAMIC",
- "qrName": "Оплата услуги",
- "account": 40817810601002630000,
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "paymentPurpose": "Какое-то назначение платежа",
- "expirationDate": "2019-08-24T14:15:22Z",
- "orderId": "281000670LSS7DN18SJQDNP4B05KLJL2",
- "extra": {
- "additionalInfo": "testing operation"
}
}
{- "qrId": "AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5",
- "qrType": "DYNAMIC",
- "qrName": "Оплата услуги",
- "account": 40817810601002630000,
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "paymentPurpose": "Какое-то назначение платежа",
- "creationDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "orderId": "281000670LSS7DN18SJQDNP4B05KLJL2",
- "qrStatus": "CREATED",
- "extra": {
- "additionalInfo": "testing operation"
}
}
page | integer <int32> Default: 1 Номер страницы |
size | integer <int32> Default: 20 Количество отображаемых платёжных ссылок |
fromDate | string <date> Дата начала периода фильтрации по дате создания платёжной ссылки |
toDate | string <date> Дата окончания периода фильтрации по дате создания платёжной ссылки |
qrStatus | string Enum: "CREATED" "EXPIRED" "PAID" Статус платёжной ссылки |
qrType | string Enum: "DYNAMIC" "STATIC" Тип платёжной ссылки |
search | string Поле для поиска по наименованию платёжной ссылке или по сумме операции |
Authorization required |
Array of objects (QrResponseDto) [ items ] | |
object (Meta) |
{- "data": [
- {
- "qrId": "AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5",
- "qrType": "DYNAMIC",
- "qrName": "Оплата услуги",
- "account": 40817810601002630000,
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "paymentPurpose": "Какое-то назначение платежа",
- "creationDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "orderId": "281000670LSS7DN18SJQDNP4B05KLJL2",
- "qrStatus": "CREATED",
- "extra": {
- "additionalInfo": "testing operation"
}
}
], - "meta": {
- "page": "1",
- "size": "20",
- "hasNext": true,
- "count": "14"
}
}
qrId required | string Уникальный идентификатор платёжной ссылки |
Authorization required |
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
qrType required | string Enum: "DYNAMIC" "STATIC" Тип платёжной ссылки |
qrName | string <= 255 characters Наименование платёжной ссылки |
account required | string 20 characters Банковский счёт ЮЛ или ИП для зачисления средств |
takeTax required | boolean Информация о взимании НДС |
totalTaxAmount | number <float> <= 1000000 Сумма НДС в рублях |
amount | number <float> <= 1000000 Сумма операции в рублях |
paymentPurpose | string <= 210 characters Назначение платежа |
creationDate required | string <date-time> Дата создания платёжной ссылки |
expirationDate | string <date-time> Срок жизни платёжной ссылки |
redirectUrl | string <= 1024 characters Cсылка для автоматического возврата плательщика из приложения банка в приложение или на сайт ТСП |
orderId | string <= 35 characters ^[A-z0-9-_.]+$ УИП (уникальный идентификатор платежа) |
payload required | string <= 999 characters Функциональная ссылка |
qrStatus required | string Enum: "CREATED" "EXPIRED" "PAID" Статус платёжной ссылки: |
qrUrl | string URL с изображением зарегистрированного QR-кода в СБП |
extra | object Дополнительные поля |
{- "qrId": "AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5",
- "qrType": "DYNAMIC",
- "qrName": "Оплата услуги",
- "account": 40817810601002630000,
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "paymentPurpose": "Какое-то назначение платежа",
- "creationDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "orderId": "281000670LSS7DN18SJQDNP4B05KLJL2",
- "qrStatus": "CREATED",
- "extra": {
- "additionalInfo": "testing operation"
}
}
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
Authorization required |
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
qrType required | string Enum: "DYNAMIC" "STATIC" Тип платёжной ссылки |
takeTax required | boolean Информация о взимании НДС |
totalTaxAmount | number <float> <= 1000000 Сумма НДС в рублях |
amount | number <float> <= 1000000 Сумма операции в рублях |
paymentPurpose | string <= 210 characters Назначение платежа |
legalName required | string <= 512 characters Сокращённое наименование ЮЛ или ИП получателя |
inn required | string [ 10 .. 12 ] characters ИНН ЮЛ или ИП получателя |
brandName required | string <= 35 characters Торговое наименование ТСП получателя |
address required | string <= 140 characters Фактический адрес ТСП получателя |
required | object Данные банка получателя |
required | object (MccCodeDto) |
redirectUrl | string <= 1024 characters Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП |
{- "qrId": "AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5",
- "qrType": "DYNAMIC",
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "paymentPurpose": "Какое-то назначение платежа",
- "legalName": "ООО Торг",
- "inn": 4285733785,
- "brandName": "ООО Торг на Б.Татарской",
- "address": "г. Москва, ул. Б.Татарская, д.133, стр.1",
- "bank": {
- "id": 100000000007,
- "name": "Райффайзенбанк",
- "bic": 44525700
}, - "mcc": {
- "code": 4121,
- "title": "Лимузины и такси"
},
}
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
Authorization required |
account required | string 20 characters Банковский счёт ЮЛ или ИП для списания средств |
takeTax required | boolean Информация о взимании НДС. Допустимые значения: |
totalTaxAmount | number <float> <= 1000000 Сумма НДС в рублях. Поле не заполняется при takeTax = "false". Если сумма НДС указана в реквизитах платёжной ссылки, то используется значение из этих реквизитов. Иначе, заполняется плательщиком самостоятельно. Сумма НДС не должна превышать сумму операции (amount) |
amount required | number <float> <= 1000000 Сумма операции в рублях. Если сумма операции указана в реквизитах платёжной ссылки, то используется значение из этих реквизитов. Иначе, заполняется плательщиком самостоятельно. Максимальное значение - 1000000 рублей |
paymentPurpose required | string <= 210 characters Назначение платежа. Если назначение указано в реквизитах платёжной ссылки, то используется значение из этих реквизитов. Иначе, заполняется плательщиком самостоятельно. |
extra | object Дополнительные поля |
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
transactionId required | string Идентификатор операции в Райффайзенбанке |
createdDate required | string <date-time> Дата и время создания платежа |
account required | string 20 characters Банковский счёт ЮЛ или ИП для списания средств |
takeTax required | boolean Информация о взимании НДС. Допустимые значения: |
totalTaxAmount | number <float> <= 1000000 Сумма НДС в рублях |
amount required | number <float> <= 1000000 Сумма операции в рублях |
paymentPurpose required | string <= 210 characters Назначение платежа |
extra | object Дополнительные поля |
{- "account": 40817810601002630000,
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "paymentPurpose": "Какое-то назначение платежа",
- "extra": {
- "additionalInfo": "testing operation"
}
}
{- "qrId": "AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5",
- "transactionId": 10092,
- "createdDate": "2019-08-24T14:15:22Z",
- "account": 40817810601002630000,
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "paymentPurpose": "string",
- "extra": {
- "additionalInfo": "testing operation"
}
}
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
transactionId required | string Идентификатор операции в Райффайзенбанке |
Authorization required |
qrId required | string <= 32 characters Уникальный идентификатор платёжной ссылки |
transactionId required | string Идентификатор операции в Райффайзенбанке |
sbpTransactionId | string 32 characters Уникальный идентификатор операции на уровне всей системы СБП |
account required | string 20 characters Счёт списания |
transactionDate required | string <date-time> Дата и время проведения платежа |
createdDate required | string <date-time> Дата и время создания платежа |
paymentStatus required | string Enum: "SUCCESS" "FAILED" "IN_PROGRESS" Статус платежа |
paymentPurpose required | string <= 210 characters Назначение платежа |
takeTax required | boolean Информация о взимании НДС |
totalTaxAmount | number <float> <= 1000000 Сумма НДС в рублях |
amount required | number <float> <= 1000000 Сумма операции в рублях |
extra | object Дополнительные поля |
object (ReceiverDto) |
{- "qrId": "AS1B001K33DNHAKV2KNBJRQK6KHNQKJ5",
- "transactionId": 10092,
- "sbpTransactionId": "B1A2S3D5F6G7H8J9K0C4S5C6D7V5D1K3",
- "account": 40817810601002630000,
- "transactionDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "paymentStatus": "SUCCESS",
- "paymentPurpose": "Какое-то назначение платежа",
- "takeTax": true,
- "totalTaxAmount": 2.41,
- "amount": 8573.79,
- "extra": {
- "additionalInfo": "testing operation"
}, - "receiver": {
- "legalName": "ООО Торг",
- "inn": 4285733785,
- "brandName": "ООО Торг на Б.Татарской",
- "address": "г. Москва, ул. Б.Татарская, д.133, стр.1",
- "mcc": {
- "code": 4121,
- "title": "Лимузины и такси"
}
}
}
Для информирования клиента о проведенных платежах могут использоваться HTTP-уведомления на адрес, указанный в его настройках.
Боевой адрес можно указать в личном кабинете во вкладке "Прием платежей"
Также адрес для тестовой и боевой среды можно указать с помощью метода в API.
Для партнёра уведомление представляет собой входящий POST-запрос, который использует JSON-структуру.
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200.
Ответы с любыми другими HTTP-кодами будут считаться невалидными. Повторные попытки отправки будут проводиться в течение суток с нарастающим интервалом.
Для проверки подлинности уведомления по QRStatic и QRDynamic к данным добавляется подпись в заголовке X-Api-Signature-SHA256
, полученная на основе общего секретного ключа и контрольной строки amount|qrId|transactionId|paymentStatus|transactionDate
с помощью HMAC-SHA-256.
Необходимо проверять сумму для проверки корректности уведомления.
Уведомления отправляются с IP 193.28.44.23
event | string Value: "PAYMENT" Тип операции |
object |
{- "event": "PAYMENT",
- "data": {
- "status": {
- "value": "SUCCESS",
- "date": "2024-07-02T14:43:46+03:00"
}, - "method": "SBP_B2B",
- "orderId": 10092,
- "amount": 101.01,
- "extra": {
- "additionalInfo": "some information"
}, - "params": {
- "qrId": "BD1B0071LNSBDKV99QRPIU3MG60OGATN",
- "paymentPurpose": "Оплата по договору №123456 от 12.06.2024",
- "transactionId": 1234567890123456800,
- "sbpTransactionId": "B1A2S3D5F6G7H8J9K0C4S5C6D7V5D1K3",
- "takeTax": true,
- "totalTaxAmount": 1.01,
- "sender": {
- "bank": {
- "id": 100000000007,
- "name": "Райффайзенбанк",
- "bic": 44525700
}, - "legalName": "АО «Райффайзенбанк»",
- "inn": 7744000302
}
}
}
}
Для подписи уведомлений будет использоваться ключ из заголовка авторизации.
Authorization required |
callbackUrl required | string URL для приёма уведомлений |
callbackUrl required | string URL для приёма уведомлений |
{
}
{
}