x-klikit-signature header. You must
verify it before processing the payload — otherwise anyone who knows your
URL can forge orders.
The recipe
- 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:200 {"status":"received"}.
To confirm verification works, mangle the body or the signature and re-send.
You should now get 401 {"error":"invalid signature"}.