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:
| Environment | Target URL |
|---|---|
| original | The destination URL configured on the endpoint |
| staging | Replaces the domain with a staging hostname |
| local | http://localhost:3000 + the original path |
| custom | Any URL you enter |
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:
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:
{
"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.