Looking for a funded balance rather than an identity? Request test tokens credits NGN and USD to a sandbox wallet. This page covers identity data; that page covers money.
The test personas
Nigerian identity look-ups are resolved by our identity provider against its own sandbox, which recognises a fixed set of test personas. Only the values below resolve — no other number will, however well-formed. There are two personas. Almost everything belongs to the first.Bunch Dillon
Set
firstName to Bunch and lastName to Dillon.
Samson Jabo
Set
firstName to Samson and lastName to Jabo.
22222222222 is a real sandbox test BVN. Because it looks like a placeholder, it is often reached for by guesswork — and a correct number still fails if the submitted details do not match the persona. See the next section.International passport
Match the persona exactly
A correct identity number is not enough. Verification checks the number and the details you submitted alongside it. Any verification performed with details other than the persona’s simulates a failed identity match — which is the sandbox behaving correctly, not a bug. So if you create a user calledTest User and then verify BVN 22222222222, verification fails. The BVN is valid; the name is not Samson Jabo.
The persona phone numbers above are in local Nigerian format. BMONI requires E.164, so convert them: 08000000000 becomes +2348000000000.
Which calls match, and which only fetch
Not every call performs matching, which is why a look-up can succeed while verification later fails.Because
bvn-lookup only fetches, it is the cheapest way to confirm your key reaches the verification service at all. If that call returns a record but activation fails, your plumbing is fine and your profile details do not match the persona.Prerequisites the errors do not mention
A NIN look-up needs the name saved first
nin-lookup sends the user’s firstName and lastName for name-match verification, so both must already be saved on the KYC profile. If they are missing, the look-up fails, and the error does not tell you the name is the reason.
A BVN look-up has no such prerequisite — it returns the name rather than checking it. If you are populating a profile from scratch, run the BVN look-up first and use its response to fill
firstName and lastName. Doing it in that order also guarantees the name matches.A look-up writes nothing
Both look-ups are previews. They return the provider’s record and do not touch the KYC profile. Fetching a BVN does not save it — you still have toPATCH /v1/users/{userId}/kyc with the values you want to keep.
Validation before any look-up
Both look-ups validate locally and reject bad input without calling the provider.
Surrounding whitespace is trimmed for you, so
" 95888168924 " passes. Whitespace inside the number does not — "958 881 689 24" is 14 characters and fails.
What a successful BVN look-up returns
… marks a field whose value comes from the underlying record and is not documented, so read it from your own response rather than assuming it.
dateOfBirth is always normalised to YYYY-MM-DD, whatever format the provider returns. Every field except bvn, firstName, lastName, dateOfBirth, and gender is nullable, and a sandbox persona leaves several of them empty — so do not require them in your client. Run the call once and record what the persona actually returns before you write assertions against it.
Biometric face match
Face-match checks use the persona’s identity number:Testing the failure paths on purpose
Every case below is deterministic, which makes them suitable for automated tests.
The mismatch row is the one worth automating. It is the failure your real users will hit most often, and the easiest to ship without noticing.
What a look-up miss looks like today
A well-formed number with no matching record currently surfaces the upstream messagerequested item could not be found. That wording does not distinguish a wrong number from an identity absent from the sandbox.
Making a sandbox look-up miss self-explanatory — naming the sandbox and pointing here — is tracked as platform work. Until it lands, read
requested item could not be found from a look-up as “this number is not one of the personas above”.If a look-up for a persona number such as
95888168924 returns a miss, the number is not the problem. Check that you are calling the sandbox base URL with your sandbox key, then raise it with developers@bkey.me — do not work through other numbers, because none of them resolve.Related
- Request test tokens — funding a sandbox wallet.
- Errors and status codes — every error these endpoints return.
- Nigeria KYC requirements — the fields Nigerian verification needs.
- Integration flow — where identity look-up sits in onboarding.
Last reviewed: 7 August 2026. Persona values current as of 12 November 2025.

