Events / Replaying Events

    Replaying Events

    Replay any captured event to any URL — instantly. Replays send the original payload and headers exactly as they were received, without any modification.

    Why replay?

    • Your server was down when the webhook arrived
    • Your code had a bug — now it's fixed and you need to reprocess
    • You changed your destination URL and want to re-send events to the new one
    • You're testing a new handler locally without needing to trigger a real Stripe/GitHub event
    • Your destination returned a 5xx — you can replay once the issue is resolved

    Replay environments

    When replaying, choose where to send the event:

    EnvironmentTarget URL
    originalThe destination URL configured on the endpoint
    stagingReplaces the domain with a staging hostname
    localhttp://localhost:3000 + the original path
    customAny URL you enter
    Local environment:Selecting "local" replays to http://localhost:3000{original-path}. This only works if you're running the replay from a browser that can reach localhost — it won't work from Paggio's servers. Use the API (below) to trigger replays programmatically.

    How to replay

    From the event detail page

    Click any event → use the Replay panel on the right → select environment → click Replay. Press R as a shortcut.

    From the activity feed

    Hover over any event row in the dashboard activity feed — a replay button appears on the right. This replays to the original destination URL.

    Via the API

    Trigger replays programmatically using the REST API:

    bash
    curl -X POST https://paggio.dev/api/events/{eventId}/replay \
      -H "Content-Type: application/json" \
      -H "Cookie: your-session-cookie" \
      -d '{"environment": "custom", "customUrl": "https://your-server.com/webhook"}'

    Replay response

    Each replay returns the outcome:

    json
    {
      "id": "replay-attempt-uuid",
      "status": "delivered",
      "response_status": 200,
      "response_body": "{\"ok\": true}",
      "latency_ms": 87,
      "destination_url": "https://your-server.com/webhook",
      "replayed_at": "2024-03-10T16:00:00.000Z"
    }

    Replay history

    Every replay attempt is stored and shown on the event detail page. You can also view all replay attempts across all events on the Dashboard → Replays page.

    Replays do not affect the original event's status — they're tracked separately in thereplay_attempts table.