Dead LetterWebhook recoveryStripe Integration Guide
Back to Docs
STRIPE

Redirecting Stripe Webhooks Through Dead Letter

This guide walks you through configuring Stripe to send webhook events to your Dead Letter ingestion endpoint. By routing through Dead Letter, you ensure zero data loss during destination server downtime.

Prerequisites

  • A Dead Letter account with at least one configured endpoint (see Setup Workflow)
  • A Stripe account with access to the Stripe Webhook Dashboard
  • Your Dead Letter Ingestion URL (found in the endpoint details page)

Step 1: Navigate to Stripe Webhooks

Log in to your Stripe Dashboard . In the left sidebar, expand Developers and click Webhooks. Alternatively, go directly to dashboard.stripe.com/webhooks .

Step 2: Add an Endpoint

Click the Add endpoint button in the top right corner of the Webhooks page.

Endpoint Configuration

  • Endpoint URL: Paste your Dead Letter Ingestion URL: https://api.deadletterhub.io/ingest/<your-slug>
  • Version: Select the latest API version (e.g., 2025-02-18)
  • Events to send: Select the specific events you want to forward. At minimum, select payment and subscription events that drive your business logic

Step 3: Select Events

Stripe organizes events by category. Common webhook events to forward include:

Payments

  • charge.succeeded
  • charge.failed
  • charge.refunded
  • payment_intent.succeeded
  • payment_intent.payment_failed

Subscriptions

  • customer.subscription.created
  • customer.subscription.updated
  • customer.subscription.deleted
  • invoice.paid
  • invoice.payment_failed

You can use Select all events to forward everything, or choose individual events for fine-grained control.

Step 4: Configure Signing Secret (Optional)

Stripe signs webhook payloads with a signing secret. Dead Letter preserves the original Stripe signature headers when forwarding, so your destination server can verify payload authenticity using Stripe's SDK as usual. No additional configuration needed.

Step 5: Verify Delivery

After saving, trigger a test event from the Stripe dashboard (e.g., send a charge.succeeded test event). Verify in your Dead Letter dashboard that the event appears in the Event Logs with a SUCCESS or PENDING status.

Step 6: Update Your Application

If your application currently receives webhooks directly from Stripe, update the webhook URL in your Stripe Dashboard to point to Dead Letter. Your destination endpoint URL (the one configured in Dead Letter) does not need to change — Dead Letter will forward the payloads there with the original Stripe headers preserved.

Troubleshooting

  • No events appearing? Verify the endpoint slug is correct and your Dead Letter endpoint is set to Active.
  • Events showing FAILED? Check that your destination server is reachable and returning 2xx status codes. Inspect the response body in the event drawer.
  • Signature verification failing? Stripe's original signature is preserved in the forwarded headers. Verify using Stripe's SDK and the original Stripe signing secret.