Webhook Sandbox
Most webhook bugs do not show up in the happy path. They show up in retries, duplicate delivery, out-of-order events, and the race between the API response and the webhook that follows it. FetchSandbox lets you test all of those scenarios safely — no production keys, no real card data, no sleeping until 3am to debug a missing event.
8 webhook scenarios you should actually test
Most teams test the happy path and ship. Production then surfaces every edge case at once. These are the 8 scenarios that catch real bugs.
Signature Verification
Replay an event with the wrong signature, confirm your handler rejects it
Idempotency
Deliver the same event 10x, confirm side effects fire only once
Out-of-Order Delivery
Fire subscription.canceled before subscription.activated and watch your handler
Retry Logic
Return non-2xx and watch the sandbox retry with backoff
Race Conditions
Webhook arrives before your handler finishes processing the API response
Duplicate Delivery
Same event ID delivered twice — your handler must dedupe
Bulk Replay
Replay every event from the last hour to test your reconciliation logic
Missing Webhook
Verify your fallback polling works when an event never arrives
Webhook events for popular providers
Each provider sandbox fires real webhook events on every state transition. Click into one to see the full event catalog and replay any event into your handler.
Stripe
payment_intent.succeeded, charge.refunded, dispute.created, customer.subscription.updated, invoice.payment_failed
Paddle
subscription.activated, .paused, .resumed, .canceled, transaction.completed
Clerk
user.created, user.updated, session.revoked, organizationMembership.created, invitation.created
Resend
email.sent, email.delivered, email.bounced, email.opened, email.clicked
Shopify
orders/create, orders/paid, products/update, customers/create, app/uninstalled
GitHub
push, pull_request, issue_comment, workflow_run, release
How it actually works
- 1
Spin up a sandbox
Pick a provider (Stripe, Paddle, Clerk, etc.) and FetchSandbox provisions a stateful sandbox in 2 seconds.
- 2
Point your app at it
Use the sandbox URL as your provider base URL. Configure the sandbox webhook URL to point at your handler.
- 3
Trigger real state transitions
POST a charge, activate a subscription, send an email — the sandbox fires the matching webhook events to your handler.
- 4
Replay any event
Use the dashboard to replay any past event. Test idempotency, signature checks, retry logic, and out-of-order handling.
Related reading
Ready to test your webhook handlers?
No signup. Free tier — 3 sandboxes, 10,000 requests/month.
Open Dashboard