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

# Event types

> Every event FastCAC sends, and when.

`GET /v1/webhooks/event-types` returns this list with an example of each.

## Registrations

`data` is the registration's id, your `external_id`, and its new and previous status.

| Event | When |
| - | - |
| `registration.created` | A registration was created. |
| `registration.payment_required` | It was submitted complete and waits for payment. |
| `registration.paid` | Payment was confirmed. |
| `registration.verification_failed` | A proprietor's identity didn't check out. Fix and submit again. |
| `registration.submitted` | It was filed with CAC (again, after a query or a failed check). |
| `registration.queried` | CAC asked for changes. Read `query`, fix, submit again. |
| `registration.approved` | CAC approved it; `registration_number` is set. |
| `registration.certificate_ready` | The certificate and status report can be downloaded. |
| `registration.rejected` | CAC rejected it. |

```json registration.queried theme={null}
{
  "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"
  }
}
```

## Documents

| Event | When |
| - | - |
| `document.verified` | An uploaded document passed its checks. |
| `document.rejected` | It failed; `reason` says why. Upload a new one. |

```json document.rejected theme={null}
{
  "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."
  }
}
```

## Payments

`payment.succeeded` and `payment.failed` will be sent once live payments open. Amounts are in kobo.

```json payment.succeeded theme={null}
{
  "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"
  }
}
```

New event types may be added at any time. Ignore types you don't handle, and return `2xx` for
them.


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