Перейти к основному содержимому

Выплаты с расчетного счета с виджетом или по токену

Вы можете делать выплаты с расчетного счета на банковские счета, используя токен вместо номера счета. Получить токен можно следующим образом:

Шаг 1. Получите публичный токен

Публичный токен нужен, чтобы подключить виджет. Отправьте запрос Банку 131 на создание токена (token), передав в нем тип виджета tokenize_widget. В ответе вы получите публичный токен.

Пример получения публичного токена
curl -X POST \
http://demo.bank131.ru/api/v1/token \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"tokenize_widget": {
"access": true
}
}'

Шаг 2. Инициализируйте виджет на сайте

Инициализируйте виджет на сайте с помощью публичного токена, полученного на предыдущем шаге.

После этого получатель выплаты сможет ввести номер банковского счета в форму сбора данных.

Шаг 3. Создайте платежную сессию

Отправьте запрос на создание платежной сессии session/create/rko. В ответе вы получите идентификатор сессии. Этот идентификатор используется во всех последующих методах.

Вы можете создать сессию и выплату одновременно (session/init/payout/rko). В этом случае сразу передайте параметры выплаты с токеном, полученным из виджета, и пропустите следующий шаг. Не рекомендуем использовать этот способ.

Пример создания платежной сессии
curl -X POST \
https://demo.bank131.ru/api/v1/session/create/rko \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"metadata": "good"
}'

Шаг 4. Отправьте выплату

Выполните запрос session/start/payout/rko, передав идентификатор сессии и параметры выплаты с токеном, полученным из виджета.

к сведению

Вы можете проверить данные токена или счета с помощью метода token/info. Например, можно узнать первые 5 и последние 4 цифры номера счета, чтобы показать получателю, на какой именно счет придет выплата.

Пример выплаты с виджетом
curl -X POST \
https:// api/v1/session/start/payout/rko \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_2643",
"payment_method": {
"type": "bank_account",
"bank_account": {
"ru": {
"token": "3f03ee2580046153bb0aa859558e7ada10d3835270fdb4c4b70961239d37f31d",
"full_name": "Иванов Иван Иванович",
"description": "Перевод средств по договору № 5015553111 Иванов Иван Иванович НДС не облагается"
},
"system_type": "ru"
}
},
"amount_details": {
"amount": 300000,
"currency": "rub"
},
"participant_details": {
"sender": {
"account": "40702810300200000013"
}
}
}'

Шаг 5. Дождитесь вебхука о готовности выплаты

Банк 131 отправит вам вебхук ready_to_confirm о готовности провести выплату и ожидании вашего подтверждения или отмены.

В теле вебхука найдите объект confirm_information и сохраните его — эти данные нужно будет передать для подтверждения или отмены выплаты.

Пример вебхука о готовности выплаты юридическим лицам
curl -X POST \
https://partner.ru \
-H 'content-type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "ready_to_confirm",
"session": {
"id": "ps_2643",
"status": "in_progress",
"created_at": "2025-02-20T08:42:35.905869Z",
"updated_at": "2025-02-20T08:42:36.382627Z",
"payments": [{
"id": "po_513",
"status": "pending",
"created_at": "2025-02-20T08:42:35.965210Z",
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"token": "3f03ee2580046153bb0aa859558e7ada10d3835270fdb4c4b70961239d37f31d",
"full_name": "ООО Вектор",
"description": "Перечисление денежных средств по договору за декабрь 2025 г. НДС не облагается."
}
}
},
"amount_details": {
"amount": 300000,
"currency": "RUB"
},
"paymentMetadata": {},
"participant_details": {
"sender": {
"account": "40702810300200000013"
}
}
}],
"next_action": "confirm",
"session_metadata": {}
},
"confirm_information": {
"account_details": {
"sender": {
"account_number": "40702810300200000013",
"name": "ООО ABC",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156667101"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "ООО Вектор",
"bank_name": "Банк 131",
"bik": "044525974",
"correspondent_account_number": "30101810822000000974",
"inn": "1111111111",
"kpp": "156605101"
}
}
}
}'

Шаг 6. Подтвердите или отмените выплату

Проверьте данные и подтвердите (session/confirm) или отмените (session/cancel) выплату, передав объект confirm_information.

Пример с подтверждением выплаты
curl -X POST \
https://demo.bank131.ru/api/v1/session/confirm \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_2643",
"confirm_information": {
"account_details": {
"sender": {
"account_number": "40702810300200000013",
"name": "ООО ABC",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156667101"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "ООО Вектор",
"bank_name": "Банк 131",
"bik": "044525974",
"correspondent_account_number": "30101810822000000974",
"inn": "1111111111",
"kpp": "156605101"
}
}
}
}'
Пример с отменой выплаты
curl -X POST \
https://demo.bank131.ru/api/v1/session/cancel \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_2643",
"confirm_information": {
"account_details": {
"sender": {
"account_number": "40702810300200000013",
"name": "ООО ABC",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156667101"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "ООО Вектор",
"bank_name": "Банк 131",
"bik": "044525974",
"correspondent_account_number": "30101810822000000974",
"inn": "1111111111",
"kpp": "156605101"
}
}
}
}'

Шаг 7. Дождитесь вебхука о результате выплаты

Банк 131 отправит вам вебхук payment_finished. Информация о результате выплаты содержится в параметре status объекта payments/payout_list.

Статус succeeded означает, что выплата прошла успешно. Если статус failed — выплата не прошла из-за ошибки.

Какие бывают статусы выплаты >

Посмотреть коды ошибок >

Как узнать, что выплата вернулась >