X-Bondify-Signature header. This header contains an HMAC-SHA256 hex digest of the raw request body, computed using your project’s Secret Key. Verifying this signature before processing any event is the single most important security step in your webhook integration — it guarantees that the request came from Bondify and that the payload has not been tampered with in transit.
How signatures work
Bondify generates the signature with the following steps:- Takes the raw request body as a UTF-8 byte string (exactly as received over the wire, before any JSON parsing)
- Computes
HMAC-SHA256(rawBody, secretKey) - Hex-encodes the resulting digest
- Sends the result in the
X-Bondify-Signaturerequest header
Verification examples
Finding your Secret Key
Your project’s Secret Key is available in the Settings tab of your project in the Bondify dashboard. Store it as an environment variable (for example,BONDIFY_SECRET_KEY) and never hard-code it or commit it to source control.
If you suspect your Secret Key has been compromised, you can rotate it immediately from the project settings page. After rotating, update your environment variable and redeploy — old signatures computed with the previous key will stop passing verification.
Use the raw body for verification
Full verification flow
Receive the raw request body
Configure your framework to give you the raw byte buffer or string before any JSON parsing takes place.
Read the signature header
Extract the value of the
X-Bondify-Signature header from the incoming request.Compute the expected signature
Run
HMAC-SHA256(rawBody, BONDIFY_SECRET_KEY) and hex-encode the result.Compare using a constant-time function
Use
timingSafeEqual, compare_digest, or hash_equals to compare your computed value against the header value. Return 401 if they do not match.Parse and process the event
Only after a successful signature check, parse the JSON body and handle the event. See the Events reference for payload schemas.