Skip to main content

Money format

Every money field is a base-10 signed-int64 string. Send amount as a positive string. VND has exponent zero; other currencies use ISO minor units. Parse responses with a 64-bit or arbitrary-precision integer type.

Create a payout

Response (202 Accepted for a new payout; 200 OK for replay):
amount is the requested payout amount, recipient_amount is the amount sent to the destination, fee_details contains the fee components, fee is their sum, and total is the amount reserved from prefund. All five values use the same int64-string money format; configured values vary by enabled route. Fee handling is configured for the account and route; it is not a create-payout request field. Check recipient_amount and total in the response when reconciling. Fund the payout currency before creating a payout.

Idempotency

Idempotency-Key is required, non-empty, and at most 255 characters. The server stores the key and a canonical request hash within the tenant and environment:
  • same key and same input: original payout, Idempotent-Replayed: true;
  • same key and different input: 409 duplicate_payout.
Keep one key across timeouts and network retries. A replay returns the original payout even if account configuration changed afterward.

Retrieve

Cross-tenant and cross-environment IDs return payout_not_found.

List

Each item in data uses the complete payout response shape shown above.

Status lifecycle

POST /v1/payouts/{payout_id}/cancel currently returns 409 payout_not_cancelable. The API never reports cancellation unless it can be guaranteed.

Errors

Public messages are generic. Branch on error.code and retain request_id.