Skip to main content
Every webhook is signed with HMAC-SHA256 using your endpoint’s signing secret. Verify the signature before processing an event.

Headers

Your signing secret is in the Developer Panel.

Verifying a Request

  1. Read the raw request body. Don’t parse and re-serialize it.
  2. Build the signed message: {X-Finogate-Timestamp}.{raw_body}.
  3. Compute HMAC-SHA256 of the message with your secret, hex-encoded, and prefix it with sha256=.
  4. Compare it with X-Finogate-Signature using a constant-time comparison.
  5. Reject the request if the timestamp is more than 5 minutes from your current time.

Examples

OpenSSL.fixed_length_secure_compare raises when the lengths differ; treat that as an invalid signature.