Skip to main content
ToolsHub

Webhook Signature Verifier

Paste raw body, signature, and secret to verify webhook authenticity for major providers with deterministic in-browser HMAC calculations and tolerance checks.

Updated

Files never leave your browser

Webhook signature verifier

Verify signatures in-browser. Your raw payload and signing secret never leave your browser.

How to use Webhook Signature Verifier

Webhook Signature Verifier helps you confirm webhook authenticity before processing events by recomputing HMAC signatures entirely in your browser. Choose provider presets for Stripe, GitHub, Shopify, Slack, or a generic HMAC mode, then paste the raw request body, secret, and received signature/header value. The tool parses provider-specific formats, builds the correct signed payload string, calculates Web Crypto digests, and reports VALID or INVALID with computed output and timestamp tolerance results for replay-window checks. Because all inputs stay local, teams can debug signature mismatches safely without sending payloads or secrets to external verification services.

  1. Select the provider preset that matches your incoming webhook source.
  2. Paste the exact raw request body, signing secret, and received signature or header value.
  3. For Slack or custom replay checks, enter timestamp and tolerance seconds as needed.
  4. Click Verify signature to compute HMAC and compare against the received value.
  5. Review verdict, computed signature output, and tolerance pass/fail details before updating app logic.

Your data never leaves your device — 100% private processing.

Raw-body integrity is mandatory for accurate verification

Most webhook signature bugs come from body transformations before hashing. Providers sign the exact raw byte stream they sent, not a re-stringified JSON object. If middleware parses JSON and then your code serializes it again, key order, whitespace, escaping, or newline normalization can change and break signature checks even when the secret is correct. When validating failures, always compare using untouched raw body bytes from the HTTP request layer. This tool mirrors that expectation by requiring raw payload text input, making it easier to identify when your runtime pipeline mutates the body before verification.

Timestamp tolerance and replay defense strategy

Stripe and Slack include signed timestamps so receivers can reject old messages and reduce replay risk. Verification should therefore include both signature match and age checks against a narrow tolerance window, commonly 300 seconds. A matching digest alone is not sufficient if the event is stale or far in the future due to clock skew. During debugging, compare your server clock, provider timestamp headers, and tolerance settings together. This verifier reports signature match and tolerance outcomes separately, helping teams pinpoint whether failures are caused by secret mismatch, payload mutation, or replay-window policy configuration.

Worked examples

Stripe event verification

Inputs: Header t=1700000000,v1=<hex> + raw event JSON + whsec key

Result: Verdict shows VALID with tolerance pass when age is within window

GitHub signature mismatch debug

Inputs: X-Hub-Signature-256 with wrong secret

Result: INVALID verdict highlights computed hash differs from received value

Generic base64 prefix case

Inputs: Algorithm SHA-512, format base64, prefix sig:

Result: Computed signature includes prefix and compares correctly

Glossary

HMAC
Hash-based Message Authentication Code used to prove payload integrity and origin with a shared secret.
Signed payload
The exact string or byte sequence used as input to HMAC computation for verification.
Replay attack
Resending a previously valid webhook request to trigger duplicate or malicious processing.
Tolerance window
Maximum allowed age difference between webhook timestamp and receiver clock.
Constant-time comparison
A comparison technique that avoids early exits to reduce timing side-channel leakage.

Related reading

Frequently Asked Questions

Free · No spam

Get weekly tool tips & updates

New tools, power-user tips, and productivity hacks — delivered free every Friday.

No spam, ever. Unsubscribe with one click.

Why use Webhook Signature Verifier?

  • Provider-aware parsing for Stripe, GitHub, Shopify, Slack, and generic HMAC signatures
  • Deterministic in-browser HMAC generation with selectable SHA-1, SHA-256, and SHA-512 options
  • Replay tolerance validation for timestamped webhook schemes like Stripe and Slack
  • Ready-made sample vectors that load instantly and verify as valid for quick confidence checks

Common use cases

  • Troubleshoot failing webhook verification when production code returns 400 invalid signature
  • Validate secret rotation by comparing old and new signing keys against sample payloads
  • Teach teammates how each provider builds signed payload strings and header formats
  • Confirm generic HMAC integrations that use custom prefixes and base64 signatures

Related Developer Tools

Explore all Developer Tools.