Skip to main content

CAC Advanced API

Objective

The CAC Advanced API returns information about a company and its stakeholders.

Info
The Corporate Affairs Commission (CAC) is a Nigerian government body responsible for regulating and managing companies in the country. The CAC assigns a Registration Certificate (RC) number to each business that registers with them.
InputOutput
The RC Number or name of the company The details corresponding to the given RC. The complete list of output fields is provided under the Success Response Details section.

API Endpoint

cacAdvanced

Overview

The API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format and you should upload all images and files as form-data through a POST request.

Authentication

You need a unique pair of application ID (appId) and application key (appKey) from HyperVerge to verify your identity for accessing the API.

API Request Details

Method - POST

Headers

ParameterMandatory or OptionalDescriptionAllowed Values
content-type MandatoryThis parameter defines the media type for the request payloadapplication/json
appId MandatoryThe application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
appKey MandatoryThe application key shared by HyperVerge. You can find the details in the dashboard's credentials tab.This should be a unique value.
transactionIdMandatoryA unique identifier for tracking a user journeyThis should be both unique and easily associated with the user's journey in your application(s)

Input

The following table provides the complete information on the parameter used in the request body for the API calls.

ParameterDescriptionMandatory or OptionalAllowed ValuesDefault Value
RCThe company's name or RC NumberMandatoryNot ApplicableNot Applicable

Request

The following code shows a standard cURL request for the API.

curl --location --request POST 'https://zaf.thomas.hyperverge.co/v1/cacAdvanced' \
--header 'Content-Type: application/json' \
--header 'appId: <Enter_the_HyperVerge_appId>' \
--header 'appKey: <Enter_the_HyperVerge_appKey>' \
--header 'transactionId: <Enter_the_HyperVerge_transactionID>' \
--data '{
"RC": "<Enter_the_RC_number>"
}'

Success Response

The following code is a success response from the API.

{
"status": "success",
"statusCode": 200,
"result": {
"status": "<Status_Of_Response>",
"message": "<Message_Describing_Response>",
"timestamp": "<Timestamp_Of_Response>",
"data": [
{
"id": "<Unique_ID>",
"surname": "<Surname_Of_stakeholder>",
"firstname": "<First_Name_Of_stakeholder>",
"otherName": "<Other_Name_Of_stakeholder>",
"email": "<Email_Address>",
"phoneNumber": "<Phone_Number>",
"gender": "<Gender>",
"formerNationality": "<Former_Nationality>",
"age": "<Age>",
"city": "<City>",
"occupation": "<Occupation>",
"formerName": "<Former_Name>",
"corporationName": "<Corporation_Name>",
"rcNumber": "<Registration_Number>",
"corporationCompany": "<Corporation_Company>",
"state": "<State>",
"pobox": "<Post_Box>",
"accreditationnumber": "<Accreditation_Number>",
"isLawyer": "<Is_Lawyer>",
"lastVisit": "<Last_Visit_Count>",
"formType": "<Form_Type>",
"isPresenter": "<Is_Presenter>",
"isChairman": "<Is_Chairman>",
"numSharesAlloted": "<Number_Of_Shares_Allotted>",
"typeOfShares": "<Type_Of_Shares>",
"dateOfBirth": "<Date_Of_Birth>",
"status": "<Status>",
"dateOfTermination": "<Date_Of_Termination>",
"dateOfAppointment": "<Date_Of_Appointment>",
"dateOfChangeOfAddress": "<Date_Of_Address_Change>",
"formerAddress": "<Former_Address>",
"formerPostal": "<Former_Postal>",
"formerSurname": "<Former_Surname>",
"formerFirstName": "<Former_First_Name>",
"formerOtherName": "<Former_Other_Name>",
"dateOfStatusChange": "<Date_Of_Status_Change>",
"identityNumber": "<Identity_Number>",
"identityIssueState": "<Identity_Issue_State>",
"otherDirectorshipDetails": "<Other_Directorship_Details>",
"portalUserFk": "<Portal_User_FK>",
"affiliatesFk": "<Affiliates_FK>",
"processTypeFk": {
"id": "<Process_Type_ID>",
"name": "<Process_Type_Name>",
"description": "<Process_Type_Description>",
"amount": "<Amount>",
"type": "<Type>",
"productId": "<Product_ID>",
"bankCode": "<Bank_Code>"
},
"company": "<Company>",
"samePersonAsFk": "<Same_Person_As_FK>",
"natureOfAppOrDischarge": "<Nature_Of_Appointment_Or_Discharge>",
"isDesignated": "<Is_Designated>",
"endOfAppointment": "<End_Of_Appointment>",
"appointedBy": "<Appointed_By>",
"dateOfDeedOfDischarge": "<Date_Of_Deed_Of_Discharge>",
"dateOfResolution": "<Date_Of_Resolution>",
"countryFk": {
"id": "<Country_ID>",
"name": "<Country_Name>",
"code": "<Country_Code>"
},
"countryOfResidence": "<Country_Of_Residence>",
"isCarriedOverFromNameAvai": "<Is_Carried_Over_From_Name_Available>",
"lga": "<Local_Government_Area>",
"corporationRegistrationDate": "<Corporation_Registration_Date>",
"isCompanyDeleted": "<Is_Company_Deleted>",
"governmentOrganisationName": "<Government_Organisation_Name>",
"foreignOrganisationName": "<Foreign_Organisation_Name>",
"companyStreetAddress": "<Company_Street_Address>",
"companyState": "<Company_State>",
"companyCity": "<Company_City>",
"isCorporate": "<Is_Corporate>",
"countyOfIncorporationFk": "<County_Of_Incorporation_FK>",
"nationality": "<Nationality>",
"address": "<Address>",
"postcode": "<Postcode>",
"streetNumber": "<Street_Number>",
"affiliatesResidentialAddress": "<Affiliates_Residential_Address>",
"affiliatesPscInformation": "<Affiliates_PSC_Information>",
"legalOwnersOfInterests": [],
"legalOwnersOfVotingRights": [],
"stockExchangeSoes": [],
"approvedForNoticeOfPsc": "<Approved_For_Notice_Of_PSC>",
"companyAddress2": "<Company_Address_Line_2>",
"affiliateTypeFk": {
"id": "<Affiliate_Type_ID>",
"name": "<Affiliate_Type_Name>",
"description": "<Affiliate_Type_Description>"
},
"fullAddress2": "<Full_Address_Line_2>"
}
]
},
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}

