Disburse Transfer
Submits a bank disbursement using the v2 API contract. The merchant account is specified in the request body (account_id), not in the URL path. See Response Code for SP000–SP020 definitions and merchant actions. CRITICAL: This is a money-out operation requiring X-Signature and X-Timestamp authentication per internal signing protocol.
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 (an empty/missing body hashes the empty string). ACCESS_TOKEN is the bearer token without the Bearer prefix. Missing header returns 400 (response_code=4019900); signature mismatch returns 401 (response_code=4019900).
ISO-8601 timestamp of the request; used as part of the signed string. Missing header returns 400 (response_code=4019900).
Body
Request body for submitting a bank disbursement (API v2.0 transfer).
Unique identifier (ULID) of the merchant account to debit. Specified in the request body, not in the URL path.
"01K946KF851RK7FX075GJHBVKF"
Unique merchant reference for this transfer within the account. Used for idempotency; a duplicate reference returns HTTP 400 with response code SP004.
64"REF-20260610-001"
Destination bank identifier: a three-digit national bank code or a bank SWIFT code.
"002"
Beneficiary account number. Numeric digits only, between 6 and 30 characters.
"1234567890000"
Net amount to be credited to the beneficiary, in IDR. Must be within merchant-specific minimum and maximum disbursement limits. The transfer fee is added to compute the gross debit from the merchant account.
50000
Optional note attached to the transaction for merchant reference.
100"Transfer payment"
Response
SP000 Successfully — transfer accepted (often pending in data.transaction_status). Merchant action: check inquiry status.
Custom v2 envelope for disbursement transfer. Success uses SP000 (HTTP 200).
