# Stripe to Pagerless

> Paste one URL into Stripe. Pagerless decides who to wake, explains it in plain words and closes the problem when Stripe says it's fixed.

URL: https://pagerless.dev/integrations/stripe
Updated: 2026-10-22

## Set up

Your URL is in the Pagerless app under Other tools, with the key filled in:

```text
https://events.pagerless.dev/v1/hooks/stripe/<your ingest key>
```

1. **Open Developers, Webhooks, endpoint** In Stripe.
2. **Add an endpoint with your Pagerless URL.** 
3. **Events: payment_intent.payment_failed, payment_intent.succeeded, charge.failed (invoice.payment_failed and checkout.session.async_payment_failed also count).** 
4. **Save the signing secret (whsec_…) in Pagerless; unsigned deliveries are refused from then on.** 

## What happens

| When | Pagerless |
| --- | --- |
| Fires | Failed payments, counted as errors on the payments route |
| Clears | Not an alert: successes are the denominator |
| How loud | Not mapped: several failures within 5 minutes trip the payments floor and wake someone; one decline does not |
| Proof it's you | `Stripe-Signature`, 5-minute tolerance, required once saved. |

Test-mode events are ignored unless the URL ends with `?test=1`. This works with or without the SDK; see [payments down alerts](https://pagerless.dev/solutions/payments-down-alerts).

## Choosing who gets woken

| Rule | Example |
| --- | --- |
| Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) |
| The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log |
| A default on the URL | `?level=wake` (or tell, log). Without one: tell. |

`?service=` and `?env=` set the service and environment shown on the problem.
