Skip to main content

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

ParameterTypeRequiredDescription
ext_idstringYesUnique payout ID in your system
amountnumberYesPayout amount in RUB
methodstringYesMethod: card or sbp
requisitesstringYesCard or phone number
holder_namestringYesRecipient full name
bankstringYesRecipient bank code
notify_urlstringNoURL 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

FieldTypeDescription
idstringPayout ID (UUID)
ext_idstringYour payout ID
amountnumberAmount
currencystringCurrency (RUB)
methodstringMethod: card or sbp
requisitesstringRequisites
holder_namestringRecipient full name
bankstringBank code
statusstringStatus
created_atstringCreation time (ISO 8601)
completed_atstringCompletion time

Payout Statuses

StatusDescription
pendingAwaiting processing
processingIn progress
completedSuccessful
failedError
cancelledCancelled

Errors

CodeHTTPDescription
PAY_002400Invalid parameters
PAY_003409Payout with this ext_id already exists
SYS_001500Internal error