Look up a company by CAC/RC number
curl --request POST \
--url https://api-partner.onecluster.co/api/v1/kyc/cac/lookup \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Signature: <x-signature>' \
--data '
{
"rcNumber": "RC-1234567"
}
'import requests
url = "https://api-partner.onecluster.co/api/v1/kyc/cac/lookup"
payload = { "rcNumber": "RC-1234567" }
headers = {
"X-Signature": "<x-signature>",
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Signature': '<x-signature>',
Authorization: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({rcNumber: 'RC-1234567'})
};
fetch('https://api-partner.onecluster.co/api/v1/kyc/cac/lookup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-partner.onecluster.co/api/v1/kyc/cac/lookup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rcNumber' => 'RC-1234567'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json",
"X-Signature: <x-signature>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-partner.onecluster.co/api/v1/kyc/cac/lookup"
payload := strings.NewReader("{\n \"rcNumber\": \"RC-1234567\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Signature", "<x-signature>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-partner.onecluster.co/api/v1/kyc/cac/lookup")
.header("X-Signature", "<x-signature>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rcNumber\": \"RC-1234567\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-partner.onecluster.co/api/v1/kyc/cac/lookup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Signature"] = '<x-signature>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rcNumber\": \"RC-1234567\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"responseCode": "00",
"message": "Company found",
"data": {
"companyName": "TechFin Solutions Ltd",
"rcNumber": "RC-1234567",
"status": "ACTIVE",
"registrationDate": "2020-05-15",
"registeredAddress": "14 Marina Street, Lagos Island, Lagos"
}
}{
"type": "https://api.onecluster.co/errors/insufficient-funds",
"title": "Insufficient Funds",
"status": 422,
"detail": "The account balance is ₦0.00. You need at least ₦50,000.00 to complete this transfer.",
"instance": "/api/v1/payments/transfer",
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": "INSUFFICIENT_FUNDS"
}{
"type": "https://api.onecluster.co/errors/insufficient-funds",
"title": "Insufficient Funds",
"status": 422,
"detail": "The account balance is ₦0.00. You need at least ₦50,000.00 to complete this transfer.",
"instance": "/api/v1/payments/transfer",
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": "INSUFFICIENT_FUNDS"
}KYC Endpoints
CAC Lookup
Looks up a Nigerian company’s registration details in the CAC (Corporate Affairs Commission) registry using their RC number.
Use this to verify that a business is legitimately registered before onboarding them as a customer.
POST
/
api
/
v1
/
kyc
/
cac
/
lookup
Look up a company by CAC/RC number
curl --request POST \
--url https://api-partner.onecluster.co/api/v1/kyc/cac/lookup \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--header 'X-Signature: <x-signature>' \
--data '
{
"rcNumber": "RC-1234567"
}
'import requests
url = "https://api-partner.onecluster.co/api/v1/kyc/cac/lookup"
payload = { "rcNumber": "RC-1234567" }
headers = {
"X-Signature": "<x-signature>",
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Signature': '<x-signature>',
Authorization: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({rcNumber: 'RC-1234567'})
};
fetch('https://api-partner.onecluster.co/api/v1/kyc/cac/lookup', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-partner.onecluster.co/api/v1/kyc/cac/lookup",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rcNumber' => 'RC-1234567'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json",
"X-Signature: <x-signature>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-partner.onecluster.co/api/v1/kyc/cac/lookup"
payload := strings.NewReader("{\n \"rcNumber\": \"RC-1234567\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Signature", "<x-signature>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-partner.onecluster.co/api/v1/kyc/cac/lookup")
.header("X-Signature", "<x-signature>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rcNumber\": \"RC-1234567\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-partner.onecluster.co/api/v1/kyc/cac/lookup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Signature"] = '<x-signature>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rcNumber\": \"RC-1234567\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"responseCode": "00",
"message": "Company found",
"data": {
"companyName": "TechFin Solutions Ltd",
"rcNumber": "RC-1234567",
"status": "ACTIVE",
"registrationDate": "2020-05-15",
"registeredAddress": "14 Marina Street, Lagos Island, Lagos"
}
}{
"type": "https://api.onecluster.co/errors/insufficient-funds",
"title": "Insufficient Funds",
"status": 422,
"detail": "The account balance is ₦0.00. You need at least ₦50,000.00 to complete this transfer.",
"instance": "/api/v1/payments/transfer",
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": "INSUFFICIENT_FUNDS"
}{
"type": "https://api.onecluster.co/errors/insufficient-funds",
"title": "Insufficient Funds",
"status": 422,
"detail": "The account balance is ₦0.00. You need at least ₦50,000.00 to complete this transfer.",
"instance": "/api/v1/payments/transfer",
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": "INSUFFICIENT_FUNDS"
}Authorizations
Your API key, formatted as: ApiKey ubn_sb_your_key_here
- Sandbox keys start with
ubn_sb_ - Production keys start with
ubn_pk_ - Never use production keys during testing, they will charge real money
Headers
A UUID v4 you generate to trace this request through our systems. If you don't provide one, we generate it for you. Always include it in support requests, it helps us find your request in logs.
Example:
"7f3a9c21-4e8b-4a12-b6d1-3c8a7f2e1b09"
Body
application/json
CAC registration number (with or without the RC- prefix)
Example:
"RC-1234567"
Response
Company found in CAC registry
Standard response wrapper for all successful API calls

