Skip to main content
POST
Verifies a Nigerian National Identification Number (NIN) against the National Identity Management Commission register. Requires a selfie: the enrolment portrait held against the NIN is face-matched with it, and the record is only returned when the two are the same person. Didit exposes this service through POST /v3/database-validation/ so you can verify the submitted data against the authoritative source and receive normalized match results.

Coverage

  • Coverage: ~ 100%
  • Country: Nigeria
  • Service ID: nga_national_id_facial
  • Data domain: Identity
  • Category: NationalIDRegistry

Inputs

  • Required inputs: national_id, selfie
  • Optional inputs: first_name, last_name, date_of_birth, vendor_data
  • Consent: Not required
  • Workflow availability: Available in workflow
  • Coverage: ~ 100%
  • Price: $0.35 per successful query
Not every document this service accepts carries the identifier it queries by. When the identifier is not extracted from the document the check is recorded as not applicable - no database is queried and you are not charged - which for some countries is a large share of real users. To cover them, also collect the identifier from a Questionnaire answer, a Document AI extraction field, or a value you send when you create the session, and map it on the Database Validation step.

Body parameters

string
default:"NGA"
required
ISO 3166-1 alpha-3 country code for this database service.Example: NGA
string
default:"nga_national_id_facial"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example: nga_national_id_facial
string
default:"11111111111"
required
National identity number for this service.Example: 11111111111
file
required
Selfie image file to upload for biometric database validation. Accepted formats: JPEG, PNG, or WebP.Example: @./selfie.jpg
string
Given name to validate.Example: John
string
Family name to validate.Example: Doe
string
Date of birth in YYYY-MM-DD format.Example: 1990-01-01
string
default:"user-1234"
Your stable user reference for this person, such as your internal user ID. Didit uses it to link standalone checks to the same end user and reduce duplicate-detection noise.Example: user-1234

Input rules & validation notes

  • first_name must match [A-Za-zÀ-ÖØ-öø-ÿ .'-]+.
  • national_id must contain digits only; remove spaces, hyphens, and punctuation before sending the request.
  • national_id must be exactly 11 characters long.

How to call it

Returned data

The exact fields surfaced in source_data depend on what the registry returns. The generated example for nga_national_id_facial currently documents this normalized shape:
  • address
  • birth_country
  • birth_lga
  • birth_state
  • date_of_birth
  • face_match_score
  • first_name
  • gender
  • identification_number
  • last_name
  • marital_status
  • middle_name
  • phone_number
  • photo_available
  • residence_lga
  • residence_state
  • residence_town

Pricing & SLAs

Nigeria National ID + Selfie (NIMC) queries are billed only when Didit receives a conclusive result from the validation source.
  • Per-call price: $0.35 USD.
  • Billing: per successful query. You are not charged when the registry is unreachable, when required fields are missing, or when the request is rejected before reaching the source.
  • Latency: typical p95 < 2 s.
  • Availability: 99.9% per quarter on Didit’s side; downstream source availability varies by country and dataset.

Selfie and face match

The NIMC register answers a valid NIN with the holder’s full record, so knowing a number is not proof of being its owner. Every lookup is therefore tied to a selfie: it is face-matched against the enrolment photo NIMC holds for that NIN, and the record is returned only when both are the same person.
  • Match: source_data carries the NIMC record and face_match_score. Names and date of birth you send are compared against it and reported in validation; send them to get a name and date-of-birth verdict, or omit them and read the registry’s values from source_data.
  • Different person: BIOMETRIC_NO_MATCH. Only face_match_score is returned - no personal data.
  • Match not possible: INCONCLUSIVE when NIMC holds no photo for the NIN or no face could be found. Nothing is returned and the check is sent to review.
  • Unknown NIN: DOCUMENT_NOT_FOUND. The lookup is charged.
In a workflow the selfie is taken from the liveness or face-match step, or from the portrait on the uploaded document when the workflow has no face step. A request without a selfie, or with a NIN that is not 11 digits, is rejected before anything is charged.

Continue reading