Create payout
POST /v1/payout
Create an outbound payout. The merchant sends funds out; InOut routes
the operation to a configured provider. Unlike payments, payout requests
must specify the recipient's destination. The response uses the
operation object with type: "payout".
Endpoint
POST /v1/payout
Content-Type: application/json
X-API-Key: 01234567-89ab-4cde-8f01-23456789abcdRequest
Send the common fields from POST /v1/payment,
plus the recipient's destination:
| Field | Type | Required | Notes |
|---|---|---|---|
number | string | yes | Recipient card or phone number, according to the method. |
name | string | no | Recipient name; omitted or empty values default to аноним. |
bankname | string | for phone methods | Bank code from the method's currency dictionary. |
Reusing merchant_operation_id with different normalized destination details
also returns 412. Omitting name and explicitly sending its default represent
the same destination. A retry does not update recipient details or metadata.
Destination requirements by method:
WT_RUB_C2C—numberis the required card number;nameis the optional cardholder.WT_RUB_PHONE—numberis the phone number;nameis the optional recipient;banknameis the required bank, from the RUB bank dictionary (e.g.sber,tcs).
Example — phone
curl -X POST https://api.alva.co.nl/v1/payout \
-H "Content-Type: application/json" \
-H "X-API-Key: 01234567-89ab-4cde-8f01-23456789abcd" \
-d '{
"merchant_operation_id": "9b372f87-2c8b-4d99-bd3f-7f7f9b1d33ef",
"client_id": "57b8a4ca-3a4b-4f01-9a5e-1f29c1cefb9b",
"method": "WT_RUB_PHONE",
"amount": "5000.00",
"currency": "RUB",
"number": "+79991234567",
"bankname": "sber"
}'Example — card
curl -X POST https://api.alva.co.nl/v1/payout \
-H "Content-Type: application/json" \
-H "X-API-Key: 01234567-89ab-4cde-8f01-23456789abcd" \
-d '{
"merchant_operation_id": "9b372f87-2c8b-4d99-bd3f-7f7f9b1d33ef",
"client_id": "57b8a4ca-3a4b-4f01-9a5e-1f29c1cefb9b",
"method": "WT_RUB_C2C",
"amount": "5000.00",
"currency": "RUB",
"number": "4111111111111111",
"name": "IVAN IVANOV"
}'Response
200 OK with an operation object
where "type": "payout". Payouts usually return pending and reach
their terminal status asynchronously once InOut has settled the
transfer; that final transition is delivered via
webhook. If the selected route uses auto-conversion, a
pending response includes the fx_rate/fx_source quote, but NOT the
recorded amount/currency fields — those are the ledger fact and only appear
once the operation actually processes money (see
Operation object).
For WT_RUB_PHONE, the response keeps the stable bank code in bankname and
also includes its human-readable name in bankname_details.
For a payout, settlement_amount is the total charged to your balance,
i.e. the payout amount plus the InOut commission_amount (both in
settlement_currency) — the mirror of the payment case, where
settlement_amount is the amount credited to you after commission.
Errors
See Errors. Same set of validation errors as payments.