Every webhook delivery is signed with HMAC-SHA256 using the secret you received when you created the endpoint. Always verify the signature before processing the payload. Without verification, anyone who knows your URL can impersonate Ontora.Documentation Index
Fetch the complete documentation index at: https://docs.ontora.com/llms.txt
Use this file to discover all available pages before exploring further.
How signing works
Ontora computes:X-Ontora-Signature header, prefixed with sha256=:
, and :). Verify against the raw bytes of the request body — re-serializing the parsed JSON will produce a different hash and fail verification.
Verification examples
Checklist
- ✅ Use a constant-time comparison (
hmac.compare_digest,crypto.timingSafeEqual,hmac.Equal). Don’t compare with==. - ✅ Verify against the raw request body, not a re-serialized parse.
- ✅ Return 200 quickly and process asynchronously if your handler is slow.
- ✅ Be idempotent — retries can deliver the same event twice. Use
X-Ontora-Delivery-Idas a dedupe key. - ✅ Allow some clock skew when checking the
timestampin the payload.