Russia (SBP, full name)
SBP payouts to phone numbers with recipient name verification
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 | Phone number via SBP with name verification | SBP |
The payout takes two requests: first you get the list of banks that accept a transfer to the recipient's phone number, then you create the payout with the selected bank and the recipient's full name.
The recipient's full name is checked against the bank's data in SBP. If it does not match the owner of the phone number at the selected bank, the payout moves to FAILED with the reason in statusMessage.
The amount must be a whole number of rubles (1500, not 1500.50). A fractional amount is rejected with 400 before the payout is created.
Flow
Get the list of banks
GET /v1/payouts/banks?account={phone}&serviceId={serviceId}| Query parameter | Type | Required | Description |
|---|---|---|---|
account | string | ✅ Yes | Recipient phone number in any format: 79612894744, +7 (961) 289-47-44, 89612894744 |
serviceId | number | ❌ No | Payout service from GET /v1/payouts/services. Pass it if you have several SBP services enabled |
curl -X GET "https://api.1capital.capital/v1/payouts/banks?account=79612894744&serviceId=123" \
-H "X-Api-Token: YOUR_API_TOKEN"{
"data": [
{ "id": "100000000008", "name": "Альфа-Банк" },
{ "id": "100000000004", "name": "Т-Банк" }
]
}The list depends on the phone number: it contains only the banks where the recipient has an account for SBP transfers. Let the recipient pick the bank and pass its id as account.bankName.
Create the payout
POST /v1/payoutscurl -X POST "https://api.1capital.capital/v1/payouts" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": 1500,
"currency": "RUB",
"paymentType": "SBP",
"serviceId": 123,
"externalId": "payout-123",
"account": {
"name": "Иванов Василий Семёнович",
"requisites": "79612894744",
"bankName": "100000000008",
"userId": "user_12345"
}
}'account fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Recipient name |
requisites | string | ✅ Yes | Recipient requisites: card number, phone number, PIX key, etc., depending on paymentType |
userId | string | ✅ Yes | User ID in your system |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | ✅ Yes | Recipient full name, space-separated: "Last name First name Patronymic". Patronymic only if any |
requisites | string | ✅ Yes | Recipient phone number in any format |
bankName | string | ✅ Yes | Bank id from GET /v1/payouts/banks?account={phone}, for example 100000000008 |
Write the name exactly as the recipient's bank has it, in the order last name, first name, patronymic.
Validation errors
A request with invalid details is rejected with 400 before the payout is created and the balance is held:
| Reason | Field to fix |
|---|---|
| Phone number not recognized | account.requisites |
| Bank not passed | account.bankName |
| Fewer than two words in the name | account.name |
| Amount is not a whole number | amount |
Response
The response is a standard payout object with the CREATED status. Store the id to track the payout.