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

# Subscription Webhooks

> Events, setup, and delivery rules for subscription webhooks

Subscription webhooks notify your backend when a subscription starts, renews, ends, or requires payment. [Create a subscription webhook](/reference/webhook/paylink-subscription/create) to register your endpoint.

JSON payload shapes are in the [Subscription payload reference](/reference/webhook/paylink-subscription/payloads). Each payload includes `transaction` and `transactionObject` with the same shape as [Pay Link payload reference](/reference/webhook/paylink-transaction/payloads).

## Config vs Wire Event Names

Subscribe using config event names when creating the webhook. Delivered payloads use shorter wire event names, except for pending-payment reminders:

| Subscribe to (config)          | Delivered `event` in payload   |
| ------------------------------ | ------------------------------ |
| `SUBSCRIPTION_STARTED`         | `STARTED`                      |
| `SUBSCRIPTION_RENEWED`         | `RENEWED`                      |
| `SUBSCRIPTION_ENDED`           | `ENDED`                        |
| `SUBSCRIPTION_PENDING_PAYMENT` | `SUBSCRIPTION_PENDING_PAYMENT` |

## Renewal Fields

Most subscription payloads include `nextChargeUrl` and `chargeToken` — the direct link to the buyer's payment page for the next renewal. These fields are **omitted on `ENDED` events**. Use the charge URL to prompt the buyer within your own product or notification system.

On `SUBSCRIPTION_PENDING_PAYMENT`, `email` and `subscriptionState` are omitted. On other events, `subscriptionState` is `NEW`, `RENEWED`, or `EXPIRED`.

## Related

* [Webhook request headers](/reference/webhook/overview#webhook-request-headers) — delivery headers and signature verification.
* [Subscriptions guide](/docs/subscriptions) — dashboard setup and anonymous subscription flows.
