Skip to main content
WEBHOOK

Secure your endpoint

Verify that all webhook requests are generated by Kaizen by checking the signature in each request’s X-Webhooks-Signature header.

Verify the signature

Each webhook request includes these headers:
  • X-Webhooks-Signature: HMAC signature (includes version prefix)
  • X-Webhooks-Timestamp: Unix timestamp in seconds
  • X-Webhooks-Id: Unique identifier for this webhook delivery
To verify a signature:
  1. Extract the signature from X-Webhooks-Signature (remove the version prefix)
  2. Get the timestamp from X-Webhooks-Timestamp
  3. Get the webhook ID from X-Webhooks-Id
  4. Read the raw request body as a string (before JSON parsing)
  5. Construct the signed payload: {webhookId}.{timestamp}.{raw_body}
  6. Compute HMAC-SHA256 of the signed payload using your decoded secret
  7. Compare the computed signature with the received signature using constant-time comparison

Code Examples

Body

application/json

Payload sent when an execution has finished running

type
string
required
Allowed value: "execution.complete"
data
Completed Execution · object
required

Data about the completed execution.

Response

200

Webhook received successfully