Create
Initiates a cardless withdrawal, debits the account, and returns an OTP for ATM cash collection. Only fixed denominations (multiples of 50,000) are accepted. The target account is specified in the request body (account_id), not in the URL path. This endpoint is rate-limited. See Response Code for SP000–SP020 definitions and merchant actions. CRITICAL: This is a money-out operation requiring X-Signature and X-Timestamp authentication.
Authorizations
JWT issued by POST /api/v1.1/access-token/b2b. Send Authorization: Bearer <token>.
Merchant API key (Credential.api_key). Required on every request.
Headers
HMAC-SHA512 hex signature, computed as HMAC_SHA512(clientSecret, "{HTTP_METHOD}:{REQUEST_URI}:{ACCESS_TOKEN}:{SHA256_HEX(MINIFIED_BODY)}:{X_TIMESTAMP}"). MINIFIED_BODY is the request body with object keys recursively sorted alphabetically and re-serialised with no whitespace. ACCESS_TOKEN is the bearer token without the Bearer prefix. Missing header returns 422 (response_code=SP018); signature mismatch returns 401 (response_code=SP016).
Timestamp of the request; used as part of the signed string. Missing header returns 422 (response_code=SP018).
Body
Target account, reference number, customer details, withdrawal amount, and payment channel selection.
Request body for initiating a new cardless withdrawal transaction. The target account is specified in the body (account_id), not in the URL path.
Unique identifier (ULID) of the merchant account to debit. The account must be active and belong to the authenticated merchant.
99"01K946KF851RK7FX075GJHBVKF"
Unique merchant reference for this withdrawal within the account. Used for idempotency; a duplicate reference returns HTTP 400 with response code SP004.
64"REF-20260610-001"
Name of the end customer performing the ATM withdrawal.
100"Budi Santoso"
Merchant-side identifier of the end customer.
50"CUST-00123"
Net withdrawal amount in IDR. Must be a multiple of 50,000, between 50,000 and 1,000,000 inclusive. Values that are not a multiple of 50,000 return HTTP 422 with response code SP018.
50000 <= x <= 1000000500000
Code identifying the cardless withdrawal payment channel. Contact support for the list of available vendor codes.
50"CLWD_BRI"
Response
SP000 Successfully — withdrawal initiated (data.transaction_status.code is 01). The data.otp_number holds the OTP for ATM redemption. Note: data.balance_after is always "0" on this response — it is not the actual post-debit balance; use the show or list endpoint to read the real account balance.
Custom v2 envelope for cardless withdrawal create and cancel. Success uses SP000 (HTTP 200).
