Webhook events
Webhook event log — list dispatched events for a case and replay individual deliveries.
- Base URL
https://customer-api.debitura.com- Authentication
- API key in the
XApiKeyheader
List webhook events dispatched for a case.
/webhooks/eventsReturns all webhook events dispatched for the given case, scoped to your webhook subscriptions. Results are ordered newest-first.
Use cases:
- Verify that a specific event (e.g.
case.updated) fired after a state transition. - Inspect the exact payload delivered on each attempt.
- Find the event ID to replay via
POST /webhooks/events/{id}/replay.
Filtering:
caseId(required): restricts to events for this case.since(optional): only returns events created at or after this ISO 8601 timestamp.
Note: Only events for your subscriptions are returned — events from other creditors' subscriptions are never exposed.
Retention: event payloads are kept for 28 days. After that the event is still listed, with an empty payload, and can no longer be replayed.
Query parameters
caseIduuidsincedatetime
Returns
200 List of webhook events — a list of the objects below.
iduuidUnique identifier for this event record. Use this ID to replay the event via
POST /webhooks/events/{id}/replay.subscriptionIduuidThe webhook subscription this event was dispatched to.
caseIduuidnullableThe collection case this event relates to.
eventTypestringnullableThe event type (e.g. "case.created", "payment.created").
payloadstringnullableThe full JSON payload that was (or will be) delivered.
createdAtdatetimeWhen this event was first recorded (UTC).
deliveredAtdatetimenullableWhen the event was successfully delivered (UTC). Null if delivery has not yet succeeded.
attemptCountintegerNumber of delivery attempts made so far.
lastResponseCodeintegernullableHTTP status code returned by the subscriber endpoint on the last attempt.
lastErrorstringnullableError message from the last failed delivery attempt. Null on successful delivery.
curl https://customer-api.debitura.com/webhooks/events \-H "XApiKey: $DEBITURA_API_KEY"
[{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","subscriptionId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","caseId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","eventType": "string","payload": "string","createdAt": "2026-10-01T14:05:00Z","deliveredAt": "2026-10-01T14:05:00Z","attemptCount": 42,"lastResponseCode": 3,"lastError": null}]
Replay a specific webhook event.
/webhooks/events/{id}/replayRe-enqueues the exact payload from a previously recorded event to its original subscription.
The event is re-queued as a fresh delivery attempt (attempt 1) using the original payload unchanged. Delivery follows the normal retry schedule if the endpoint is unavailable.
Replay signal: Replayed deliveries include the header X-Debitura-Replay: true so your endpoint can distinguish a replay from a live event and implement idempotency correctly.
When to use:
- Your endpoint was temporarily unavailable and you want to re-deliver a specific event.
- You want to test idempotency of your event handler.
- Part of CI-loop ASSERT: confirm an event was dispatched, then replay to a different receiver.
Tenant isolation: Only events belonging to your own subscriptions can be replayed.
Retention: events older than 28 days have had their payload cleared and return 410 Gone.
Path parameters
iduuidRequired
Returns
200 Event re-enqueued for delivery
eventIduuidThe ID of the event that was replayed.
subscriptionIduuidThe subscription the event was re-enqueued to.
eventTypestringnullableThe event type that was replayed.
Errors
404 | Event not found or not owned by this creditor |
410 | Event is older than 28 days; its payload is no longer available |
See Error handling.
curl -X POST https://customer-api.debitura.com/webhooks/events/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/replay \-H "XApiKey: $DEBITURA_API_KEY"
{"eventId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","subscriptionId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","eventType": "string"}