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

# CAC Business Verification API: Nigerian RC Number Lookup

> Verify Nigerian companies by CAC RC number. Retrieve registration details, legal status, and director/shareholder data for KYB and compliance.

Use the LumiID CAC Business Verification API to verify Nigerian companies by their Corporate Affairs Commission (CAC) RC number. You can validate a company's registration details, confirm its legal status, and retrieve structured company records to support KYB, compliance, fraud prevention, and merchant onboarding workflows. The API offers two tiers — **Basic** and **Premium** — so you can choose the level of company information your use case requires.

## Overview

| Property | Value |
| - | - |
| **Country** | 🇳🇬 Nigeria |
| **Data Source** | Corporate Affairs Commission (CAC) |
| **Verification Tiers** | Basic · Premium |
| **Search Method** | RC Number |
| **Typical Latency** | \< 3 seconds |
| **Sandbox** | Supported |
| **Compliance** | KYB Ready |

***

## Verification tiers

### Basic

The Basic tier is designed for standard business verification and merchant onboarding. It returns:

* Company name, RC number, and registration status
* Registration date and head office address
* Company email and classification
* Nature of business and share capital
* Count of registered affiliates

**Ideal for:** merchant onboarding, vendor verification, marketplace onboarding, KYB compliance, and business identity confirmation.

### Premium

The Premium tier returns everything in Basic, plus detailed corporate ownership and governance information:

* Directors, shareholders, and company officers
* Persons with Significant Control (PSC)
* Residential addresses, share allocation, nationality, and appointment dates

**Recommended for:** banks, fintechs, payment providers, lending platforms, enterprise KYB, AML investigations, and Enhanced Due Diligence (EDD).

> [!TIP]
>
> Use Basic when you only need to confirm a company exists and is active. Upgrade to Premium when your compliance workflow requires ownership screening or director-level data.

***

## Basic endpoint

> [!NOTE]
>
> Use this endpoint for standard business verification and merchant onboarding.

### `POST /v1/ng/cac-basic/`

**Base URL:** `https://api.lumiid.com`

#### Headers

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

#### Request body

**reg\_number** `string` *required*

The company's CAC registration number. Include the `RC` prefix as issued by the Corporate Affairs Commission.

**Example:** `RC1234567`

```json theme={null}
{
  "reg_number": "RC1234567"
}
```

#### Success response

```json theme={null}
{
  "success": true,
  "code": "CAC_VERIFIED",
  "message": "CAC verification successful",
  "summary": {
    "verified": true,
    "verification_type": "CAC",
    "provider": "LumiID",
    "confidence_score": 1.0
  },
  "data": {
    "rcNumber": "1234567",
    "companyName": "LUMIERE TECHNOLOGIES",
    "status": "ACTIVE",
    "registrationDate": "2022-08-04T15:05:12.383+00:00",
    "headOfficeAddress": "block 8, adeola odeku street, victoria island, lagos",
    "branchAddress": "",
    "city": "",
    "state": "",
    "lga": "",
    "companyType": "",
    "companyEmail": "john.doe@gmail.com",
    "classification": "Business",
    "natureOfBusiness": "",
    "shareCapital": 0,
    "shareCapitalInWords": "",
    "affiliates": 2
  },
  "meta": {
    "request_id": "req_a3f9c21d9b4e",
    "timestamp": "2026-03-19T08:14:22.445821Z"
  }
}
```

#### Response fields

**success** `boolean`

Indicates whether the verification completed successfully.

**code** `string`

Machine-readable response code (e.g. `CAC_VERIFIED`).

**message** `string`

Human-readable response message.

**summary** `object`

High-level verification summary.

**summary fields**

**verified** `boolean`

Whether the company was successfully verified.

**verification\_type** `string`

Always `CAC` for this endpoint.

**provider** `string`

Always `LumiID`.

**confidence\_score** `number`

Verification confidence on a scale of 0 to 1.

**data** `object`

The verified CAC business record.

**data fields**

**rcNumber** `string`

CAC registration number.

**companyName** `string`

Registered company name.

**status** `string`

Registration status (e.g. `ACTIVE`).

**registrationDate** `string`

Date of incorporation in ISO 8601 format.

**headOfficeAddress** `string`

Registered head office address.

**branchAddress** `string`

Registered branch office address, if any.

**city** `string`

Company city.

**state** `string`

Company state.

**lga** `string`

Local Government Area.

**companyType** `string`

Business entity type.

**companyEmail** `string`

Registered company email address.

**classification** `string`

Company classification (e.g. `Business`).

**natureOfBusiness** `string`

Registered business activities.

