Headers
Each delivery includes these headers:| Header | Meaning |
|---|---|
webhook-id | The unique delivery id used in the signed content. |
webhook-timestamp | The timestamp used in the signed content. |
webhook-signature | The signature value, formatted as v1,<base64>. |
whsec_<base64>.
What is signed
The signed content is:| Part | Source |
|---|---|
id | The webhook-id header. |
timestamp | The webhook-timestamp header. |
body | The raw request body exactly as Klariqo sent it. |
Verification steps
Check the timestamp
Reject requests with a large timestamp skew. This helps prevent old signed deliveries from being replayed later.
Use the raw body
Build the signed content from the header id, header timestamp, and the raw request body.
What to reject
Reject the request if:- A required signature header is missing.
webhook-signatureis not in thev1,<base64>format.- The timestamp has a large skew.
- The signature does not verify against the raw body.
- The same delivery id has already been processed.
After verification
After the signature passes, process the event as a pointer to the compliance record. The webhook payload does not contain the full signed vCon inline. It contains an envelope and an expiring download URL for the signed vCon.Compliance export webhooks
See how compliance record exports work.
Record envelope
Understand the event payload you receive.