Validate an account
Authentication
Request
3-letter ISO country code identifying the market the account belongs to. Supported markets depend on accountType:
bank_account— ZAF (South Africa), NGA (Nigeria), EGY (Egypt), GHA (Ghana) and KEN (Kenya).mobile_money— KEN (Kenya) and GHA (Ghana).institution_wallet— ZWE (Zimbabwe).
The account locator, interpreted according to accountType:
bank_account— the bank account number. For Egypt (EGY) supply the full IBAN instead (it encodes the bank, sobankCodeis not needed).mobile_money— the MSISDN (phone number, including country-code prefix).institution_wallet— the wallet identifier.
Identifies the destination bank. Required for bank_account in every market except Egypt (EGY), where the IBAN in accountIdentifier carries the bank; ignored for mobile_money and institution_wallet. The format is market-specific:
- ZAF — 6-digit universal (any-branch) bank code, e.g.
632005(Absa),051001(Standard Bank),250655(FNB),470010(Capitec). See the South Africa payout guide. - NGA — 3-digit (commercial bank) or 6-digit (OFI) CBN bank code.
- GHA — 3-digit Bank of Ghana institution code.
- KEN — the destination bank’s code on the domestic rails.
When supplied, the response status will be name_mismatch if the provider returns a different name.
Response
Validation result (resolved or pending)
Validation ID — use with GET /accounts/validate/{id} to poll a pending validation.
Validation outcome. pending means the upstream provider is still resolving; poll GET /accounts/validate/{id} until terminal.
Which connector produced the result (e.g. flutterwave, sandbox).
Name returned by the provider, populated for verified / name_mismatch.
Where the result came from — internal_rules = format check (e.g. NUBAN check digit), external = upstream provider lookup.
ISO-8601 timestamp at which the cached result becomes stale.
Free-form provider reason; populated for not_found / name_mismatch / error.