Download OpenAPI specification:Download
Для подключения заполните заявку в онлайн-банке или мобильном приложении.
По вопросам работы с API можно обращаться в службу поддержки Raiffeisenbank:
Чтобы принимать платежи:
Данная схема работы требует наличие сертификации PCI DSS у вашей компании
Для проведения платежа с использованием собственной платежной формы, потребуется поддержать интеграцию с методами API Банка.
1. Создание платежа
Для проведения платежа первоначально необходимо создать платеж с помощью метода [Создание платежа]. В результате выполнения метода платеж будет сформирован в системе Банка.
В ответе метода вернется объект платежа со статусом NEW
.
2. Продолжение платежа
После того, как платеж был создан, необходимо продолжить обработку платежа с помощью метода [Продолжение платежа].
SUCCESS
), если оплата пройдет по 3DS v.2 frictionless flow.3. Вызов ACS эмитента для прохождения 3DS и ввода OTP-кода пользователем
Если в результате выполнения метода [Продолжение платежа] вернулся статус 3DS_PENDING
,
мерчанту необходимо перенаправить плательщика на страницу авторизации Банка-эмитента, а также отправить POST-запрос в сервис аутентификации эмитента.
acsUrl
3DS v.1:
Параметр | Описание |
---|---|
MD |
Информация для идентификации платежа. Параметр возвращается в ответе метода [Продолжение платежа]. |
PaReq |
Параметр, необходимый для аутентификации плательщика. Параметр возвращается в ответе метода [Продолжение платежа]. |
TermUrl |
URL-адрес на стороне мерчанта, на который ACS вернет ответ после прохождения 3DS. Также на данный адрес будет перенаправлен плательщик после успешного ввода OTP-кода. |
3DS v.2:
Параметр | Описание |
---|---|
creq |
Данные платежной сессии, необходимые для проведения 3DS аутентификации. Параметр возвращается в ответе метода [Продолжение платежа]. |
Пример отправки POST-запроса в сторону ACS эмитента, для продолжения 3DS v.2:
export function createContinuePayment3ds2Iframe(acsUrl, creq) {
const container = document.getElementById('otp-page');
const iframe = window.document.createElement('iframe');
iframe.id = 'threeDs-2-iframe';
iframe.style = 'height: 100%; width: 100%; overflow: hidden; position: absolute; top: 0; left: 0; background: white; z-index: 1000; border: none;';
const html = `
<body>
<div>
<form name="form" action="${acsUrl}" method="post">
<input type="hidden" name="creq" value="${creq}">
</form>
</div>
</body>
<script>
window.document.form.submit();
</script>
`;
container.appendChild(iframe);
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(html);
}
После вызова ACS и успешного ввода OTP-кода пользователем, на termUrl
мерчанта поступит входящий запрос от эмитента с параметрами cres
(в случае 3DS v.2 challenge), либо pares
и md
в случае 3DS v.1.
Пример получения pares через подписку и прослушивания post-message:
window.addEventListener('message', (event) => {
try {
if (typeof event.data !== 'string') return;
const { pares } = JSON.parse(event.data);
// Вызываем необходимый метод подтверждения 3DS для завершения платежа
} catch (error) {
console.error('Ошибка при обработке message:', error);
}
});
4. Подтверждение 3DS и завершение платежа
Для завершения оплаты необходимо завершить обработку платежа, используя методы [Подтверждение 3DS v.1], либо [Подтверждение 3DS v.2].
Пример с завершением платежа по 3DS v.1:
window.parent.postMessage(JSON.stringify({
pares: paRes
}), '*');
Пример с завершением платежа по 3DS v.2:
window.parent.postMessage(JSON.stringify({
cres: document.getElementById('data').dataset.cres,
}), '*');
Взаимодействие осуществляется по протоколу 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
Для полного цикла тестирования оплаты необходимо указывать сумму платежа больше 10 рублей.
Тестовые карты для сценариев проведения платежа
PAN карты | Срок действия карты | CVV | OTP код | 3DS Сценарий |
---|---|---|---|---|
2201382000000039 | 12/35 | 880 | 3DS2 Frictionless | |
2201382000000021 | 12/35 | 880 | 1234 | 3DS2 Challenge |
4000001000000018 | 12/35 | 880 | 1234 | 3DS1 Flow |
Для работы с карточными платежами с вашей формой, потребуется PCI DSS сертификация вашей организации.
PCI DSS — стандарт информационной безопасности, принятый в индустрии платежных карт Visa и MasterCard. Соблюдать требования стандарта обязаны все компании, которые принимают оплату по картам на собственной платежной форме.
Для фискализации платежей можно использовать API фискализации банка
Перед началом работы рекомендуется ознакомиться со сценарием проведения платежа: Сценарий проведения платежа.
API для данного сценария может быть расширяемым.
Для мерчантов с наличием сертификата PCI DSS
Метод позволяет сформировать платеж в системе Банка.
Примечания:
acsUrl
, threeDSMethodData
, необходимо выполнить шаг [Прохождение 3DS Method].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": "string"
}, - "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "CARD",
- "parameters": {
- "cvv": "880",
- "pan": "4000001000000018",
- "month": 1,
- "year": 2030,
- "browserData": {
- "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36",
- "colorDepth": "24",
- "javaEnabled": true,
- "javaScriptEnabled": true,
- "language": "ru",
- "screenHeight": "1760",
- "screenWidth": "1800",
- "timezone": "300",
- "ipAddress": "77.77.77.77"
}
}
}
{- "id": "payment-test",
- "amount": 534.31,
- "order": {
- "id": "order-test",
- "comment": "Оплата товаров и услуг за заказ №1"
}, - "objectType": "CREATED_PAYMENT_3DS1",
- "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "CARD",
- "status": {
- "value": "NEW",
- "date": "2024-12-31T10:00:00+03:00"
}
}
Для мерчантов с наличием сертификата PCI DSS
Метод используется для выполнения шага 3DS Method в процессе аутентификации.
Браузер плательщика должен отправить POST-запрос на acsUrl
, предоставленный системой, с передачей параметра threeDSMethodData
.
Примечания:
acsUrl
- Полный адрес, который необходимо вызвать из браузера плательщика. Параметр будет получен в результате выполнения метода [Создание платежа].threeDSMethodData
- JSON объект, закодированный в base64, содержащий информацию о транзакции, будет получен в результате выполнения метода [Создание платежа].threeDSMethodData required | string JSON, закодированный в base64, содержащий информацию о транзакции |
threeDSMethodData=eyJ0aHJlZURTQ29tcEluZm8iOiAiZXhhbXBsZSJ9
Для мерчантов с наличием сертификата PCI DSS
Метод позволяет получить состояние платежа, а также необходимые данные для прохождения 3DS аутентификации на любом этапе оплаты.
publicId required | string Идентификатор мерчанта в системе Банка |
id required | string^[A-Za-z0-9-_.]+$ Идентификатор платежа |
{- "id": "payment-test",
- "amount": 534.31,
- "order": {
- "id": "order-test",
- "comment": "Оплата товаров и услуг за заказ №1"
}, - "objectType": "CREATED_PAYMENT_3DS1",
- "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "CARD",
- "status": {
- "value": "NEW",
- "date": "2024-12-31T10:00:00+03:00"
}
}
Для мерчантов с наличием сертификата PCI DSS
Метод используется для продолжения платежа. Метод также может завершить платеж в случае прохождения платежа по frictionless flow (3DS2).
Примечания:
3DS_PENDING
в ответе метода, необходимо отправить POST-запрос и перенаправить плательщика на ACS эмитента, подробнее данный шаг описан в [Сценарии проведения платежа].publicId required | string Идентификатор мерчанта в системе Банка |
id required | string^[A-Za-z0-9-_.]+$ Идентификатор платежа |
cresNotificationUrl | string URL-адрес на стороне мерчанта, на который ACS вернет ответ после прохождения 3DS. Также на данный адрес будет перенаправлен плательщик после успешного ввода OTP-кода. Только для платежей, которые будут обработаны по 3DS v.2. |
{
}
{- "id": "payment-test",
- "amount": 534.31,
- "order": {
- "id": "order-test",
- "comment": "Оплата товаров и услуг за заказ №1"
}, - "objectType": "CONTINUE_PAYMENT_3DS1",
- "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "CARD",
- "status": {
- "value": "3DS_PENDING",
- "date": "2024-12-31T10:00:00+03:00"
}, - "parameters": {
- "threeDSVersion": "V1",
- "threeDS": {
- "pareq": "eNqdmU9P2zAQhu+L7U",
- "md": "M139anFAI94ana93)a3="
}
}
}
Для мерчантов с наличием сертификата PCI DSS
Метод используется для подтверждения 3DS v.1 и завершения платежа.
Вызывать метод необходимо при получении статуса 3DS_PENDING
с передачей параметра pares
, который будет получен от Банка-Эмитента через браузер плательщика.
publicId required | string Идентификатор мерчанта в системе Банка |
id required | string^[A-Za-z0-9-_.]+$ Идентификатор платежа |
pares required | string Зашифрованный ответ от ACS эмитента с результатами 3DS авторизации, необходимыми для завершения платежа. Параметр должен быть получен браузером плательщика и передан в Райффайзенбанк. |
{- "pares": "eJzNWVmvo0iy/iutnkdUzW6bketImew2YLMaeGkBxixmM4tZfv3gc6qqq2tq5va9uiMNL0CQGRmRsXwRyd5K2zjmzDga2vhtr8ZdFyTxL9n186/Z9XfmFjLrh"
}
{- "id": "payment-test",
- "amount": 534.31,
- "order": {
- "id": "order-test",
- "comment": "Оплата товаров и услуг за заказ №1"
}, - "objectType": "FINAL_CARD_PAYMENT",
- "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "CARD",
- "status": {
- "value": "SUCCESS",
- "date": "2025-12-31T10:00:00+03:00"
}, - "parameters": {
- "rrn": "935014591810",
- "authCode": "259AA",
- "eci": "02"
}
}
Для мерчантов с наличием сертификата PCI DSS
Метод используется для подтверждения 3DS v.2 и завершения платежа.
Вызывать метод необходимо при получении статуса 3DS_PENDING
с передачей параметра cres
, который будет получен от Банка-Эмитента через браузер плательщика.
publicId required | string Идентификатор мерчанта в системе Банка |
id required | string^[A-Za-z0-9-_.]+$ Идентификатор платежа |
cres required | string Зашифрованный ответ от ACS эмитента с результатами 3DS авторизации, необходимыми для завершения платежа. Параметр должен быть получен браузером плательщика и передан в Райффайзенбанк. |
{- "cres": "eJzNWVmvo0iy/iutnkdUzW6bketImew2YLMaeGkBxixmM4tZfv3gc6qqq2tq5va9uiMNL0CQGRmRsXwRyd5K2zjmzDga2vhtr8ZdFyTxL9n186/Z9XfmFjLrh"
}
{- "id": "payment-test",
- "amount": 534.31,
- "order": {
- "id": "order-test",
- "comment": "Оплата товаров и услуг за заказ №1"
}, - "objectType": "FINAL_CARD_PAYMENT",
- "extra": {
- "email": "pavel@mail.ru"
}, - "flow": "CARD",
- "status": {
- "value": "SUCCESS",
- "date": "2025-12-31T10:00:00+03:00"
}, - "parameters": {
- "rrn": "935014591810",
- "authCode": "259AA",
- "eci": "02"
}
}
Метод позволяет выполнить отмену/возврат по платежу, как полную, так и частичную.
Для мерчантов с подключенной фискализацией метод также позволяет сформировать фискальный чек по возврату. Для этого необходимо в теле запроса передать данные чека в объекте receipt, чек возврата будет сформирован автоматически.
orderId required | string <= 40 characters ^[A-Za-z0-9-_.]+$ Идентификатор заказа в системе мерчанта |
refundId required | string <= 40 characters ^[A-Za-z0-9-_.]+$ Идентификатор запроса на возврат в системе мерчанта |
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 ^[A-Za-z0-9-_.]+$ Идентификатор заказа в системе мерчанта |
refundId required | string <= 40 characters ^[A-Za-z0-9-_.]+$ Идентификатор запроса на возврат в системе мерчанта |
{- "code": "SUCCESS",
- "amount": 1200,
- "refundStatus": "COMPLETED"
}
Для подключения отправки реестров необходимо написать на ecom@raiffeisen.ru
Реестры по платежам отправляются на ежедневной основе.
В случае отсутствия операций за день, реестр на следующий день не отправляется.
Формат реестра:
Наименование колонки | Значение |
---|---|
Мерчант | Идентификатор в системе банка |
Дата операции МСК | Дата и время проведения операции |
Тип | Тип операции |
id заказа | Id заказа в системе партнера (orderId) |
id возврата | Id возврата в системе партнера (refundId) |
Комментарий | Комментарий к заказу (comment) |
Способ оплаты | Instant Payment QR - при оплате по СБП, Название платежной системы - по Эквайрингу |
Данные оплаты | QR id - для СБП, authCode и rnn -для Эквайринга |
id клиента | СБП - маскированный код плательщика. Для Эквайринга - маскированный номер карты |
Сумма | Сумма транзакции (amount) |
Комиссия | Комиссия по транзакции |
Дополнительные поля | Дополнительная информация (extra) |
Адрес для уведомлений можно указать в личном кабинете во вкладке "Прием платежей"
Также адрес для тестовой и боевой среды можно указать с помощью метода в 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 |
Уведомления отправляются с 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"
}
}
}
Уведомления будут подписываться ключом, переданным в заголовке авторизации.
callbackUrl required | string URL-адрес для приема уведомлений |
{
}
{
}
В таблице отражены важные изменения в методах API.
Дата | Описание |
---|---|
22.08.2025 | Добавлены методы по работе с формой клиента |