> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lumiid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NUBAN Account Verification API: Nigerian Bank Account Lookup

> Verify Nigerian bank accounts by NUBAN number and CBN bank code. Confirm account name and bank before transfers, payouts, payroll, or loan disbursements.

Use the LumiID NUBAN Account Verification API to verify Nigerian bank accounts before transfers, payouts, direct debits, or customer onboarding. Submit a 10-digit NUBAN account number alongside the customer's CBN bank code to confirm the account name and bank details in under 2 seconds. Data is sourced from NIBSS and participating Nigerian banks. This API supports payment validation, KYC, fraud prevention, payroll, and loan disbursement workflows — helping you reduce failed transactions and routing errors.

## Overview

| Property | Details |
| - | - |
| **Country** | 🇳🇬 Nigeria |
| **Data Source** | NIBSS & Participating Banks |
| **Account Format** | 10-digit NUBAN |
| **Typical Latency** | \< 2 seconds |
| **Sandbox** | Supported |

***

## Endpoint

```text theme={null}
POST https://api.lumiid.com/v1/ng/nuban/
```

### Authentication

Include your API credentials with every request.

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

***

## Request Body

**account\_number** `string` *required*

A valid 10-digit Nigerian bank account number (NUBAN format).

**bank\_code** `string` *required*

The 3-digit CBN bank code for the customer's bank. For example, use `044` for Access Bank. Call `GET /v1/ng/banks/` to retrieve a full list of supported banks and their codes.

#### Example Request

```json theme={null}
{
  "account_number": "1234567890",
  "bank_code": "044"
}
```

***

## Success Response

```json theme={null}
{
  "success": true,
  "code": "NUBAN_VERIFIED",
  "message": "Account verification successful",
  "verification_type": "NUBAN",
  "summary": {
    "verified": true,
    "verification_type": "NUBAN",
    "provider": "LumiID",
    "confidence_score": 1.0
  },
  "data": {
    "account_number": "1234567890",
    "account_name": "JOHN ADAMS DOE",
    "bank_code": "044",
    "bank_name": "Access Bank"
  },
  "meta": {
    "request_id": "req_a3f9c21d9b4e",
    "timestamp": "2026-07-28T11:05:42Z"
  }
}
```

***

## Response Fields

**success** `boolean`

Indicates whether the request completed successfully.

**code** `string`

Machine-readable response code. Returns `NUBAN_VERIFIED` on success.

**message** `string`

Human-readable response message.

**verification\_type** `string`

Always `NUBAN`.

**summary** `object`

Verification summary.

**summary fields**

**verified** `boolean`

Whether the account was successfully verified.

**verification\_type** `string`

Always `NUBAN`.

**provider** `string`

Always `LumiID`.

**confidence\_score** `number`

Confidence score for the verification result. Returns `1.0` for a confirmed match.

**data** `object`

Verified bank account information.

**data fields**

**account\_number** `string`

Verified bank account number.

**account\_name** `string`

Official account holder's name.

**bank\_code** `string`

CBN bank code.

**bank\_name** `string`

Bank associated with the account number.

**meta** `object`

Request metadata.

**meta fields**

**request\_id** `string`

Unique request identifier for auditing and support.

**timestamp** `string`

ISO 8601 timestamp of when the request was processed.

***

## Nigerian Bank Codes

LumiID provides a helper endpoint for retrieving the latest list of Nigerian banks and their official CBN bank codes. Using this endpoint ensures your application always uses current, supported banking information rather than maintaining a static list.

```text theme={null}
GET https://api.lumiid.com/v1/ng/banks/
```

This endpoint returns:

* Bank name
* CBN bank code
* Bank logo (where available)

***

## Error Codes

| HTTP | Code | Description |
| - | - | - |
| **400** | `INVALID_ACCOUNT_NUMBER` | The account number is invalid or not 10 digits. |
| **400** | `INVALID_BANK_CODE` | The supplied bank code is invalid or unsupported. |
| **404** | `ACCOUNT_NOT_FOUND` | No account matches the supplied account number and bank code. |
| **401** | `INVALID_API_KEY` | Authentication failed. Verify your API credentials. |
| **402** | `INSUFFICIENT_FUNDS` | Your LumiID wallet balance is insufficient. |
| **500** | `SERVER_ERROR` | An unexpected error occurred. Retry the request. |
| **503** | `SERVICE_UNAVAILABLE` | The banking verification service is temporarily unavailable. |
| **504** | `TIMEOUT` | The verification request timed out. Retry after a short delay. |

***

## Code Example

```python theme={null}
import requests

url = "https://api.lumiid.com/v1/ng/nuban/"

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

payload = {
    "account_number": "1234567890",
    "bank_code": "044"
}

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

print(response.json())
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.