Download OpenAPI specification:Download
Свои предложения и идеи о документации можно оставить в репозитории по адресу: https://github.com/Raiffeisen-DGTL/ecom-API/blob/master/sbp.yaml
Для приема СБП-платежей оставьте заявку на сайте.
Райффайзенбанк выполнит регистрацию. После завершения процесса вы будете оповещены по электронной почте.
По закону от 22.05.2003 № 54–ФЗ "О применении контрольно-кассовой техники при осуществлении расчетов в Российской Федерации" при оплате товаров, работ или услуг необходимо формировать фискальный чек и отправлять его в налоговую с помощью кассы.
Райффайзенбанк предоставляет возможность фискализировать чеки через API банка.
B случае если прием платежей планируется на сайте или в мобильном приложении, рекомендуем использовать протокол с отображением QR-кода на нашей форме.
Вы можете предложить клиенту привязать оплату по СБП к программе лояльности или к аккаунту в вашем сервисе. Для этого вы можете сгенерировать QR-код и отобразить его клиенту либо перенаправить его на специальную ссылку, которая есть в ответе на запрос генерации QR-кода на подписку.
После по уникальному идентификатору подписки вы можете обращаться за безакцептным списанием средств с клиента за ваши товары и услуги.
Также есть схема, когда одним запросом создается QR-код на получение оплаты и заведение подписки.
В данном случае клиент проводит оплату, после чего ему отображается окно с предложением подключения подписки.
Клиент может провести оплату, но отказаться от подписки. Также клиент может провести оплату из приложения банка, который не подключен к сервису подписок.
Механизм подписок также поддерживает регулярные автоматические списания, которые банк проводит в указанную дату в 10:00 или 13:00 по московскому времени. На данный момент поддерживаются только ежемесячные списания. При неуспешной оплате в 10:00 производится еще одна попытка в 13:00 того же дня, при повторной ошибке будет еще по две попытки в последующие дни в то же время. Неуспешность платежа не ведет к отмене подписки.
Автоматические списания возможны как для оплаты с последующей подпиской, так и для подписки без оплаты в этот момент. Для автоматических платежей необходимо передать дополнительные параметры списания в методе создания QR или методе создания подписки.
Сообщения о платежах можно получать в виде callback-уведомлений. В теле сообщения в объекте extra будет приходить ключ, переданный ранее при создании подписки или QR. Деактивировать подписку можно методом отмены подписки.
Список готовых решений вы можете посмотреть по ссылке.
Bзаимодействие осуществляется по протоколу HTTP с использованием методов GET/POST/DELETE (в описании каждого запроса явно указан требуемый метод и адрес).
POST-запрос использует JSON-аргументы, GET и DELETE-запросы работают со строками запросов.
API всегда возвращает ответ в формате JSON, независимо от типа запроса.
Стандартный ответ сервиса содержит код сообщения (code). Если в процессе обработки запроса произойдет логическая ошибка, API вернет описание ошибки (message).
Запросы, связанные с получением данных по платежу и управлением платежами, авторизуются посредством секретного ключа API (secretKey). Параметр авторизации указывается в заголовке Authorization, значение которого формируется как "Bearer secretKey".
Для получения тестовых данных для интеграции необходимо заполнить анкету на pay.raif.ru.
Посмотреть боевой sbpMerchantId и сгенерировать ключи можно в личном кабинете во вкладке "Прием платежей".
Секретный ключ необходимо хранить в доверенной среде, так как по нему возможно проведение возвратов.
Мы рекомендуем создавать одного мерчанта на ЮЛ и, соответственно, все его торговые точки. Это избавит от необходимости:
При работе в мобильной версии сайта или приложении мы рекомендуем использовать нашу форму.
Если планируете использовать свою форму, то необходимо реализовать виджет выбора банка, для этого нужно для каждого банка получить его схему:
И подставить ее в url из параметра payload взамен https.
Для корректной работы выбора банка, рекомендуем использовать виджет от НСПК: IOS, Android, WEB - https://sbp.nspk.ru/business_online/#widget-business
Или вы можете воспользоваться нашими SDK: Android - https://github.com/Raiffeisen-DGTL/sbp-sdk-android IOS - https://github.com/Raiffeisen-DGTL/payform-sdk-ios
Для работы с СБП через NFC необходимо реализовать взаимодействие через кассовую платежную ссылку.
Необходимо на каждую кассу сгенерировать QR c типом QRVariable. Из ответа на запрос генерации QR, нужно получить ссылку из параметра payload, в ссылке в начало домена необходимо добавить "web." и полученную ссылку нужно зашить в NFC метку.
Пример:
В payload вы получили https://qr.nspk.ru/AS100004BAL7227F9BNP6KNE007J9B3K?type=01&bank=100000000007,
в NFC метку нужно будет зашить https://web.qr.nspk.ru/AS100004BAL7227F9BNP6KNE007J9B3K?type=01&bank=100000000007
Для полного цикла тестирования оплаты Райффайзенбанк предоставляет возможность использования демо-приложения для сканирования QR-кода от имени покупателя по адресу: https://pay.raif.ru/pay/rfuture/
Указанный адрес можно открыть в браузере любого устройства, где есть камера. Никакого дополнительного софта/плагинов устанавливать не нужно. Далее нажать на значок СБП (при необходимости разрешить браузеру доступ к камере) и поднести к ней изображение QR-кода. Если камера не открылась, проверьте, что в адресе указан протокол HTTPS.
Для реализации взаимодействия с партнёром Райффайзенбанк предоставляет API из следующих запросов:
Метод позволяет генерировать статические QR-коды, динамические QR-коды и кассовую ссылку СБП (QRVariable) для каждой кассы. Также с помощью данного метода вы можете сгенерировать QR-код для оплаты с подпиской.
При каждом новом запросе будет возвращаться новый QR.
Тестовые QR можно оплатить только с помощью тестового приложения.
qrType required | string Тип QR-кода |
account | number <= 20 Счет для зачисления. Параметр используется, если необходимо разносить платежи на разные счета |
additionalInfo | string <= 140 characters Дополнительная информация. Может быть доступна для пользователя в зависимости от банка, назначение платежа плательщика.
Попадает в реестр в колонку "Комментарий"
Не может быть пустым или содержать только пробелы. Может содержать: |
amount | number Сумма в рублях |
currency | string = 3 characters Value: "RUB" Валюта платежа. Обязательно для заполнения, если заполнена сумма |
order required | string [ 1 .. 40 ] characters ^[A-z0-9-_.] Уникальный идентификатор заказа в системе партнёра. Рекомендуем использовать длинный формат без возможности перебора. Например, использовать формат UUID v4 |
paymentDetails | string <= 185 characters Назначение платежа в выписке получателя. |
qrExpirationDate | string <YYYY-MM-DD ТHH24:MM:SS±HH:MM / +nM / +nm> Срок действия QR-кода |
sbpMerchantId required | string <= 12 characters Идентификатор зарегистрированного партнёра в СБП |
redirectUrl | string <uri> Ссылка для автоматического возврата плательщика из приложения банка в приложение или на сайт магазина. Ссылка должна содержать https:// для web страниц или уникальную схему для мобильного приложения |
qrDescription | string <= 32 characters Описание QR-кода |
object Дополнительные поля для свободного заполнения по принципу key-value |
{- "account": 40700000000000000000,
- "additionalInfo": "Доп. информация",
- "amount": 1110.11,
- "currency": "RUB",
- "order": "1-22-333",
- "paymentDetails": "Назначение платежа",
- "qrType": "QRDynamic",
- "extra": {
- "extraParam": "Example extra param"
}, - "qrExpirationDate": "2023-07-22T09:14:38+03:00",
- "sbpMerchantId": "MA0000000552",
- "qrDescription": "QR для оплаты заказа"
}
{- "qrId": "AD1F2CD7212E48FA919AB52EF0AEFB33",
- "qrStatus": "NEW",
- "subscriptionId": "120059"
}
Метод позволяет отменить ранее созданный QR. QRDynamic можно отменить только до момента его оплаты. Для QRVariable отменяет последний активный заказ, до момента его оплаты.
qrId required | string Идентификатор QR кода |
curl --location --request DELETE 'https://pay-test.raif.ru/api/sbp/v2/qrs/ADAC306DDBF443CA94EBE3FA85CA4872' \ --header 'Authorization: Bearer eyJ0eXA***'
Метод позволяет получить данные по зарегистрированному ранее QR-коду
qrId required | string Идентификатор QR кода |
curl --location --request GET 'https://pay-test.raif.ru/api/sbp/v2/qrs/ADAC306DDBF443CA94EBE3FA85CA4872' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "qrId": "AD1F2CD7212E48FA919AB52EF0AEFB33",
- "qrStatus": "NEW",
- "subscriptionId": "120059"
}
Метод позволяет получить данные по платежу по QR. Метод не используется для QRVariable
qrId required | string Идентификатор QR кода |
curl --location --request GET 'https://pay-test.raif.ru/api/sbp/v1/qr/AS6E5A7F9E3A4E648C536EC930AECDF6/payment-info' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "additionalInfo": "Доп. информация",
- "paymentPurpose": "Назначение платежа",
- "amount": 1110.11,
- "code": "SUCCESS",
- "createDate": "2020-01-31T09:14:38.107227+03:00",
- "currency": "RUB",
- "order": "282a60f8-dd75-4286-bde0-af321dd081b3",
- "paymentStatus": "SUCCESS",
- "qrId": "AD100051KNSNR64I98CRUJUASC9M72QT",
- "sbpMerchantId": "MA0000000552",
- "transactionDate": "2019-07-11T17:45:13.109227+03:00",
- "transactionId": 23,
- "qrExpirationDate": "2020-01-15T13:00:40+03:00",
- "extra": {
- "extraParam": "Example extra param"
}
}
Метод позволяет выполнить возврат по платежу, как полный, так и частичный. Также в случае необходимости произвести возврат на другой номер и в другой банк, для этого необходимо заполнить bankAlias и phone, при такой операции будет произведена проверка ФИО плательщика оригинальнй операции с ФИО получателя возврата.
orderId required | string Идентификатор заказа |
refundId required | string Уникальный идентификатор запроса за возврат |
amount required | number Сумма возврата |
paymentDetails | string <= 140 characters Назначение платежа. Не может быть пустым или содержать только пробелы. Может содержать: |
object Объект передается, если требуется сделать возврат в другой банк или на другой номер |
{- "amount": 10,
- "paymentDetails": "Назначение платежа"
}
{- "amount": 333,
- "status": {
- "value": "DECLINED",
- "date": "2024-07-09T15:00:00+03:00",
- "declineReason": "TIMEOUT"
}
}
Метод позволяет получить статус по возврату.
orderId required | string Идентификатор заказа |
refundId required | string Уникальный идентификатор запроса за возврат |
{- "amount": 333,
- "status": {
- "value": "DECLINED",
- "date": "2024-07-09T15:00:00+03:00",
- "declineReason": "TIMEOUT"
}
}
Метод позволяет осуществлять полный и частичный возврат по QRStatic.
amount required | number Сумма возврата в рублях |
order required | string <= 40 characters Уникальный идентификатор заказа в системе партнёра |
paymentDetails | string <= 140 characters Назначение платежа. Не может быть пустым или содержать только пробелы. Может содержать: |
refundId required | string <= 40 characters Уникальный идентификатор запроса на возврат в системе партнера |
transactionId | number Идентификатор операции платежа в Райффайзенбанке, обязателен только для QRStatic |
{- "amount": 150,
- "order": "test_order_007",
- "paymentDetails": "Test",
- "refundId": "test_refundId_007",
- "transactionId": 41
}
{- "code": "SUCCESS",
- "amount": 150,
- "refundStatus": "IN_PROGRESS"
}
Получение списка банков, принимающих возвраты по СБП.
curl --location --request GET 'https://pay-test.raif.ru/api/payments/v2/banks' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>'
[- {
- "alias": "RAIFFEISEN",
- "name": "Райффайзенбанк"
}, - {
- "alias": "TINKOFF",
- "name": "Тинькофф"
}, - {
- "alias": "VTB",
- "name": "ВТБ"
}
]
Для реализации взаимодействия с кассовой ссылкой СБП (QRVariable) Райффайзенбанк предоставляет API из следующих запросов:
Данный тип QR позволяет сгенерировать статическое изображение QR под каждую кассу и далее под каждую продажу создавать заказ с указанием qrId этой кассы.
Схема взаимодействия приведена выше.
Метод позволяет привязать драфт кассовой ссылки (QRVariable) к мерчанту. Используется только для драфтов кассовой ссылки, которые изначально при создании не привязаны ни к какой торговой точке. Метод не используется для QR, созданных стандартным методом. Тело запроса обязательно для передачи, но может быть пустым.
qrId required | string Идентификатор QR кода |
account | string Счет для зачисления |
redirectUrl | string Ссылка для автоматического возврата плательщика из приложения банка в приложение или на сайт магазина. Ссылка должна содержать https:// для web страниц или уникальную схему для мобильного приложения |
qrDescription | string <= 32 characters Описание QR-кода |
{- "account": "40700000000000000000",
- "qrDescription": "QR на главной кассе"
}
{- "qrId": "AD1F2CD7212E48FA919AB52EF0AEFB33",
- "qrStatus": "NEW",
- "subscriptionId": "120059"
}
Метод позволяет создать новый заказ без возможности его редактирования. Для связки заказа с QR-кодом (с типом QRVariable) необходимо также передать блок с данными о QR в теле запроса. Необходимо передать тот идентификатор QR-кода, который был получен в ответе на запрос регистрации QR-кода.
id | string [ 1 .. 40 ] characters ^[A-z0-9-_.] Уникальный идентификатор заказа. Рекомендуется использовать формат, не допускающий возможность перебора, например, UUID v4 |
amount | number <float> Сумма заказа |
comment | string <= 140 characters Комментарий к заказу. Не может быть пустым или содержать только пробелы. Может содержать: |
object Дополнительные поля для свободного заполнения по принципу key-value | |
expirationDate | string <YYYY-MM-DD ТHH24:MM:SS±HH:MM / +nM / +nm> Дата истечения срока заказа |
object Блок с данными QR-кода |
{- "id": "c5b3fd07-c66b-4f11-a8a2-1cc5d319f9e3",
- "amount": 1000.1,
- "comment": "Шоколадный торт",
- "extra": {
- "extraParam": "Example extra param"
}, - "expirationDate": "2023-01-24T11:14:38+03:00",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
- "additionalInfo": "Доп. информация",
- "paymentDetails": "Назначение платежа"
}
}
{- "id": "c5b3fd07-c66b-4f11-a8a2-1cc5d319f9e3",
- "amount": 1000.1,
- "comment": "Шоколадный торт",
- "extra": {
- "extraParam": "Example extra param"
}, - "status": {
- "value": "NEW",
- "date": "2021-12-24T11:15:22.000Z"
}, - "expirationDate": "2022-01-24T11:15:22.000Z",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
- "additionalInfo": "Доп. информация",
- "paymentDetails": "Назначение платежа"
}
}
Метод позволяет получить статус заказа по его номеру. Опрос статуса заказа рекомендуется проводить раз в 2 секунды. При работе в штатном режиме заказ переводится в статус оплаченного в течение 15 секунд с момента оплаты.
orderId required | string Идентификатор заказа |
curl --location --request GET 'https://pay-test.raif.ru/api/payment/v1/orders/c5b3fd07-c66b-4f11-a8a2-1cc5d319f9e3' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "id": "c5b3fd07-c66b-4f11-a8a2-1cc5d319f9e3",
- "amount": 1000.1,
- "comment": "Шоколадный торт",
- "extra": {
- "extraParam": "Example extra param"
}, - "status": {
- "value": "NEW",
- "date": "2021-12-24T11:15:22.000Z"
}, - "expirationDate": "2022-01-24T11:15:22.000Z",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
- "additionalInfo": "Доп. информация",
- "paymentDetails": "Назначение платежа"
}
}
Данный метод позволяет отменить заказ, если он не был оплачен. После отмены заказ будет недоступен для оплаты.
orderId required | string Идентификатор заказа |
curl --location --request DELETE 'https://pay-test.raif.ru/api/payment/v1/orders/c5b3fd07-c66b-4f11-a8a2-1cc5d319f9e3' \ --header 'Authorization: Bearer eyJ0eXA***'
{- "code": "ERROR.INVALID_REQUEST",
- "message": "Недопустимый идентификатор заказа"
}
Метод позволяет выполнить возврат по платежу, как полный, так и частичный. Также в случае необходимости произвести возврат на другой номер и в другой банк, для этого необходимо заполнить bankAlias и phone, при такой операции будет произведена проверка ФИО плательщика оригинальнй операции с ФИО получателя возврата.
orderId required | string Идентификатор заказа |
refundId required | string Уникальный идентификатор запроса за возврат |
amount required | number Сумма возврата |
paymentDetails | string <= 140 characters Назначение платежа. Не может быть пустым или содержать только пробелы. Может содержать: |
object Объект передается, если требуется сделать возврат в другой банк или на другой номер |
{- "amount": 10,
- "paymentDetails": "Назначение платежа"
}
{- "amount": 333,
- "status": {
- "value": "DECLINED",
- "date": "2024-07-09T15:00:00+03:00",
- "declineReason": "TIMEOUT"
}
}
Метод позволяет получить статус по возврату.
orderId required | string Идентификатор заказа |
refundId required | string Уникальный идентификатор запроса за возврат |
{- "amount": 333,
- "status": {
- "value": "DECLINED",
- "date": "2024-07-09T15:00:00+03:00",
- "declineReason": "TIMEOUT"
}
}
Получение списка банков, принимающих возвраты по СБП.
curl --location --request GET 'https://pay-test.raif.ru/api/payments/v2/banks' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>'
[- {
- "alias": "RAIFFEISEN",
- "name": "Райффайзенбанк"
}, - {
- "alias": "TINKOFF",
- "name": "Тинькофф"
}, - {
- "alias": "VTB",
- "name": "ВТБ"
}
]
Для включения функционала подписок необходима дополнительная настройка со стороны банка. Выполняется при обращении в тех. поддержку.
Посмотреть клиентский путь можно с помощью нашей демо страницы - https://pay.raif.ru/pay/configurator/#/subscription
Для реализации возможны два сценария:
Для размещения виджета у себя на сайте необходимо:
Параметр | Описание | Значение |
---|---|---|
src* | URL-адрес встраиваемой страницы | Описано ниже |
width* | Ширина виджета Может быть задана клиентом, но максимальный размер не должен превышать 728 пикселей |
от 280 до 728 пикселей |
height* | Высота виджета Фиксированное значение |
280 пикселей |
style* | Стиль для корректного отображения рамки виджета | "border: 0; border-radius: 16px" |
allowtransparency* | Прозрачный фон виджета | true |
scrolling* | Полосы прокрутки. Не используются | no |
frameborder* | Рамка с эффектом трехмерности. Не отображается | 0 |
Параметр | Описание | Значение |
---|---|---|
HOST* | Хост | * https://pay.raif.ru (продовый хост) * https://pay-test.raif.ru (тестовый хост) |
publicId* | Идентификатор, который используется для открытия платежной формы и не является конфиденциальным | |
subscriptionPurpose* | Цель подписки (отображается на виджете) | |
logo | Ссылка на логотип клиента (отображается на виджете) | |
widgetType* | Тип виджета | * CHARITY (благотворительность) * PAYMENT (оплата) |
buttonColor* | Цвет кнопки | Передавать в формате hex без символа # Например, цвет #774098 нужно передать как buttonColor=774098 |
textButtonColor* | Цвет текста внутри кнопки | Передавать в формате hex без символа # |
offer | Ссылка на оферту клиента Если параметр не передан, то в виджете отобразится только ссылка на условия платежа и подключения подписки |
* Параметр не передан, отобразится текст: "Оплачивая, вы соглашаетесь с условиями" * Параметр передан, отобразится текст: "Оплачивая, вы соглашаетесь с условиями и офертой" |
Пример iframe для виджета на тестовой среде:
<iframe src="https://pay-test.raif.ru/widgets/?publicId=000001780049001-80049001&subscriptionPurpose=%D0%91%D0%BB%D0%B0%D0%B3%D0%BE%D1%82%D0%B2%D0%BE%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%BF%D0%BE%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&logo=https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTqiwtWhVXbOj0gImTuuRHXuDre7gr-MEdQOpsJU9pNy2TRhYDyIuqkPIzZ_0RSyDE2G-M&usqp=CAU&widgetType=CHARITY&buttonColor=774098&textButtonColor=FFFFFF&offer=https://bfkh.ru/oferta_bfkh.pdf" width="630" height="280" style="border: 0; border-radius: 16px" allowtransparency="true" scrolling="no" frameborder="0"></iframe>
Подставьте в iframe продовый хост, также укажите данные своей компании в параметрах URL-адреса встраиваемой страницы и интегрируйте к себе на сайт.
Метод позволяет зарегистрировать QR для последующей привязки счета клиента в выбранном банке. Для мобильного интерфейса используется диплинк, который возвращается в qr.payload. Создание подписки выполняется без авторизации, что позволяет использовать метод на сайте и в мобильном приложении
id | string <= 100 characters Идентификатор подписки на стороне партнера. Рекомендуем использовать длинный формат без возможности перебора, например, использовать формат UUID v4 |
subscriptionPurpose required | string <= 185 characters Описание подписки которое увидит клиент в приложении банка. |
sbpMerchantId required | string Идентификатор зарегистрированного партнёра в СБП |
redirectUrl | string <uri> Ссылка для автоматического возврата плательщика из приложения банка в приложение или на сайт магазина. Ссылка должна содержать https:// для web страниц или уникальную схему для мобильного приложения. |
object (SubscriptionAutoCharge) Данные автоматического списания по подписке. Объект передается, если по подписке необходимо взимать деньги на регуряной основе. Используется как альтернатива методу списания по запросу | |
object Дополнительные поля для свободного заполнения по принципу key-value |
{- "id": "120059",
- "subscriptionPurpose": "Подписка на услуги",
- "sbpMerchantId": "MA0000000552"
}
{- "id": "120059",
- "createDate": "2020-01-31T09:14:38.107227+03:00",
- "status": "INACTIVE",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
}
}
Метод позволяет получить данные по ранее созданной подписке
subscriptionId required | string Идентификатор подписки |
curl --location --request GET 'https://pay-test.raif.ru/api/sbp/v1/subscriptions/{subscriptionId}' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>'
{- "id": "120059",
- "createDate": "2020-01-31T09:14:38.107227+03:00",
- "status": "INACTIVE",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
}
}
Метод позволяет отменить подписку. Если подписка включает регулярные автоматические списания, то они также будут отменены.
subscriptionId required | string Идентификатор подписки |
curl --location --request DELETE 'https://pay-test.raif.ru/api/sbp/v1/subscriptions/{subscriptionId}' \ --header 'Authorization: Bearer <secretKey>'
{- "code": "ERROR.INVALID_REQUEST",
- "message": "Недопустимый идентификатор заказа"
}
Метод позволяет создать заказ и инициировать списание со счета клиента в рамках созданной подписки. Метод предназначен только для списания средств по подписке, у которой не настроено автоматическое списание. Работает асинхронно, для получения статуса платежа нужно использовать метод GET. При успешном списании будет направлено стандартное уведомление об оплате.
Для возврата средств по подписке используется метод - Оформление возврата по платежу
subscriptionId required | string Идентификатор подписки |
account | number Счет для зачисления. Параметр используется, если необходимо разносить платежи на разные счета. Не используется в тестовой среде |
additionalInfo required | string <= 140 characters Дополнительная информация, заполняемая по желанию партнёра. Может быть доступна для пользователя в зависимости от банка.Не может быть пустым или содержать только пробелы. Может содержать: |
amount required | number Сумма в рублях. |
currency required | string Value: "RUB" Валюта платежа. |
order | string <= 40 characters Уникальный идентификатор заказа в системе партнёра. Рекомендуем использовать длинный формат без возможности перебора, например, использовать формат UUID v4 |
paymentDetails | string <= 185 characters Назначение платежа. Необязательно для заполнения. |
Array of objects (Splits) Блок данных для работы со сплитованием |
{- "account": 40700000000000000000,
- "additionalInfo": "Доп. информация",
- "amount": 1110,
- "currency": "RUB",
- "order": "1-22-333",
- "paymentDetails": "Назначение платежа"
}
{- "additionalInfo": "Доп. информация",
- "paymentDetails": "Назначение платежа",
- "amount": 1110,
- "currency": "RUB",
- "order": "282a60f8-dd75-4286-bde0-af321dd081b3",
- "paymentStatus": "IN_PROGRESS",
- "qrId": "AD100051KNSNR64I98CRUJUASC9M72QT",
- "sbpMerchantId": "MA0000000552",
- "splits": [
- {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}, - {
- "accountId": "484afd1e-eefa-4a98-881d-af166860f06c",
- "amount": 1009.77
}
]
}
Метод позволяет получить данные по платежу, сделанному по подписке
subscriptionId required | string Идентификатор подписки |
orderId required | string Идентификатор заказа |
curl --location --request GET 'https://pay-test.raif.ru/api/sbp/v1/subscriptions/{subscriptionId}/orders/{orderId}' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>' \ --data-raw '{ "account": 40700000000000000000, "additionalInfo": "Доп. информация", "amount": 1110, "currency": "RUB", "order": "282a60f8-dd75-4286-bde0-af321dd081b3", "paymentDetails": "Назначение платежа" }'
{- "additionalInfo": "Доп. информация",
- "paymentDetails": "Назначение платежа",
- "amount": 1110,
- "currency": "RUB",
- "order": "282a60f8-dd75-4286-bde0-af321dd081b3",
- "paymentStatus": "IN_PROGRESS",
- "qrId": "AD100051KNSNR64I98CRUJUASC9M72QT",
- "sbpMerchantId": "MA0000000552",
- "splits": [
- {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}, - {
- "accountId": "484afd1e-eefa-4a98-881d-af166860f06c",
- "amount": 1009.77
}
]
}
Разделение платежа существенно облегчает взаиморасчеты с контрагентами, так как позволяет ТСП передавать данные для распеределения при создании заказа.
Для управления счетами необходимо обратиться в тех. поддержку банка ecom@raiffeisen.ru.
Сценарий позволяет создавать и изменять заказы по кассовым ссылкам, регистрировать динамические QR коды с распределением денежных средств на счета контрагентов.
Денежные средства распределяются на счета контрагентов на следующий день после совершения платежа. Можно указывать от одного счета.
Метод позволяет создать заказ с привязкой к существующему QR коду (для QRVariable) или с созданием нового QR (для других типов QR).
Также с помощью данного метода вы можете сгенерировать QR код для оплаты с подпиской.
Для сплитования небходимо заполнить блок splits
.
publicId required | string Идентификатор мерчанта |
id | string [ 1 .. 40 ] characters ^[A-z0-9-_.] Уникальный идентификатор заказа. Рекомендуется использовать формат, не допускающий возможность перебора, например, UUID v4 |
amount required | number <float> Сумма заказа |
comment | string <= 140 characters Комментарий к заказу. Не может быть пустым или содержать только пробелы. Может содержать: |
object Дополнительные поля для свободного заполнения по принципу key-value | |
expirationDate | string <YYYY-MM-DDТHH24:MM:SS±HH:MM / +nM / +nm> Дата истечения срока заказа |
Array of objects (Splits) Блок данных для работы со сплитованием | |
CreateOrderQrVariableRequest (object) or CreateOrderQrDynamicRequest (object) |
{- "id": "5d5d52a0-2c7a-4a41-9d9c-c0f91f5ce266",
- "amount": 432.19,
- "comment": "Комментарий к заказу",
- "extra": {
- "property1": "value1",
- "property2": "value2"
}, - "expirationDate": "2025-05-01T16:34:09+03:00",
- "qr": {
- "account": "40702810500000000045",
- "paymentDetails": "Благотворительное пожертвование",
- "type": "QRDynamic",
- "description": "QR для оплаты заказа"
}
}
{- "id": "5d5d52a0-2c7a-4a41-9d9c-c0f91f5ce266",
- "amount": 432.19,
- "comment": "Комментарий к заказу",
- "extra": { },
- "status": {
- "value": "NEW",
- "date": "2024-11-29T19:43:54+03:00"
}, - "expirationDate": "2025-11-29T19:43:54+03:00",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
- "account": "40702810500000000045",
- "paymentDetails": "Благотворительное пожертвование",
- "type": "QRDynamic",
- "description": "QR для главной страницы",
- "subscription": {
- "id": "string",
- "subscriptionPurpose": "string",
- "autoCharge": {
- "frequency": "MONTHLY",
- "firstChargeDate": "2024-01-25",
- "amount": 103.32
}, - "extra": { },
- "bank": "string",
- "status": "string",
- "createDate": "string"
},
}, - "splits": [
- {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}
]
}
Метод позволяет создать или изменить заказ.
publicId required | string Идентификатор мерчанта |
orderId required | string Идентификатор заказа |
amount required | number <float> Сумма заказа |
comment | string <= 140 characters Комментарий к заказу. Не может быть пустым или содержать только пробелы. Может содержать: |
object Дополнительные поля для свободного заполнения по принципу key-value | |
expirationDate | string <YYYY-MM-DDТHH24:MM:SS±HH:MM / +nM / +nm> Дата истечения срока заказа |
Array of objects (Splits) Блок данных для работы со сплитованием | |
CreateOrderQrVariableRequest (object) or CreateOrderQrDynamicRequest (object) |
{- "amount": 432.19,
- "comment": "Комментарий к заказу",
- "extra": {
- "property1": "value1",
- "property2": "value2"
}, - "expirationDate": "2025-05-01T16:34:09+03:00",
- "qr": {
- "account": "40702810500000000045",
- "paymentDetails": "Благотворительное пожертвование",
- "type": "QRDynamic",
- "description": "QR для оплаты заказа"
}
}
{- "id": "5d5d52a0-2c7a-4a41-9d9c-c0f91f5ce266",
- "amount": 432.19,
- "comment": "Комментарий к заказу",
- "extra": { },
- "status": {
- "value": "NEW",
- "date": "2024-11-29T19:43:54+03:00"
}, - "expirationDate": "2025-11-29T19:43:54+03:00",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
- "account": "40702810500000000045",
- "paymentDetails": "Благотворительное пожертвование",
- "type": "QRDynamic",
- "description": "QR для главной страницы",
- "subscription": {
- "id": "string",
- "subscriptionPurpose": "string",
- "autoCharge": {
- "frequency": "MONTHLY",
- "firstChargeDate": "2024-01-25",
- "amount": 103.32
}, - "extra": { },
- "bank": "string",
- "status": "string",
- "createDate": "string"
},
}, - "splits": [
- {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}
]
}
Метод позволяет получить статус заказа по его номеру. Опрос статуса заказа рекомендуется проводить раз в 2 секунды. При работе в штатном режиме заказ переводится в статус оплаченного в течение 15 секунд с момента оплаты.
publicId required | string Идентификатор мерчанта |
orderId required | string Идентификатор заказа |
curl --location --request GET 'https://pay-test.raif.ru/api/payments/v2/merchants/{publicId}/orders/' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>'
{- "id": "5d5d52a0-2c7a-4a41-9d9c-c0f91f5ce266",
- "amount": 432.19,
- "comment": "Комментарий к заказу",
- "extra": { },
- "status": {
- "value": "NEW",
- "date": "2024-11-29T19:43:54+03:00"
}, - "expirationDate": "2025-11-29T19:43:54+03:00",
- "qr": {
- "id": "AD100004BAL7227F9BNP6KNE007J9B3K",
- "account": "40702810500000000045",
- "paymentDetails": "Благотворительное пожертвование",
- "type": "QRDynamic",
- "description": "QR для главной страницы",
- "subscription": {
- "id": "string",
- "subscriptionPurpose": "string",
- "autoCharge": {
- "frequency": "MONTHLY",
- "firstChargeDate": "2024-01-25",
- "amount": 103.32
}, - "extra": { },
- "bank": "string",
- "status": "string",
- "createDate": "string"
},
}, - "splits": [
- {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}
]
}
Данный метод позволяет отменить заказ, если он не был оплачен. После отмены заказ будет недоступен для оплаты.
publicId required | string Идентификатор мерчанта |
orderId required | string Идентификатор заказа |
curl --location --request GET 'https://pay-test.raif.ru/api/payments/v2/merchants/{publicId}/orders/' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>'
{- "code": "ERROR.INVALID_REQUEST",
- "message": "Недопустимый идентификатор заказа"
}
Метод позволяет выполнить возврат по платежу, как полный, так и частичный. Также в случае необходимости произвести возврат на другой номер и в другой банк, для этого необходимо заполнить bankAlias и phone, при такой операции будет произведена проверка ФИО плательщика оригинальнй операции с ФИО получателя возврата.
orderId required | string Идентификатор заказа |
publicId required | string Идентификатор мерчанта |
id | string |
amount required | number <float> Сумма возврата |
paymentDetails | string <= 140 characters Назначение платежа. Не может быть пустым или содержать только пробелы. Может содержать: |
Array of objects (Splits) Блок данных для работы со сплитованием | |
object Объект передается, если требуется сделать возврат в другой банк или на другой номер |
{- "id": "348230ad-2a8d-4976-af4f-8603d11cba8c",
- "amount": 432.21,
- "paymentDetails": "Возврат за обувь"
}
{- "id": "348230ad-2a8d-4976-af4f-8603d11cba8c",
- "amount": 432.21,
- "paymentDetails": "string",
- "customer": {
- "bankAlias": "RAIFFEISEN",
- "phone": "79161111111"
}, - "splits": [
- {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}
], - "status": {
- "value": "IN_PROGRESS",
- "date": "2019-08-24T14:15:22Z",
- "declineReason": "TIMEOUT"
}
}
Метод позволяет получить статус по возврату.
publicId required | string Идентификатор мерчанта |
orderId required | string Идентификатор заказа |
refundId required | string Идентификатор возврата |
curl --location --request GET 'https://pay-test.raif.ru/api/payments/v2/merchants/{publicId}/orders/{orderId}/refunds/{refundId}' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>'
{- "id": "348230ad-2a8d-4976-af4f-8603d11cba8c",
- "amount": 432.21,
- "paymentDetails": "string",
- "customer": {
- "bankAlias": "RAIFFEISEN",
- "phone": "79161111111"
}, - "splits": [
- {
- "accountId": "ea6f870f-debd-48cc-a83f-b87e7cee8582",
- "amount": 10.23
}
], - "status": {
- "value": "IN_PROGRESS",
- "date": "2019-08-24T14:15:22Z",
- "declineReason": "TIMEOUT"
}
}
Получение списка банков, принимающих возвраты по СБП.
curl --location --request GET 'https://pay-test.raif.ru/api/payments/v2/banks' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <secretKey>'
[- {
- "alias": "RAIFFEISEN",
- "name": "Райффайзенбанк"
}, - {
- "alias": "TINKOFF",
- "name": "Тинькофф"
}, - {
- "alias": "VTB",
- "name": "ВТБ"
}
]
Для информирования ТСП о проведенных платежах, возвратах и изменениях статусов подписок могут использоваться HTTP-уведомления на адрес, указанный в его настройках.
Боевой адрес можно указать в личном кабинете во вкладке "Прием платежей".
Также адрес для тестовой и боевой среды можно указать с помощью метода в API.
Для партнёра уведомление представляет собой входящий POST-запрос, который использует JSON-структуру.
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200.
Ответы с любыми другими HTTP-кодами будут считаться невалидными. Повторные попытки отправки будут проводиться в течение суток с нарастающим интервалом.
Для проверки подлинности уведомления по QRStatic и QRDynamic к данным добавляется подпись в заголовке x-api-signature-sha256, полученная на основе общего секретного ключа и контрольной строки amount|sbpMerchantId|order|paymentStatus|transactionDate
с помощью HMAC-SHA-256.
Для проверки подлинности уведомления по QRVariable к данным добавляется подпись в заголовке x-api-signature-sha256, полученная на основе общего секретного ключа и контрольной строки amount|publicId|order|transaction.status.value|transaction.status.date
с помощью HMAC-SHA-256.
Для проверки подлинности уведомления по возврату к данным добавляется подпись в заголовке x-api-signature-sha256, полученная на основе общего секретного ключа и контрольной строки amount|publicId|refund.id|status.value|status.date
с помощью HMAC-SHA-256.
Для проверки подлинности уведомления по изменению статуса подписки к данным добавляется подпись в заголовке x-api-signature-sha256, полученная на основе общего секретного ключа и контрольной строки public|id|status|date
с помощью HMAC-SHA-256.
Уведомления отправляются с IP 193.28.44.23
Для проверки подлинности уведомления к данным добавляется подпись в заголовке, полученная на основе общего секретного ключа и контрольной строки с помощью HMAC-SHA-256.
X-Api-Signature-SHA256 required | string Заполняется подписью, полученной алгоритмом HMAC-SHA-256 с использованием выбранного секретного ключа и контрольной строки |
event | string Value: "payment" Тип сообщения |
object |
{- "event": "payment",
- "transaction": {
- "id": 120059,
- "orderId": "testOrder",
- "status": {
- "value": "SUCCESS",
- "date": "2019-07-11T17:45:13+03:00"
}, - "paymentMethod": "sbp",
- "paymentParams": {
- "qrId": "AD100051KNSNR64I98CRUJUASC9M72QT"
}, - "amount": 12500.5,
- "comment": "Покупка шоколадного торта",
- "extra": {
- "extraParam": "Example extra param"
}
}
}
Для проверки подлинности уведомления к данным добавляется подпись в заголовке, полученная на основе общего секретного ключа и контрольной строки с помощью HMAC-SHA-256.
X-Api-Signature-SHA256 required | string Заполняется подписью, полученной алгоритмом HMAC-SHA-256 с использованием выбранного секретного ключа и контрольной строки |
transactionId | number Идентификатор операции платежа в Райффайзенбанке |
qrId | string <= 32 characters Уникальный идентификатор QR-кода, выданный СБП при запросе генерации QR-кода |
sbpMerchantId | string <= 12 characters Идентификатор зарегистрированного ТСП в СБП |
merchantId | string Идентификатор ТСП в Райффайзенбанке |
amount | number Сумма в рублях |
currency | string <= 3 characters Валюта платежа |
transactionDate | string <YYYY-MM-DD ТHH24:MM:SS±HH:MM> Дата и время проведения платежа |
paymentStatus | string Статус проведения платежа |
additionalInfo | string <= 140 characters Дополнительная информация, заполняемая по желанию ТСП при генерации QR-кода. Может быть доступна для пользователя в зависимости от банка. Не может быть пустым или содержать только пробелы. Может содержать: |
order | string <= 40 characters Уникальный идентификатор заказа |
createDate | string <YYYY-MM-DD ТHH24:MM:SS±HH:MM> Время формирования заявки |
object Дополнительные поля, переданные в запросе ранее |
{- "transactionId": 41,
- "qrId": "AS100032PQ7739G58NCQ457RA2OG82JP",
- "sbpMerchantId": "MA0000000279",
- "merchantId": "1780672001",
- "amount": 10,
- "currency": "RUB",
- "transactionDate": "2020-01-15T16:01:49.043924+03:00",
- "paymentStatus": "SUCCESS",
- "additionalInfo": "Some info",
- "order": "testOrder",
- "createDate": "2020-01-15T13:00:40+03:00",
- "extra": {
- "extraParam": "Example extra param"
}
}
Для проверки подлинности уведомления к данным добавляется подпись в заголовке, полученная на основе общего секретного ключа и контрольной строки с помощью HMAC-SHA-256.
X-Api-Signature-SHA256 required | string Заполняется подписью, полученной алгоритмом HMAC-SHA-256 с использованием выбранного секретного ключа и контрольной строки |
object |
{- "refund": {
- "id": "1f8124ja91-1293f9a",
- "sbp": {
- "sbpTransactionId": "B7CF9F02B5224F34913FB5BB311CED39"
}, - "amount": 15005.5,
- "status": {
- "value": "COMPLETED",
- "date": "2024-07-08T14:50:59+03:00"
}, - "paymentParams": {
- "transactionId": 1345,
- "orderId": "48192e79-41ee-4bde-ac61-2ad08cbf9c03",
- "qrId": "ASE6478634D84E8CB8030FF4EDF7655F"
}
}
}
Для проверки подлинности уведомления к данным добавляется подпись в заголовке, полученная на основе общего секретного ключа и контрольной строки с помощью HMAC-SHA-256.
X-Api-Signature-SHA256 required | string Заполняется подписью, полученной алгоритмом HMAC-SHA-256 с использованием выбранного секретного ключа и контрольной строки |
event | string Value: "SUBSCRIPTION" Тип сообщения |
object |
{- "event": "SUBSCRIPTION",
- "data": {
- "id": "c5b3fd06",
- "publicId": "MA0000000552",
- "bank": {
- "name": "Райффайзенбанк",
- "memberId": "100000000007"
}, - "status": {
- "value": "SUBSCRIBED",
- "date": "2024-08-06T14:50:59+03:00"
}, - "qr": {
- "id": "AD399130040A4FFAB09111CB6304BF8D"
}
}
}
Для подписи уведомлений будет использоваться ключ из заголовка авторизации.
callbackUrl required | string non-empty |
{
}
{
}
Для подключения отправки реестров необходимо написать на ecom@raiffeisen.ru.
Реестры по платежам отправляются на ежедневной основе.
В случае отсуствия операций за день, реестр на следующий день не отправляется.
Формат реестра:
Наименование колонки | Значение |
---|---|
Мерчант | Идентификатор в системе СБП |
Дата операции МСК | Дата и время проведения операции (МСК) |
Тип | Тип операции |
id заказа | Id заказа в системе партнера (order) |
id возврата | Id возврата в системе партнера (refundId) |
Способ оплаты | Instant Payment QR |
Данные оплаты | QR id |
id клиента | Маскированный код плательщика |
Сумма | Сумма транзакции |
Комиссия | Комиссия по транзакции |
id операции НСПК | Идентификатор операции в системе НСПК |
Назначение платежа | Назначение платежа (paymentDetails) |
Комментарий | Комментарий к заказу |
Дополнительные поля | Дополнительная информация (пока не используется) |
id проводки | Номер банковской проводки |
Выписку может выгрузить в банк-клиенте в следующих форматах:
В назначении платежа есть системиный префикс: номер проводки, тип операции, идентификатор мерчанта НСПК. В примерах выписки указаны стандартные назначение платежа. Вы можете его изменить, для этого необходимо при генерации QR-кода и возвратах передавать параметр paymentDetails с вашими данными, при этом ваше значение будет идти после системного префикса.
Методы позволяют получить список операций и итоговые суммы за определенный промежуток времени. Возможно использование методов для закрытия кассового периода.
Отчёт по транзакциям за указанный период (не более трёх дней)
from required | string <URL encoded> YYYY-MM-DD ТHH24:MM:SS±HH:MM Дата и время начала выборки |
to required | string <URL encoded> YYYY-MM-DD ТHH24:MM:SS±HH:MM Дата и время окончания выборки |
operationTypes | string Enum: "Payment" "Refund" Фильтр по типу операции. Если значение не передано - выгружаются все типы операций |
qrId | string Фильтр по QR-коду. Если значение не передано - выгружаются все операции по мерчанту |
curl --location --request GET 'https://pay-test.raif.ru/api/report/v1/transactions/summary?from=2023-01-10T00%3A00%3A00%2B03%3A00&to=2023-01-10T23%3A59%3A59%2B03%3A00&qrId=AS37213C7A834E7FBBB76B6D06DFB4B9' \ --header 'Authorization: Bearer eyJ0eXAi***'
{- "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 <URL encoded> YYYY-MM-DD ТHH24:MM:SS±HH:MM Дата и время начала выборки |
to required | string <URL encoded> YYYY-MM-DD ТHH24:MM:SS±HH:MM Дата и время окончания выборки |
operationTypes | string Enum: "Payment" "Refund" Фильтр по типу операции. Если значение не передано - выгружаются все типы операций |
qrId | string Фильтр по QR-коду. Если значение не передано - выгружаются все операции по мерчанту |
{- "sbp": {
- "payment": [
- {
- "orderId": "a3294_3FFERSer_RE",
- "amount": 77,
- "transactionDate": "2022-12-08T13:21:04.631543+03:00",
- "paymentSystem": "Instant Payment QR",
- "paymentDetails": "Благотворительное пожертвование",
- "transactionId": 178657,
- "clientId": "007910******4567",
- "qrId": "AS1A007L7B8IPA1F8CBQ8RK2D27FHST9",
- "sbpTransactionId": "A23091339574920E000009529E6B66DF",
- "orderComment": "Комментарий",
- "fee": 0.31
}
], - "refund": [
- {
- "orderId": "a3294_3FFERSer_RE",
- "amount": 17,
- "transactionDate": "2022-12-09T13:17:04.631543+03:00",
- "paymentSystem": "Instant Payment QR",
- "paymentDetails": "Возврат денежных средств",
- "transactionId": 178658,
- "clientId": "007910******4567",
- "qrId": "AS1A007L7B8IPA1F8CBQ8RK2D27FHST9",
- "sbpTransactionId": "B229701403532102000016268EEA632B",
- "refundId": "refundOrder1",
- "fee": 0
}
]
}, - "card": {
- "payment": [
- {
- "orderId": "xU5q5XG8m3oaDGKOTWg01671000652444",
- "amount": 14,
- "transactionDate": "2022-12-14T09:51:02.339+03:00",
- "paymentSystem": "VISA",
- "paymentDetails": "Назначение платежа",
- "transactionId": 5252420,
- "clientId": "200043****823",
- "authCode": "259AA",
- "rrn": "935014591810",
- "orderComment": "Благотворительное пожертвование",
- "fee": 0.38
}
], - "refund": [
- {
- "orderId": "xU5q5XG8m3oaDGKOTWg01671000652444",
- "amount": 13,
- "transactionDate": "2022-12-14T10:01:24.84+03:00",
- "paymentSystem": "VISA",
- "paymentDetails": "Назначение платежа",
- "transactionId": 5252440,
- "clientId": "200043****823",
- "authCode": "259AA",
- "rrn": "935014591810",
- "refundId": "refundId1",
- "fee": 0
}
]
}
}
Если в процессе обработки любого запроса произойдет логическая ошибка, API вернет описание ошибки (message) и код сообщения (code).
Описание основных ошибок:
code | message |
---|---|
ERROR.ACCOUNT_IS_NOT_REGISTERED | Указан неверный счет. Проверьте его или удалите. Параметр является необязательным |
ERROR.INVALID_REQUEST | Не передан обязательный параметр |
ERROR.QR_EXPIRATION_DATE_NOT_VALID | Неверная дата истечения QR-кода |
ERROR.MERCHANT_NOT_REGISTERED | Партнер с ID * не зарегистрирован |
ERROR.ORDER_NUMBER_ALREADY_REGISTERED | QR-код с номером заказа *, партнера * и успешными платежами уже зарегистрирован |
ERROR.INVALID_REQUEST | Передана некорректная сумма платежа |
ERROR.SBP_MERCHANT_ID_IS_MISSING | SbpMerchantId партнера не указан |
ERROR.DYNAMIC_QR_WITHOUT_AMOUNT | Не передана сумма для динамического QR-кода |
ERROR.INVALID_ORDER | В номере заказа поддерживаются A-z09_-. |
ERROR.NOT_FOUND | QR-код не найден у данного партнера |
ERROR.REFUND_INSUFFICIENT_FUNDS | Сумма возврата больше суммы остатка по платежу |
ERROR.INVALID_REQUEST | Сумма возврата не может быть меньше 1 копейки |
ERROR.REFUND_NOT_FOUND | Возврат с refundId * не найден |
ERROR.ERROR_WRONG_QR_STATUS | Нельзя сменить статус QR-кода с * на * |
В таблице отражены важные изменения в методах API.
Дата | Описание |
---|---|
18.10.2024 | * Добавлен метод разделения платежа при создании qr или заказов на кассовую ссылку |
10.07.2024 | * Добавлены уведомления на операции возвратов |
18.04.2024 | * В методы сверок операций за период добавлен новый параметр - комиссия |
09.11.2023 | * Добавлен метод получения списка банков для возвратов * Добавлен новый метод возврата, позволяющий совершить возврат на другие реквизиты * Добавлен новый метод получения статуса возврата, который позволяет получить причину отклонения операции |
19.06.2023 | * Добавлена ссылка на SDK от НСПК , для реализации виджета выбора банка |
18.05.2023 | * В методы создания и привязки QR добавлен новый параметр qrDescription |
29.03.2023 | * Внесены ограничения по полям additionalInfo при создании заказов/qr и paymentDetails при возвратах |
14.12.2022 | * Добавлены методы для сверки операций по картам и СБП |
02.11.2022 | * Дополнен раздел "Подписки": добавлено описание методов работы |
24.08.2022 | * Дополнен раздел "Авторизация": добавлено описание подхода по созданию одного мерчанта на все торговые точки * Метод регистрации QR вынесен в отдельный блок "Создание и отмена QR-кода (все типы QR)" * Переименован раздел "Работа с QR-кодом" → "Статический и динамический QR-коды (QRStatic, QRDynamic)" * Переименован раздел "Кассовая ссылка СБП" → "Кассовая ссылка СБП (QRVariable)" * Добавлено описание статусов платежа в ответе на запрос статуса платежа по QR v1/qr/{qrId}/payment-info * Удалены пометки required из ответов на некоторые запросы * Корректировки по тексту |
29.07.2022 | * Изменены хосты: * Боевой с e-commerce.raiffeisen.ru на pay.raif.ru * Тестовый c test.ecom.raiffeisen.ru на pay-test.raif.ru |
27.07.2022 | * Добавлен параметр paymentDetails для возвратов по заказам по QRVariable |
30.05.2022 | * Добавлен параметр redirectUrl, который в случае успешной операции, позволяет передать ссылку для перенаправления клиента из приложения банка |
30.12.2021 | * Обновлены диаграммы последовательности UML в разделе "Общие схемы работы" |
02.12.2021 | * Добавлена диаграмма последовательности для работы с кассовой ссылкой СБП * API для регистрации QR-кода версии v1 помечен как устаревший * Добавлена новая версия v2 API для регистрации QR-кода * Добавлен новый тип QR-кода QRVariable для кассовой ссылки СБП * Добавлен новый API для создания заказов под QRVariable * Добавлены пример JSON и cURL-запросов * Дополнен справочник ошибок * Внесены общие правки |
09.09.2021 | * Исправлена длина параметра paymentDetails при операциях возвратах |
06.07.2021 | * Реализовали сервис подписок |
02.06.2021 | * Добавили новый метод отмены QR-кода * Появилась новая версия запроса на получения данных по QR-коду |