Documentation

Complete guide to webhooks, debugging, and real-time event monitoring with HookMetry

Webhook Replay

Replay allows you to resend captured webhooks to any URL with one click. Essential for testing, debugging, and development workflows.

How Webhook Replay Works

1

Capture Webhook

Hookmetry receives and stores the complete webhook including headers, body, and metadata

2

Select Destination

Choose to replay to your development server, staging, or any custom URL

3

Instant Replay

Hookmetry sends the exact same payload and headers to your specified URL

Verify Results

Check your server logs or response to confirm proper handling

Common Use Cases

Local Development

Test production webhooks on localhost without exposing your machine

Debugging Failures

Replay failed webhooks after fixing bugs to verify the fix works

Integration Testing

Replay specific webhook scenarios to test edge cases and error handling

Retry Failed Events

Manually retry webhooks that failed due to temporary server issues

Step-by-Step: Replaying a Webhook

  1. 1. Navigate to Webhook Logs

    Go to the main dashboard or click "Webhook Logs" in the menu

  2. 2. Find Your Webhook

    Use filters to find the specific webhook you want to replay (by endpoint, date, status, etc.)

  3. 3. Click Replay Button

    Click the replay icon () next to the webhook entry

  4. 4. Enter Destination URL

    Paste your server URL (e.g., https://api.example.com/webhook or http://localhost:3000/webhook)

  5. 5. Confirm and Send

    Review the payload preview and click "Send" to replay the webhook

  6. 6. Check Results

    View the response status, headers, and body returned by your server

Replay to Localhost (Development)

Testing production webhooks on your local machine:

# 1. Start your local server
npm run dev  # Runs on http://localhost:3000

# 2. In Hookmetry, replay webhook to:
http://localhost:3000/api/webhook

# Or use ngrok for HTTPS:
ngrok http 3000
# Then replay to: https://abc123.ngrok.io/api/webhook

What Gets Replayed?

Complete Payload: Exact JSON body as received from original sender
All Headers: Content-Type, signature headers, custom headers preserved
HTTP Method: Always POST (standard for webhooks)
Note: Signature headers are preserved but timestamps are not updated (may fail validation)

Important Notes:

  • • Replay sends the exact original webhook - signatures may be outdated if timestamp-based
  • • For Stripe webhooks, signatures include timestamps and will fail on replay (expected behavior)
  • • Destination URL must be accessible from the internet (or use localhost for dev)
  • • Replay does not count against your webhook quota
  • • Maximum 100 replays per webhook to prevent abuse

Pro Tip: Testing Signature Validation

To test signature validation on replay, temporarily disable signature checks on your server for development, or create a separate endpoint with validation type "None" to capture fresh webhooks with valid signatures.

Replay Availability

Free Plan

View-only access. Upgrade to replay webhooks.

Pro Plan

Unlimited replay to any URL with full response details.

Team Plan

Unlimited replay + bulk replay multiple webhooks at once.