Skip to main content
POST

Authorizations

Authorization
string
header
required

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

application/json
account_number
string
required

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.

Example:

"1234567890"

bank_code
string
required

Indonesian bank clearing code from the supported-banks catalogue (≈104 entries). Numeric codes are zero-padded to 3 digits (2002, 14014). Unknown or disabled codes return CLIENT_ERROR.

Example:

"014"

name
string
required

Name to verify against the registered account holder name. Trimmed before validation.

Required string length: 1 - 200
Example:

"Budi Santoso"

request_id
string
required

Merchant-supplied idempotency / reference key. Recommended: UUID v4. Two requests with the same key return the same answer and are billed once.

Example:

"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.

code
enum<string>
required

Business status code. Always SUCCESS on this shape.

Available options:
SUCCESS
Example:

"SUCCESS"

data
object
required
message
enum<string>
required

Always OK. Present so every response carries a message, whether it succeeded or not; branch on code, not on this.

Available options:
OK
Example:

"OK"

pricing
enum<string>
required

Billing outcome for this call. PAID when verification ran (including data.status = "not found").

Available options:
PAID
Example:

"PAID"

request_id
string
required

Echo of the request's request_id.

Example:

"TXN-20260727-001"