> 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/business-verification/cac-business-verification-api-or-nigerian-rc-number-lookup.md).

# CAC Business Verification API | Nigerian RC Number Lookup

Use the LumiID **CAC Business Verification API** to verify Nigerian companies by Corporate Affairs Commission (CAC) RC number. Validate registration details, confirm legal status, and retrieve company records for KYB, compliance, fraud prevention, and merchant onboarding.

Choose between **Basic** and **Premium** verification depending on the level of company information your application requires.

***

### Overview

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

***

### CAC Business Verification API endpoints

| Endpoint                       | Description                                                                                              |
| ------------------------------ | -------------------------------------------------------------------------------------------------------- |
| **POST** `/v1/ng/cac-basic/`   | Verify a business and retrieve core registration information.                                            |
| **POST** `/v1/ng/cac-premium/` | Retrieve the complete CAC company profile, including directors, shareholders, and affiliate information. |

***

### CAC company verification tiers

#### Basic verification

Designed for standard business verification and merchant onboarding.

Returns:

* Company name
* RC number
* Registration status
* Registration date
* Head office address
* Company classification
* Company email
* Nature of business
* Share capital
* Number of affiliates

Ideal for:

* Merchant onboarding
* Vendor verification
* Marketplace onboarding
* KYB compliance
* Business identity confirmation

***

#### Premium verification

Includes everything returned in **Basic**, plus detailed corporate ownership and governance information.

Additional fields include:

* Directors
* Shareholders
* Company officers
* Persons with Significant Control (PSC)
* Residential information
* Share allocation
* Nationality
* Appointment dates
* Corporate ownership details

Recommended for:

* Banks
* Fintechs
* Payment providers
* Lending platforms
* Enterprise KYB
* AML investigations
* Enhanced Due Diligence (EDD)

***

### Tier comparison

| Company Data           | Basic | Premium |
| ---------------------- | :---: | :-----: |
| Company name           |   ✓   |    ✓    |
| RC number              |   ✓   |    ✓    |
| Registration status    |   ✓   |    ✓    |
| Registration date      |   ✓   |    ✓    |
| Head office address    |   ✓   |    ✓    |
| Company email          |   ✓   |    ✓    |
| Company classification |   ✓   |    ✓    |
| Nature of business     |   ✓   |    ✓    |
| Share capital          |   ✓   |    ✓    |
| Affiliate count        |   ✓   |    ✓    |
| Directors              |   —   |    ✓    |
| Shareholders           |   —   |    ✓    |
| Company officers       |   —   |    ✓    |
| PSC Information        |   —   |    ✓    |
| Residential addresses  |   —   |    ✓    |
| Share allocation       |   —   |    ✓    |
| Appointment dates      |   —   |    ✓    |

***

### Basic CAC company and RC number verification

**POST**

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

***

#### Headers

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

***

#### Request body

| Field        | Type   | Required | Description                                                        |
| ------------ | ------ | -------- | ------------------------------------------------------------------ |
| `reg_number` | string | ✅        | Registered Corporate Affairs Commission (CAC) registration number. |

Example

```json
{
    "reg_number":"RC1234567"
}
```

***

### Successful response

```json
{
  "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"
  }
}
```

***

### 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.                           |
| `summary`         | object  | Verification summary.                                      |
| `data`            | object  | Verified CAC business record.                              |
| `meta.request_id` | string  | Unique request identifier.                                 |
| `meta.timestamp`  | string  | ISO 8601 timestamp.                                        |

***

#### `data`

| Field                 | Description                     |
| --------------------- | ------------------------------- |
| `rcNumber`            | CAC registration number         |
| `companyName`         | Registered company name         |
| `status`              | Registration status             |
| `registrationDate`    | Date of incorporation           |
| `headOfficeAddress`   | Registered head office          |
| `branchAddress`       | Registered branch office        |
| `city`                | Company city                    |
| `state`               | Company state                   |
| `lga`                 | Local Government Area           |
| `companyType`         | Business entity type            |
| `companyEmail`        | Registered email                |
| `classification`      | Company classification          |
| `natureOfBusiness`    | Registered business activities  |
| `shareCapital`        | Declared share capital          |
| `shareCapitalInWords` | Share capital in words          |
| `affiliates`          | Number of registered affiliates |

***

### Premium CAC company verification

**POST**

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

Returns the complete CAC company profile for enhanced business verification, ownership screening, and regulatory compliance.

***

#### Additional response fields

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

| Field                          | Description                                    |
| ------------------------------ | ---------------------------------------------- |
| `affiliatesData`               | Complete list of company affiliates            |
| `surname`                      | Affiliate surname                              |
| `firstname`                    | Affiliate first name                           |
| `othername`                    | Middle or other names                          |
| `email`                        | Registered email                               |
| `phoneNumber`                  | Contact phone number                           |
| `gender`                       | Gender                                         |
| `occupation`                   | Occupation                                     |
| `nationality`                  | Nationality                                    |
| `identityNumber`               | Identity document number                       |
| `address`                      | Residential address                            |
| `dateOfBirth`                  | Date of birth                                  |
| `dateOfAppointment`            | Appointment date                               |
| `affiliateType`                | Director, Shareholder, Presenter, etc.         |
| `numSharesAlloted`             | Number of allocated shares                     |
| `affiliatesResidentialAddress` | Residential address information                |
| `affiliatesPscInformation`     | Persons with Significant Control (PSC) details |

Example:

```json
{
  "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.              |

***

### 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.
* Business information should be handled in accordance with applicable data protection and corporate compliance regulations.
* Premium corporate ownership information should only be processed where there is a lawful business purpose.

***

### Recommended Nigerian business verification and KYB flow

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

1. Verify the company's **CAC Registration Number**.
2. Retrieve the **Premium CAC profile** where enhanced due diligence is required.
3. Screen directors and shareholders against your AML or watchlist systems.
4. Continue merchant or business onboarding after successful verification.

This workflow helps reduce onboarding fraud, detect shell companies, validate legal entities, and satisfy KYB and AML compliance requirements.

***

### Example: Python

```python
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())
```

***

### CAC business verification API FAQ

#### What is a CAC business verification API?

A CAC business verification API checks Nigerian company details using an RC number. It supports KYB, merchant onboarding, and compliance workflows.

#### What is an RC number?

An RC number is a company registration number issued by Nigeria's Corporate Affairs Commission. Send it as `reg_number` to verify a registered company.

#### When should I use Premium CAC verification?

Use Premium verification when you need ownership or governance data. It returns directors, shareholders, officers, and PSC information.


---

# 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/business-verification/cac-business-verification-api-or-nigerian-rc-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.
