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

# Webhooks

> Stripe webhook events and signature verification

Nozle processes Stripe webhooks at `POST /webhooks/stripe`.

**How it works:**

1. Stripe sends webhook events to your Nozle API's /webhooks/stripe endpoint
2. Nozle verifies the Stripe signature header
3. Based on the event type, Nozle updates subscription state, activates features, etc.

**Key events processed:**

| Event                         | What Nozle Does                                      |
| ----------------------------- | ---------------------------------------------------- |
| checkout.session.completed    | Activates subscription, provisions plan entitlements |
| customer.subscription.updated | Updates subscription state (upgrades, downgrades)    |
| customer.subscription.deleted | Deactivates subscription                             |
| invoice.paid                  | Marks invoice as paid                                |
| invoice.payment\_failed       | Triggers dunning/retry flow                          |

**Plan features provisioned on subscription:**

Starter plan: base features only
Growth plan: revenue\_analytics, remove\_branding\_watermark, auto\_dunning, progressive\_billing, lifetime\_usage
Scale plan: everything in Growth PLUS netsuite, xero, hubspot, salesforce, okta, avalara, api\_permissions, custom\_roles, forecasted\_usage, security\_logs, from\_email, issue\_receipts, manual\_payments, multi\_entities\_pro

**Setup:**
Configure your Stripe webhook endpoint in the Stripe Dashboard pointing to:

```
https://api.nozle.app/webhooks/stripe
```

Configure the webhook signing secret in the Nozle dashboard under **Settings > Stripe**.
