Invoice finalized. Where's the payment event?

Stripe retries aren't guaranteed, event ordering isn't strict, and invoice.paid can silently never arrive. Relin monitors every Stripe webhook lifecycle and alerts you when events go missing.

Relin — Stripe invoices
inv_9aP3qRinvoice.finalizeddelivered
inv_9aP3qRinvoice.paiddelivered
inv_8xK2mNinvoice.finalizeddelivered
inv_8xK2mNinvoice.paidmissing 6h
inv_7wJ1bMinvoice.finalizeddelivered
inv_7wJ1bMinvoice.voideddelivered

Invoice finalized, never paid

invoice.finalized arrived 6 hours ago. No invoice.paid, payment_failed, or voided event followed.

Alerted on Slack · Lifecycle rule · inv_8xK2mN

Charge exists in Stripe, no webhook received

Stripe API shows 3 charges in the last hour with no corresponding charge.succeeded webhooks in the ledger.

Alerted on Slack · API reconciliation · Pro

Duplicate delivery after timeout

Same invoice.payment_failed event received twice. Idempotency key matched — duplicate delivery attempt recorded, not double-processed.

Deduped automatically · Attempt logged

Lifecycle monitoring

Relin tracks Stripe invoice, subscription, charge, and payment intent state machines. Missing terminal events trigger alerts automatically.

API reconciliation

Relin polls stripe.invoices.list and diffs against the event ledger. Finds events you were never sent a webhook for.

One-click replay

Replay missing or failed events from the ledger to your endpoints. No Stripe support tickets, no scripts.

Your Stripe webhooks are probably fine. Probably.

Set up in two minutes. Get alerted when they're not.