Go back to Blog
Jennifer Edidiong
Marketing
11 min read
Share to
How to Integrate Virtual NIN Verification Into Your Onboarding Flow

NIMC has officially replaced raw NIN sharing with a tokenized framework to secure the data of over 127 million enrolled Nigerians. As outlined in the official NIMC tokenization policy, identity verification in Nigeria is moving away from static numbers toward time-bound, encrypted tokens.
Many onboarding flows are not yet updated to support this architecture. Continuing to collect raw 11-digit inputs triggers immediate validation failures, introduces heavy security vulnerabilities, and creates compliance friction. For Nigerian fintechs, adapting to this change directly impacts user activation rates and verification stability.
This guide breaks down how the virtual NIN framework operates, how it alters user onboarding dynamics, and how to integrate a secure vNIN verification API into your product workflow.
What Is a Virtual NIN and Why Did NIMC Introduce It?

In simple technical terms, a virtual NIN in Nigeria is a tokenized version of the National Identification Number. It is a 16-character alphanumeric identity token generated specifically for enterprise verification use cases, operating much like a virtual card token in payments. Instead of prompting users to expose their permanent 11-digit identifier, your onboarding system collects this dynamic token to validate their identity safely.
Furthermore, it carries a time-bound validity that expires after 72 hours, cannot be stored long-term in databases, and is fundamentally designed to protect raw NIN exposure.
NIMC introduced this tokenization framework to solve critical security vulnerabilities across the local ecosystem:
- Reduce Identity Theft Risk: Masking the underlying identifier prevents bad actors from intercepting and weaponizing permanent user credentials.
- Improve Data Privacy Compliance: The architecture forces compliance alignment with the Nigeria Data Protection Act (NDPA) by limiting unnecessary data retention.
- Limit Unnecessary Exposure of Raw NIN Data: Restricting raw database access ensures that a security breach at a single merchant doesn't compromise a user’s foundational ID nationwide.
- Strengthen Controlled Identity Sharing: It establishes a secure transaction model where users share their data with specific platforms under predefined, verifiable parameters.
Ultimately, this shift means you stop storing permanent identifiers and start using temporary tokens that keep your users' data secure.
How a User Generates a vNIN

For your onboarding flow to work with vNIN, you need to understand how users actually get it. vNIN isn’t something people keep in their wallets; it’s generated on demand, per platform, and tied directly to your business.
NIMC provides two main ways users can generate a vNIN: through the NIMC Mobile App and via USSD. Both methods are built around the idea that identity sharing is intentional, not automatic.
Method 1: NIMC Mobile ID App
The NIMC Mobile ID app lets users generate a vNIN from their smartphone. The flow is straightforward:
- App Installation: Users download and install the NIMC Mobile ID app on their devices.
- Feature Selection: They open the app and select the option to generate a Virtual NIN.
- Enterprise Pairing: Instead of just getting a generic code, they either scan a QR code or enter an enterprise-specific identifier linked to your platform.
- Token Generation: The app generates a 16-character vNIN that is valid for 72 hours and tied specifically to your business.
Method 2: USSD Flow
For users who don’t want or can’t use the app, NIMC also supports USSD-based vNIN generation. The core pattern is this:
- String Execution: Users dial *346*3*[NIN]*[EnterpriseCode]# from any mobile device linked to their profile.
- Gateway Validation: The USSD prompt processes their 11-digit NIN and automatically applies your enterprise code.
- SMS Delivery: After validation, the system returns a 16-character vNIN via SMS to the phone number linked to that NIN.
Every business is assigned a unique enterprise code that integrates directly into these channels to ensure identity linkage between the user and the requesting business.
What This Means for Your Onboarding Flow

Shifting to a tokenized system fundamentally changes how you approach identity verification onboarding in Nigeria. You can no longer use a raw 11-digit NIN input field as your primary verification method because the Nigeria Data Protection Bureau compliance frameworks now require a dynamic token instead.
Your customer acquisition funnel must shift from a passive enter your NIN model to an active virtual NIN Nigeria generation experience. Because successful vNIN verification onboarding now depends entirely on user action through NIMC channels, like dialing a USSD code or opening the mobile app, your system needs to guide users through the process rather than just waiting for them to type in a static number.
When you first introduce vNIN to your onboarding, you’ll run into predictable friction points:
- Users don’t know how to generate vNIN
They may not even know the term Virtual NIN exists. If your UI just says Enter your vNIN without guidance, many will drop off. - Confusion around enterprise code
Seeing an unfamiliar code in the USSD string can make users suspicious or hesitant. They may mistake it for a third‑party number or scam. - Drop‑offs during redirection
As soon as you instruct users to open another app or dial USSD, some will pause or abandon the flow entirely if the instructions are unclear.
To protect your acquisition funnel from these friction points, you need to build proactive UX helpers directly into your user interface.
- In-App Instructions and Tooltips: Include clear tooltips or a brief explanatory modal right before the input field explaining exactly how to generate the 16-character token.
- Step-by-Step Generation Guidance: Provide the exact USSD string on-screen with your platform's enterprise code clearly filled in, alongside a single-tap "Copy" button so they don't have to memorize it.
- Clear UI Prompts: Use distinct, action-oriented labels on your input headers. Instead of a generic Enter ID number, use a prompt like Paste your 16-character Virtual NIN here.
- Client-Side Format Validation: Build regex checks into your frontend form to ensure the input is exactly 16 characters and alphanumeric, catching typos instantly instead of making the user wait for a failed backend response.
Key Implementation Details to Get Right

