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

# Event types

> Everything Reclack emits, and what each one means.

Event types read as `object.what_happened`, in the past tense, because an event
is a record of something that already happened. The strings are part of the
contract: they are added to, never renamed.

<Frame caption="The events Reclack emits, grouped by the object they belong to">
  <img className="block dark:hidden" src="https://mintcdn.com/reclack/hSqUHJp0KVXvwTsQ/images/event-types.svg?fit=max&auto=format&n=hSqUHJp0KVXvwTsQ&q=85&s=73ac46b8e135966c9d2352f61d315f09" alt="Payment, invoice, subscription and checkout events, each with a line saying when it fires." width="880" height="330" data-path="images/event-types.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/reclack/hSqUHJp0KVXvwTsQ/images/event-types-dark.svg?fit=max&auto=format&n=hSqUHJp0KVXvwTsQ&q=85&s=708f212081b5289f311ceb82389eb843" alt="Payment, invoice, subscription and checkout events, each with a line saying when it fires." width="880" height="330" data-path="images/event-types-dark.svg" />
</Frame>

## Payments

| Type | Fires when | Act on it by |
| - | - | - |
| `payment.succeeded` | A transaction confirmed onchain. | Marking the payment settled in your records. |
| `payment.failed` | A collection attempt failed. | Noting it. Retries are already scheduled. |

## Invoices

| Type | Fires when | Act on it by |
| - | - | - |
| `invoice.paid` | An invoice was reconciled against a confirmed transaction. | Closing the bill in your books. |
| `invoice.overdue` | The due date passed with the invoice still open. | Reaching out, or letting the reminders do it. |

## Subscriptions

| Type | Fires when | Act on it by |
| - | - | - |
| `subscription.created` | A recurring checkout completed. | Granting access. |
| `subscription.renewed` | A period collected and reconciled. | Extending access to the next period. |
| `subscription.cancelled` | The customer or you ended it. | Ending access when the period runs out. |

## Checkout

| Type | Fires when | Act on it by |
| - | - | - |
| `checkout.completed` | A session was paid. | Fulfilling whatever the session was for. |

## Customers

| Type | Fires when | Act on it by |
| - | - | - |
| `customer.created` | A new customer record was made, including by a payer at checkout. | Linking it to your own user, usually through `external_id` or the email. |

## Subscribing

An endpoint subscribes to the types it wants. Subscribing to a type that will
never fire is a configuration that produces silence, so we refuse unknown types
at the form rather than letting you discover it months later.

```bash theme={null}
curl -X PATCH "https://api.reclack.com/v1/webhooks/whe_7Fh2PqX9" \
  -H "Api-Key: $RECLACK_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "event_types": [
      "subscription.created",
      "subscription.renewed",
      "subscription.cancelled",
      "invoice.paid",
      "payment.failed"
    ]
  }'
```

The current list is also available from the API, which is handy for building a
settings screen:

```bash theme={null}
curl "https://api.reclack.com/v1/event-types" \
  -H "Api-Key: $RECLACK_KEY"
```

## A note on ordering

Events are not guaranteed to arrive in the order they happened. A retry can
land after a later event. Treat each one as a statement about an object at a
point in time, and read the object back if the order matters to what you do
next.


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