Identity
NIN verification against the NIMC record
Verify a National Identity Number by raw NIN, NIN plus selfie, or NINAuth share code, with a purpose code on every call.
What it does
NIN Verification, in detail.
Three verification methods
Field-by-field matching
Nickname-tolerant names
Purpose code enforced
Recoverable by reference
Repeat-subject signals
Methods
Every method returns the same normalized verification object. The method, consent mechanism and purpose code are stored with each result.
| Method | Input | Returns | Consent | Access |
|---|---|---|---|---|
| nin | 11-digit NIN, reason, consent attestation | Full record or assertion | Client attested | Financial institutions and government (NIMC rule) |
| in_person | NIN, Base64 JPEG selfie, reason | Full record or assertion | The selfie is the consent | All business types |
| share_code | 6-character NINAuth code, reason | Full record or assertion | The code is the consent | All business types |
nin
- Input
- 11-digit NIN, reason, consent attestation
- Returns
- Full record or assertion
- Consent
- Client attested
- Access
- Financial institutions and government (NIMC rule)
in_person
- Input
- NIN, Base64 JPEG selfie, reason
- Returns
- Full record or assertion
- Consent
- The selfie is the consent
- Access
- All business types
share_code
- Input
- 6-character NINAuth code, reason
- Returns
- Full record or assertion
- Consent
- The code is the consent
- Access
- All business types
How it works
From request to decision.
- 1
Collect NIN and consent
Capture the NIN, share code or selfie and consent in your flow, or send a hosted link.
- 2
Call POST /v1/verify/nin
Set the method, the purpose code and any fields to compare.
- 3
Act on the assertion
Read status, match and field_matches; reveal the record in the dashboard only when needed, with every reveal audited.
Routing and providers
NIN lookups run through the NIMC-designated verification channel, with NIBSS FAS as an alternative path. Speedmap has no direct NIMC database access and offers no reverse lookup.
Use it
One request. One normalized response.
Call POST /v1/verify/nin through @speedmap/node, speedmap for Python, or the verify_nin tool in Speedmap Connect.
curl -X POST http://localhost:4000/v1/verify/nin \
-H "Authorization: Bearer sk_test_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"method": "nin",
"nin": "98765432109",
"reason": "financialProducts",
"consent": {
"obtained": true
},
"match": {
"last_name": "Griffin",
"date_of_birth": "1992-04-18"
}
}'{
"reference_id": "spm_767daf1d2bd7de981fd661f5",
"object": "verification",
"product": "nin",
"method": "nin_raw",
"status": "verified",
"match": true,
"field_matches": {
"last_name": true,
"date_of_birth": true
},
"mode": "sandbox",
"reason": "financialProducts",
"subject": "*******2109",
"summary": {
"first_name": "A*****",
"last_name": "O*****",
"repeat_count_30d": 1,
"repeat_platform_bucket": "0"
},
"consent": {
"mechanism": "client_attested",
"consent_id": null
}
}Use cases
Where Nigerian teams use it.
Lending and BNPL
Confirm the borrower’s name and date of birth agree with the NIMC record before a credit decision.
Account opening
Tier-1 KYC for wallets and microfinance accounts, with a purpose code and consent mechanism on every record.
Driver onboarding
Verify riders and contractors under employmentRecruitment, by link, from the dashboard or in bulk.
Agent networks
Verify agents at signup, then re-check in bulk during network audits.
Part of:MarketplacesMobility & logisticsInsuranceHR & gig platformsGovernment & agencies
What you get back
The fields you will read.
| Field | Meaning |
|---|---|
| status | verified, not_found, pending or failed |
| match / field_matches | Whether every supplied field agrees, and which did not |
| field_confidence | 0–100 per name field, tolerant of nicknames and spellings |
| subject | The NIN, masked to its last four digits |
| summary | Masked first and last name, repeat-subject counters |
| consent.mechanism | client_attested, in_person_selfie or ninauth_share_code |
| reference_id | Stable id for requery, webhooks and the audit log |
status
- Meaning
- verified, not_found, pending or failed
match / field_matches
- Meaning
- Whether every supplied field agrees, and which did not
field_confidence
- Meaning
- 0–100 per name field, tolerant of nicknames and spellings
subject
- Meaning
- The NIN, masked to its last four digits
summary
- Meaning
- Masked first and last name, repeat-subject counters
consent.mechanism
- Meaning
- client_attested, in_person_selfie or ninauth_share_code
reference_id
- Meaning
- Stable id for requery, webhooks and the audit log
Assertion tier
Everything above. No name, address or photo in clear.
Full tier
Adds data: the normalized NIMC record (names, date of birth, gender, phone, residential address, state of origin and photo) for workspaces approved for the full tier.
Pricing
Billed per live check on the Scale up plan. Failed calls and idempotent retries are never billed.
- Can I look up a NIN from a phone number or name?
- No. Every method needs the NIN, a share code or a selfie up front; Speedmap does not offer reverse lookup.
- Which businesses can use raw NIN lookup?
- NIMC restricts raw NIN to financial institutions and government agencies, enabled after the compliance review. Other businesses use NIN plus selfie or a NINAuth share code.
- What is the reason field?
- NIMC requires one of 38 purpose codes on every NIN check, such as financialProducts or employmentRecruitment. Speedmap enforces the list on every channel.
- What happens if NIMC does not respond in time?
- You receive 202 with status pending and a reference_id; GET /v1/verifications/{reference_id} re-queries the provider. You are billed once, when the result resolves.
Start verifying in minutes. Go live when you’re ready.
Create your account in under a minute and explore the full dashboard. We switch your workspace live after a short compliance review.