Secure Webhooks
Webhook trigger routes:
ANY /webhook/:pathANY /webhook-test/:path
Compatibility API route:
POST /api/webhooks/execute
Webhook auth modes
nonebearer_tokenhmac_sha256
Replay protection (HMAC mode)
- Requires timestamp header
- Rejects requests outside tolerance window
- Deduplicates replay signatures in short TTL store
Idempotency
- Optional
Idempotency-Keyhandling - Duplicate request with same payload returns existing result reference
- Conflicting payload for same key returns
409
Error contracts
401: missing/invalid auth token403: invalid signature or replay409: idempotency key conflict
HMAC signing format
Signature is computed from:
text
timestamp + "." + raw_request_bodyThen:
text
hex(HMAC_SHA256(secret, payload))