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 accountStatus — ACTIVE, 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.