At a glance
1. Get set up with Flinks
Send your Flinks contact the HTTPS URL that will receive the events. Provide one per environment (sandbox and production). In return you receive a webhook secret, used to verify every event. Store it like a password, for example in a secrets manager or environment variable, never in source control. Keep sandbox and production secrets separate.2. Verify the signature
Every request carriesX-Webhook-Signature: sha256=<HEX>. Check it before trusting the body.
- Compute HMAC-SHA256 over the raw request body bytes, keyed with your secret (UTF-8). Do not parse and re-serialize the JSON first: the bytes must match exactly.
- The hex in the header is uppercase. Compare case-insensitively and in constant time.
- Respond
401if it does not match. - Optional replay protection:
whenis part of the signed body, so you can reject events older than a few minutes.