Payout Callback
Sent to the callbackUri you provided when creating the payout, every time the payout transitions to a new state (completed or canceled — both terminal). The payload is signed with HMAC-SHA256 in the `X-Signature` header (note: capitalised, same as the outbound payout API) computed over the compact JSON body. Respond with HTTP 2xx within 10 seconds; non-2xx triggers retries with exponential backoff for up to 24 hours.
{your callbackUri}Validate the HMAC-SHA256 signature before processing the payload. Authentication guide →
Payload fields#
statusbooleanrequiredTop-level success flag. Always true for successfully delivered callbacks — the actual payout outcome is in result.state.
Exampletrueresult.idstring (uuid)requiredPayout UUID — same value returned at creation. Use this to reconcile against your records.
Example290e6f70-a3698-ab0b-5beaddf2b16aresult.orderIdstringrequiredYour original orderId passed at creation, echoed back for reconciliation.
Exampleb30aaa28-4f58-91a2-be1a6775b5e8result.statestringrequiredPayout lifecycle state at the moment of the callback. One of: pending, canceled, completed — both canceled and completed are terminal. See the Lifecycle States section in Get Payout Status for the full semantics. Treat the same (id, state) pair as idempotent.
Examplecompletedresult.amountstring (decimal)requiredFinal amount transferred to the recipient.
Example30000.00result.init_amountstring (decimal)requiredOriginally requested payout amount. Equals amount on a clean completion.
Example30000.00result.currencystringrequiredISO-4217 currency code.
ExampleARSresult.methodstringrequiredPayout method — currently always cbu.
Examplecburesult.ratestring (decimal)requiredExchange rate (local currency → USDT) locked at the moment of settlement.
Example1474.59result.datetimenumber (unix)requiredUnix timestamp (seconds) of the state transition.
Example1780058339result.created_atstring (ISO 8601)requiredISO 8601 UTC timestamp of when the payout was originally created.
Example2026-05-29T12:38:59.478Zresult.messagestring | nulloptionalReason text — populated when state is canceled to describe why (insufficient balance, invalid CBU, anti-fraud, etc.). null on success.
Examplenullresult.file_urlstring | nulloptionalURL to the bank transfer receipt / proof-of-payment, when available.
Examplenull