klaviyo-signature header. Register the credential on your endpoint and webhook.co verifies every captured request against the exact bytes it received, then records the outcome — with a named reason when it fails.
Get the secret key
You choose this value yourself when creating the webhook rather than Klaviyo generating it, either in the create-webhook form or as the secret_key field on the API request. See Klaviyo’s own webhook documentation for the current steps. It must be at least 16 characters, and Klaviyo never returns it afterwards, so record it as you create the webhook.Register it on your endpoint
How the signature is checked
- Signed message —
{body}{timestamp}. - Algorithm — HMAC-SHA256, hex-encoded.
- Key — the signing secret used verbatim (its UTF-8 bytes).
- Signature format — the bare encoded MAC.
- Timestamp — read from the
klaviyo-timestampheader.
What makes this one different
- The timestamp is part of the signed message, but no replay-age window is enforced.
Confirm
verified; one that does not shows failed, with the reason named.