{"openapi":"3.1.0","info":{"title":"FastCAC API","description":"Register Nigerian businesses with CAC from your own product.","version":"2026-11-01"},"paths":{"/ping":{"get":{"tags":["Account"],"summary":"Check your API key","operationId":"ping_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Ping"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/organization":{"get":{"tags":["Account"],"summary":"Your organization","operationId":"organization_organization_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Organization"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/lines-of-business":{"get":{"tags":["Name checks"],"summary":"CAC's line-of-business options","description":"The values `line_of_business` accepts, in name checks and registrations.","operationId":"lines_of_business_lines_of_business_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1LinesOfBusiness"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/name-checks":{"post":{"tags":["Name checks"],"summary":"Check a business name","operationId":"name_check_name_checks_post","parameters":[{"name":"simulate","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Test keys only: force an outcome (available, requires_certificate, or a reason code such as name_exists). Ignored with a live key.","title":"Simulate"},"description":"Test keys only: force an outcome (available, requires_certificate, or a reason code such as name_exists). Ignored with a live key."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NameCheckIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1NameCheck"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/registrations":{"post":{"tags":["Registrations"],"summary":"Create a registration","operationId":"create_registrations_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Registration"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"tags":["Registrations"],"summary":"List registrations","operationId":"list_registrations_registrations_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"starting_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A reg_… id from the previous page.","title":"Starting After"},"description":"A reg_… id from the previous page."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"external_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RegistrationList"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/registrations/{registration_id}":{"get":{"tags":["Registrations"],"summary":"Get a registration","operationId":"get_registration_registrations__registration_id__get","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Registration"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Registrations"],"summary":"Change a registration","operationId":"update_registrations__registration_id__patch","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Registration"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/registrations/{registration_id}/submit":{"post":{"tags":["Registrations"],"summary":"Submit a registration, or resubmit it after a query","operationId":"submit_registrations__registration_id__submit_post","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}},{"name":"simulate","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Test keys only: approved (default), queried, rejected or verification_failed. Ignored with a live key.","title":"Simulate"},"description":"Test keys only: approved (default), queried, rejected or verification_failed. Ignored with a live key."},{"name":"simulate_query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Test keys only, with simulate=queried: comma-separated, e.g. name_exists,passport_unclear. Ignored with a live key.","title":"Simulate Query"},"description":"Test keys only, with simulate=queried: comma-separated, e.g. name_exists,passport_unclear. Ignored with a live key."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Registration"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/registrations/{registration_id}/documents":{"post":{"tags":["Registrations"],"summary":"Upload a document","operationId":"upload_document_registrations__registration_id__documents_post","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}},{"name":"simulate","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Test keys only: verified (default) or rejected. Ignored with a live key.","title":"Simulate"},"description":"Test keys only: verified (default) or rejected. Ignored with a live key."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_document_registrations__registration_id__documents_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Document"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"tags":["Registrations"],"summary":"List documents","operationId":"list_documents_registrations__registration_id__documents_get","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1DocumentList"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/registrations/{registration_id}/query":{"get":{"tags":["Registrations"],"summary":"What CAC asked","description":"Each item names the field to fix (`field`, a parameter path such as\nproprietors[0].documents.passport). Fix them with PATCH and document\nuploads, then POST .../submit.","operationId":"get_query_registrations__registration_id__query_get","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1RegistrationQuery"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/registrations/{registration_id}/certificate":{"get":{"tags":["Registrations"],"summary":"Download the certificate (PDF)","operationId":"certificate_registrations__registration_id__certificate_get","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}}],"responses":{"200":{"description":"Successful Response"},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/registrations/{registration_id}/status-report":{"get":{"tags":["Registrations"],"summary":"Download the status report (PDF)","operationId":"status_report_registrations__registration_id__status_report_get","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}}],"responses":{"200":{"description":"Successful Response"},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/test/registrations/{registration_id}/advance":{"post":{"tags":["Test helpers"],"summary":"Move a test registration on now","operationId":"advance_test_registrations__registration_id__advance_post","parameters":[{"name":"registration_id","in":"path","required":true,"schema":{"type":"string","title":"Registration Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdvanceIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Registration"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/event-types":{"get":{"tags":["Webhooks"],"summary":"Every event type","operationId":"event_types_webhooks_event_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WebhookEventTypeOut"},"type":"array","title":"Response Event Types Webhooks Event Types Get"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints":{"get":{"tags":["Webhooks"],"summary":"List endpoints","operationId":"list_endpoints_webhooks_endpoints_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WebhookEndpointOut"},"type":"array","title":"Response List Endpoints Webhooks Endpoints Get"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Webhooks"],"summary":"Add an endpoint","operationId":"create_endpoint_webhooks_endpoints_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints/{endpoint_id}":{"get":{"tags":["Webhooks"],"summary":"Get an endpoint","operationId":"get_endpoint_webhooks_endpoints__endpoint_id__get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Webhooks"],"summary":"Change an endpoint","operationId":"update_endpoint_webhooks_endpoints__endpoint_id__patch","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Webhooks"],"summary":"Delete an endpoint","operationId":"delete_endpoint_webhooks_endpoints__endpoint_id__delete","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints/{endpoint_id}/secret":{"get":{"tags":["Webhooks"],"summary":"The signing secret","operationId":"get_secret_webhooks_endpoints__endpoint_id__secret_get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints/{endpoint_id}/secret/rotate":{"post":{"tags":["Webhooks"],"summary":"Rotate the signing secret","operationId":"rotate_secret_webhooks_endpoints__endpoint_id__secret_rotate_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints/{endpoint_id}/test":{"post":{"tags":["Webhooks"],"summary":"Send an example event","operationId":"send_test_webhooks_endpoints__endpoint_id__test_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTestIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEventOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints/{endpoint_id}/stats":{"get":{"tags":["Webhooks"],"summary":"Delivery counts","operationId":"stats_webhooks_endpoints__endpoint_id__stats_get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookStatsOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints/{endpoint_id}/attempts":{"get":{"tags":["Webhooks"],"summary":"Deliveries to an endpoint","operationId":"attempts_webhooks_endpoints__endpoint_id__attempts_get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookAttemptOut"},"title":"Response Attempts Webhooks Endpoints  Endpoint Id  Attempts Get"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/endpoints/{endpoint_id}/recover":{"post":{"tags":["Webhooks"],"summary":"Resend failed deliveries since a time","operationId":"recover_webhooks_endpoints__endpoint_id__recover_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookRecoverIn"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/events":{"get":{"tags":["Webhooks"],"summary":"List events","operationId":"list_events_webhooks_events_get","parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventOut"},"title":"Response List Events Webhooks Events Get"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/events/{event_id}":{"get":{"tags":["Webhooks"],"summary":"An event and its deliveries","operationId":"get_event_webhooks_events__event_id__get","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEventDetailOut"}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/events/{event_id}/resend":{"post":{"tags":["Webhooks"],"summary":"Resend an event to an endpoint","operationId":"resend_webhooks_events__event_id__resend_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResendIn"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"The request is invalid; `param` names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, malformed, revoked or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key can't do this (for example, live registrations before they open).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such object for this key's organization and mode.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The object's state doesn't allow this, or the Idempotency-Key was reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests; wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Address":{"properties":{"street_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street Number"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"lga":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lga","description":"Local government area."},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postcode","description":"Six digits."}},"type":"object","title":"Address"},"AdvanceIn":{"properties":{"to":{"type":"string","enum":["paid","submitted","queried","approved","rejected"],"title":"To"}},"type":"object","required":["to"],"title":"AdvanceIn"},"Body_upload_document_registrations__registration_id__documents_post":{"properties":{"kind":{"type":"string","title":"Kind","description":"means_of_id, passport, signature or supporting_document"},"proprietor":{"type":"integer","title":"Proprietor","description":"Index of the proprietor in `proprietors`.","default":0},"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["kind","file"],"title":"Body_upload_document_registrations__registration_id__documents_post"},"Business":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"address":{"anyOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]}},"type":"object","title":"Business"},"NameCheckIn":{"properties":{"name":{"type":"string","maxLength":100,"title":"Name"},"line_of_business":{"type":"string","title":"Line Of Business","description":"One of GET /v1/lines-of-business."}},"type":"object","required":["name","line_of_business"],"title":"NameCheckIn"},"Proprietor":{"properties":{"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"other_names":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Other Names"},"gender":{"anyOf":[{"type":"string","enum":["male","female"]},{"type":"null"}],"title":"Gender"},"date_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Of Birth","description":"YYYY-MM-DD. Proprietors must be 18 or older."},"nationality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nationality","description":"Business Name proprietors must be Nigerian.","default":"Nigerian"},"nin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nin","description":"National Identification Number, 11 digits."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"address":{"anyOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]}},"type":"object","title":"Proprietor"},"RegistrationIn":{"properties":{"type":{"type":"string","const":"business_name","title":"Type","default":"business_name"},"external_id":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"External Id","description":"Your own reference."},"proposed_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Proposed Names","description":"One or two, in order of preference."},"line_of_business":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line Of Business"},"business":{"anyOf":[{"$ref":"#/components/schemas/Business"},{"type":"null"}]},"proprietors":{"anyOf":[{"items":{"$ref":"#/components/schemas/Proprietor"},"type":"array"},{"type":"null"}],"title":"Proprietors"}},"type":"object","title":"RegistrationIn"},"RegistrationUpdate":{"properties":{"external_id":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"External Id"},"proposed_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Proposed Names"},"line_of_business":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line Of Business"},"business":{"anyOf":[{"$ref":"#/components/schemas/Business"},{"type":"null"}]},"proprietors":{"anyOf":[{"items":{"$ref":"#/components/schemas/Proprietor"},"type":"array"},{"type":"null"}],"title":"Proprietors"}},"type":"object","title":"RegistrationUpdate"},"V1Document":{"properties":{"object":{"type":"string","const":"document","title":"Object","default":"document"},"id":{"type":"string","title":"Id","description":"doc_…"},"registration_id":{"type":"string","title":"Registration Id"},"proprietor":{"type":"integer","title":"Proprietor","description":"Index of the proprietor in `proprietors`."},"kind":{"type":"string","enum":["means_of_id","passport","signature","supporting_document"],"title":"Kind"},"filename":{"type":"string","title":"Filename"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"size":{"type":"integer","title":"Size","description":"Bytes."},"status":{"type":"string","enum":["verified","rejected"],"title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Why it was rejected."},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","registration_id","proprietor","kind","filename","content_type","size","status","reason","created_at"],"title":"V1Document"},"V1DocumentList":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"$ref":"#/components/schemas/V1Document"},"type":"array","title":"Data"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["data","has_more"],"title":"V1DocumentList"},"V1Failure":{"properties":{"code":{"type":"string","title":"Code","description":"nin_mismatch (verification_failed) or rejected_by_cac (rejected)."},"message":{"type":"string","title":"Message"},"fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Fields","description":"What to fix, as parameter paths."}},"type":"object","required":["code","message"],"title":"V1Failure"},"V1HistoryEntry":{"properties":{"from":{"anyOf":[{"type":"string","enum":["draft","pending_payment","paid","verification_failed","submitted","queried","approved","rejected"]},{"type":"null"}],"title":"From"},"to":{"type":"string","enum":["draft","pending_payment","paid","verification_failed","submitted","queried","approved","rejected"],"title":"To"},"at":{"type":"string","title":"At"}},"type":"object","required":["from","to","at"],"title":"V1HistoryEntry"},"V1LinesOfBusiness":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"type":"string"},"type":"array","title":"Data"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["data","has_more"],"title":"V1LinesOfBusiness"},"V1NameCheck":{"properties":{"object":{"type":"string","const":"name_check","title":"Object","default":"name_check"},"name":{"type":"string","title":"Name","description":"The name as CAC will record it (upper case, single spaces)."},"line_of_business":{"type":"string","title":"Line Of Business"},"available":{"type":"boolean","title":"Available"},"requires_certificate":{"type":"boolean","title":"Requires Certificate","description":"Available, but CAC will want a professional certificate (upload it as a supporting_document)."},"reason":{"anyOf":[{"$ref":"#/components/schemas/V1NameCheckReason"},{"type":"null"}],"description":"Why it isn't available; null when it is."},"similarity_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Similarity Score","description":"How close (0-100) the nearest registered name is."},"most_similar_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Most Similar Name"},"similar_names":{"items":{"type":"string"},"type":"array","title":"Similar Names"},"suggested_names":{"items":{"type":"string"},"type":"array","title":"Suggested Names","description":"Names to try instead."}},"type":"object","required":["name","line_of_business","available","requires_certificate","reason","similarity_score","most_similar_name","similar_names","suggested_names"],"title":"V1NameCheck"},"V1NameCheckReason":{"properties":{"code":{"type":"string","enum":["name_exists","name_too_similar","qualifier_missing","qualifier_not_last","multiple_qualifiers","single_word","restricted_word","restricted_line_of_business","offensive_language","religious_reference","special_characters","low_compliance","not_accepted"],"title":"Code"},"message":{"type":"string","title":"Message"},"accepted_qualifiers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Accepted Qualifiers","description":"With the qualifier codes."},"words":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Words","description":"With restricted_word: the words CAC doesn't allow."},"conflicting_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conflicting Name","description":"With name_exists and name_too_similar."}},"type":"object","required":["code","message"],"title":"V1NameCheckReason"},"V1Organization":{"properties":{"object":{"type":"string","const":"organization","title":"Object","default":"organization"},"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"verification_status":{"type":"string","title":"Verification Status"}},"type":"object","required":["id","name","slug","verification_status"],"title":"V1Organization"},"V1Ping":{"properties":{"object":{"type":"string","const":"ping","title":"Object","default":"ping"},"organization":{"type":"string","title":"Organization"},"organization_name":{"type":"string","title":"Organization Name"},"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["organization","organization_name","api_key"],"title":"V1Ping"},"V1Query":{"properties":{"raised_at":{"type":"string","title":"Raised At"},"answered_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answered At","description":"When you resubmitted."},"items":{"items":{"$ref":"#/components/schemas/V1QueryItem"},"type":"array","title":"Items"}},"type":"object","required":["raised_at","answered_at","items"],"title":"V1Query"},"V1QueryItem":{"properties":{"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field","description":"The parameter to fix, e.g. proprietors[0].documents.passport; null when CAC didn't tie the item to one field."},"code":{"type":"string","enum":["name_exists","qualifier_missing","single_word","offensive_language","fraudulent_association","document_unclear","name_mismatch","other"],"title":"Code"},"message":{"type":"string","title":"Message","description":"CAC's own words."},"resolved":{"type":"boolean","title":"Resolved","description":"The field has changed (or the document was replaced) since the query."}},"type":"object","required":["field","code","message","resolved"],"title":"V1QueryItem"},"V1Registration":{"properties":{"object":{"type":"string","const":"registration","title":"Object","default":"registration"},"id":{"type":"string","title":"Id","description":"reg_…"},"business_id":{"type":"string","title":"Business Id","description":"biz_…, the business this registers."},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"Your own reference."},"type":{"type":"string","const":"business_name","title":"Type"},"status":{"type":"string","enum":["draft","pending_payment","paid","verification_failed","submitted","queried","approved","rejected"],"title":"Status"},"proposed_names":{"items":{"type":"string"},"type":"array","title":"Proposed Names","description":"One or two, in order of preference, upper case."},"line_of_business":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line Of Business"},"business":{"anyOf":[{"$ref":"#/components/schemas/Business"},{"type":"null"}]},"proprietors":{"items":{"$ref":"#/components/schemas/Proprietor"},"type":"array","title":"Proprietors"},"missing_fields":{"items":{"type":"string"},"type":"array","title":"Missing Fields","description":"What a draft still needs before submit, as parameter paths."},"query":{"anyOf":[{"$ref":"#/components/schemas/V1Query"},{"type":"null"}],"description":"What CAC asked, once queried."},"failure":{"anyOf":[{"$ref":"#/components/schemas/V1Failure"},{"type":"null"}]},"registered_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registered Name","description":"Once approved."},"registration_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Number","description":"CAC's Business Name number (seven digits), once approved."},"certificate_available":{"type":"boolean","title":"Certificate Available"},"status_report_available":{"type":"boolean","title":"Status Report Available"},"history":{"items":{"$ref":"#/components/schemas/V1HistoryEntry"},"type":"array","title":"History","description":"Every status change, oldest first."},"submitted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submitted At"},"approved_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved At"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","business_id","external_id","type","status","proposed_names","line_of_business","business","proprietors","missing_fields","query","failure","registered_name","registration_number","certificate_available","status_report_available","history","submitted_at","approved_at","created_at","updated_at"],"title":"V1Registration"},"V1RegistrationList":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"$ref":"#/components/schemas/V1Registration"},"type":"array","title":"Data"},"has_more":{"type":"boolean","title":"Has More","description":"Pass the last id as starting_after for the next page."}},"type":"object","required":["data","has_more"],"title":"V1RegistrationList"},"V1RegistrationQuery":{"properties":{"raised_at":{"type":"string","title":"Raised At"},"answered_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answered At","description":"When you resubmitted."},"items":{"items":{"$ref":"#/components/schemas/V1QueryItem"},"type":"array","title":"Items"},"object":{"type":"string","const":"registration_query","title":"Object","default":"registration_query"},"registration_id":{"type":"string","title":"Registration Id"}},"type":"object","required":["raised_at","answered_at","items","registration_id"],"title":"V1RegistrationQuery"},"WebhookAttemptOut":{"properties":{"object":{"type":"string","const":"webhook_attempt","title":"Object","default":"webhook_attempt"},"endpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint Id"},"event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Id"},"status":{"type":"string","title":"Status"},"response_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Response Status"},"response_body":{"type":"string","title":"Response Body"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"trigger":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Trigger","description":"0 = scheduled, 1 = manual resend."},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["endpoint_id","status","response_status","response_body","duration_ms","created_at"],"title":"WebhookAttemptOut"},"WebhookEndpointCreate":{"properties":{"url":{"type":"string","maxLength":2048,"title":"Url"},"description":{"type":"string","maxLength":200,"title":"Description","default":""},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Event Types"}},"type":"object","required":["url"],"title":"WebhookEndpointCreate"},"WebhookEndpointOut":{"properties":{"object":{"type":"string","const":"webhook_endpoint","title":"Object","default":"webhook_endpoint"},"id":{"type":"string","title":"Id"},"url":{"type":"string","title":"Url"},"description":{"type":"string","title":"Description"},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Event Types","description":"Only these events; null means all."},"disabled":{"type":"boolean","title":"Disabled"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","url","description","event_types","disabled","created_at","updated_at"],"title":"WebhookEndpointOut"},"WebhookEndpointUpdate":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Url"},"description":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Description"},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Event Types"},"disabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disabled"}},"type":"object","title":"WebhookEndpointUpdate"},"WebhookEventDetailOut":{"properties":{"object":{"type":"string","const":"webhook_event","title":"Object","default":"webhook_event"},"id":{"type":"string","title":"Id"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"attempts":{"items":{"$ref":"#/components/schemas/WebhookAttemptOut"},"type":"array","title":"Attempts"}},"type":"object","required":["id","type","created_at","payload","attempts"],"title":"WebhookEventDetailOut"},"WebhookEventOut":{"properties":{"object":{"type":"string","const":"webhook_event","title":"Object","default":"webhook_event"},"id":{"type":"string","title":"Id"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"}},"type":"object","required":["id","type","created_at","payload"],"title":"WebhookEventOut"},"WebhookEventTypeOut":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"example":{"additionalProperties":true,"type":"object","title":"Example"}},"type":"object","required":["name","description","example"],"title":"WebhookEventTypeOut"},"WebhookRecoverIn":{"properties":{"since":{"type":"string","format":"date-time","title":"Since"}},"type":"object","required":["since"],"title":"WebhookRecoverIn"},"WebhookResendIn":{"properties":{"endpoint_id":{"type":"string","title":"Endpoint Id"}},"type":"object","required":["endpoint_id"],"title":"WebhookResendIn"},"WebhookSecretOut":{"properties":{"object":{"type":"string","const":"webhook_secret","title":"Object","default":"webhook_secret"},"secret":{"type":"string","title":"Secret"}},"type":"object","required":["secret"],"title":"WebhookSecretOut"},"WebhookStatsOut":{"properties":{"object":{"type":"string","const":"webhook_endpoint_stats","title":"Object","default":"webhook_endpoint_stats"},"success":{"type":"integer","title":"Success"},"pending":{"type":"integer","title":"Pending"},"sending":{"type":"integer","title":"Sending"},"fail":{"type":"integer","title":"Fail"}},"type":"object","required":["success","pending","sending","fail"],"title":"WebhookStatsOut"},"WebhookTestIn":{"properties":{"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["event_type"],"title":"WebhookTestIn"},"Error":{"properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}},"required":["error"],"title":"V1Error","type":"object"},"ErrorDetail":{"properties":{"type":{"enum":["invalid_request_error","authentication_error","permission_error","idempotency_error","rate_limit_error","api_error"],"title":"Type","type":"string"},"code":{"description":"Stable and machine-readable, e.g. registration_incomplete.","title":"Code","type":"string"},"message":{"description":"For a developer to read; may change.","title":"Message","type":"string"},"param":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The parameter at fault, as a path like proprietors[0].nin.","title":"Param"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Also in the FastCAC-Request-Id header. Quote it to support.","title":"Request Id"}},"required":["type","code","message","param","request_id"],"title":"ErrorDetail","type":"object"}},"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Your secret API key: fc_test_… in test mode, fc_live_… in live mode."}}},"tags":[{"name":"Account","description":"Check your key and see your organization."},{"name":"Name checks","description":"Check a business name against CAC's rules and registry before registering it."},{"name":"Registrations","description":"Register a Business Name with CAC, from draft to certificate."},{"name":"Test helpers","description":"Test keys only: move a registration on without waiting."},{"name":"Webhooks","description":"Endpoints that receive events, and the events sent to them."},{"name":"Webhook events","description":"What FastCAC POSTs to your webhook endpoints."}],"servers":[{"url":"/v1"},{"url":"https://api.fastcac.com/v1"}],"security":[{"apiKey":[]}],"webhooks":{"registration.created":{"post":{"tags":["Webhook events"],"summary":"Registration created","description":"`registration.created`: A registration was created through the API. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.created","properties":{"id":{"type":"string"},"type":{"const":"registration.created"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.created","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"draft","previous_status":null}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.payment_required":{"post":{"tags":["Webhook events"],"summary":"Registration payment required","description":"`registration.payment_required`: The registration is complete and waits for payment. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.payment_required","properties":{"id":{"type":"string"},"type":{"const":"registration.payment_required"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.payment_required","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"pending_payment","previous_status":"draft"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.paid":{"post":{"tags":["Webhook events"],"summary":"Registration paid","description":"`registration.paid`: Payment for the registration was confirmed. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.paid","properties":{"id":{"type":"string"},"type":{"const":"registration.paid"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.paid","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"paid","previous_status":"pending_payment"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.verification_failed":{"post":{"tags":["Webhook events"],"summary":"Registration verification failed","description":"`registration.verification_failed`: Identity or document checks failed. Fix and resubmit. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.verification_failed","properties":{"id":{"type":"string"},"type":{"const":"registration.verification_failed"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.verification_failed","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"verification_failed","previous_status":"paid"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.submitted":{"post":{"tags":["Webhook events"],"summary":"Registration submitted","description":"`registration.submitted`: The registration was sent to CAC. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.submitted","properties":{"id":{"type":"string"},"type":{"const":"registration.submitted"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.submitted","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"submitted","previous_status":"paid"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.queried":{"post":{"tags":["Webhook events"],"summary":"Registration queried","description":"`registration.queried`: CAC raised a query. Fix the queried fields and resubmit. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.queried","properties":{"id":{"type":"string"},"type":{"const":"registration.queried"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.queried","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"queried","previous_status":"submitted"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.approved":{"post":{"tags":["Webhook events"],"summary":"Registration approved","description":"`registration.approved`: CAC approved the registration; the registration number is known. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.approved","properties":{"id":{"type":"string"},"type":{"const":"registration.approved"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.approved","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"approved","previous_status":"submitted"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.rejected":{"post":{"tags":["Webhook events"],"summary":"Registration rejected","description":"`registration.rejected`: CAC rejected the registration. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.rejected","properties":{"id":{"type":"string"},"type":{"const":"registration.rejected"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.rejected","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"rejected","previous_status":"submitted"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"registration.certificate_ready":{"post":{"tags":["Webhook events"],"summary":"Registration certificate ready","description":"`registration.certificate_ready`: The certificate and status report can be downloaded. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"registration.certificate_ready","properties":{"id":{"type":"string"},"type":{"const":"registration.certificate_ready"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"registration","default":"registration","title":"Object","type":"string"},"id":{"description":"The registration (reg_…).","title":"Id","type":"string"},"business_id":{"description":"The business it registers (biz_…).","title":"Business Id","type":"string"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Your own reference, if you set one.","title":"External Id"},"status":{"title":"Status","type":"string"},"previous_status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Previous Status"}},"required":["id","business_id","status"],"title":"RegistrationData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"registration.certificate_ready","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"registration","id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","business_id":"biz_7Gk2Lm9QwRt5Yp3Xn8Dv1A","external_id":"order-1182","status":"approved","previous_status":"approved"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"document.verified":{"post":{"tags":["Webhook events"],"summary":"Document verified","description":"`document.verified`: A document passed its checks. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"document.verified","properties":{"id":{"type":"string"},"type":{"const":"document.verified"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"document","default":"document","title":"Object","type":"string"},"id":{"description":"The document (doc_…).","title":"Id","type":"string"},"registration_id":{"title":"Registration Id","type":"string"},"kind":{"description":"means_of_id, passport, signature or supporting_document.","title":"Kind","type":"string"},"status":{"title":"Status","type":"string"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Why it was rejected, when it was.","title":"Reason"}},"required":["id","registration_id","kind","status"],"title":"DocumentData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"document.verified","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"document","id":"doc_2Hs9Qw4Er7Ty1Ui5Op3As6D","registration_id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","kind":"means_of_id","status":"verified","reason":null}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"document.rejected":{"post":{"tags":["Webhook events"],"summary":"Document rejected","description":"`document.rejected`: A document failed its checks; `reason` says why. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"document.rejected","properties":{"id":{"type":"string"},"type":{"const":"document.rejected"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"document","default":"document","title":"Object","type":"string"},"id":{"description":"The document (doc_…).","title":"Id","type":"string"},"registration_id":{"title":"Registration Id","type":"string"},"kind":{"description":"means_of_id, passport, signature or supporting_document.","title":"Kind","type":"string"},"status":{"title":"Status","type":"string"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Why it was rejected, when it was.","title":"Reason"}},"required":["id","registration_id","kind","status"],"title":"DocumentData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"document.rejected","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"document","id":"doc_2Hs9Qw4Er7Ty1Ui5Op3As6D","registration_id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","kind":"means_of_id","status":"rejected","reason":"The photo is blurred."}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"payment.succeeded":{"post":{"tags":["Webhook events"],"summary":"Payment succeeded","description":"`payment.succeeded`: A payment went through. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"payment.succeeded","properties":{"id":{"type":"string"},"type":{"const":"payment.succeeded"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"payment","default":"payment","title":"Object","type":"string"},"id":{"description":"The payment (pay_…).","title":"Id","type":"string"},"registration_id":{"title":"Registration Id","type":"string"},"amount":{"description":"In kobo.","title":"Amount","type":"integer"},"currency":{"const":"NGN","default":"NGN","title":"Currency","type":"string"},"status":{"title":"Status","type":"string"}},"required":["id","registration_id","amount","status"],"title":"PaymentData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"payment.succeeded","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"payment","id":"pay_8Jk1Lm4Nb7Vc2Xz5As9Df3G","registration_id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","amount":2500000,"currency":"NGN","status":"succeeded"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}},"payment.failed":{"post":{"tags":["Webhook events"],"summary":"Payment failed","description":"`payment.failed`: A payment failed. Signed with your endpoint's secret (webhook-id, webhook-timestamp, webhook-signature headers), not your API key.","security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"payment.failed","properties":{"id":{"type":"string"},"type":{"const":"payment.failed"},"api_version":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"data":{"properties":{"object":{"const":"payment","default":"payment","title":"Object","type":"string"},"id":{"description":"The payment (pay_…).","title":"Id","type":"string"},"registration_id":{"title":"Registration Id","type":"string"},"amount":{"description":"In kobo.","title":"Amount","type":"integer"},"currency":{"const":"NGN","default":"NGN","title":"Currency","type":"string"},"status":{"title":"Status","type":"string"}},"required":["id","registration_id","amount","status"],"title":"PaymentData","type":"object"}},"required":["id","type","api_version","created_at","data"],"examples":[{"id":"evt_0000000000000000000000","type":"payment.failed","api_version":"2026-11-01","created_at":"2026-11-03T10:14:22Z","data":{"object":"payment","id":"pay_8Jk1Lm4Nb7Vc2Xz5As9Df3G","registration_id":"reg_4Pd0kXq2ZbN1sW8yT3mVhL","amount":2500000,"currency":"NGN","status":"failed"}}]}}}},"responses":{"200":{"description":"Return any 2xx, quickly, to acknowledge it; anything else is retried."}}}}}}