The Onboarding Paradox
Fintech onboarding sits at the intersection of two opposing forces: regulators who want every detail verified, and users who abandon at the first sign of friction.
Most fintech products fail on one side or the other. Heavy compliance theatre creates 70%+ drop-off rates. Lax verification creates regulatory exposure. The products that win design for both simultaneously.
What Compliance Actually Requires
KYC (Know Your Customer) requirements vary by jurisdiction and licence type, but the common elements for Nigerian fintech (CBN-regulated) are:
Tier 1 (wallet, basic transactions): BVN, phone number, name. Low transaction limits.
Tier 2 (higher limits): Tier 1 + NIN, address, photo ID.
Tier 3 (full banking features): Tier 2 + proof of address, enhanced due diligence for higher-risk customers.
AML (Anti-Money Laundering) requirements add transaction monitoring, suspicious activity reporting, and PEP (Politically Exposed Person) screening.
The key insight: not every user needs Tier 3 from day one. Progressive KYC — starting with minimal requirements and upgrading as users hit limits — dramatically improves onboarding completion rates.
Progressive KYC: The Right Mental Model
Instead of a monolithic onboarding form, think in tiers:
Day 1: Collect phone number + BVN. User is immediately active with low limits. This gets the user in the product experiencing value before asking for more.
When user hits a limit: Surface a contextual upgrade prompt. "You've reached your daily limit. Verify your ID to send up to ₦1,000,000/day." This is the optimal moment for KYC — the user has a concrete reason to complete it.
For high-value features: Require full verification before enabling (e.g., virtual cards, international transfers). Frame it as unlocking, not gatekeeping.
Designing the Verification UX
BVN lookup: A single field with real-time validation. Show a loading state while you verify, then confirm name match to build trust. Don't ask users to re-enter their name if you can pull it from BVN.
NIN verification: Same pattern. NIMC API returns name and date of birth — use this to pre-fill and confirm, not to interrogate.
Document upload: Use a camera flow, not file upload. Most users are on mobile. Provide clear guidance on lighting, angle, and what constitutes an acceptable image. Run client-side quality checks (blur detection, document detection) before upload to catch failures before the API call.
Selfie + liveness: For enhanced verification, use a liveness detection library rather than a static selfie. Smile detection or head-turn prompts prevent photo spoofing and are now standard for Tier 2+ onboarding.
Handling Rejection Gracefully
Verification failures happen. Your UX must handle them without dead ends.
When a BVN doesn't match: don't just show "verification failed." Tell the user specifically what doesn't match (date of birth, name spelling) and offer a path forward.
When a document is rejected: show exactly what was wrong (blurry, expired, wrong document type) and allow immediate re-submission.
When a user needs manual review: set clear expectations. "Your documents are under review. You'll hear from us within 24 hours." Then actually deliver on that SLA.
The Data Architecture
KYC data has strict handling requirements. A few non-negotiables:
- Encrypt PII at rest (AES-256) and in transit (TLS 1.3)
- Store raw documents separately from processed verification results
- Implement strict access logging for any PII access
- Define and document retention periods (typically 7 years for financial data in Nigeria)
- Ensure your KYC provider agreements cover data processing requirements
Choosing a KYC Provider
For Nigerian fintech, the common options are Smile Identity, Youverify, and Prembly. Each supports BVN, NIN, and document verification with varying response times and accuracy rates.
I typically recommend Smile Identity for its Nigerian document coverage and SDKs, but the right choice depends on your transaction volumes, geographic focus, and budget.
Building a fintech product? Let's talk about your compliance architecture →