Verify the holder name on a bank account.
Looks up the registered holder name on the named bank for the
given account number and compares it against the submitted
name.
Responses use the standard envelope (code, data /
message, request_id, pricing). Only code=SUCCESS is
billable (pricing=PAID).
Behaviour by outcome
| Upstream result | Envelope |
|---|---|
| Account exists | code=SUCCESS, data.status="found", pricing=PAID |
| Account not found | code=SUCCESS, data.status="not found", suggestion=reject, pricing=PAID |
| Upstream unavailable after retry | code=SERVER_ERROR, pricing=FREE |
| Validation error (bad account / bank / name / request_id) | code=CLIENT_ERROR, pricing=FREE |
Duplicate / conflicting request_id | code=DUPLICATE_REFERENCE, pricing=FREE |
| Not entitled / not authenticated | code=UNAUTHORIZED, pricing=FREE |
| Prepaid balance too low | code=INSUFFICIENT_BALANCE, pricing=FREE |
Access
Requires a valid Bearer token. Access is gated by feature
entitlement (BANK_CHECK_INQUIRY); BOSS enables the feature per
merchant. When the feature is off the call returns
UNAUTHORIZED.
Account number format
Accept digits with optional separators ( , -, ., _).
The service strips separators and requires 6–20 digits remaining.
Bank code
Must be an enabled entry in the supported-banks catalogue
(≈104 Indonesian clearing codes). Numeric codes are zero-padded
to 3 digits (2 → 002). Fetch the live list from the merchant
dashboard (Supported banks).
Idempotency
Two requests with the same (merchant_id, request_id) return
the same SUCCESS response and are billed once when the prior
attempt completed successfully. A conflicting payload with the
same request_id returns DUPLICATE_REFERENCE. A prior upstream
failure is re-run on retry rather than replayed.
Authorizations
RS256-signed JWT obtained from POST /api/v1/kyc/auth/get-auth-token.
Default lifetime one hour. JWKS is published at
/.well-known/jwks.json on the service side (used by the gateway,
not by merchants).
Body
Bank account number. Spaces, dashes, dots, and underscores are stripped; the digits-only form is stored and sent upstream. After normalisation the value must be 6–20 digits.
"1234567890"
Indonesian bank clearing code from the supported-banks
catalogue (≈104 entries). Numeric codes are zero-padded to
3 digits (2 → 002, 14 → 014). Unknown or disabled
codes return CLIENT_ERROR.
"014"
Name to verify against the registered account holder name. Trimmed before validation.
1 - 200"Budi Santoso"
Merchant-supplied idempotency / reference key. Recommended: UUID v4. Two requests with the same key return the same answer and are billed once.
"TXN-20260727-001"
Response
Verification complete (whether the account exists or not).
code is always SUCCESS; inspect data.status /
data.suggestion for the outcome. pricing is PAID.
Business status code. Always SUCCESS on this shape.
SUCCESS "SUCCESS"
Always OK. Present so every response carries a message,
whether it succeeded or not; branch on code, not on this.
OK "OK"
Billing outcome for this call. PAID when verification ran
(including data.status = "not found").
PAID "PAID"
Echo of the request's request_id.
"TXN-20260727-001"
