Headers
Each delivery includes these headers:
Your endpoint also receives a signing secret for this webhook endpoint. The secret is formatted as
whsec_<base64>.
What is signed
The signed content is:Verification steps
1
Read the headers
Read
webhook-id, webhook-timestamp, and webhook-signature from the request.2
Check the timestamp
Reject requests with a large timestamp skew. This helps prevent old signed deliveries from being replayed later.
3
Use the raw body
Build the signed content from the header id, header timestamp, and the raw request body.
4
Verify the signature
Verify the
v1,<base64> signature with the endpoint signing secret.5
Process only after verification
Only process the event after the signature passes.
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.