Russia (bank account)
Payouts to ruble accounts of individuals by account number and BIK
Before you start
Authorization
How to sign your requests with the API token.
Payouts overview
Common request format, response fields and statuses.
This payout destination is not enabled for all merchants. Check availability with your manager, and make sure your merchant balance is sufficient before creating a payout.
Overview
| Currency | Destination | Payment type |
|---|---|---|
RUB | Account of an individual in a Russian bank | BANK_ACCOUNT |
A bank account payout takes two requests: first you get the list of banks, then you create the payout with the BIK of the recipient bank.
Prefer not to collect the requisites yourself? Embed the one-click payout widget: the client enters them once, and the next payouts take one click.
Flow
Get the list of banks
GET /v1/payouts/banks?serviceId={serviceId}| Query parameter | Type | Required | Description |
|---|---|---|---|
serviceId | number | ❌ No | The bank account payout service from GET /v1/payouts/services. Pass it when several destinations are enabled for you |
curl -X GET "https://api.platinout.com/v1/payouts/banks?serviceId=123" \
-H "X-Api-Token: YOUR_API_TOKEN"{
"data": [
{ "id": "044525225", "name": "ПАО Сбербанк" },
{ "id": "044525974", "name": "АО \"ТБанк\"" }
]
}The bank id is its BIK. Pass it as account.bankName in the next step.
Create the payout
POST /v1/payoutscurl -X POST "https://api.platinout.com/v1/payouts" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": 15000,
"currency": "RUB",
"paymentType": "BANK_ACCOUNT",
"serviceId": 123,
"externalId": "payout-123",
"account": {
"name": "Иванов Иван Иванович",
"requisites": "40817810700000000001",
"bankName": "044525225",
"userPhone": "+79991234567",
"userId": "user_12345"
},
"note": "Payout for order #1234"
}'account fields
All fields are required.
| Field | Type | Description |
|---|---|---|
name | string | Recipient full name in Cyrillic, in the «Фамилия Имя Отчество» order (last name, first name, patronymic), for example Иванов Иван Иванович. At least three words, each at least two letters long. A double last name is written with a hyphen (Римский-Корсаков). Words must not repeat |
requisites | string | Recipient account number: 20 digits without spaces. Only ruble accounts of individuals are accepted: they start with 40817810 (residents) or 40820810 (non-residents) |
bankName | string | Recipient bank BIK: the id from GET /v1/payouts/banks, for example 044525225 |
userPhone | string | Recipient phone in the +7XXXXXXXXXX format, for example +79991234567 |
userId | string | User ID in your system |
Requisites check
The requisites are checked when the payout is created:
- the full name is written in Cyrillic, has at least three words and no repeats;
- the phone is in the
+7XXXXXXXXXXformat; - the BIK is in the bank list;
- the account number has 20 digits, is a ruble account of an individual, and its control key matches the bank BIK.
If a check fails, the payout is not created and no funds are reserved. The API responds with 400 Bad Request, and message names the field to fix:
{
"statusCode": 400,
"message": "The account number does not match the recipient bank BIK: the control key check failed (account.requisites, account.bankName)",
"error": "Bad Request"
}Statuses
The payout is created with the CREATED status, then moves to PROCESSING and to a final status. The final status of a bank account payout may take a while — track it with webhooks.
Response
The response is a standard payout object with the CREATED status. Store the id to track the payout.