How replay works
When you trigger a replay, Webhooktrap’s server sends the stored event to your destination URL using the same HTTP method, headers, and raw body that were originally captured. Your server processes the request as if the provider sent it directly.Choose an event
Find the captured event you want to replay — in the dashboard or via
GET /api/v1/inboxes/:id/events — and note its event ID.Provide a destination URL
Supply any publicly reachable URL as the replay destination. This can be your local development server, a staging environment, or a feature branch deployment.
Webhooktrap forwards the payload
Webhooktrap’s server sends the original method, headers, and body to your destination URL exactly as captured.
What you get back
A successful replay response includes three fields:| Field | Type | Description |
|---|---|---|
statusCode | integer | The HTTP status code your server responded with |
latencyMs | integer | Round-trip time in milliseconds from Webhooktrap’s server to yours |
responseBody | string | The raw response body returned by your webhook handler |
Replay API example
Send aPOST request to /api/v1/events/:eventId/replay with a JSON body containing the destination field:
Use cases
Debug a 422
Capture the Stripe checkout event that’s returning a 422, replay it against your local handler with a debugger attached, and step through exactly what’s going wrong.
Test a new handler
Ship a new webhook handler, capture a real event from the provider, and replay it to verify your code responds correctly before it hits production traffic.
Reproduce edge cases
Save a tricky production event and replay it on demand during development or in CI, without needing to trigger the exact provider action again.
The destination URL must be publicly reachable from Webhooktrap’s servers. If you’re replaying to a local server running behind NAT (such as
localhost on your laptop), use a local tunnel tool like ngrok or cloudflared to expose your port, then supply the tunnel URL as the destination.