Signature header
| Header | Algorithm | Signed over |
|---|---|---|
X-Webhook-Signature | HMAC-SHA256, lowercase hex | The raw JSON request body, byte-for-byte |
sha256= prefix, no timestamps.
Secret
The signing secret is a shared value between Xobito and your endpoint. It is configured on the Xobito side via an environment variable on the workspace. Contact Xobito support if you need your secret issued or rotated.Verifying a request
You must verify using the raw body bytes, not a re-serialised JSON string. Many frameworks parse JSON before your handler runs — use the framework’s raw-body hook.Retry-aware handlers
Xobito retries up to 3 total attempts with0s, 2s, and 4s backoff. If your endpoint is slow or flaps, you may receive the same event more than once.
Deduplicate by
(model, data.id, event, timestamp) — that tuple is stable across retries.Return
2xx as soon as you have persisted (or enqueued) the event. Heavy work belongs in a background job.Return the same
2xx on a duplicate so Xobito stops retrying.Optional hardening
- HTTPS only. Reject
http://at the load balancer — signatures are not a substitute for transport encryption. - Narrow scope. Only listen for the events you actually handle (
contacts_actions,status_actions,source_actionsin Settings → Webhook Settings). - Logs. Keep at least 30 days of request logs on your side — Xobito’s
webhook_logsare purged after 30 days.
Troubleshooting
My signatures never match
My signatures never match
Double-check you are hashing the raw request body, not a pretty-printed or re-serialised JSON string. Even whitespace differences will break HMAC.
I receive events but no `X-Webhook-Signature` header
I receive events but no `X-Webhook-Signature` header
Some proxies strip non-standard headers. Configure your ingress (Nginx, Cloudflare, etc.) to pass the header through unchanged.
Same event arrives twice
Same event arrives twice
That is expected on retries after a slow or failed first attempt. Deduplicate on
(model, data.id, event, timestamp).How do I rotate the secret?
How do I rotate the secret?
Contact Xobito support. There is no self-service rotation in the current version.