Success Response Details

ParameterTypeDescription
idstringThe unique identity number for the company
surnamestringThe surname of the stakeholder
firstnamestringThe first name of the stakeholder
otherNamestringThe other name/ middle name of the stakeholder
emailstringThe email address of the stakeholder
phoneNumberstringThe phone number of the stakeholder
genderstringThe gender of the stakeholder
formerNationalitystringThe former nationality of the stakeholder
ageintegerThe age of the stakeholder
dateOfBirthstringThe date of birth of the stakeholder
citystringThe city of residence of the stakeholder
statestringThe state of residence of the stakeholder
occupationstringThe occupation of the stakeholder
formerNamestringThe former name of the stakeholder
formerSurnamestringThe former surname of the stakeholder
formerFirstNamestringThe former first name of the stakeholder
formerOtherNamestringThe former other name of the stakeholder
corporationNamestringThe name of the corporation/company
rcNumberstringThe RC number of the corporation
corporationCompanystringThe corporation information
poboxstringThe address details of the shareholder
formerAddressstringThe previous postal address of the shareholder
formerPostalstringThe previous postal address of the shareholder
dateOfChangeOfAddressstringThe date of the change of address
occupationstringThe occupation of the Shareholder
accreditionnumberstringThe accreditation number of the shareholder
isLawyerbooleanIndicates if the shareholder is a lawyer
lastVisitintegerThe timestamp of last visit
isPresenterbooleanIndicates if the shareholder is a presenter
isChairmanbooleanIndicates if the shareholder is a chairman
numSharesAllotedintegerThe number of shares allotted to the shareholder
typeOfSharesstringThe type of shares allotted
statusstringThe current status of the shareholder (ACTIVE/INACTIVE)
dateOfTerminationstringThe date of termination of the shareholder
dateOfAppointmentstringThe date of appointment of the shareholder
identityNumberstringThe identity number of the shareholder
identityIssueStatestringThe state of issue of the identity number of the shareholder
otherDirectorshipDetailsstringThe details of other directorships held by the shareholder
natureOfAppOrDischargestringThe type of application/discharge of the shareholder
isDesignatedbooleanIndicates if the shareholder has a designation in the company
endOfAppointmentstringThe date of end of appointment
appointedBystringThe name of the person who appointed the individual
dateOfDeedOfDischargestringThe date of deed of discharge
dateOfResolutionstringThe date of resolution of the company
isCarriedOverFromNameAvaibooleanIndicates if the record was carried over from a name availability check
corporationRegistrationDatestringThe registration date of the corporation
isCompanyDeletedbooleanIndicates if the company has been deleted
governmentOrganisationNamestringThe name of the government organisation
foreignOrganisationNamestringThe name of the foreign organisation
companyStreetAddressstringThe street address of the company
companyStatestringThe state in which the company is located
companyCitystringThe city in which the company is located
isCorporatebooleanIndicates if the entity is a corporate body
affiliatesResidentialAddressstringThe details of affiliates residential address
legalOwnersOfInterestsstringThe details of legal owners of the company
legalOwnersOfVotingRightsstringThe details of owners that have voting rights
stockExchangeSoesstringThe details of stock exchange SOEs
approvedForNoticeOfPscbooleanIndicates if approved for notice of PSC
affiliateTypeFkstringThe details of the affiliate type

Error Responses

{
"message": "RC is not allowed to be empty",
"statusCode": 400,
"status": "failure",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
}
}

Error Response Details

A failure or error response from the module contains a failure status, with a relavant status code and error message. The following table lists all error responses.

Status CodeError MessageError Description
400RC is not allowed to be emptyThe RC field in the request is empty
401Missing/Invalid credentialsThe request is either missing the mandatory appId and appKey combination or has invalid values
404We couldn't find any matching records based on the information you provided. Please double-check the parameters you passed and try again.Invalid company name or RC number. Mismatch in input RC number length.
500Internal Server ErrorPlease check the request headers or contact the HyperVerge team for resolution
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: