Skip to content

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

Raw NIN for financial institutions and government, NIN plus selfie for any business, or a six-character NINAuth share code.

Field-by-field matching

Send the names and date of birth you collected; field_matches says which agree, and field_confidence scores each name 0–100.

Nickname-tolerant names

field_confidence allows for nicknames and spelling variants, so Seun scores high against Oluwaseun.

Purpose code enforced

Every call carries one of the 38 NIMC purpose codes, validated against a fixed enum on the API and MCP server.

Recoverable by reference

A slow NIMC response returns 202 with a reference_id, and the result resolves on requery.

Repeat-subject signals

repeat_count_30d and a platform-wide repeat bucket show a NIN checked many times this month, with no personal data shared.

Methods

Every method returns the same normalized verification object. The method, consent mechanism and purpose code are stored with each result.

  • 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. 1

    Collect NIN and consent

    Capture the NIN, share code or selfie and consent in your flow, or send a hosted link.

  2. 2

    Call POST /v1/verify/nin

    Set the method, the purpose code and any fields to compare.

  3. 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.

Request
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"
  }
}'
Response · 200 OK
{
  "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.

  • 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.

FAQ

NIN Verification questions.

Need more detail? Read the documentation or talk to our team.

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.