WR

Webhook Request Replayer

Paste a saved webhook request and get cURL / fetch / Axios code to replay it locally.

Request Details

Endpoint URL
Headers one per line, Key: Value

3 header(s) parsed

Request Body

Parsed Headers

HeaderValue
Content-Typeapplication/json
Stripe-Signaturet=1234567890,v1=abc123def456
User-AgentStripe/1.0 (+https://stripe.com/docs/webhooks)

Replay Code

curl -X POST 'https://your-server.com/webhooks' \
  -H 'Content-Type: application/json' \
  -H 'Stripe-Signature: t=1234567890,v1=abc123def456' \
  -H 'User-Agent: Stripe/1.0 (+https://stripe.com/docs/webhooks)' \
  --data '{
  "id": "evt_1OqK2dLkdIwHu7ixFQVYmzMz",
  "object": "event",
  "type": "payment_intent.succeeded",
  "created": 1712160000,
  "data": {
    "object": {
      "id": "pi_3OqK2dLkdIwHu7ix0P7XHNS2",
      "amount": 2000,
      "currency": "usd",
      "status": "succeeded"
    }
  }
}'

Quick Copy

About Webhook Request Replayer

The Webhook Request Replayer is a free browser-based tool that takes a saved or logged webhook request — including its HTTP method, headers, and body — and instantly converts it into ready-to-run code for cURL, the Fetch API, and Axios. No server required. Everything runs client-side.

It's designed for developers who need to reproduce failed webhook deliveries, test local webhook handlers, or quickly share a reproducible request with teammates.

How to Use Webhook Request Replayer

  1. 1 Enter the endpoint URL — paste the webhook destination URL and select the HTTP method (usually POST).
  2. 2 Paste the headers — enter each header on its own line in Key: Value format. Copy them from your server logs or API dashboard.
  3. 3 Paste the body — drop in the raw JSON (or form-encoded) body exactly as it was delivered.
  4. 4 Switch between tabs — choose cURL, fetch, or Axios and click Copy to grab the generated code.
  5. 5 Run the command — paste into your terminal or Node.js file to replay the webhook against your local or staging server.

Common Use Cases

Reproduce failed deliveries

Your server returned a 500 and the provider won't retry. Copy the payload from your logs and replay it without waiting.

Test local handlers

Point the URL at localhost (or a tunnel) and fire real-world payloads at your dev server.

Share reproducible requests

Paste the generated cURL command into a GitHub issue or Slack thread so teammates can instantly reproduce the exact request.

Verify signature validation

Replay a Stripe, GitHub, or Shopify webhook with its original signature header to confirm your HMAC validation logic works correctly.

Integration tests

Export to Axios and paste directly into your test suite to create real-payload fixtures without mocking.

CI/CD pipeline debugging

Generate a cURL command to fire at your staging endpoint as part of smoke-testing after a deployment.

FAQ

Is my webhook data sent to any server?

No. All processing happens entirely in your browser using JavaScript. Your URLs, headers, and payloads never leave your device.

Will replaying a webhook re-trigger side effects?

Yes — replaying a webhook hits a real URL and your server will process it like a normal delivery. Use a staging/test endpoint or implement idempotency keys to avoid duplicate processing.

Can I replay non-JSON webhooks (e.g. Slack slash commands)?

Yes. Paste the raw form-encoded body into the body field and set the Content-Type header to application/x-www-form-urlencoded. The generated cURL and fetch code will handle it correctly.

Will the replayed request pass HMAC signature verification?

Only if you use the exact same secret and the same raw body. Signature headers like Stripe-Signature are timestamp-bound — Stripe rejects requests older than 5 minutes. For testing signature logic, use the Webhook Signature Tester to generate a fresh signature.

How do I replay to localhost from my terminal?

Change the URL to http://localhost:3000/webhooks (or whatever port your server runs on), copy the cURL command, and run it in your terminal. For browser-side fetch/Axios, make sure CORS is configured on your local server.

What providers are supported in the sample payloads?

The built-in samples cover Stripe (payment events), GitHub (push events), Shopify (order webhooks), and Slack (slash commands). You can paste any other provider's webhook payload manually.