Complete guide to testing, debugging, and monitoring Stripe webhooks with auto-classification, signature verification, failure diagnosis, and safe event replay.
curl -X POST https://webhook.sdnbros.app/p/YOUR_TOKEN \
-H "Content-Type: application/json" \
-H "Stripe-Signature: t=1234,v1=test" \
-d '{"id":"evt_test","type":"charge.succeeded","data":{"object":{"amount":2999,"currency":"usd"}}}'
SDNBros auto-detects these Stripe events:
charge.succeeded charge.failed charge.refunded invoice.paid invoice.payment_failed invoice.created checkout.session.completed checkout.session.expired customer.subscription.created customer.subscription.updated customer.subscription.deleted payment_intent.succeeded payment_intent.payment_failed | Error | Cause | Fix |
|---|---|---|
HTTP 401 | Invalid signing secret — webhook signature verification failing | Update the signing secret in Project Settings to match Stripe's endpoint secret |
HTTP 500 on charge.succeeded | Your handler crashes when processing payment confirmation | Check server logs for null pointer or missing field — Stripe payload may have changed |
Timeout | Your webhook handler is too slow — Stripe expects a prompt success response | Move heavy processing to a background job. Return 200 immediately, process async. |
Duplicate events | Stripe sends the same event multiple times for reliability | Use the event ID for idempotency. SDNBros deduplicates automatically. |
sdnbros webhook tunnel --port 3000 forwards webhooks to localhostCreate an endpoint and evaluate auto-classification, diagnosis, and replay.
Start FreeSee also: Stripe Provider Details | Webhook Security Checklist | Free Webhook Tester