Skip to main content
POST
Validate bank account
Checks a bank account before you pay it: the account number format, the bank code, and whether the country is supported. With name lookup enabled, the response also carries the name registered on the account and its status — a frozen or restricted account will usually reject an incoming payment, so it’s worth checking before you send.

Reading the result

nameLookupStatus tells you whether the name resolved, and nameLookupReason says why when it didn’t — so you can tell an account that doesn’t exist from a corridor that can’t resolve names from something worth retrying. isValid reports the account number format, and flips to false once a lookup proves the destination unusable. A name mismatch is different: the account is real, so isValid stays true and nameMatch.matched is what tells you the holder isn’t who you expected.
Full status meanings, retry guidance, and how these fields relate are on Account Validation.
Use the account test values to reproduce frozen, unresolvable and mismatched-name accounts on demand.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
accountNumber
string
required

Bank account number

Example:

"1234567890"

bankCode
string
required

Bank code or name

Example:

"KCB"

countryCode
string
required

Country code

Example:

"KE"

accountName
string

Name you expect on this account. Returns a nameMatch score against the real one.

Example:

"Jane Doe"

Response

success
boolean
Example:

true

message
string
Example:

"Bank account validated successfully."

data
object