Skip to main content
Everything runs in your browser and nothing is sent anywhere. Even so, use your test-mode webhook secret here, never your live one.

Gather what you need

Validate

What it checks

Spotflow webhooks follow the Standard Webhooks specification. The validator does what the official Standard Webhooks libraries do:
  1. Takes your secret, removes any whsec_ prefix, and base64-decodes it.
  2. Computes an HMAC-SHA256 of {webhook-id}.{webhook-timestamp}.{raw body}.
  3. Base64-encodes the result and compares it with each v1, signature in the header.
It also tells you whether the timestamp is within the 5-minute window the libraries enforce.

Verify in your code

Use the official library rather than writing your own comparison:

If the signature doesn’t match

  • The body changed. Parsing and re-serialising JSON changes whitespace and key order. Verify the raw bytes you received.
  • Wrong secret. Test and live mode have different webhook secrets.
  • Extra whitespace. Copy header values exactly, with no trailing spaces or line breaks.
  • Wrong separator. The three parts are joined with a single . and nothing else.
  • Wrong encoding. The signature is base64, after the v1, prefix.
See Webhooks for setup and delivery behaviour.