> ## 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.

# Registration lifecycle

> Every status a registration goes through, and what you do at each.

```mermaid theme={null}
flowchart LR
    draft --> pending_payment --> paid --> submitted --> approved
    paid --> verification_failed --> submitted
    submitted --> queried --> submitted
    submitted --> rejected
```

The main path runs along the top. A failed identity check or a CAC query goes back to `submitted`
once you fix it; `approved` and `rejected` are final.

| Status | What it means | What you do | Webhook |
| - | - | - | - |
| `draft` | Created; details may be incomplete. | `PATCH` details and upload documents until `missing_fields` is empty, then submit. | `registration.created` |
| `pending_payment` | Complete and waiting for payment. Details are locked. | Pay (in test mode: `advance` to `paid`). | `registration.payment_required` |
| `paid` | Payment confirmed; identity checks are running. | Nothing; it moves on by itself. | `registration.paid` |
| `verification_failed` | A proprietor's identity didn't check out. `failure` says which field. | Fix the field with `PATCH`, then submit again. No second payment. | `registration.verification_failed` |
| `submitted` | Filed with CAC, waiting for its decision. | Wait. CAC usually decides within 24 hours. | `registration.submitted` |
| `queried` | CAC wants changes. `query.items` lists each field and why. | Fix the queried fields, then submit again. No second payment. See [Handling CAC queries](https://docs.fastcac.com/guides/queries.md). | `registration.queried` |
| `approved` | Registered. `registration_number` and `registered_name` are set. | Download the [certificate and status report](https://docs.fastcac.com/guides/certificates.md). | `registration.approved`, then `registration.certificate_ready` |
| `rejected` | CAC refused it. `failure` says why. | Start a new registration, usually with a different name. | `registration.rejected` |

## Following a registration

Every registration has a `history`: each status change with its time, oldest first. Subscribe to
the [webhooks](https://docs.fastcac.com/webhooks/overview.md) and fetch the registration when one arrives; poll with
`GET /v1/registrations/{id}` only as a fallback.

```json Approved registration theme={null}
{
  "object": "registration",
  "id": "reg_1G7StLhyz24vL6sB5eC64K",
  "business_id": "biz_1bIJpSFM4oxl6bkou74oob",
  "external_id": "order-1182",
  "type": "business_name",
  "status": "approved",
  "proposed_names": [
    "ADA FOODS VENTURES",
    "ADA KITCHEN VENTURES"
  ],
  "line_of_business": "Educational Services And Consultancy",
  "business": {
    "email": "hello@adafoods.ng",
    "phone": "08039876543",
    "address": {
      "street_number": "12",
      "street": "Admiralty Way",
      "city": "Lekki",
      "lga": "Eti-Osa",
      "state": "Lagos",
      "postcode": "105102"
    }
  },
  "proprietors": [
    {
      "first_name": "Ada",
      "last_name": "Obi",
      "other_names": null,
      "gender": "female",
      "date_of_birth": "1990-04-12",
      "nationality": "Nigerian",
      "nin": "12345678901",
      "email": "ada@example.com",
      "phone": "08031234567",
      "address": {
        "street_number": "12",
        "street": "Admiralty Way",
        "city": "Lekki",
        "lga": "Eti-Osa",
        "state": "Lagos",
        "postcode": "105102"
      }
    }
  ],
  "missing_fields": [],
  "query": null,
  "failure": null,
  "registered_name": "ADA FOODS VENTURES",
  "registration_number": "4818873",
  "certificate_available": true,
  "status_report_available": true,
  "history": [
    {
      "from": null,
      "to": "draft",
      "at": "2026-10-23T22:06:48Z"
    },
    {
      "from": "draft",
      "to": "pending_payment",
      "at": "2026-10-23T22:06:49Z"
    },
    {
      "from": "pending_payment",
      "to": "paid",
      "at": "2026-10-23T22:06:49Z"
    },
    {
      "from": "paid",
      "to": "submitted",
      "at": "2026-10-23T22:06:49Z"
    },
    {
      "from": "submitted",
      "to": "approved",
      "at": "2026-10-23T22:06:49Z"
    }
  ],
  "submitted_at": "2026-10-23T22:06:49Z",
  "approved_at": "2026-10-23T22:06:49Z",
  "created_at": "2026-10-23T22:06:48Z",
  "updated_at": "2026-10-23T22:06:49Z"
}
```

## Editing rules

| Status | What you can change |
| - | - |
| `draft`, `verification_failed` | Anything. |
| `queried` | Only the queried fields and documents (`400 field_not_queried` otherwise). |
| Anything else | Nothing (`409 registration_locked`). |


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