Merchant API
Payout Intents

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.

POST
/payout_intents

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.

AuthorizationBasic <token>

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."
  }
}