Delivery log & replay
No support ticket needed to answer "did you send it?" — your delivery history is queryable, and any event is re-sendable, via the API itself.
Inspect deliveries
GET /api/v1/partner/webhooks/deliveries?limit=50
GET /api/v1/partner/webhooks/deliveries?status=exhausted&since=2026-07-20T00:00:00Z
{
"deliveries": [{
"eventId": "evt_…", "type": "payment.collected",
"sourceLoanNumber": "LN-…", "sequence": 3,
"status": "delivered", // pending | in_flight | delivered | exhausted
"attempts": 1, "deliveredAt": "…",
"lastStatusCode": 200, "lastError": null
}]
}
exhausted = the full retry ladder failed (~31 hours); the event stays
replayable for 30 days.
Replay
POST /api/v1/partner/webhooks/deliveries/{eventId}/replay
Queues an immediate re-delivery — works on delivered events too (lost it
after processing? replay it). Your receiver's eventId dedupe makes replays
harmless by design.
Test your endpoint
POST /api/v1/partner/webhooks/test
Fires a signed ping and returns the result synchronously —
{ delivered, statusCode, latencyMs, error }. Run it on every deploy of your
receiver.