Skip to main content

Events reference

Webhook settings

The webhooks screen Webhook subscriptions. The settings below are what each row carries.

SettingPurpose
DestinationWhere deliveries are sent
Event typesWhat triggers a delivery
SecretShared value the receiver uses to verify the caller
ActiveWhether deliveries are attempted

Delivery behaviour

PropertyValue
SemanticsAt-most-once — no automatic retry; a failed delivery can be re-sent manually
TimeoutShort; a slow consumer is a failed delivery
OrderingNot guaranteed
Failure impactNone on the originating operation, which has already committed
RecordingReal deliveries and manual re-sends are recorded with their outcome. A test-fire is not — its result is returned to you at the time and stored nowhere, so it never appears in delivery history.
Success signalA 2xx response, which also emits an audit entry

Destination validation

Validated at five points: creation, update, test-fire, manual retry, and delivery.

The resolved address is pinned, so a destination cannot pass validation and then resolve elsewhere at delivery time. A rejected destination emits a security audit entry.

This exists because a webhook is an outbound request to an address a tenant supplies, which is otherwise a route to internal infrastructure.

Loop guard

Events about webhooks are never themselves delivered. A webhook subscribing to its own event types cannot cause a feedback storm.

Current limitations

State these plainly rather than discovering them in production:

LimitationConsequence
No automatic retryA failed delivery stays failed until someone re-sends it. Reconcile against the API.
Secret stored as suppliedTreat it as a shared secret, not a credential
No signature headerThe secret travels in the body for comparison
No per-tenant key rotationRotate by updating the webhook

If your security review requires signature-based verification, raise it as a gap. It is a reasonable ask; it is not present today.

Next


Last verified against commit 74cecd91 (2026-08-03)