Create Payout
Create a payout to a card or via SBP.
Endpoint
POST /v1/payouts
Request Signature
The request is signed the same way as for payments: HMAC-SHA1 over the string {METHOD}{URL}{BODY}, encoded in Base64 and passed in the X-Signature header. The signing key is the merchant's Secret Key (shared across all terminals).
{METHOD}{URL}{BODY}
METHOD— HTTP method (POST)URL— full request URL (https://api.bopay.io/v1/payouts)BODY— request body as JSON
Example string to sign:
POSThttps://api.bopay.io/v1/payouts{"ext_id":"payout_001","amount":5000,"method":"card","requisites":"4276123456781234","holder_name":"John Doe","bank":"sberbank"}
See Authorization for signing code examples (JavaScript, Python, PHP).
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ext_id | string | Yes | Unique payout ID in your system |
amount | number | Yes | Payout amount in RUB |
method | string | Yes | Method: card or sbp |
requisites | string | Yes | Card or phone number |
holder_name | string | Yes | Recipient full name |
bank | string | Yes | Recipient bank code |
notify_url | string | No | URL for webhook |
Card Payout Example
curl -X POST https://api.bopay.io/v1/payouts \
-H "Content-Type: application/json" \
-H "X-Identity: your-api-key" \
-H "X-Signature: your-signature" \
-d '{
"ext_id": "payout_001",
"amount": 5000,
"method": "card",
"requisites": "4276123456781234",
"holder_name": "Ivan Ivanov"
}'
SBP Payout Example
curl -X POST https://api.bopay.io/v1/payouts \
-H "Content-Type: application/json" \
-H "X-Identity: your-api-key" \
-H "X-Signature: your-signature" \
-d '{
"ext_id": "payout_002",
"amount": 3000,
"method": "sbp",
"requisites": "+79001234567",
"holder_name": "Petr Petrov",
"bank": "tinkoff"
}'
Response
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"ext_id": "payout_001",
"amount": 5000,
"currency": "RUB",
"method": "card",
"requisites": "4276123456781234",
"holder_name": "Ivan Ivanov",
"bank": "",
"status": "pending",
"created_at": "2026-01-30T12:45:00Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Payout ID (UUID) |
ext_id | string | Your payout ID |
amount | number | Amount |
currency | string | Currency (RUB) |
method | string | Method: card or sbp |
requisites | string | Requisites |
holder_name | string | Recipient full name |
bank | string | Bank code |
status | string | Status |
created_at | string | Creation time (ISO 8601) |
completed_at | string | Completion time |
Payout Statuses
| Status | Description |
|---|---|
pending | Awaiting processing |
processing | In progress |
completed | Successful |
failed | Error |
cancelled | Cancelled |
Errors
| Code | HTTP | Description |
|---|---|---|
PAY_002 | 400 | Invalid parameters |
PAY_003 | 409 | Payout with this ext_id already exists |
SYS_001 | 500 | Internal error |