Skip to main content
Paying the wrong account is expensive and usually irreversible. Account validation lets you check a destination before you commit to it. There are two levels, and which you get depends on your account: Both come from the same endpoints, with the same request shape. Without the entitlement you get the format check and nameLookupStatus: "NOT_ENABLED"; with it, the response gains accountName, accountStatus and — if you asked for it — nameMatch.

Validating a phone number

Validating a bank account

Send the account number, the bank code and the country.
Alongside the name, bank responses carry accountStatusACTIVE, FROZEN or RESTRICTED. A frozen or restricted account will usually reject an incoming payment, so it’s worth checking before you send.

Paybill and till

Set accountType to paybill or till and send shortCode instead of phoneNumber. For a paybill you can also pass accountReference — the value a payer would enter as the account number.
A shortcode is just digits, so there’s no useful format check for one — whether it exists is exactly what the lookup answers. These two types therefore need name lookup enabled.

Confirming the recipient is who you expect

Send accountName with the name you’re expecting and the response adds a nameMatch block.
Names are compared token by token rather than as exact strings, because real account names rarely come back in the format you sent them. Jane M Doe, Doe Jane Mary and Jane Mary Doe all match JANE MARY DOE; Robert Doe does not.
When masked is true the provider only returned part of the name, so the match is based on the visible portion alone. Treat that as “not contradicted” rather than confirmed.

Blocking payouts on a name mismatch

If you’d rather not check every recipient yourself, we can enforce it for you: your bank payouts get name-checked before dispatch, and any payout whose recipient name doesn’t match is failed instead of sent. This is off by default and configured per account, including how close the match has to be. Talk to your account manager if you want it enabled.

Trying it out

Sandbox has reserved values that resolve to frozen accounts, unresolvable accounts, mismatched names and provider timeouts, so you can build against the failure cases directly.