NIN Verification
Verify Nigerian National Identity Numbers (NIN) directly against the NIMC central database in real time. Confirm that a NIN is valid, retrieve the registered identity record, and optionally receive the biometric photo and full profile data for KYC and face-matching workflows.
Two tiers are available: Basic returns core identity data including photo and residential address, and Premium returns the complete NIMC record with employment, marital, religious, and next-of-kin details — required for enterprise-level KYC and regulatory compliance.
This lookup service allows you to verify comprehensive information associated with a National Identification Number (NIN). This guide will walk you through integrating this service into your application, giving you the ability to access and verify important NIN-related details seamlessly.
Basic for fast identity confirmation, Premium for full regulatory KYC including biometric photo and next-of-kin.
Sensitive fields (next-of-kin details) are masked in responses. Every request is logged with a unique request_id.
Tier Comparison
| Data field | Basic | Premium |
|---|---|---|
| Full name, gender, date of birth | ✓ | ✓ |
| Phone number | ✓ | ✓ |
| Biometric photo (Base64) | ✓ | ✓ |
| Residential address | ✓ | ✓ |
| Email, profession, employment status | — | ✓ |
| Marital status, religion, spoken languages | — | ✓ |
| State / LGA of origin, birth country | — | ✓ |
| Next-of-kin details (masked) | — | ✓ |
| Signature, tracking ID | — | ✓ |
Basic Verification
Confirms that a NIN is valid and returns core identity data including the NIMC-registered photo. Use this tier for standard onboarding flows, liveness + face-match pipelines, and any scenario where you need identity confirmation with biometric support but do not require the full regulatory profile.
Request payload
| Field | Description |
|---|---|
| id_number | string · Required The 11-digit National Identity Number to verify. Must be numeric and exactly 11 digits. |
Response — data object
| Field | Type | Description |
|---|---|---|
| nin | string | The verified NIN as returned by NIMC. |
| firstname | string | First name as registered with NIMC. |
| lastname | string | Last / family name as registered. |
| middlename | string | Middle name. Empty string if not registered. |
| phone | string | Registered phone number in local format. |
| gender | string | "m" or "f". |
| birthdate | string | Date of birth in DD-MM-YYYY format. |
| photo | string | Base64-encoded NIMC biometric photo. Can be passed directly to the Face Comparison API as the reference image. |
| residence.address1 | string | Primary residential address line. |
| residence.town | string | Registered town. |
| residence.lga | string | Local Government Area. |
| residence.state | string | State of residence. |
Premium Verification
Returns the complete NIMC profile — everything in Basic plus employment status, marital status, religion, spoken languages, state and LGA of origin, next-of-kin, signature, and NIMC tracking ID. Required for banking, government onboarding, and enterprise KYC where full regulatory disclosure is mandated.
Additional fields in Premium — data object
All Basic fields are included. These fields are added in Premium only.
| Field | Type | Description |
|---|---|---|
| title | string | Salutation (e.g. "mr", "mrs"). |
| string | Registered email address. May be empty if not provided at enrollment. | |
| profession | string | Self-declared profession at time of enrollment. |
| marital_status | string | Marital status (e.g. "single", "married"). |
| employment_status | string | Employment status at time of enrollment (e.g. "employed"). |
| birth_state | string | Nigerian state of birth. |
| birth_country | string | Country of birth. |
| state_of_origin | string | State of origin (may differ from state of residence). |
| lga_of_origin | string | Local Government Area of origin. |
| nspokenlang | string | Primary Nigerian spoken language. |
| religion | string | Declared religion. Handle as sensitive personal data per NDPR. |
| next_of_kin | object | Next-of-kin record. All sub-fields are returned as **** (masked by NIMC for privacy). |
| signature | string | Base64-encoded enrollment signature. |
| tracking_id | string | NIMC internal tracking reference for the enrollment record. |
Response Envelope
All responses — success or error, Basic or Premium — share the same top-level structure.
| Field | Type | Description |
|---|---|---|
| success | boolean | true when verification completed. Check code for the result — false means a server or upstream fault occurred. |
| code | string | NIN_VERIFIED on success; an error code otherwise. See Error Codes below. |
| message | string | Human-readable status description. Safe to surface in internal audit tools. |
| verification_type | string | Always "NIN" for these endpoints. |
| summary.verified | boolean | Convenience boolean — true when the NIN was found and identity data was returned. |
| summary.confidence_score | float | 1.0 on verified; 0.0 on failure. Reserved for future graduated confidence scoring. |
| data | object | The identity record from NIMC. Present on success; null on error. |
| meta.request_id | string | Unique identifier for this request. Format: req_<12 hex chars>. Include in all support queries. |
| meta.timestamp | string | UTC response time in ISO 8601 format. |
Error Codes
| HTTP | Code | Cause & Resolution |
|---|---|---|
| 400 | NIN_VERIFICATION_FAILED | The NIN exists in NIMC but verification returned an unexpected error. Retry once — if it persists, contact support with the request_id. |
| 400 | NIN_NOT_FOUND | No record found for the supplied NIN in the NIMC database. Check for transcription errors — the number must be exactly 11 digits. |
| 401 | INVALID_API_KEY | The API key is missing, malformed, or revoked. Regenerate your key in the Console under API Keys. |
| 401 | UNAPPROVED_ORGANIZATION | Your organisation has not been approved for live access. Complete organisation verification in the Console. |
| 401 | SUBSCRIPTION_REQUIRED | NIN verification is not enabled for your account. Enable the service under Services in the Console. |
| 402 | INSUFFICIENT_FUNDS | Your wallet balance is below the cost of this request. Top up in the Console before retrying. |
| 503 | SERVICE_UNAVAILABLE | Cannot connect to the NIMC verification service. Retry with exponential backoff. Check the status page for ongoing incidents. |
| 504 | TIMEOUT | The NIMC service did not respond in time. Retry once after a short delay. |
| 500 | SERVER_ERROR | Unexpected internal error. Retry once. If it persists, contact support with the request_id. |
Important Notes
All data is sourced directly from the NIMC database. LumiID does not modify, cache, or store identity records beyond the scope of your request.
Requests over HTTP are rejected. HTTPS is required on all endpoints.
Each successful verification deducts one credit from your LumiID wallet. Failed verifications (4xx errors from NIMC) are not charged.
You are responsible for handling returned identity data in compliance with the Nigeria Data Protection Regulation (NDPR). Sensitive fields such as religion and marital_status must not be stored or disclosed without lawful basis.
Recommended onboarding pipeline
- Call Liveness Check on the user's selfie to confirm a live person is present.
- Call NIN Basic to retrieve the identity record and NIMC photo for the supplied NIN.
- Call Face Comparison passing the selfie and the
data.photofrom this response as the reference image.
This three-step pattern confirms presence, identity, and biometric ownership in a single onboarding flow with no additional file handling.