v2.0 Go to Console
Identity Rails Nigeria · NIMC Real-time

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.

Overview

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.

Two data tiers

Basic for fast identity confirmation, Premium for full regulatory KYC including biometric photo and next-of-kin.

NDPR compliant

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
Tier 1

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.

POST /api/v1/ng/nin-basic/ Requires API key

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
ninstringThe verified NIN as returned by NIMC.
firstnamestringFirst name as registered with NIMC.
lastnamestringLast / family name as registered.
middlenamestringMiddle name. Empty string if not registered.
phonestringRegistered phone number in local format.
genderstring"m" or "f".
birthdatestringDate of birth in DD-MM-YYYY format.
photostringBase64-encoded NIMC biometric photo. Can be passed directly to the Face Comparison API as the reference image.
residence.address1stringPrimary residential address line.
residence.townstringRegistered town.
residence.lgastringLocal Government Area.
residence.statestringState of residence.
Tier 2

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.

POST /api/v1/ng/nin-premium/ Requires API key

Additional fields in Premium — data object

All Basic fields are included. These fields are added in Premium only.

Field Type Description
titlestringSalutation (e.g. "mr", "mrs").
emailstringRegistered email address. May be empty if not provided at enrollment.
professionstringSelf-declared profession at time of enrollment.
marital_statusstringMarital status (e.g. "single", "married").
employment_statusstringEmployment status at time of enrollment (e.g. "employed").
birth_statestringNigerian state of birth.
birth_countrystringCountry of birth.
state_of_originstringState of origin (may differ from state of residence).
lga_of_originstringLocal Government Area of origin.
nspokenlangstringPrimary Nigerian spoken language.
religionstringDeclared religion. Handle as sensitive personal data per NDPR.
next_of_kinobjectNext-of-kin record. All sub-fields are returned as **** (masked by NIMC for privacy).
signaturestringBase64-encoded enrollment signature.
tracking_idstringNIMC 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

  1. Call Liveness Check on the user's selfie to confirm a live person is present.
  2. Call NIN Basic to retrieve the identity record and NIMC photo for the supplied NIN.
  3. Call Face Comparison passing the selfie and the data.photo from 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.