Payouts by bank account number
Below is a scenario where you send open parameters. You can send money to an account in the following two ways:
- as a speedy payout through the BESP system—the money will be credited within an hour
To enable speedy payouts, contact your account manager. - as a standard payout—the money will be credited within a period from 2 hours to 1 banking day (this depends on the recipient's bank)
The tariffs for standard and speedy payouts differ and are fixed in the agreement with Bank 131.
Accounts for payouts
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 the accounts of legal entities)
If the account begins with another number, the payout will fail.
Payout parameters
- For residents
- For non-residents
Name | Mandatory | Type | Description |
---|---|---|---|
payment_method/payout_details | + | object | Payment data |
type | + | string | Value: bank_account |
bank_account | + | object | Bank account |
system_type | + | string | Bank transfer system. Always: ru |
ru | + | object | Bank account object |
bik | + | string | Recipient's bank's BIC |
account | + | string | Recipient's bank account |
full_name | + | string | Individual's full name. In case of a payout to an account of a sole proprietor it should be passed in the following format: ИП <full name> |
inn | - (mandatory for payouts to individual proprietors and legal entities) | string | INN |
kpp | - (mandatory for payouts to legal entities' accounts) | string | The recipient's Tax Registration Reason Code (KPP) |
description | + | string | Payout purpose |
participant_details | - (mandatory only for payouts from an escrow account) | object | Information on payout participants |
sender | + | object | Sender's details |
account | + | string | Bank escrow account to send the payout from |
beneficiary_id | + | string | Beneficiary's INN |
recipient | + | object | Recipient's details |
beneficiary_id | + | string | Beneficiary's INN |
payment_details | - (mandatory only for payouts from an escrow account) | object | Information about a transaction (type, description) |
type | + | string | Value: internal_transfer |
amount_details | + | object | Amount |
amount | + | int | Amount in ruble decimal format. The value must be greater than zero. To send 100 rubles, specify 10000 |
currency | + | string | Currency code according to ISO 4217. Case insensitive. Always: rub |
Name | Mandatory | Type | Description |
---|---|---|---|
payment_method/payout_details | + | object | Payment data |
type | + | string | Value: bank_account |
bank_account | + | object | Bank account |
system_type | + | string | Bank transfer system. Always: ru |
ru | + | object | Bank account object |
bik | + | string | Recipient's bank's BIC |
inn | - (mandatory for payouts to individual proprietors and legal entities) | string | Recipient's INN |
kpp | - (mandatory for payouts to legal entities) | string | Recipient's Tax Registration Reason Code (KPP) |
account | + | string | Recipient's bank account |
full_name | + | string | Individual's full name. In case of a payout to an account of a sole proprietor it should be passed in the following format: ИП <full name> . In case of a payout to a legal entity, enter the entity's name, if it is provided in the agreement. Important: if the name is passed, incorrectly the recipient bank may cancel the payout and the payout will be refunded |
description | + | string | Payout purpose |
amount_details | + | object | Amount |
amount | + | int | Amount in ruble decimal format. The value must be greater than zero. To send 100 rubles, specify 10000 |
currency | + | string | Currency code according to ISO 4217. Case insensitive. Always: rub |
participant_details | + | object | Information on payout participants |
sender | + | object | Sender's details |
full_name | - (mandatory if the sender is an individual) | string | Name |
company_name | - (mandatory if the sender is a legal entity) | string | Company name |
address_line | + | string | Address. Important: a city and country should be specified in the following fields, do not duplicate them here |
country_iso3 | + | string | Country (ISO-3166-1 alpha-3) |
city | + | string | City |
recipient | + | object | Recipient's details |
full_name | + | string | Recipient's name |
Payout purpose requirements
When sending money, specify the following data in the bank_account.ru.description
parameter:
- operation type (for example:
service payment
) - payment reason (for example:
under agreement No. 123
) - product/services/commodity name
- whether or not VAT is applicable
If the organization/individual is not based in Russia, also specify a currency transaction code in the {VO<currency transaction code>}
format pre-agreed with Bank 131.
Disallowed characters: ?
, !
.
Maximum text length: 210 characters.
Payout purpose example
- For residents
- For non-residents
Wire for agreement № 5015553111 Ivanov Ivan Ivanovich VAT exempt
{VO99090} Wire for agreement № 5015553456 Ivanov Ivan Ivanovich VAT exempt
Making a standard payout
Follow the standard scenario of a payout without our widget. See the payout parameters in the table above.
To get notifications when funds are credited to the recipient's account, enable the confirmation_payout
webhook. To do this, contact your account manager. Webhook delivery is not guaranteed by Bank 131, as it depends on the recipient bank.
Standard payout example
- For residents
- For non-residents
curl -X POST \
https://demo.bank131.ru/api/v1/session/init/payout \
-H 'content-type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d'{
"payment_method": {
"type": "bank_account",
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525971",
"account": "40817810100000270411",
"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/init/payout \
-H 'content-type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-d'{
"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 № 5015553456 Ivanov Ivan Ivanovich VAT exempt"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good",
"participant_details": {
"sender": {
"full_name": "Ivanov Ivan Ivanovich",
"address_line": "123 Main Street",
"country_iso3": "USA",
"city": "New York"
},
"recipient": {
"full_name": "Иванов Иван Иванович"
}
}
}'
Making a speedy payout
Follow the standard scenario of a payout without our widget. See the payout parameters in the table above.
In the payout request, pass true
in the is_fast
parameter of the ru
object, otherwise a standard payout will be made.
Object example
{
"bank_account": {
"system_type": "ru",
"ru": {
"bik": "044525971",
"account": "40817810100000270411",
"full_name": "Ivanov Ivan Ivanovich",
"description": "Wire for agreement № 5015553111 Ivanov Ivan Ivanovich VAT exempt",
"is_fast": "true"
}
}
What can go wrong
While making a payout you may encounter the following errors:
routing_internal_error
— the payout failed as the selected payout option was not stipulated in your agreement with Bank 131- if you send a speedy payout to a bank that is not connected to the BESP system, the payout will be sent as standard, but the Bank will charge the commission for a speedy payout anyway
How to learn that a payout was returned >