Skip to content
CodexValley

Webhook Debugging Helper

Available

Paste a raw webhook request to see its headers and body, compute the HMAC-SHA256 or SHA1 signature and compare it with yours.

Use the tool

Everything runs in your browser. Your text is not uploaded or stored.

About this tool

Find out why a webhook signature does not verify. Paste the raw request your endpoint received, with the request line, the headers, a blank line and the body, and see it parsed. Add your signing secret to compute the HMAC-SHA256 or HMAC-SHA1 of the exact body in hex and Base64 and compare it with the signature you received.

How it works

  • The request is split at the first blank line. Headers are listed one per line and the body is shown with its size in bytes.
  • The HMAC is computed in your browser with the Web Crypto API over the body bytes, or over a prefix you type plus the body, for services that sign a timestamp and the body together.
  • If you do not paste a signature, headers whose name contains "signature" or "hmac" are compared. A prefix such as sha256= is ignored, and comma-separated values are each checked.
  • If Content-Length does not match the body you pasted, the tool says so, because a changed byte, line break or space is the most common reason a signature fails.

Common questions

Is my signing secret sent anywhere?

No. The secret and the request stay in this browser tab. The HMAC is computed with your browser's built-in Web Crypto functions and nothing is uploaded or saved. Still, rotate any secret you suspect has leaked.

Why does my signature still not match?

Most often the body was changed: parsed and re-serialised as JSON, re-indented, or given a different line ending or a final line break. Sign the raw bytes exactly as received, check whether the service signs extra text such as a timestamp, and check which encoding (hex or Base64) it uses.

Can I try it without a real webhook?

Yes. The example request is signed with the secret my-test-secret. Type it into the secret field and the tool shows a match.

Your text is processed in your browser and is never uploaded.