Skip to main content
Every downstream webhook delivery includes an X-Gatlio-Signature header. Verify this signature before processing the payload to ensure the request is authentic and the body has not been tampered with.

Signature format

The signature is HMAC-SHA256 of the raw request body, keyed with your per-tenant webhook signing secret.

Getting your signing secret

In the Gatlio dashboard, go to Settings → Webhooks. Your signing secret is displayed alongside your webhook URL.

Verification example

Important notes

  • Use the raw body — compute the HMAC over the raw request bytes before any JSON parsing. Parsing and re-serializing will change whitespace and may break the signature.
  • Use a constant-time comparison (timingSafeEqual / hmac.compare_digest / hmac.Equal) to prevent timing attacks.
  • No timestamp in the signature — Gatlio signs the body only, not a timestamp. Use occurred_at in the payload for event ordering if needed.