Skip to main content

Payouts from a settlement account by account number

You can make payouts to bank accounts from a settlement account as follows:

Making a standard payout

Step 1. Create a payment session

Create a session using the session/create/rko 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/payout/rko method to create a session and a payout at the same time. In this case, specify all the payout parameters with open data and skip the next step. This option is not recommended.

Request example
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"
}'

Step 2. Send the payout

Send a session/start/payout/rko request, specifying the session identifier alongside the payout parameters with open data.

Example of a payout by account number
curl -X POST \
https://demo.bank131.ru/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": {
"bik": "044525974",
"account": "40817810400003869535",
"full_name": "Ivanov Ivan Ivanovich",
"description": "Transfer of funds under the agreement for December 2025. VAT exempt."
},
"system_type": "ru"
}
},
"amount_details": {
"amount": 350000,
"currency": "rub"
},
"participant_details": {
"sender": {
"account": "40702810300200000013"
}
}
}'

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.

The webhook body will contain the confirm_information object. Save it, as you will need this object to confirm or cancel the transaction.

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_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": {
"bik": "044525974",
"account": "40702810500000000001",
"full_name": "Vector LLC",
"description": "Transfer of funds under the agreement for December 2025. VAT exempt.",
"is_fast": false,
"kpp": "156605101",
"inn": "1111111111"
}
}
},
"amount_details": {
"amount": 350000,
"currency": "RUB"
},
"paymentMetadata": {},
"participant_details": {
"sender": {
"account": "40702810300200000013"
}
},
"payment_options": {
"recurrent": false,
"is_subsequent": false
}
}],
"next_action": "confirm",
"session_metadata": {}
},
"confirm_information": {
"account_details": {
"sender": {
"account_number": "40702810300200000013",
"name": "ABC LLC",
"bank_name": "Bank 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156605101"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "Vector LLC",
"bank_name": "Bank 131",
"bik": "044525974",
"correspondent_account_number": "30101810822029205974",
"inn": "1111111111",
"kpp": "156605101"
}
}
}
}'

Step 4. Confirm or cancel the payout

Check the payout details and confirm (session/confirm) or cancel (session/cancel) the payout passing the confirm_information object.

Confirming a payout
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 LLC",
"bank_name": "Bank 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156667101"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "Vector LLC",
"bank_name": "Bank 131",
"bik": "044525974",
"correspondent_account_number": "30101810822000000974",
"inn": "1111111111",
"kpp": "156605101"
}
}
}
}'
Canceling a payout
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 LLC",
"bank_name": "Bank 131",
"bik": "049205131",
"correspondent_account_number": "30101810822029205131",
"inn": "3316004790",
"kpp": "156667101"
},
"recipient": {
"account_number": "40702810500000000001",
"name": "Vector LLC",
"bank_name": "Bank 131",
"bik": "044525974",
"correspondent_account_number": "30101810822000000974",
"inn": "1111111111",
"kpp": "156605101"
}
}
}
}'

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.

More about the payout statuses >

View error codes >

How to know if a payout is returned >