Stripe "invoice.payment_failed" to Slack: alerting playbook
Routes Stripe invoice.payment_failed events to Slack alerts. Use when the billing or success team needs real-time visibility into failed payments. Not for customer-facing dunning.
TL;DR
Piping invoice.payment_failed webhooks into a Slack channel gives the team real-time eyes on failed payments, but raw events are noise: enrich the alert with customer name, plan, amount, attempt count, and the portal recovery link before posting. Route high-value failures to a priority channel and everything else to a digest. Include the decline reason so the team knows whether it is worth a personal outreach. Alerting is for visibility; the automated dunning flow still does the actual recovery work.
The query
Stripe "invoice.payment_failed" to Slack: alerting playbookUse this when
- Real-time failed-payment visibility for the billing team
- Slack alerts for high-value invoice failures
- Enriching Stripe webhooks for team triage
Not for
- Customer dunning emails (separate flow, customer-facing)
- Paging on-call for payment failures (payments rarely need a page)
Steps
- Create the webhook endpoint for invoice.payment_failed with signature verification.
Expected output: Events arrive securely and deduplicated.
- Enrich each event: customer name, MRR, amount, attempt number, decline code.
Expected output: The alert is actionable at a glance.
- Post to Slack with the recovery link and a suggested next step.
Expected output: The team can act in one click.
- Split routing: high-value or strategic accounts to a priority channel, rest to digest.
Expected output: Signal stays high where it matters.
- Add a resolve action or thread update when the invoice recovers.
Expected output: The channel does not fill with stale failures.
Variant phrasings
Stripe invoice.payment_failed Slack alert
Slack webhook failed invoice Stripe
payment failure alerting playbook Stripe
Root cause
Humans triage what automation cannot judge: whether a failed 50k invoice from a strategic account deserves a phone call. The webhook-to-Slack path exists to put that judgment in front of someone fast, while the dunning automation handles the routine cases.
Edge cases
- Do not post full card or customer PII into Slack; link back to the dashboard
- Rate-limit the poster: retry storms can flood the channel during an outage
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_AN5eSBzl27KtN8-vrsRs-w
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.