> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fastcac.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Name checks

> Find out whether CAC will accept a business name before your user pays.

`POST /v1/name-checks` checks a proposed name against CAC's naming rules and its registry of
existing businesses. Run it while your user is choosing a name, before they pay: a registration whose name CAC
rejects costs your user time.

```bash theme={null}
curl https://api.fastcac.com/v1/name-checks \
  -H "Authorization: Bearer $FASTCAC_KEY" -H "Content-Type: application/json" \
  -d '{"name": "Ada Foods", "line_of_business": "Educational Services And Consultancy"}'
```

```json Response theme={null}
{
  "object": "name_check",
  "name": "ADA FOODS",
  "line_of_business": "Educational Services And Consultancy",
  "available": false,
  "requires_certificate": false,
  "reason": {
    "code": "qualifier_missing",
    "message": "A business name must end in a qualifier such as VENTURES, ENTERPRISES or CONCEPTS.",
    "accepted_qualifiers": [
      "VENTURES",
      "ENTERPRISES",
      "HUB",
      "CONCEPTS",
      "FASHION",
      "SERVICES",
      "BEAUTY",
      "BIZ"
    ],
    "words": null,
    "conflicting_name": null
  },
  "similarity_score": null,
  "most_similar_name": null,
  "similar_names": [],
  "suggested_names": []
}
```

* `name` comes back as CAC will record it: upper case, single spaces.
* `available` is the answer. When it's `false`, `reason` says why in a stable `code` you can branch
  on, and a `message` you can show.
* `requires_certificate: true` means the name is available but CAC will ask for a professional
  certificate for the profession the name implies. Upload it as a
  `supporting_document`.
* `suggested_names` offers alternatives when the name is taken or too similar.

## Line of business

`line_of_business` must be one of CAC's options, exactly as written. Fetch the list once and offer
it as a picker:

```bash theme={null}
curl https://api.fastcac.com/v1/lines-of-business -H "Authorization: Bearer $FASTCAC_KEY"
```

```json Response (481 values, abridged) theme={null}
{
  "object": "list",
  "data": [
    "Abattoir And Meat Selling Services",
    "Accommodation",
    "Accounting / Auditing Consultancy",
    "Accounting / Auditing, Taxation And Financial Management Consultancy",
    "Activities Auxiliary To Financial Services And Insurance Activities",
    "..."
  ],
  "has_more": false
}
```

Anything else is a `400`:

```json 400 theme={null}
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "message": "Pick what your business does from the list.",
    "param": "line_of_business",
    "request_id": "req_RtnEaZI1zv7xWscZ7o64r0ZR"
  }
}
```

## Reason codes

| `code` | Meaning | Extra fields |
| - | - | - |
| `name_exists` | A business with this name is already registered. | `conflicting_name` |
| `name_too_similar` | Too close to a registered name (90% similar or more). | `conflicting_name` |
| `qualifier_missing` | Business names must end in a qualifier such as VENTURES or ENTERPRISES. | `accepted_qualifiers` |
| `qualifier_not_last` | The qualifier must be the last word. | `accepted_qualifiers` |
| `multiple_qualifiers` | Only one qualifier. | `accepted_qualifiers` |
| `single_word` | Names need at least two words. | |
| `restricted_word` | A word CAC doesn't allow in a business name (BANK, LIMITED, GROUP…). | `words` |
| `restricted_line_of_business` | The line of business contains a restricted word. | |
| `offensive_language` | Language CAC doesn't allow. | |
| `religious_reference` | A religious reference. | |
| `special_characters` | Special characters. | |
| `low_compliance` | CAC scored the name below the 80% it needs. | |
| `not_accepted` | CAC is unlikely to accept it, for a reason it didn't name. | |

New codes may be added; treat an unknown code like `not_accepted` and show the `message`.

> **Example: restricted word**
>
> ```json theme={null}
> {
>   "object": "name_check",
>   "name": "ADA BANK VENTURES",
>   "line_of_business": "Educational Services And Consultancy",
>   "available": false,
>   "requires_certificate": false,
>   "reason": {
>     "code": "restricted_word",
>     "message": "The name contains a word CAC doesn't allow in a business name.",
>     "accepted_qualifiers": null,
>     "words": [
>       "BANK"
>     ],
>     "conflicting_name": null
>   },
>   "similarity_score": null,
>   "most_similar_name": null,
>   "similar_names": [],
>   "suggested_names": []
> }
> ```

> **Example: too similar**
>
> ```json theme={null}
> {
>   "object": "name_check",
>   "name": "ADA FOODS VENTURES",
>   "line_of_business": "Educational Services And Consultancy",
>   "available": false,
>   "requires_certificate": false,
>   "reason": {
>     "code": "name_too_similar",
>     "message": "This name is too similar to one already registered with CAC.",
>     "accepted_qualifiers": null,
>     "words": null,
>     "conflicting_name": "ADA FOODS GLOBAL VENTURES"
>   },
>   "similarity_score": 92.0,
>   "most_similar_name": "ADA FOODS GLOBAL VENTURES",
>   "similar_names": [
>     "ADA FOODS GLOBAL VENTURES"
>   ],
>   "suggested_names": [
>     "ADA FOODS CONCEPTS",
>     "ADA FOODS HUB"
>   ]
> }
> ```

> **Example: needs a certificate**
>
> ```json theme={null}
> {
>   "object": "name_check",
>   "name": "ADA PHARMACY VENTURES",
>   "line_of_business": "Educational Services And Consultancy",
>   "available": true,
>   "requires_certificate": true,
>   "reason": null,
>   "similarity_score": 12.5,
>   "most_similar_name": null,
>   "similar_names": [],
>   "suggested_names": []
> }
> ```

## In test mode

Test mode applies the naming rules but never searches the registry, so any name that follows the
rules comes back available. Force any other outcome with `?simulate=` and a reason code (or
`requires_certificate`). See [Test mode](https://docs.fastcac.com/test-mode.md#name-checks).

## Limits

Live name checks query CAC's registry, so they are rate limited per organization. A `429` comes
with `Retry-After`; a `503 name_check_unavailable` means CAC's search isn't answering, so try again
shortly.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.