🚀 VaultsPay API v1 is live. See what's new →
WebhooksRetries & Delivery

Retries & Delivery

Delivery guarantees

  • At-least-once. Network blips and brief outages can produce duplicate deliveries — dedupe by event.id.
  • Ordered per resource. Events for the same card, user, or account are delivered in creation order.
  • Timeouts. You have 10 seconds to respond 2xx. Longer responses are treated as failures and retried.

Retry schedule

Failed deliveries are retried with exponential backoff, up to 10 attempts across 3 days:

AttemptDelay
1Immediate
21 minute
310 minutes
41 hour
53 hours
66 hours
712 hours
824 hours
948 hours
1072 hours

After attempt 10 the endpoint is automatically disabled and an endpoint.failed event is emitted (to your other endpoints, if any).

What counts as failure

  • Any non-2xx status code.
  • Connection errors (DNS, TLS, connection refused).
  • Responses that don’t complete within 10 seconds.

Replaying events manually

From the dashboard (or via POST /v1/webhooks/events/{event_id}/redeliver) you can re-send any historical event to a single endpoint.

Best practices

  • Respond 200 immediately after signature verification, then process in a background job.
  • Dedupe by event.id (store in a short-lived set with TTL ≥ 24h).
  • Keep your endpoint idempotent — process the same event twice should leave your system in the same state.