GitHub
HMAC SHA-256 of the raw request body, encoded as hex with a sha256= prefix.
Received signature header
Paste the raw payload, secret, and received header. The expected signature is computed locally in your browser — nothing leaves your machine.
Stripe
HMAC SHA-256 of `${timestamp}.${rawBody}` encoded as hex. The Stripe-Signature header can contain multiple signatures.
Preserve whitespace exactly as received. Do not pretty-print unless the incoming request body was already pretty-printed.
Looks like whsec_... from the Stripe dashboard.
Paste the full incoming header value for an exact comparison.
Use the numeric t value from Stripe-Signature.
Expected v1 signature
Fill in the required fields to compute a signature.Timestamp + raw body
The exact string that gets signed before encoding.
Parsed incoming signatures
Paste a received header to compare against the computed signature.
Debug notes
Load a working example to see the exact format each provider expects.
Pick the provider whose webhook format you are debugging.
Paste the exact raw payload, the signing secret, and the incoming signature header.
Add timestamp and delivery ID fields when the provider requires them.
Compare the computed signature with the parsed header values to find the mismatch.
HMAC SHA-256 of the raw request body, encoded as hex with a sha256= prefix.
Received signature header
HMAC SHA-256 of `${timestamp}.${rawBody}` encoded as hex. The Stripe-Signature header can contain multiple signatures.
Stripe-Signature header
HMAC SHA-256 of `${id}.${timestamp}.${rawBody}` encoded as base64. The whsec_ secret is base64-decoded first.
svix-signature header
Clerk webhooks use Svix under the hood: `${id}.${timestamp}.${rawBody}` signed with a base64-decoded whsec_ secret.
svix-signature header
HMAC SHA-256 of the raw request body, encoded as base64 for x-shopify-hmac-sha256.
x-shopify-hmac-sha256 header
HMAC SHA-256 of the raw request body, encoded as lowercase hex for the X-Signature header.
X-Signature header
Recompute Stripe-Signature values using the t timestamp and v1 HMAC so you can debug checkout, billing, and webhook endpoint verification errors.
Generate the expected x-hub-signature-256 value from the raw GitHub webhook payload and your webhook secret.
Verify svix-signature headers using svix-id, svix-timestamp, and whsec_ secrets for authentication and user lifecycle webhooks.
Check x-shopify-hmac-sha256 and X-Signature webhook headers against the original request body before you chase framework bugs.