Paste a secret, the raw body, and the signature header you received — see whether they match, and exactly what was signed. Supports GitHub, Stripe, Shopify, Slack, Zoom, Svix (Clerk, Resend), Twitch EventSub, Square, HubSpot, Mailgun, Twilio, WooCommerce, generic HMAC.
Signature verification fails the moment a single byte differs — and most frameworks hand you a parsed body, not the raw one. The reliable way: point the webhook at a Hookden capture bin for one delivery. The bin stores the body byte-exact, shows every header, and can verify these signatures automatically on arrival (set the scheme + secret in bin settings, get a ✓/✗ badge on each capture). Then copy the raw body and header values into this page to test your own verification code against the same bytes.
Body-only HMAC (GitHub, Shopify, WooCommerce, generic) · timestamp-prefixed (Stripe, Slack, Zoom) · ID+timestamp (Svix/Standard Webhooks, Twitch EventSub) · URL-signing (Square, HubSpot v3, Twilio) · body-embedded (Mailgun). Each has a full troubleshooting guide — pick your provider above and follow the guide link. Discord's Ed25519 interaction signing is intentionally absent: it can't be usefully checked offline (Discord requires a live endpoint that rejects invalid probes — see the Discord guide).