> For the complete documentation index, see [llms.txt](https://docs.lumiid.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lumiid.com/api-integration/government-verification/nin-verification-api-or-nigerian-national-id-lookup.md).

# NIN Verification API | Nigerian National ID Lookup

Verify a customer's Nigerian National Identification Number (NIN) with the LumiID **NIN Verification API**. Retrieve verified identity data for KYC, customer onboarding, compliance, and fraud prevention.

Submit an 11-digit NIN to validate identity information. Choose **Basic** or **Premium** verification based on your required level of due diligence.

***

## Overview

|                        |                                                |
| ---------------------- | ---------------------------------------------- |
| **Country**            | 🇳🇬 Nigeria                                   |
| **Data Source**        | National Identity Management Commission (NIMC) |
| **Verification Tiers** | Basic • Premium                                |
| **NIN Format**         | 11-digit numeric                               |
| **Typical Latency**    | < 2 seconds                                    |
| **Sandbox**            | Supported                                      |
| **Compliance**         | NDPR Compliant                                 |

***

## Available Endpoints

| Endpoint                       | Description                                                                  |
| ------------------------------ | ---------------------------------------------------------------------------- |
| **POST** `/v1/ng/nin-basic/`   | Verify a NIN and retrieve core identity information.                         |
| **POST** `/v1/ng/nin-premium/` | Retrieve the complete NIMC identity profile for enhanced KYC and compliance. |

***

## Verification Tiers

### Basic Verification

Designed for standard customer onboarding and identity verification.

Returns:

* Full name
* Date of birth
* Gender
* Registered phone number
* Residential address
* Biometric photo (Base64)
* Identity verification status

Ideal for:

* Customer onboarding
* KYC verification
* Face comparison
* Liveness verification
* Identity confirmation

***

### Premium Verification

Includes everything returned in **Basic**, plus additional demographic and regulatory information required for enhanced due diligence (EDD).

Additional fields include:

* Email address
* Profession
* Employment status
* Marital status
* Religion
* Spoken language
* Birth state and country
* State and LGA of origin
* Next-of-kin (masked)
* Signature (Base64)
* NIMC tracking ID

Recommended for:

* Banks
* Fintechs
* Lending platforms
* Government services
* Enterprise KYC
* Regulatory compliance

***

## Tier Comparison

| Identity Data         | Basic | Premium |
| --------------------- | :---: | :-----: |
| Full name             |   ✓   |    ✓    |
| Gender                |   ✓   |    ✓    |
| Date of birth         |   ✓   |    ✓    |
| Phone number          |   ✓   |    ✓    |
| Residential address   |   ✓   |    ✓    |
| Biometric photo       |   ✓   |    ✓    |
| Email address         |   —   |    ✓    |
| Profession            |   —   |    ✓    |
| Employment status     |   —   |    ✓    |
| Marital status        |   —   |    ✓    |
| Religion              |   —   |    ✓    |
| Spoken language       |   —   |    ✓    |
| Birth state & country |   —   |    ✓    |
| State & LGA of origin |   —   |    ✓    |
| Next-of-kin (masked)  |   —   |    ✓    |
| Signature             |   —   |    ✓    |
| Tracking ID           |   —   |    ✓    |

***

## Basic NIN Verification

**POST**

```http
{{baseUrl}}/v1/ng/nin-basic/
```

***

### Headers

| Header        | Description              |
| ------------- | ------------------------ |
| Authorization | `Bearer YOUR_SECRET_KEY` |
| Content-Type  | `application/json`       |

***

### Request Body

| Field | Type   | Required | Description                                             |
| ----- | ------ | -------- | ------------------------------------------------------- |
| `nin` | string | ✅        | The customer's 11-digit National Identification Number. |

Example

```json
{
    "nin":"89184072280"
}
```

***

## Successful Response

```json
{
  "success": true,
  "code": "NIN_VERIFIED",
  "message": "NIN verification successful",
  "verification_type": "NIN",
  "summary": {
    "verified": true,
    "verification_type": "NIN",
    "provider": "LumiID",
    "confidence_score": 1.0
  },
  "data": {
    "nin": "89184072280",
    "firstname": "TERHEMBA",
    "lastname": "JUDE",
    "middlename": "",
    "phone": "08000000000",
    "gender": "m",
    "birthdate": "06-01-1974",
    "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD...",
    "residence": {
      "address1": "8637 Larkin Ports",
      "town": "Abuja",
      "lga": "Abuja Municipal",
      "state": "FCT Abuja"
    }
  },
  "meta": {
    "request_id": "req_a3f9c21d9b4e",
    "timestamp": "2026-03-19T08:14:22.445821Z"
  }
}
```

***

## Basic Response Fields

### Top-Level Response

| Field               | Type    | Description                                                |
| ------------------- | ------- | ---------------------------------------------------------- |
| `success`           | boolean | Indicates whether the verification completed successfully. |
| `code`              | string  | Machine-readable response code.                            |
| `message`           | string  | Human-readable response message.                           |
| `verification_type` | string  | Always `NIN`.                                              |
| `summary`           | object  | Verification summary.                                      |
| `data`              | object  | Verified NIMC identity record.                             |
| `meta.request_id`   | string  | Unique request identifier.                                 |
| `meta.timestamp`    | string  | ISO 8601 timestamp.                                        |

***

### `data`

| Field                | Description                             |
| -------------------- | --------------------------------------- |
| `nin`                | Verified National Identification Number |
| `firstname`          | First name                              |
| `lastname`           | Last name                               |
| `middlename`         | Middle name                             |
| `phone`              | Registered phone number                 |
| `gender`             | Gender                                  |
| `birthdate`          | Date of birth                           |
| `photo`              | Base64-encoded biometric photograph     |
| `residence.address1` | Residential address                     |
| `residence.town`     | Town                                    |
| `residence.lga`      | Local Government Area                   |
| `residence.state`    | State                                   |

***

## Premium NIN Verification

**POST**

```http
{{baseUrl}}/v1/ng/nin-premium/
```

Returns the complete NIMC identity profile for enhanced customer due diligence and regulatory compliance.

***

### Additional Response Fields

The Premium endpoint returns **all Basic fields**, plus:

| Field               | Description                     |
| ------------------- | ------------------------------- |
| `title`             | Customer title                  |
| `email`             | Registered email address        |
| `profession`        | Profession                      |
| `employment_status` | Employment status               |
| `marital_status`    | Marital status                  |
| `birth_state`       | State of birth                  |
| `birth_country`     | Country of birth                |
| `state_of_origin`   | State of origin                 |
| `lga_of_origin`     | Local Government Area of origin |
| `religion`          | Religion                        |
| `nspokenlang`       | Primary spoken language         |
| `next_of_kin`       | Masked next-of-kin information  |
| `signature`         | Base64-encoded signature        |
| `tracking_id`       | NIMC tracking identifier        |

Example:

```json
{
  "data": {
    "title": "mr",
    "email": "example@gmail.com",
    "profession": "ENGINEER",
    "marital_status": "single",
    "employment_status": "employed",
    "birth_state": "FCT",
    "birth_country": "Nigeria",
    "state_of_origin": "FCT",
    "lga_of_origin": "Kabu",
    "religion": "islam",
    "nspokenlang": "ESAN",
    "next_of_kin": {
      "firstname": "****",
      "lastname": "****",
      "address1": "****",
      "state": "****"
    },
    "signature": "base64==",
    "tracking_id": "S000000000000000"
  }
}
```

***

## Error Codes

| HTTP    | Code                      | Resolution                                                                   |
| ------- | ------------------------- | ---------------------------------------------------------------------------- |
| **400** | `NIN_VERIFICATION_FAILED` | Verification failed. Retry once before contacting support.                   |
| **400** | `NIN_NOT_FOUND`           | No record exists for the supplied NIN. Ensure it contains exactly 11 digits. |
| **401** | `INVALID_API_KEY`         | Verify your API credentials.                                                 |
| **401** | `UNAPPROVED_ORGANIZATION` | Complete organization approval before using the Production API.              |
| **401** | `SUBSCRIPTION_REQUIRED`   | Enable NIN Verification from the LumiID Console.                             |
| **402** | `INSUFFICIENT_FUNDS`      | Fund your LumiID wallet before retrying.                                     |
| **500** | `SERVER_ERROR`            | Unexpected internal error. Retry once.                                       |
| **503** | `SERVICE_UNAVAILABLE`     | The NIMC service is temporarily unavailable. Retry with exponential backoff. |
| **504** | `TIMEOUT`                 | The request timed out. Retry after a short delay.                            |

***

## Security & Compliance

* All identity records are retrieved directly from the **National Identity Management Commission (NIMC)**.
* All API requests must use **HTTPS**.
* Every verification request includes a unique `request_id` for auditing and support.
* Sensitive information must be processed in accordance with the **Nigeria Data Protection Act (NDPA)** and applicable privacy regulations.
* Premium fields such as **religion** and **next\_of\_kin** should only be collected where there is a lawful basis.

***

## Recommended Identity Verification Flow

For the highest level of assurance during onboarding, LumiID recommends the following workflow:

1. Verify the customer's **NIN**.
2. Perform a **Liveness Check** using the customer's selfie.
3. Compare the selfie with the NIMC biometric photo using the **Face Comparison API**.
4. Continue onboarding only after all verification checks succeed.

This workflow helps detect identity fraud, impersonation, and presentation attacks while meeting modern KYC and AML requirements.

***

### NIN verification FAQ

#### What is a NIN?

A NIN is Nigeria's 11-digit National Identification Number. It identifies an individual in national identity records.

#### Which organization maintains NIN records?

The National Identity Management Commission (NIMC) manages Nigeria's NIN identity records.

#### Can I use the NIN Verification API for KYC onboarding?

Yes. Use it to validate customer identity during KYC and compliance workflows.

#### Which NIN verification tier should I use?

Use Basic for standard identity checks. Use Premium when enhanced due diligence requires additional identity data.

***

## Example (Python)

```python
import requests

url = "https://api.lumiid.com/v1/ng/nin-basic/"

headers = {
    "Authorization": "Bearer YOUR_SECRET_KEY",
    "Content-Type": "application/json"
}

payload = {
    "nin": "89184072280"
}

response = requests.post(
    url,
    json=payload,
    headers=headers
)

print(response.json())
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.lumiid.com/api-integration/government-verification/nin-verification-api-or-nigerian-national-id-lookup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