To build a secure NIMC vNIN integration, your team must design around five core rules.
1. The 72-Hour Expiry Window
A virtual NIN is highly time-sensitive. NIMC enforces a strict 72-hour lifetime on every token from the exact millisecond a user generates it. Your backend must process and submit the token to your verification gateway immediately. If a user generates a token on a Friday night but finishes their profile form on Tuesday morning, the token will fail, forcing them to start over.
2. One-Time Use Limits
A vNIN only works once. The token generated for your platform is instantly burned the moment it touches the network. If a verification call fails halfway through a buggy onboarding script, that specific token is useless. Your system must handle this by clearing the input field on failure and prompting the user to pull a fresh token.
3. Strict Storage Restrictions
To comply with the Nigeria Data Protection Act (NDPA), your system cannot cache or store raw vNIN values. Once you submit the 16-character string and receive the verified identity payload (like full name and date of birth), you must discard the token string. For audit trails, only log the unique transaction reference identifier returned by the gateway.
4. Frontend Regex Rules
Do not waste server resources or API overhead on typos. Catching simple mistakes on the client side prevents unnecessary network failures. Use a basic regex check on your input fields to ensure the string is exactly 16 characters and alphanumeric before letting the user hit submit.
5. Sandbox Lifecycle Testing
Testing live user strings during development is messy because vNINs rely on real carrier networks. When designing your vNIN verification onboarding pipeline, use a production-grade sandbox. This lets your team safely simulate edge cases like expired tokens, mismatched enterprise codes, and timeout failures without burning live API calls.
How to Verify vNIN via API
Submitting a virtual NIN to an API isn't like querying a database for a stored credential; it is a live, real-time identity handshake. When a user hands you a token, your system triggers an instant lookup against the central registry to confirm who they are at that exact moment.
To process these checks cleanly, your backend needs to map out both the data payload you receive and the specific error states that will inevitably hit your endpoints.
1. The Verification API Request and Payload
When you submit the 16-character string to your API gateway, the registry processes the enterprise code embedded in the token and unlocks a specific, filtered identity dataset.
A successful response payload typically returns the following structured data:
- Full Name: The user's legal first, middle, and last names as registered with NIMC.
- Date of Birth: Essential for age-gate validation checks.
- Gender: Listed as registered on their core identity profile.
- Phone Number Match: A critical cross-reference field (where available) to verify that the SIM card used to generate the token matches the identity profile on file.
2. Handling Operational API Responses
Because you are dealing with a live network handshake, your backend logic must proactively route distinct error codes to prevent your onboarding flow from breaking.
- Expired Tokens: If a user submits a token past its 72-hour lifetime, the API will reject it instantly. Your frontend must catch this response and show a clear UI state asking the user to generate a fresh token via USSD or the app.
- Mismatched Identity Responses: When the payload returns data that doesn't match the names or parameters the user typed into your sign-up form, your system should route the session to a manual compliance review queue rather than completely locking the account.
- Invalid Format Submissions: If a malformed string bypasses your client-side checks, your backend must reject it before passing the overhead to your core identity processors.
Â
How Dojah Helps You Integrate vNIN Verification Seamlessly

Transitioning away from static identity checks often means restructuring your database and rewriting core onboarding logic. You shouldn’t have to rebuild your entire system every time compliance rules change. Your infrastructure should adapt without slowing product growth.
Dojah acts as a complete fraud and identity infrastructure layer, allowing you to deploy compliant vNIN verification without disrupting your existing stack.
- Real-Time Token Validation
Instead of integrating directly with government systems, you verify vNINs through a single API endpoint. The system handles the live connection with NIMC and returns normalized identity data for instant decisions. - Lower Onboarding Friction
Long verification steps can slow users down. Dojah processes tokens quickly so users complete verification faster, improving signup conversion rates.Â
- Seamless Transition from Legacy Systems
Switching from traditional identity checks shouldn’t introduce risk or downtime. The setup allows gradual migration without breaking existing onboarding flows. - Sandbox Testing for Edge Cases
Dojah provides a dedicated sandbox environment makes it easy to simulate edge cases like expired tokens and network delays before production.
Switching to tokenized identity verification shouldn’t slow your team down or complicate your product. This unified infrastructure handles validation, compliance, and data management in one layer, keeping onboarding fast and secure.
If you’re ready to see how vNIN verification fits into your workflow, explore Dojah’s sandbox or book a demo to get started.
Â
Frequently Asked Questions On How to Integrate Virtual NIN VerificationÂ
1. Can we reuse a vNIN token if an onboarding session times out?
No. Every virtual NIN is strictly for one-time use. If a verification fails or a session times out after hitting the registry, the token burns. Your frontend must prompt the user to generate a fresh token.
2. What happens if a user submits a token generated two days ago?
The verification will pass, as long as it falls within NIMC's strict 72-hour lifetime. However, processing older tokens risks failure from network delays. Advise users to generate and paste tokens immediately.
3. How do we run audits if we cannot store the raw vNIN?
You must discard the 16-character vNIN string immediately after getting the profile payload to comply with the NDPA. For future lookups and compliance audits, store only the unique transaction reference identifier returned by the API.
Â
Start using Dojah for all your business needs