POST requests to endpoints you configure. See Webhook events for the full catalog.
1. Register an endpoint
In the dashboard, add a webhook with:- URL — a publicly reachable HTTPS endpoint on your server.
- Events — the event types you want (e.g.
fraud.detected,case.created). - Secret — Clausum generates a signing secret. Store it securely.
2. Understand the delivery
Each delivery includes these headers:| Header | Example | Description |
|---|---|---|
X-Clausum-Signature | t=1716998400,v1=8a9b... | HMAC signature |
X-Clausum-Event | fraud.detected | Event type |
X-Clausum-Timestamp | 2026-05-29T18:30:00Z | Delivery time |
3. Verify the signature
The signature is computed asHMAC_SHA256(secret, "<timestamp>.<rawBody>") and encoded as t=<timestamp>,v1=<hex>. Verify against the raw request body before parsing.
4. Handle the event
Best practices
Verify against the raw body
Verify against the raw body
Frameworks that auto-parse JSON can change the byte stream. Read the raw text first, verify, then parse.
Respond quickly
Respond quickly
Return a
2xx within a couple of seconds and offload processing to a queue. Slow responses are treated as failures and retried.Be idempotent
Be idempotent
The same event can arrive more than once. De-duplicate using identifiers in
data plus the event type and timestamp.Reject stale timestamps
Reject stale timestamps
Optionally reject deliveries whose
t is far from the current time to mitigate replay attacks.