Skip to main content
POST
Cancel

Authorizations

Authorization
string
header
required

JWT issued by POST /api/v1.1/access-token/b2b. Send Authorization: Bearer <token>.

X-PARTNER-ID
string
header
required

Merchant API key (Credential.api_key). Required on every request.

Body

application/json

Account, merchant reference number of the withdrawal to cancel, and cancellation reason.

Request body for canceling an open cardless withdrawal transaction.

account_id
string
required

Unique identifier (ULID) of the merchant account. Must be active and belong to the authenticated merchant.

Maximum string length: 99
Example:

"01K946KF851RK7FX075GJHBVKF"

reference_number
string
required

Merchant reference of the withdrawal to cancel. Lookup is scoped to the account and only matches a transaction currently in open status.

Maximum string length: 64
Example:

"REF-20260610-001"

reason
string
required

Reason for canceling the withdrawal.

Maximum string length: 100
Example:

"Customer requested cancellation"

Response

SP000 Successfully — withdrawal canceled (data.transaction_status.code is 05) and the debited amount restored to the account balance. Note: data.expired_at is reused on this response to carry the cancellation timestamp, not an OTP expiry.

Custom v2 envelope for cardless withdrawal create and cancel. Success uses SP000 (HTTP 200).

response_code
string
required

SingaPay custom business response code.

Example:

"SP000"

response_message
string
required

Human-readable label paired with response_code.

Example:

"Successfully"

data
object
required

data on successful create or cancel (HTTP 200, response_code SP000).