Skip to main content
Mailgun signs each webhook with HMAC-SHA256, carried inside the request body. Register the credential on your endpoint and webhook.co verifies every captured request against the exact bytes it received, then records the outcome — with a named reason when it fails.

Get the HTTP webhook signing key

In the Mailgun control panel, open your profile menu and choose API Security, where the HTTP webhook signing key sits alongside your API keys. See Mailgun’s own webhook documentation for the current steps. It is account-level rather than per-domain or per-webhook, so one key signs every webhook on the account, and resetting it takes effect immediately.

Register it on your endpoint

How the signature is checked

  • Signed message{signature.timestamp}{signature.token}.
  • Algorithm — HMAC-SHA256, hex-encoded.
  • Key — the signing secret used verbatim (its UTF-8 bytes).
  • Signature format — the bare encoded MAC.

What makes this one different

  • The signature travels inside the request body, not in a header.

Confirm

A request whose signature matches shows verified; one that does not shows failed, with the reason named.