Move a test registration on now
curl --request POST \
--url https://api.fastcac.com/v1/test/registrations/{registration_id}/advance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"to": "approved"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({to: 'approved'})
};
fetch('https://api.fastcac.com/v1/test/registrations/{registration_id}/advance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fastcac.com/v1/test/registrations/{registration_id}/advance"
payload = { "to": "approved" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fastcac.com/v1/test/registrations/{registration_id}/advance"
payload := strings.NewReader("{\n \"to\": \"approved\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fastcac.com/v1/test/registrations/{registration_id}/advance",
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([
'to' => 'approved'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"object": "registration",
"id": "reg_4kMzPP2CrSMnY18kiANzau",
"business_id": "biz_68mJv5UBBIPdMGYTvhnrKG",
"external_id": "order-1182",
"type": "business_name",
"status": "approved",
"proposed_names": [
"ADA FOODS VENTURES",
"ADA KITCHEN VENTURES"
],
"line_of_business": "Educational Services And Consultancy",
"business": {
"email": "hello@adafoods.ng",
"phone": "08039876543",
"address": {
"street_number": "12",
"street": "Admiralty Way",
"city": "Lekki",
"lga": "Eti-Osa",
"state": "Lagos",
"postcode": "105102"
}
},
"proprietors": [
{
"first_name": "Ada",
"last_name": "Obi",
"other_names": null,
"gender": "female",
"date_of_birth": "1990-04-12",
"nationality": "Nigerian",
"nin": "12345678901",
"email": "ada@example.com",
"phone": "08031234567",
"address": {
"street_number": "12",
"street": "Admiralty Way",
"city": "Lekki",
"lga": "Eti-Osa",
"state": "Lagos",
"postcode": "105102"
}
}
],
"missing_fields": [],
"query": null,
"failure": null,
"registered_name": "ADA FOODS VENTURES",
"registration_number": "1301371",
"certificate_available": true,
"status_report_available": true,
"history": [
{
"from": null,
"to": "draft",
"at": "2026-10-23T22:17:57Z"
},
{
"from": "draft",
"to": "pending_payment",
"at": "2026-10-23T22:17:58Z"
},
{
"from": "pending_payment",
"to": "paid",
"at": "2026-10-23T22:17:58Z"
},
{
"from": "paid",
"to": "submitted",
"at": "2026-10-23T22:17:58Z"
},
{
"from": "submitted",
"to": "approved",
"at": "2026-10-23T22:17:58Z"
}
],
"submitted_at": "2026-10-23T22:17:58Z",
"approved_at": "2026-10-23T22:17:58Z",
"created_at": "2026-10-23T22:17:57Z",
"updated_at": "2026-10-23T22:17:58Z"
}{
"error": {
"type": "invalid_request_error",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}{
"error": {
"type": "authentication_error",
"code": "api_key_missing",
"message": "Send your API key as `Authorization: Bearer <key>`.",
"param": null,
"request_id": "req_kdwpKsFMKS4VzLjqZJ0ntdrl"
}
}{
"error": {
"type": "permission_error",
"code": "live_mode_unavailable",
"message": "Live registrations aren't open yet. Use a test key (fc_test_…) for now.",
"param": null,
"request_id": "req_oYVCIHqeYbgIA3lIzwG0PO5r"
}
}{
"error": {
"type": "not_found_error",
"code": "resource_missing",
"message": "No such registration: reg_0000000000000000000000.",
"param": "id",
"request_id": "req_RlcFqswqrJZos4pnRMH3wa8d"
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_state",
"message": "From approved you can advance to: nothing (finish it through the API).",
"param": "to",
"request_id": "req_kzN5us3PsOO53VGlyZ7H4jAQ"
}
}{
"error": {
"type": "invalid_request_error",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}Test helpers
Move a test registration on now
POST
/
test
/
registrations
/
{registration_id}
/
advance
Move a test registration on now
curl --request POST \
--url https://api.fastcac.com/v1/test/registrations/{registration_id}/advance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"to": "approved"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({to: 'approved'})
};
fetch('https://api.fastcac.com/v1/test/registrations/{registration_id}/advance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fastcac.com/v1/test/registrations/{registration_id}/advance"
payload = { "to": "approved" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fastcac.com/v1/test/registrations/{registration_id}/advance"
payload := strings.NewReader("{\n \"to\": \"approved\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fastcac.com/v1/test/registrations/{registration_id}/advance",
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([
'to' => 'approved'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"object": "registration",
"id": "reg_4kMzPP2CrSMnY18kiANzau",
"business_id": "biz_68mJv5UBBIPdMGYTvhnrKG",
"external_id": "order-1182",
"type": "business_name",
"status": "approved",
"proposed_names": [
"ADA FOODS VENTURES",
"ADA KITCHEN VENTURES"
],
"line_of_business": "Educational Services And Consultancy",
"business": {
"email": "hello@adafoods.ng",
"phone": "08039876543",
"address": {
"street_number": "12",
"street": "Admiralty Way",
"city": "Lekki",
"lga": "Eti-Osa",
"state": "Lagos",
"postcode": "105102"
}
},
"proprietors": [
{
"first_name": "Ada",
"last_name": "Obi",
"other_names": null,
"gender": "female",
"date_of_birth": "1990-04-12",
"nationality": "Nigerian",
"nin": "12345678901",
"email": "ada@example.com",
"phone": "08031234567",
"address": {
"street_number": "12",
"street": "Admiralty Way",
"city": "Lekki",
"lga": "Eti-Osa",
"state": "Lagos",
"postcode": "105102"
}
}
],
"missing_fields": [],
"query": null,
"failure": null,
"registered_name": "ADA FOODS VENTURES",
"registration_number": "1301371",
"certificate_available": true,
"status_report_available": true,
"history": [
{
"from": null,
"to": "draft",
"at": "2026-10-23T22:17:57Z"
},
{
"from": "draft",
"to": "pending_payment",
"at": "2026-10-23T22:17:58Z"
},
{
"from": "pending_payment",
"to": "paid",
"at": "2026-10-23T22:17:58Z"
},
{
"from": "paid",
"to": "submitted",
"at": "2026-10-23T22:17:58Z"
},
{
"from": "submitted",
"to": "approved",
"at": "2026-10-23T22:17:58Z"
}
],
"submitted_at": "2026-10-23T22:17:58Z",
"approved_at": "2026-10-23T22:17:58Z",
"created_at": "2026-10-23T22:17:57Z",
"updated_at": "2026-10-23T22:17:58Z"
}{
"error": {
"type": "invalid_request_error",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}{
"error": {
"type": "authentication_error",
"code": "api_key_missing",
"message": "Send your API key as `Authorization: Bearer <key>`.",
"param": null,
"request_id": "req_kdwpKsFMKS4VzLjqZJ0ntdrl"
}
}{
"error": {
"type": "permission_error",
"code": "live_mode_unavailable",
"message": "Live registrations aren't open yet. Use a test key (fc_test_…) for now.",
"param": null,
"request_id": "req_oYVCIHqeYbgIA3lIzwG0PO5r"
}
}{
"error": {
"type": "not_found_error",
"code": "resource_missing",
"message": "No such registration: reg_0000000000000000000000.",
"param": "id",
"request_id": "req_RlcFqswqrJZos4pnRMH3wa8d"
}
}{
"error": {
"type": "invalid_request_error",
"code": "invalid_state",
"message": "From approved you can advance to: nothing (finish it through the API).",
"param": "to",
"request_id": "req_kzN5us3PsOO53VGlyZ7H4jAQ"
}
}{
"error": {
"type": "invalid_request_error",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}Authorizations
Your secret API key: fc_test_… in test mode, fc_live_… in live mode.
Path Parameters
Body
application/json
Available options:
paid, submitted, queried, approved, rejected Response
Successful Response
reg_…
biz_…, the business this registers.
Your own reference.
Allowed value:
"business_name"Available options:
draft, pending_payment, paid, verification_failed, submitted, queried, approved, rejected One or two, in order of preference, upper case.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
What a draft still needs before submit, as parameter paths.
What CAC asked, once queried.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Once approved.
CAC's Business Name number (seven digits), once approved.
Every status change, oldest first.
Show child attributes
Show child attributes
Allowed value:
"registration"