What is KYC and Why Does it Matter?
KYC stands for Know Your Customer. Before you allow anyone to move money through your application, Nigerian law requires you to verify that they are who they claim to be. This is not just a technical requirement — it protects you, your customers, and the financial system from fraud, money laundering, and identity theft. The Central Bank of Nigeria (CBN) KYC regulations apply to every financial service that processes payments on behalf of customers. We give you APIs to complete these checks instantly, without your customers having to visit a branch or scan physical documents.KYC checks are required before you may credit or debit a customer’s account for the first time. Build verification into your customer onboarding flow, not as an afterthought.
Three Types of Verification
BVN Lookup
Bank Verification Number. An 11-digit number issued by the CBN that links a Nigerian individual to all their registered bank accounts. The most widely used identity check in Nigerian fintech.
NIN Lookup
National Identification Number. An 11-digit number issued by NIMC (National Identity Management Commission). Tied to the National Identity Card and the biometric database.
CAC Lookup
Corporate Affairs Commission. Verify that a business is legitimately registered in Nigeria. Use this when onboarding business customers, merchants, or vendors.
Privacy by Design
We are deliberate about what data we return — and what we do not. We never return:- Full BVN or NIN digits
- Full date of birth
- Biometric data
- Masked BVN/NIN (e.g.
*****6789) - A name match confidence score (0.0 to 1.0)
- Basic demographic signals (e.g. whether the date of birth year matches)
Understanding the Name Match Score
Every BVN and NIN lookup returns anameMatchScore — a number between 0 and 1.
| Score | Meaning |
|---|---|
0.95 – 1.00 | Very high confidence — names match closely |
0.80 – 0.94 | Good match — minor variation (e.g. middle name omitted, shortened first name) |
0.60 – 0.79 | Partial match — review manually before proceeding |
0.00 – 0.59 | Low confidence — likely a mismatch, reject |
BVN Verification
Use BVN as your primary identity check for individual customers.- cURL
- JavaScript (fetch)
NIN Verification
Use NIN as a secondary check alongside BVN, or as the primary check when BVN is unavailable (e.g. for customers who are new to banking).- cURL
- JavaScript (fetch)
CAC Lookup (Business Verification)
When onboarding a business customer, use CAC lookup to confirm the company is registered with the Corporate Affairs Commission and retrieve its registered details.- cURL
- JavaScript (fetch)
When to Use Each Check
| Scenario | Recommended check |
|---|---|
| Individual customer signing up | BVN (primary) |
| Individual with no BVN yet | NIN (primary) |
| High-risk transaction above a threshold | BVN + NIN (both) |
| Business / merchant onboarding | CAC lookup + director BVN |
| Repeat customer with existing verification | Skip — store verificationRef, do not re-check |
Handling Verification Results
Match (nameMatchScore ≥ 0.80)
Match (nameMatchScore ≥ 0.80)
The identity check passed. Store the
verificationRef against the customer record and proceed with onboarding. You do not need to store any PII from the check — the ref is your audit trail.Partial Match (nameMatchScore 0.60 – 0.79)
Partial Match (nameMatchScore 0.60 – 0.79)
The names are similar but not a strong match. Common causes: the customer’s registered bank name uses a different format (e.g. initials instead of full name), or a middle name is included in one record but not the other.Recommended approach: Do not auto-approve. Ask the customer to upload a government-issued ID for manual review, or ask them to confirm their name exactly as it appears on their BVN/NIN record.
No Match (nameMatchScore < 0.60)
No Match (nameMatchScore < 0.60)
The names do not match. Either the wrong BVN/NIN was entered, or the customer’s identity information does not match.Recommended approach: Reject the verification attempt. Allow the customer to re-enter their BVN/NIN in case of a typo. Log the attempt for fraud monitoring purposes.
Check Failed (API error)
Check Failed (API error)
The verification service could not be reached, or the BVN/NIN was not found in the registry. This is different from a no-match — it means the check could not be completed.Recommended approach: Retry once after a short delay. If it fails again, surface a friendly error to the customer and allow them to try again later. Do not block the customer permanently for a transient API failure.HTTP 422 means the BVN/NIN format is invalid (check the length and that it contains only digits). HTTP 404 means the BVN/NIN was not found in the registry.
Rate Limits
| Endpoint | Limit |
|---|---|
POST /api/v1/kyc/bvn | 100 requests per hour per API key |
POST /api/v1/kyc/nin | 100 requests per hour per API key |
POST /api/v1/kyc/cac | 200 requests per hour per API key |
Rate limits apply per API key, not per customer. If you are running a high-volume batch verification (e.g. verifying an existing customer base), spread requests over time or request a temporary limit increase.