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

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

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

От того, какой способ вы выберите, зависит объем требований PCI DSS, которые необходимо соблюдать. Перед выплатой идентифицируйте бенефициара.

Как подключить вебхук для отслеживания пополнений номинального счета >

Шаг 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/multi/create/nominal. В ответе вы получите идентификатор сессии. Этот идентификатор используется во всех последующих методах.

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

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

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

Выполните запрос session/multi/start/payment/nominal, передав идентификатор сессии и параметры выплаты с хешем, полученным из виджета.

к сведению

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

Пример выплаты с виджетом
curl -X POST \
https://demo.bank131.ru/api/v1/session/multi/start/payment/nominal \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230",
"payment_details": {
"type": "internal_transfer",
"internal_transfer": {
"type": "transfer_from_nominal_account",
"transfer_from_nominal_account": {
"description": "Перевод согласно оферте"
}
}
},
"payment_method": {
"type": "card",
"card": {
"type": "encrypted_card",
"encrypted_card": {
"number_hash": "63191fa17cc7edf818ee5d6611a2c2169ab30b705111cffd710af39880deef09"
}
}
},
"participant_details": {
"sender": {
"full_name": "ООО Вектор",
"beneficiary_id": "1234567890"
},
"recipient": {
"full_name": "Иванов Иван Иванович"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"customer": {
"reference": "123456789012"
}
}'

Шаг 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_3230",
"status": "in_progress",
"created_at": "2025-05-14T09:32:20.099952Z",
"updated_at": "2025-05-14T09:32:20.099911Z",
"payments": [{
"id": "po_7639847",
"status": "pending",
"created_at": "2025-05-14T09:32:20.099944Z",
"customer": {
"reference": "123456789012"
},
"payment_method": {
"type": "card",
"card": {
"last4": "8371",
"brand": "mastercard",
"country_iso3": "RUS"
}
},
"participant_details": {
"sender": {
"full_name": "ООО Вектор",
"beneficiary_id": "1234567890"
},
"recipient": {
"full_name": "Иванов Иван Иванович"
}
}
}],
"acquiring_payments": [{
"id": "pm_6933973",
"status": "pending",
"created_at": "2025-05-14T09:32:20.099966Z",
"customer": {
"reference": "123456789012"
},
"payment_details": {
"type": "internal_transfer",
"internal_transfer": {
"type": "transfer_from_nominal_account",
"transfer_from_nominal_account": {
"description": "Перевод согласно оферте",
"card_mask": "553691******8371"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"participant_details": {
"sender": {
"full_name": "ООО Вектор",
"beneficiary_id": "1234567890"
},
"recipient": {
"full_name": "Иванов Иван Иванович"
}
}
}],
"next_action": "confirm"
},
"confirm_information": {
"transfer_details": {
"payment_method": {
"type": "card",
"card": {
"brand": "mastercard",
"last4": "8371",
"country_iso3": "RUS"
}
},
"customer": {
"account_number": "40702810700200000000",
"name": "ООО Вектор",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822000000000"
},
"recipient": {
"account_number": "30233810000000000000",
"name": "Иванов Иван Иванович",
"bank_name": "Банк 131",
"bik": "049205123",
"correspondent_account_number": "30101810822000000974"
},
"purpose": "Перевод согласно оферте",
"amount": {
"amount": 10000,
"currency": "rub"
}
}
}
}'

Шаг 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_3230",
"confirm_information": {
"transfer_details": {
"payment_method": {
"type": "card",
"card": {
"brand": "mastercard",
"last4": "8371",
"country_iso3": "RUS"
}
},
"customer": {
"account_number": "40702810700200000000",
"name": "ООО Вектор",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822000000000"
},
"recipient": {
"account_number": "30233810000000000000",
"name": "Иванов Иван Иванович",
"bank_name": "Банк 131",
"bik": "049205123",
"correspondent_account_number": "30101810822000000974"
},
"purpose": "Перевод согласно оферте",
"amount": {
"amount": 10000,
"currency": "rub"
}
}
}
}'
Пример с отменой выплаты
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_3230",
"confirm_information": {
"transfer_details": {
"payment_method": {
"type": "card",
"card": {
"brand": "mastercard",
"last4": "8371",
"country_iso3": "RUS"
}
},
"customer": {
"account_number": "40702810700200000000",
"name": "ООО Вектор",
"bank_name": "Банк 131",
"bik": "049205131",
"correspondent_account_number": "30101810822000000000"
},
"recipient": {
"account_number": "30233810000000000000",
"name": "Иванов Иван Иванович",
"bank_name": "Банк 131",
"bik": "049205123",
"correspondent_account_number": "30101810822000000974"
},
"purpose": "Перевод согласно оферте",
"amount": {
"amount": 10000,
"currency": "rub"
}
}
}
}'

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

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

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

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

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