Business Services (CAC)
Submit and track Corporate Affairs Commission Business Name services through POPFAB. You use your POPFAB API key. Partnership and LLC flows are not public in this portal yet.
Business Name Registration
Compliance, validation, submission, status tracking, and document retrieval for Business Names.
Annual Returns (BN)
Find outstanding financial years before filing Business Name annual returns.
CAC pricing snapshot
The table below reflects the current Business Name pricing profile shown in the portal.
| Service / Product | Price | Sub-service | Sub-service Price |
|---|---|---|---|
| BN APPLICATION UPDATE | ₦1,000.00 | --- | --- |
| BN BULK COMPLIANCE | ₦1,000.00 | --- | --- |
| BN BULK REGISTRATION | ₦2,000.00 | --- | --- |
| BN COMPLIANCE | ₦1,000.00 | BN_COMPLIANCE_ADVANCE_CHECK | ₦1,050.00 |
| BN PRE-REG VALIDATION | ₦1,000.00 | --- | --- |
| BUSINESS NAME | ₦29,000.00 | PRIORITY_SERVICE | ₦1,500.00 |
| BUSINESS NAME PARTNERSHIP | ₦1,000.00 | --- | --- |
| BUSINESS NAME PARTNERSHIP UPDATE | ₦1,000.00 | --- | --- |
| DOWNLOAD CERTIFICATE | ₦5,500.00 | --- | --- |
| DOWNLOAD STATUS REPORT | ₦5,500.00 | --- | --- |
Business Name Registration
Use these APIs for Business Name compliance, registration, update, tracking, document retrieval, and annual returns. POPFAB holds the CAC credential and manages the CAC submission lifecycle.
| Process | POPFAB endpoint | Availability |
|---|---|---|
| Check name compliance | POST /v1/business-services/cac/business-names/compliance | Controlled rollout |
| Validate registration details | POST /v1/business-services/cac/business-names/pre-registration-validation | Controlled rollout |
| Submit sole proprietorship | POST /v1/business-services/cac/business-names/sole-proprietorships | Controlled rollout |
| Update queried application | POST /v1/business-services/cac/business-names/updates | Controlled rollout |
| Track application | GET /v1/business-services/cac/business-names/{transaction_ref} | Controlled rollout |
| Download certificate | POST /v1/business-services/cac/business-names/certificates | Controlled rollout |
| Download status report | POST /v1/business-services/cac/business-names/status-reports | Controlled rollout |
Check Business Name compliance
/v1/business-services/cac/business-names/complianceRuns CAC advanced name-compliance checks before filing. POPFAB always enables CAC’s advanceCheck option.
| Parameter | Type | Required | Description |
|---|---|---|---|
proposed_name | string | Required | The proposed Business Name, up to 160 characters. |
line_of_business | string | Required | The business sector/industry, up to 255 characters. |
curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/compliance \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"proposed_name":"TestQuality Ventures","line_of_business":"general_merchandise"}'Validate Business Name registration details
/v1/business-services/cac/business-names/pre-registration-validationValidates the proprietor’s details and identity payload before a Business Name submission. Run this after name compliance and before the final submission step.
Request headers
| Parameter | Type | Required | Description |
|---|---|---|---|
Authorization | string | Required | Bearer YOUR_POPFAB_API_KEY. A sk_test_ key selects sandbox; a sk_live_ key selects live. |
Content-Type | string | Required | application/json |
Required request body
| Parameter | Type | Required | Description |
|---|---|---|---|
passport, signature, means_of_id | string | Required | PNG or JPEG data URL: data:image/jpeg;base64,BASE64_DATA. Large images may be rejected. |
company_city, company_email, company_state, company_address, company_street_number | string | Required | Business contact and address details. |
business_commencement_date | string | Required | Business commencement date in YYYY-MM-DD format. |
transaction_ref | string | Required | Your unique reference for this validation attempt. |
proposed_option_1, line_of_business | string | Required | The proposed Business Name and its business activity. |
proprietor_firstname, proprietor_surname, proprietor_nationality | string | Required | Proprietor identity details. |
proprietor_gender | string | Required | MALE or FEMALE. |
proprietor_dob | string | Required | Date of birth in YYYY-MM-DD format. |
proprietor_email, proprietor_phonenumber | string | Required | Proprietor contact details. Email must be valid. |
proprietor_state, proprietor_city, proprietor_lga, proprietor_postcode, proprietor_street_number, proprietor_service_address | string | Required | Proprietor residential and service-address details. |
proprietor_othername | string | Optional | Other/middle name, when applicable. |
curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/pre-registration-validation \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"passport": "data:image/jpeg;base64,BASE64_PASSPORT",
"signature": "data:image/jpeg;base64,BASE64_SIGNATURE",
"means_of_id": "data:image/jpeg;base64,BASE64_ID",
"company_city": "Eti Osa",
"company_email": "business@example.com",
"company_state": "Lagos State",
"business_commencement_date": "2026-08-01",
"company_address": "12 Example Road",
"company_street_number": "12",
"transaction_ref": "BN-VALIDATION-2026-0001",
"proposed_option_1": "Example Traders",
"line_of_business": "Fashion design",
"proprietor_firstname": "Jasper",
"proprietor_surname": "Chinedu",
"proprietor_othername": "Kelechi",
"proprietor_gender": "MALE",
"proprietor_nationality": "Nigerian",
"proprietor_dob": "1980-05-25",
"proprietor_email": "jasper@example.com",
"proprietor_phonenumber": "+2348020686848",
"proprietor_state": "Lagos State",
"proprietor_city": "Eti Osa",
"proprietor_lga": "Ado/Langbasa/Badore",
"proprietor_postcode": "100001",
"proprietor_street_number": "12",
"proprietor_service_address": "Ikota Estate, Lagos"
}'data:image/…;base64, image values. This differs from the partnership-submission endpoint below, which accepts raw Base64 only.Create a sole-proprietorship Business Name application
/v1/business-services/cac/business-names/sole-proprietorshipsSubmits a sole-proprietorship Business Name registration to CAC. Validate the application details first to reduce queried or failed submissions.
| Parameter | Type | Required | Description |
|---|---|---|---|
Authorization | string | Required | Bearer YOUR_POPFAB_API_KEY. A sk_test_ key selects sandbox; a sk_live_ key selects live. |
priority_service | boolean | Optional | Query parameter. Set to true to request CAC priority processing, which may incur an additional charge. Defaults to false. |
Content-Type | string | Required | application/json |
The body is the same as the pre-registration validation request, except transaction_ref is omitted. The response includes CAC’s transactionRef; retain it for later status operations.
curl -X POST 'https://api.popfab.io/v1/business-services/cac/business-names/sole-proprietorships?priority_service=true' \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"passport": "data:image/jpeg;base64,BASE64_PASSPORT",
"signature": "data:image/jpeg;base64,BASE64_SIGNATURE",
"means_of_id": "data:image/jpeg;base64,BASE64_ID",
"proposed_option_1": "Example Ventures",
"line_of_business": "Content Creation",
"business_commencement_date": "2026-08-01",
"proprietor_firstname": "John",
"proprietor_surname": "Doe",
"proprietor_gender": "MALE",
"proprietor_dob": "1990-01-21",
"proprietor_nationality": "Nigerian",
"proprietor_email": "john@example.com",
"proprietor_phonenumber": "+2348046438389",
"proprietor_state": "F.C.T",
"proprietor_city": "Abuja",
"proprietor_lga": "Municipal",
"proprietor_postcode": "900108",
"proprietor_street_number": "41",
"proprietor_service_address": "Limpopo Street, Abuja",
"company_email": "business@example.com",
"company_city": "Abuja",
"company_state": "F.C.T",
"company_address": "89 Road, Abuja",
"company_street_number": "41"
}'{
"statusCode": 200,
"status": "OK",
"message": "Response ok",
"data": {
"message": "application received",
"transactionRef": "VAS20260703095236144",
"statusUrl": "https://…/api/vas/portal/user/status/VAS20260703095236144"
},
"success": true
}priority_service=true only when priority processing has been approved for your account.Check registration status
/v1/business-services/cac/business-names/{transaction_ref}Returns the current CAC status for a Business Name registration. Use the transactionRef returned by the submission response.
| Parameter | Type | Required | Description |
|---|---|---|---|
transaction_ref | string | Required | The CAC transactionRef returned when the registration was submitted, for example VAS20260703095236144. |
Authorization | string | Required | Bearer YOUR_POPFAB_API_KEY. |
curl https://api.popfab.io/v1/business-services/cac/business-names/VAS20260703095236144 \
-H "Authorization: Bearer sk_test_YOUR_API_KEY"{
"data": {
"status": "pending",
"transactionRef": "VAS20260703095236144",
"data": {
"rcNumber": null,
"entityName": "Example Ventures",
"registrationDate": null,
"tin": null
},
"partners": null
},
"message": "status - name registration",
"success": true
}pending means CAC is processing the application. An approved application is ready for certificate retrieval when that endpoint is enabled; a queried application requires the query reason to be addressed.Update a queried Business Name application
/v1/business-services/cac/business-names/updatesUpdates a submitted Business Name application after CAC raises a query. Send the transaction reference and only the field or fields CAC asked you to correct.
| Parameter | Type | Required | Description |
|---|---|---|---|
transaction_ref | string | Required | The CAC transactionRef returned by the original registration submission. |
supporting_document | string | Optional | A corrected supporting document as a PNG, JPEG, or SVG Base64 data URL. Use this field when CAC asks for a supporting document. |
passport, signature, means_of_id | string | Optional | Replacement identity images as Base64 data URLs, when queried. |
Business/proprietor fields | string | Optional | Any field accepted by the sole-proprietorship request, using the same snake_case names. Include only fields CAC queried. |
curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/updates \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_ref": "VAS20260317154608433",
"supporting_document": "data:image/jpeg;base64,BASE64_SUPPORTING_DOCUMENT"
}'{
"statusCode": 200,
"status": "OK",
"message": "query data received successfully",
"data": null,
"success": true,
"count": 0
}Download approved-registration documents
/v1/business-services/cac/business-names/certificatesDownloads the CAC registration certificate PDF for an approved Business Name.
/v1/business-services/cac/business-names/status-reportsDownloads the CAC registration status-report PDF for an approved Business Name.
| Parameter | Type | Required | Description |
|---|---|---|---|
rc_number | string | Required | The CAC registration number assigned after approval, for example 9397486. |
transaction_ref | string | Required | The transactionRef from the original registration submission. |
Authorization | string | Required | Bearer YOUR_POPFAB_API_KEY. |
curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/certificates \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-o certificate.pdf \
-d '{"rc_number":"9397486","transaction_ref":"VAS20260317154608433"}'curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/status-reports \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-o status-report.pdf \
-d '{"rc_number":"9397486","transaction_ref":"VAS20260317154608433"}'approved.Security and document handling
data:image/... prefix. POPFAB does not expose your CAC credential or return document contents in normal API responses.Request states
| State | Meaning |
|---|---|
| funds_reserved | Application accepted and Service Balance reserved; it has not been sent to CAC. |
| submitting | Payment was settled and POPFAB is submitting the application to CAC. |
| submitted / under_review | CAC has accepted the application or is reviewing it. |
| approved / rejected / failed | Terminal CAC/processing outcome. |
| unknown_outcome | A timeout happened after possible CAC submission. POPFAB reconciles before any retry. |
Annual Returns (Business Name)
Annual Returns are mandatory CAC filings for registered Business Names. This portal only documents the Business Name annual-return flow.
/v1/business-services/cac/business-names/annual-returns/financial-yearsReturns the outstanding financial years and filing cost for a registered Business Name. Call this before filing annual returns.
| Parameter | Type | Required | Description |
|---|---|---|---|
rc_number | string | Required | The CAC registration number for the Business Name, for example 4042857. |
entity_type | string | Required | Must be BUSINESS_NAME. |
Authorization | string | Required | Bearer YOUR_POPFAB_API_KEY. |
curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/annual-returns/financial-years \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"rc_number":"4042857","entity_type":"BUSINESS_NAME"}'{
"Message": "Annual returns filing years",
"data": {
"financial_year": ["2024", "2025"],
"cost_of_filling": 16200
},
"status": "success",
"statusCode": 200
}financial_year values as input to the Annual Returns filing endpoint below./v1/business-services/cac/business-names/annual-returnsFiles one or more outstanding Business Name annual returns.
curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/annual-returns \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"rc_number":"4027374","entity_type":"BUSINESS_NAME","filing_data":[{"financial_year":"2024","net_asset":10000,"turn_over":12000,"file":"BASE64_PDF"}]}'{"Message":"Annual returns filed successfully","data":{"annual_returns":[{"year":2024,"transactionRef":"VAS20260711163736836981412"}]},"status":"success","statusCode":200}/v1/business-services/cac/business-names/annual-returns/acknowledgement-lettersDownloads the PDF acknowledgement letter using an annual-return filing transaction reference.
curl -X POST https://api.popfab.io/v1/business-services/cac/business-names/annual-returns/acknowledgement-letters \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" -H "Content-Type: application/json" -o acknowledgement.pdf \
-d '{"transaction_ref":"VAS20260619081844902202295"}'transactionRef returned by a successful annual-return filing.