Integration · Stripe

Stripe webhook gateway with DLQ and replay

Charon Gate sits between Stripe and your application: it captures every Stripe webhook, verifies the signature, retries failed deliveries with exponential backoff, holds exhausted events in a dead-letter queue, and lets you replay any event with one click — so a single deploy outage doesn't lose payments_intent.succeeded or invoice.paid.

Why Charon Gate for Stripe

  • Stripe-Signature verification with the same constant-time comparison Stripe recommends, including ±5-minute timestamp tolerance against replay attacks.
  • Automatic dedupe by Stripe event id — duplicate redeliveries from Stripe are absorbed at ingest.
  • Stripe-aware payload redaction preset trims customer PII from stored bodies (you keep the event id, type, and metadata; we drop email/name/address).
  • Replay any past event from the dashboard or REST API — re-runs the full verification + signing pipeline so your handler can't tell the difference.
  • DLQ alerts with first-class Slack and PagerDuty hooks so failed `customer.subscription.deleted` events surface in an on-call channel within seconds.

How verification works

Header
Stripe-Signature
Algorithm
HMAC-SHA256
Upstream docs
docs.stripe.com/webhooks

Charon parses the `t=…,v1=…` envelope and rejects signatures whose timestamp is more than 5 minutes from server time, matching Stripe's official guidance.

Example Stripe events

Charon Gate is event-shape agnostic — these are typical Stripe event types our customers route through us today.

payment_intent.succeededinvoice.paidcustomer.subscription.deletedcharge.refundedcheckout.session.completed

FAQ

Will Stripe accept a Charon Gate URL as a webhook endpoint?
Yes. From the Stripe Dashboard → Developers → Webhooks, create an endpoint with your Charon Gate ingest URL. We forward the verified payload to your destination with the same body Stripe sent.
What happens to my Stripe webhook signing secret?
You provide it once when configuring the endpoint. We encrypt it at rest with AES-GCM (per-tenant key derivation) and use it only to verify inbound signatures. It never leaves the worker process and is never logged.
Does Charon Gate handle Stripe Connect events?
Yes. Connected-account events deliver the same way; the `account` field on the event identifies the connected account. Charon stores it untouched and forwards as-is.

Ready when you are

Front your Stripe webhooks with Charon Gate in 90 seconds.

Start free