Home
Back to docs

Webhooks

Delivery is queued and retried three times with a growing gap, and an event carrying no site reaches only the global subscriptions.

Webhooks send this system's events to an address of yours in another system.

Delivery is queued, not immediate

An event is not sent on the spot; it is queued and delivered by a background worker. So a short delay is normal, and a slow destination does not slow the system itself down.

Three attempts, with a growing gap

If the destination does not answer successfully, delivery is retried — after one minute, five minutes and fifteen minutes. After that it is recorded as failed.

So a brief outage on your side does not lose the event; a long one does.

Every request is signed

Each delivery is signed with that subscription's secret and the signature travels in a header. On your side you must rebuild the same signature from the body you received and compare it.

Without that check, anyone who learns your address can send you forged events.

The destination address is restricted

The address has to be genuinely external. Addresses pointing at the server itself or at an internal network are refused — this stops a webhook being used to reach internal resources.

Site scope is not symmetric

A subscription bound to a site receives only that site's events. A global subscription — bound to none — receives events from every site.

And an event carrying no site at all reaches only the global subscriptions; it never goes to a site-bound one.

The delivery log is the source of truth

Every delivery records its response code, its attempt number and any error. When the other side says "we received nothing", the answer is here.

Developed by LogaTech Powered by LogaCore