Verify the holder name on an e-wallet account.
Looks up the registered holder name on the named e-wallet for
the given phone 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, real name | code=SUCCESS, data.status="found with kyc", pricing=PAID |
| Account exists, no KYC | code=SUCCESS, data.status="found without kyc", similarity=0, suggestion=review, pricing=PAID |
| Account not found | code=SUCCESS, data.status="not found", suggestion=reject, pricing=PAID |
| Upstream unavailable / timeout after retry | code=SERVER_ERROR, pricing=FREE |
| Validation error (bad phone / name / wallet / request_id) | code=CLIENT_ERROR, pricing=FREE |
Duplicate / conflicting request_id | code=DUPLICATE_REFERENCE, pricing=FREE |
| Not authenticated / scope denied / IP blocked | code=UNAUTHORIZED, pricing=FREE |
| Prepaid balance too low | code=INSUFFICIENT_BALANCE, pricing=FREE |
One wallet per call
Exactly the wallet named in ewallet_code is checked, for one
fee. The other_ewallet_similarity array that earlier versions
returned has been removed; clients that read it should drop the
dependency.
Phone number format
Accept both 0xxx... and 62xxx... forms (9-13 digits total).
The service canonicalises and re-formats per-wallet before
calling the upstream.
Idempotency
Two requests with the same (merchant_id, request_id) return
the same SUCCESS response and are billed once. A conflicting
payload with the same request_id returns DUPLICATE_REFERENCE.
Choose a UUID v4 for request_id.
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
The wallet to check. This is the only wallet queried.
DANA, SHOPEEPAY, GOPAY, OVO Name to verify against the registered holder name. Trimmed, case-insensitive, normalised (whitespace + honorifics).
1 - 200"Budi Santoso"
E-wallet phone number. Accept 0xxx... or 62xxx... (9-13
digits total).
^(0|62)[1-9][0-9]{7,11}$"081234567890"
Merchant-supplied idempotency / reference key. Recommended: UUID v4. Two requests with the same key return the same answer and are billed once.
"8b1d6f3e-9a02-4c5d-9f7a-2c8e1b3d4f5a"
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.
"8b1d6f3e-9a02-4c5d-9f7a-2c8e1b3d4f5a"
