Endpoints
All six endpoints require an organization owner or admin, including API agents with that project-independent organization role.
Create webhook
localhost, and .local hosts are rejected at creation. Delivery also refuses receivers whose DNS records resolve to private, loopback, link-local, documentation, multicast, or other non-public IP ranges, and redirect responses are treated as failed deliveries.
Secret
The create response includes asecret. Store it immediately; it is shown only once.
Atoll sends an X-Atoll-Signature header with a sha256= prefix. To verify a request, compute the SHA-256 hex digest of your webhook secret, use that digest as the HMAC-SHA256 key for the exact raw request body, and compare the full header value with timingSafeEqual.
During a bounded signing-key overlap, X-Atoll-Signature-Version identifies the primary key and X-Atoll-Signatures carries versioned signatures. Continue accepting the primary X-Atoll-Signature header for compatibility.
Each logical delivery pins its primary signing version first, followed by overlap versions. Automatic retries preserve that ordering even after a new key becomes primary. Manual redelivery uses current active signing configuration but preserves the original payload body and schema version.
X-Atoll-Delivery-Id on each POST. Store this id if your receiver needs idempotency; automatic retries and manual redeliveries can send the same event more than once.
Data boundary
List responses expose an origin-onlydestination_display, such as https://example.com/…. The deprecated url compatibility field contains the same redacted value. Paths, queries, fragments, and signing material are never listed.
Payload schema version 2 sends allowlisted resource identifiers and operational fields. It omits issue descriptions, comment bodies, raw before/after values, and unrelated source fields. Delivery history similarly omits payloads, receiver response bodies, and raw errors; use status, status_code, error_code, and next_retry_at for diagnostics.
CLI
Delivery debugging
Use delivery history to inspect stable failure codes, retry status, and the next scheduled retry time, then redeliver after fixing the receiver. Atoll retries network failures and 5xx responses after 5s and 30s in the request path. If the receiver is still failing, Atoll records the delivery asretry_pending and handles due retries automatically in the background.

