Merchant API
Payout Intents

Cancel a payout intent

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.

POST
/payout_intents/{id}/cancel

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.

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

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

reason?string

Free-text reason stored with the payout. Surfaces in the dashboard, the audit log, and the outbound terminal webhook.

Length1 <= length <= 512

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/payout_intents/string/cancel" \  -H "Content-Type: application/json" \  -d '{}'
{  "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"}