**shareCapital** `number`

Declared share capital.

**shareCapitalInWords** `string`

Share capital written out in words.

**affiliates** `number`

Count of registered affiliates. Use the Premium endpoint to retrieve their full details.

**meta** `object`

Request metadata.

**meta fields**

**request\_id** `string`

Unique request identifier for auditing and support.

**timestamp** `string`

UTC response timestamp in ISO 8601 format.

***

## Premium endpoint

### `POST /v1/ng/cac-premium/`

The Premium endpoint returns the complete CAC company profile for enhanced business verification, ownership screening, and regulatory compliance. It accepts the same headers and request body as the Basic endpoint.

#### Additional response fields

The Premium response includes all Basic fields plus an `affiliatesData` array on the `data` object.

**data.affiliatesData** `array`

Complete list of company affiliates, including directors, shareholders, officers, and presenters.

**affiliatesData item fields**

**surname** `string`

Affiliate surname.

**firstname** `string`

Affiliate first name.

**othername** `string`

Middle or other names.

**email** `string`

Registered email address.

**phoneNumber** `string`

Contact phone number.

**gender** `string`

Gender.

**occupation** `string`

Occupation.

**nationality** `string`

Nationality.

**identityNumber** `string`

Identity document number.

**address** `string`

Residential address.

**dateOfBirth** `string`

Date of birth.

**dateOfAppointment** `string`

Date of appointment to the company.

**affiliateType** `object`

Role within the company — Director, Shareholder, Presenter, etc. Contains a `name` string field.

**numSharesAlloted** `number`

Number of shares allocated to this affiliate.

**affiliatesResidentialAddress** `object`

Residential address information.

**affiliatesPscInformation** `object`

Persons with Significant Control (PSC) details, including `pscHoldsSharesOrInterest` and `pscVotingRights` booleans.

#### Premium response example

```json theme={null}
{
  "data": {
    "companyName": "LUMIERE TECHNOLOGIES",
    "rcNumber": "1234567",
    "status": "ACTIVE",
    "affiliatesData": [
      {
        "firstname": "JOSEPH",
        "surname": "UGBA",
        "email": "josephugba@gmail.com",
        "phoneNumber": "7049934545",
        "occupation": "Legal Practitioner",
        "nationality": "NIGERIA",
        "affiliateType": {
          "name": "PRESENTER"
        },
        "affiliatesPscInformation": {
          "pscHoldsSharesOrInterest": false,
          "pscVotingRights": false
        }
      }
    ]
  }
}
```

***

## Error codes

| HTTP | Code | Resolution |
| - | - | - |
| **400** | `CAC_VERIFICATION_FAILED` | Verification failed. Confirm the registration number and retry. |
| **400** | `CAC_NOT_FOUND` | No company exists for the supplied registration number. |
| **401** | `INVALID_API_KEY` | Verify your API credentials. |
| **401** | `UNAPPROVED_ORGANIZATION` | Complete organization approval before using the Production API. |
| **401** | `SUBSCRIPTION_REQUIRED` | Enable CAC 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 CAC service is temporarily unavailable. Retry with exponential backoff. |
| **504** | `TIMEOUT` | The verification request timed out. Retry after a short delay. |

***

## Recommended KYB flow

Follow this workflow to achieve the highest level of business assurance before onboarding a company.

**1. Verify the CAC RC Number**

Call `POST /v1/ng/cac-basic/` with the company's RC number to confirm it is registered and active with the CAC.

**2. Retrieve the Premium profile (if EDD is required)**

Call `POST /v1/ng/cac-premium/` to obtain the full corporate profile, including directors, shareholders, and PSC information, for any company requiring Enhanced Due Diligence.

**3. Screen directors and shareholders via AML**

Run the individuals returned in `affiliatesData` through your AML or watchlist screening system to check for sanctions, PEP status, or adverse media.

**4. Proceed with onboarding**

After all checks pass, activate the merchant or business account with a complete audit trail.

> [!NOTE]
>
> This workflow helps you reduce onboarding fraud, detect shell companies, validate legal entities, and satisfy KYB and AML compliance requirements.

***

## Code example

```python Python theme={null}
import requests

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

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

payload = {
    "reg_number": "RC1234567"
}

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

print(response.json())
```

***

## Security and compliance

* All company records are retrieved directly from the **Corporate Affairs Commission (CAC)**.
* All API requests must use **HTTPS**.
* Every verification includes a unique `request_id` for auditing and troubleshooting.
* Handle business information in accordance with applicable data protection and corporate compliance regulations.
* Process Premium corporate ownership information only where there is a lawful business purpose.


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