Create a payout intent
Create a payout intent. Idempotent on the merchant reference: a repeat POST with the same `merchant_reference` returns the original intent rather than creating a duplicate. The key's environment stamps the intent.
Create a payout intent. Idempotent on the merchant reference: a repeat POST with the same merchant_reference returns the original intent rather than creating a duplicate. The key's environment stamps the intent.
Authorization
apiKey Merchant API key pair. Send as Authorization: Basic base64(publicKey:secretKey) — username is the public key (pk_live_… / pk_test_…), password is the secret key (sk_live_… / sk_test_…). The public key prefix determines the environment of every order created by the request — there is no body, query, or header override.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/payout_intents" \ -H "Content-Type: application/json" \ -d '{ "amount": "10000", "country": "MY", "currency": "MYR", "merchant_reference": "payout-2026-05-09-0001", "recipient": { "account_number": "1234567890", "bank_code": "MBBEMYKL", "holder_name": "Alice Tan", "type": "bank_account" } }'{
"amount": "10000",
"country": "MY",
"created_at": "2026-05-09T12:34:00.000Z",
"currency": "MYR",
"environment": "test",
"failure_code": null,
"failure_message": null,
"id": "word_01HZYABCDXYZ",
"merchant_reference": "payout-2026-05-09-0001",
"object": "payout_intent",
"recipient": {
"account_last4": "7890",
"bank_code": "MBBEMYKL",
"holder_name": "Alice Tan",
"type": "bank_account"
},
"status": "requires_approval",
"updated_at": "2026-05-09T12:34:02.000Z"
}{
"error": {
"code": "validation_failed",
"message": "Currency XYZ is not enabled for this merchant."
}
}{
"error": {
"code": "validation_failed",
"message": "Currency XYZ is not enabled for this merchant."
}
}{
"error": {
"code": "validation_failed",
"message": "Currency XYZ is not enabled for this merchant."
}
}{
"error": {
"code": "validation_failed",
"message": "Currency XYZ is not enabled for this merchant."
}
}{
"error": {
"code": "validation_failed",
"message": "Currency XYZ is not enabled for this merchant."
}
}{
"error": {
"code": "validation_failed",
"message": "Currency XYZ is not enabled for this merchant."
}
}{
"error": {
"code": "validation_failed",
"message": "Currency XYZ is not enabled for this merchant."
}
}Get a payout intent GET
Fetch a payout intent by id. Scoped to the authenticating merchant and the key's stamped environment; intents that belong to another merchant or environment return 404 indistinguishably from unknown ids.
Cancel a payout intent POST
Cancel a payout intent that is still awaiting approval. Only valid while the intent is in `requires_approval`; once approved, the intent has moved into processing and cannot be cancelled through the public API.