Submit a registration, or resubmit it after a query
curl --request POST \
--url https://api.fastcac.com/v1/registrations/{registration_id}/submit \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fastcac.com/v1/registrations/{registration_id}/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fastcac.com/v1/registrations/{registration_id}/submit"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fastcac.com/v1/registrations/{registration_id}/submit"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/registrations/{registration_id}/submit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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": "pending_payment",
"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": null,
"registration_number": null,
"certificate_available": false,
"status_report_available": false,
"history": [
{
"from": null,
"to": "draft",
"at": "2026-10-23T22:17:57Z"
},
{
"from": "draft",
"to": "pending_payment",
"at": "2026-10-23T22:17:58Z"
}
],
"submitted_at": null,
"approved_at": null,
"created_at": "2026-10-23T22:17:57Z",
"updated_at": "2026-10-23T22:17:58Z"
}{
"error": {
"type": "invalid_request_error",
"code": "registration_incomplete",
"message": "Still needed: proprietors[0].documents.means_of_id, proprietors[0].documents.passport, proprietors[0].documents.signature.",
"param": "proprietors[0].documents.means_of_id",
"request_id": "req_MNJfR0dTmruru35qgb5RomZC"
}
}{
"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": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}{
"error": {
"type": "invalid_request_error",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}Registrations
Submit a registration, or resubmit it after a query
POST
/
registrations
/
{registration_id}
/
submit
Submit a registration, or resubmit it after a query
curl --request POST \
--url https://api.fastcac.com/v1/registrations/{registration_id}/submit \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fastcac.com/v1/registrations/{registration_id}/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fastcac.com/v1/registrations/{registration_id}/submit"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fastcac.com/v1/registrations/{registration_id}/submit"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/registrations/{registration_id}/submit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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": "pending_payment",
"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": null,
"registration_number": null,
"certificate_available": false,
"status_report_available": false,
"history": [
{
"from": null,
"to": "draft",
"at": "2026-10-23T22:17:57Z"
},
{
"from": "draft",
"to": "pending_payment",
"at": "2026-10-23T22:17:58Z"
}
],
"submitted_at": null,
"approved_at": null,
"created_at": "2026-10-23T22:17:57Z",
"updated_at": "2026-10-23T22:17:58Z"
}{
"error": {
"type": "invalid_request_error",
"code": "registration_incomplete",
"message": "Still needed: proprietors[0].documents.means_of_id, proprietors[0].documents.passport, proprietors[0].documents.signature.",
"param": "proprietors[0].documents.means_of_id",
"request_id": "req_MNJfR0dTmruru35qgb5RomZC"
}
}{
"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": "<string>",
"message": "<string>",
"param": "<string>",
"request_id": "<string>"
}
}{
"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
Query Parameters
Test keys only: approved (default), queried, rejected or verification_failed. Ignored with a live key.
Test keys only, with simulate=queried: comma-separated, e.g. name_exists,passport_unclear. Ignored with a live key.
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"