Merchant API
Payout Intents

Create a payout intent

Create a payout intent. `Idempotency-Key` is required and fingerprints every create field. `merchant_reference` is unique business identity, not an idempotency key. Once persisted, creation returns 201 with the current projection for accepted, rejected, and unknown Provider outcomes. The API key's Environment stamps the intent.

POST
/payout_intents

Create a payout intent. Idempotency-Key is required and fingerprints every create field. merchant_reference is unique business identity, not an idempotency key. Once persisted, creation returns 201 with the current projection for accepted, rejected, and unknown Provider outcomes. The API 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

Header Parameters

Idempotency-Key*string

Merchant retry identity for this create request. Reuse only with the exact same request fields.

Match^[!-~]+$
Length1 <= length <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

amount*string

Positive integer amount in the currency's minor units, encoded as a string to preserve precision (e.g. "10000" for MYR 100.00).

Match^[1-9]\d*$
country*string

ISO 3166-1 alpha-2 country code, e.g. "MY".

Match^[A-Z]{2}$
currency*string

ISO 4217 currency code (e.g. "MYR", "USD") or a 3–6 letter token symbol. Uppercase.

Match^[A-Z]{3,6}$
merchant_reference*string

Unique Merchant business reference for the Payout. Transport retries use Idempotency-Key.

Length1 <= length <= 256
metadata?
recipient*

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 "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "amount": "string",    "country": "string",    "currency": "string",    "merchant_reference": "string",    "recipient": {      "account_number": "string",      "bank_code": "string",      "holder_name": "string",      "type": "bank_account"    }  }'
{  "amount": "10000",  "completed_amount": "0",  "country": "MY",  "created_at": "2026-05-09T12:34:00.000Z",  "currency": "MYR",  "environment": "test",  "approval_status": "pending",  "failure_code": null,  "failure_message": null,  "id": "word_01HZYABCDXYZ",  "merchant_reference": "payout-2026-05-09-0001",  "next_action": null,  "object": "payout_intent",  "recipient": {    "account_last4": "7890",    "bank_code": "MBBEMYKL",    "holder_name": "Alice Tan",    "type": "bank_account"  },  "reserved_amount": "0",  "returned_amount": "0",  "status": "requires_approval",  "updated_at": "2026-05-09T12:34:02.000Z"}