Webhooks

Delivery and retries

How Tiquo delivers webhooks, retries failures, and turns off endpoints that keep failing

Responding to a delivery

A delivery succeeds when your endpoint replies with any 2xx status within 10 seconds. Anything else is a failure:

  • a 3xx, 4xx or 5xx status,
  • no reply within 10 seconds,
  • a connection or TLS error.

Reply as soon as you have verified and stored the event, and do slow work afterwards, for example from a queue. Tiquo keeps the first 2,000 characters of your reply so you can see it in Recent deliveries.

Retries

A failed delivery is retried 7 times, so each event gets up to 8 attempts over about 44 hours:

AttemptSent after the previous attempt failed
1Immediately, when the event happens
21 minute
35 minutes
430 minutes
52 hours
66 hours
712 hours
824 hours

Each retry carries the same event ID and signature scheme, with a new timestamp and tiquo-delivery-attempt set to the attempt number. After the eighth attempt fails, Tiquo stops retrying that event. You can still send it again from Recent deliveries with Replay.

Duplicates and ordering

Tiquo delivers each event at least once. Retries, replays, and rare cases where a delivery succeeded but its result wasn't recorded can all send the same event more than once. Use the tiquo-event-id header to skip events you have already handled.

Events can arrive out of order, especially when one is retried. Use the updatedAt field in the payload, or fetch the current record from the Admin API, to decide which version is newest.

Volume

Tiquo sends at most 10 requests to one webhook at a time. During a burst, such as a large import, the remaining events wait in a queue and are delivered as earlier requests finish, so a busy period can take a few minutes to catch up. Nothing is dropped while it queues.

When an endpoint keeps failing

  • After a day of failures, the person who created the webhook and your organization's admins get an email saying the webhook is failing. Tiquo keeps retrying.
  • After 3 days in which every delivery failed (and at least 10 in a row), Tiquo turns the webhook off and emails them again. The webhook shows Turned off in Settings > Webhooks, an entry is added to your activity log, and no new events are sent to it.

To start again, fix the endpoint and turn the webhook back on with its switch. Its failure count resets. Events that happened while it was off aren't sent automatically; replay any you need from Recent deliveries, or fetch them from the Admin API.

One successful delivery at any point resets the count, so an endpoint that fails occasionally isn't turned off.

Pausing, deleting and replaying

  • Pause: a paused webhook receives no new events, and retries already scheduled for it are cancelled.
  • Delete: deleting a webhook cancels any deliveries still waiting to be sent.
  • Replay: select Replay on any delivery in Recent deliveries to send that event again, with the same event ID. The webhook must be on, and the event must be less than 30 days old. Replays are limited to 200 an hour per organization.

Delivery history

Tiquo keeps events and delivery attempts for 30 days, then deletes them. An event is stored only when at least one webhook is subscribed to it.

Endpoint requirements

Your endpoint URL must:

  • use https://,
  • resolve to a public internet address. Tiquo refuses localhost, private and link-local ranges (such as 10.0.0.0/8, 192.168.0.0/16 and 169.254.0.0/16), carrier-grade NAT addresses, and internal host names such as *.local or *.internal,
  • not contain a username or password. Use a custom header for credentials instead,
  • answer directly. Tiquo doesn't follow redirects, so a 301 or 302 counts as a failure. Use the final URL.

Any port is allowed. Tiquo checks the address when you save the webhook and again each time it connects.

Sur cette page