Webhooks
Delivery and retries
How events are sent, retried, resent and ordered.
- Saving consent never waits for a webhook and never fails because of one. Each event becomes one delivery per subscribed endpoint, sent in the background.
- Success is a
2xxanswer within 10 seconds. Anything else is a failure: timeouts, connection errors,4xx,5xxand redirects (which are not followed). - Retries. A failure is retried with exponential backoff (30 seconds, 1 minute, 2 minutes and so on), up to 8 attempts over about 2 hours, then marked failed.
- Resend. Send a delivery again at once from the Deliveries list. It keeps the same event id.
- Order is not guaranteed. Use
timestamporrecorded_atand keep the newest decision per purpose. - Duplicates happen. Store the
webhook-idand ignore repeats. - Switching off or deleting an endpoint stops everything: its pending deliveries are marked failed.
- Changes apply within about 30 seconds. Endpoint settings are cached briefly.
Catching up
If your receiver was down for longer than the retry window, fetch what you missed with the API rather than waiting:
curl -s "https://v1.pactbase.in/api/v1/consent-records?from=2026-10-10T00:00:00Z&order=asc&limit=1000" \
-H "Authorization: Bearer $PACTBASE_API_KEY"See Consent data.