Enter at least two characters to search. Searching documentation… No matching sections. Try an endpoint, field or event name.

Retries and failures

View as Markdown

Answer with any 2xx status within 15 seconds, the connection itself within 5. Anything else, including timeouts and redirects, is retried for about three days: after 1, 5 and 30 minutes, then 1, 2, 4 and 8 hours, then every 10 hours, 14 attempts in total. The endpoint's delivery log shows every delivery with its status and number of attempts, and the response code, the start of the response body and any error of its latest attempt; you can also resend a delivery by hand, under the same delivery id. The log keeps 30 days.

On this page

When a delivery runs out of attempts, the owners and admins of the account are emailed (at most once a day per endpoint). An endpoint that fails 15 deliveries in a row is switched off; switch it back on from the dashboard once your receiver works again. Test deliveries never count towards that, nor set off the email.

While an endpoint is switched off, new events are not queued for it, and deliveries still waiting for an attempt are marked failed, which you can resend from its delivery log once it is back on. Switching it back on does not send what it missed in the meantime. Test events you send from the dashboard are still delivered, so you can check your receiver before switching it back on.

Inspect failed deliveries

Replace the endpoint ID below with yours. The response includes each delivery ID, attempt count, response status and latest error; request bodies remain available only in the dashboard log. This request needs webhook_endpoints:read.

GET /v1/webhook-endpoints/9d2e0b8a-0000-4000-8000-000000000001/deliveries

Copy failed. Select the code and copy it manually.

curl 'https://api.velirapay.com/v1/webhook-endpoints/9d2e0b8a-0000-4000-8000-000000000001/deliveries?status=failed' \
  --fail-with-body --silent --show-error --max-time 30 \
  -H "Authorization: Bearer ${VELIRAPAY_API_KEY:?Set VELIRAPAY_API_KEY}" \
  -H 'Accept: application/json'

Missed a delivery altogether? Every webhook is also an event: read them back with the events endpoint