Skip to main content
Every webhook delivery includes a x-klikit-signature header. You must verify it before processing the payload — otherwise anyone who knows your URL can forge orders.

The recipe

Three things to keep straight:
  • HMAC-SHA256, not plain SHA-256. The secret is the key, the body is the message.
  • Raw request body, not the parsed-and-reserialised JSON. Any whitespace or key-order difference changes the bytes and breaks the hash.
  • Lowercase hex encoding, not base64.

Worked examples

Generating a test delivery yourself

To validate your verifier before klikit is wired up to your URL, build a test request locally:
Expected response: 200 {"status":"received"}. To confirm verification works, mangle the body or the signature and re-send. You should now get 401 {"error":"invalid signature"}.

Where to get your webhook_secret

Your klikit integration contact provides it during onboarding, alongside your partner API key. Don’t commit the secret. Rotate it via the operator if you suspect it’s been exposed.