> 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/bvn-verification-api-or-nigerian-bank-verification-number-lookup.md).

# BVN Verification API | Nigerian Bank Verification Number Lookup

Verify Nigerian Bank Verification Numbers (BVNs) with the LumiID **BVN Verification API**. Retrieve verified customer identity data for KYC, onboarding, compliance checks, and fraud prevention.

Submit an 11-digit BVN to receive the available identity record. Choose **Basic** for core identity data. Choose **Advance** for enhanced KYC data when available.

## BVN verification overview

|                        |                                |
| ---------------------- | ------------------------------ |
| **Country**            | Nigeria 🇳🇬                   |
| **Identifier**         | Bank Verification Number (BVN) |
| **BVN format**         | 11-digit numeric               |
| **Verification tiers** | Basic • Advance                |
| **Sandbox**            | Supported                      |

### Available endpoints

| Endpoint                       | Description                                                             |
| ------------------------------ | ----------------------------------------------------------------------- |
| **POST** `/v1/ng/bvn-basic/`   | Verifies a BVN and returns core identity information.                   |
| **POST** `/v1/ng/bvn-advance/` | Returns an expanded BVN profile for enhanced verification. Coming soon. |

### Verification tiers

* **Basic** — Returns name, date of birth, gender, and registered phone number.
* **Advance** — Returns an expanded BVN profile, including biometric and enrolment information. *Coming soon.*

### Common use cases

* Verify customer identities during Nigerian KYC onboarding.
* Reduce identity fraud before account activation or lending.
* Confirm BVN details during compliance and due-diligence checks.

***

## Basic BVN verification

**POST**

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

***

### Headers

| Header          | Type   | Description                                      |
| --------------- | ------ | ------------------------------------------------ |
| `Authorization` | string | Secret API Key. Format: `Bearer YOUR_SECRET_KEY` |
| `Content-Type`  | string | `application/json`                               |

***

### Request Body

| Field       | Type   | Description                                      | Required |
| ----------- | ------ | ------------------------------------------------ | -------- |
| `id_number` | string | A valid 11-digit Bank Verification Number (BVN). | ✅ Yes    |

#### Example Request

```json
{
  "id_number": "22123456789"
}
```

***

### Sample Response

```json
{
  "success": true,
  "code": "BVN_VERIFIED",
  "message": "BVN verification successful",
  "verification_type": "BVN",
  "summary": {
    "verified": true,
    "verification_type": "BVN",
    "provider": "LumiID",
    "confidence_score": 1.0
  },
  "data": {
    "bvn": "22123456789",
    "firstname": "JOHN",
    "lastname": "MUSA",
    "middlename": "DOE",
    "birthdate": "16-05-1997",
    "gender": "Male",
    "phone": "08012345678",
    "match_result": "CONFIRMED"
  },
  "meta": {
    "request_id": "req_8d4fa1bc22e",
    "timestamp": "2026-07-28T10:20:13Z"
  }
}
```

***

### Response Fields

#### Top-Level Response

| Field               | Type    | Description                                           |
| ------------------- | ------- | ----------------------------------------------------- |
| `success`           | boolean | Indicates whether the request completed successfully. |
| `code`              | string  | Machine-readable response code.                       |
| `message`           | string  | Human-readable status message.                        |
| `verification_type` | string  | Always `BVN`.                                         |
| `summary`           | object  | Verification summary.                                 |
| `data`              | object  | Verified BVN information.                             |
| `meta`              | object  | Response metadata.                                    |

***

#### `data`

| Field          | Type   | Description                                                      |
| -------------- | ------ | ---------------------------------------------------------------- |
| `bvn`          | string | Verified Bank Verification Number.                               |
| `firstname`    | string | First name.                                                      |
| `lastname`     | string | Last name.                                                       |
| `middlename`   | string | Middle name, if available.                                       |
| `birthdate`    | string | Date of birth (DD-MM-YYYY).                                      |
| `gender`       | string | Gender of the BVN holder.                                        |
| `phone`        | string | Registered phone number.                                         |
| `match_result` | string | Verification result. Returns `CONFIRMED` for successful lookups. |

***

## Advanced BVN verification

> **Coming Soon**

**POST**

```http
{{baseUrl}}/v1/ng/bvn-advance/
```

The Advance endpoint retrieves the complete BVN record from NIBSS for enhanced KYC and biometric verification.

***

### Headers

| Header          | Type   | Description                                      |
| --------------- | ------ | ------------------------------------------------ |
| `Authorization` | string | Secret API Key. Format: `Bearer YOUR_SECRET_KEY` |
| `Content-Type`  | string | `application/json`                               |

***

### Request Body

| Field       | Type   | Description           | Required |
| ----------- | ------ | --------------------- | -------- |
| `id_number` | string | A valid 11-digit BVN. | ✅ Yes    |

***

### Sample Response

```json
{
  "success": true,
  "code": "BVN_VERIFIED",
  "message": "BVN verification successful",
  "verification_type": "BVN",
  "summary": {
    "verified": true,
    "verification_type": "BVN",
    "provider": "LumiID",
    "confidence_score": 1.0
  },
  "data": {
    "bvn": "22123456789",
    "firstname": "JOHN",
    "lastname": "MUSA",
    "middlename": "DOE",
    "birthdate": "16-05-1997",
    "gender": "Male",
    "phone": "08012345678",
    "email": "john@example.com",
    "photo": "BASE64_IMAGE",
    "title": "Mr",
    "marital_status": "Single",
    "nationality": "Nigerian",
    "profession": "Engineer",
    "employment_status": "Employed",
    "residential_address": "12 Admiralty Way, Lekki",
    "state_of_residence": "Lagos",
    "state_of_origin": "Osun",
    "lga_of_origin": "Osogbo",
    "tracking_id": "S000000000000001"
  },
  "meta": {
    "request_id": "req_8d4fa1bc22e",
    "timestamp": "2026-07-28T10:20:13Z"
  }
}
```

***

### Additional Response Fields

In addition to all Basic fields, the Advance endpoint returns:

| Field                 | Type   | Description                           |
| --------------------- | ------ | ------------------------------------- |
| `photo`               | string | Base64-encoded biometric photograph.  |
| `email`               | string | Registered email address.             |
| `title`               | string | Customer title (Mr, Mrs, Miss, etc.). |
| `marital_status`      | string | Marital status.                       |
| `profession`          | string | Occupation or profession.             |
| `employment_status`   | string | Employment status.                    |
| `nationality`         | string | Nationality.                          |
| `residential_address` | string | Registered residential address.       |
| `state_of_residence`  | string | State of residence.                   |
| `state_of_origin`     | string | State of origin.                      |
| `lga_of_origin`       | string | Local Government Area of origin.      |
| `tracking_id`         | string | NIBSS tracking identifier.            |

***

## Test BVN verification in the sandbox

Use the Sandbox environment to test your integration without consuming wallet credits or querying the live NIBSS infrastructure.

#### Test BVN

```
22123456789
```

The sandbox always returns deterministic test data and should only be used for development and testing.

***

### BVN verification FAQ

#### What is a BVN?

A BVN is Nigeria's 11-digit Bank Verification Number. Use it to identify a customer during verification workflows.

#### Which BVN data does the Basic endpoint return?

The Basic endpoint returns the BVN, name, date of birth, gender, phone number, and verification result.

#### Can I test the BVN Verification API before production?

Yes. Use the sandbox test BVN above during development and integration testing.


---

# 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/bvn-verification-api-or-nigerian-bank-verification-number-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.
