Skip to main content
A registration starts as a draft. Create it with whatever you have, add the rest with PATCH, and submit once missing_fields is empty.
Response (201, abridged)

Fields

string[]
required
One or two names, in order of preference, at most 100 characters each. CAC registers the first it can. Check them first with name checks.
string
required
One of GET /v1/lines-of-business, exactly as written.
object
required
The business’s contact details and principal place of business.
object[]
required
The owners, one to 20. A Business Name with more than one proprietor is a partnership.
string
Your own reference (an order or customer id), up to 255 characters. Filter by it with GET /v1/registrations?external_id=….

missing_fields and validation

While a registration is a draft, missing_fields lists every required field still empty, as a path such as proprietors[0].address.postcode. Use it to drive your form. Documents aren’t in missing_fields; submit tells you about those. Values are checked when you submit. The error’s param names the first problem:
400

Changing a registration

PATCH replaces the fields you send. business and proprietors are replaced whole, so send the complete object or list.
After submit, the details are locked:
409
See editing rules for when changes are allowed again.

Submitting

A complete draft moves to pending_payment. The same call resubmits a registration after verification_failed or a query, with no second payment.

Personal data

Registrations hold personal data (names, NINs, addresses). Only your organization’s keys can read them, webhook payloads never include it (they carry ids and statuses only), and test-mode data is never sent to CAC or anywhere else.