Webhook Sandbox for Real Handler Tests
A webhook sandbox should test more than a successful POST. FetchSandbox gives you realistic retries, duplicate delivery, replay, signature checks, out-of-order events, and state changes from providers like Stripe, Clerk, GitHub, Paddle, Resend, and Shopify — without production keys or real customer data.
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