Payouts by bank account number
You can send money from your collateral account to bank accounts as follows:
- as a standard payout—the money will be credited within a period from 2 hours to 3 banking days (this depends on the recipient's bank)
- as a speedy payout through the BESP system—the money will be credited within an hour
Accounts for payouts
Accounts allowed for payouts from collateral accounts
You can only send payouts to the accounts that begin with these digits:
- 40817810
- 42301810
- 42302810
- 42303810
- 42304810
- 42305810
- 42306810
- 42307810
- 40802810
- 40820810
- 40702810 (for legal entities)
Making a standard payout
Step 1. Create a payment session
Create a session using the session/create method. You will receive the payment session identifier in response. You will need it in the subsequent steps.
Alternatively, you can use the
session/init/payoutmethod to create a session and a payout at the same time. In this case, specify all the payout parameters with open card data and skip the next step. This option is not recommended.
Request example
curl -X POST \
https://demo.bank131.ru/api/v1/session/create \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"metadata": "good"
}'
Step 2. Send the payout
Send a session/start/payout request, specifying the session identifier alongside the payout parameters.
Example of a payout by account number
- For residents
- For non-residents
curl -X POST \
https://demo.bank131.ru/api/v1/session/start/payout \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d'{
"session_id": "ps_3230",
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525974",
"account": "40817810400003869535",
"full_name": "Ivanov Ivan Ivanovich",
"description": "Wire for agreement № 5015553111 Ivanov Ivan Ivanovich VAT exempt"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good"
}'
curl -X POST \
https://demo.bank131.ru/api/v1/session/start/payout \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d'{
"session_id": "ps_3230",
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525971",
"account": "40817810100000270411",
"full_name": "Ivanov Ivan Ivanovich",
"description": "{VO99090} Wire for agreement № 5015553111 Ivanov Ivan Ivanovich VAT exempt"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good",
"participant_details": {
"sender": {
"full_name": "Vector LLC",
"address_line": "123 Main Street",
"country_iso3": "USA",
"city": "New York"
},
"recipient": {
"full_name": "Ivanov Ivan Ivanovich"
}
}
}'
Step 3. Wait for a webhook showing that the Bank is ready to perform the payout
Bank 131 will send you a ready_to_confirm webhook. This means that the payout can be performed and the Bank is waiting for you to confirm.
Webhook example
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-27T02:03:00.456004Z",
"updated_at": "2025-05-27T02:03:00.756005Z",
"next_action": "confirm",
"payments": [{
"id": "po_2025",
"status": "pending",
"created_at": "2025-05-27T02:03:00.355006Z",
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525974",
"account": "40817810400003869535",
"full_name": "Ivanov Ivan Ivanovich",
"description": "Wire for agreement № 5015553111 Ivanov Ivan Ivanovich VAT exempt"
}
}
},
"participant_details": {
"recipient": {
"full_name": "Ivanov Ivan Ivanovich"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good"
}]
}
}'
Step 4. Confirm or cancel the payout
Check the payout details and confirm (session/confirm) or cancel (session/cancel) the payout.
Confirming a payout
- cURL
- PHP
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"
}'
use Bank131\SDK\Client;
use Bank131\SDK\Config;
$config = new Config(
'https://demo.bank131.ru',
'your_project_name',
file_get_contents('/path/to/your/private_key.pem')
);
$client = new Client($config);
$response = $client->session()->confirm('session_id');
Пример с отменой выплаты
- cURL
- PHP
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"
}'
use Bank131\SDK\Client;
use Bank131\SDK\Config;
$config = new Config(
'https://demo.bank131.ru',
'your_project_name',
file_get_contents('/path/to/your/private_key.pem')
);
$client = new Client($config);
$response = $client->session()->cancel('session_id');
Step 5. Wait for a webhook with the results of the payout
Bank 131 will send you a payment_finished webhook. The result of the payout can be found in the status field of the payments/payout_list array.
The succeeded status means the payout has been successful. The failed status means the payout has not been completed because of an error.
To get notifications when funds are credited to the recipient's account, enable the confirmation_payout webhook. To do this, contact your account manager at Bank 131. Webhook delivery is not guaranteed by Bank 131, as it depends on the recipient bank.
More about the payout statuses >
How to learn that a payout was returned >