Skip to main content
A webhook is just an HTTP POST from someone claiming to be your provider. Verifying its signature is what turns that claim into trust. Register a provider’s signing secret on an endpoint and webhook.co verifies every inbound request for you — against the exact bytes it captured — and records the result on the event. You don’t write any signature code.

Register a signing secret

Add the secret your provider issued to the endpoint that receives its webhooks. It’s sealed in a KMS the moment it arrives and never stored in the clear.
That’s it. From the next request on, webhook.co checks the signature and stamps each event with a verification state. Registering a secret requires the endpoints:write scope; adding, listing, and revoking secrets is available on the CLI, API, dashboard, and MCP alike.
webhook.co picks the right scheme by which secrets you’ve registered, not by trusting a header the sender set — so providers that share a signature header each verify correctly. It checks the registered providers against the captured bytes and the first that verifies names the event’s provider.

The four verification states

Every event carries a verificationState. It’s the difference between “this is really from Stripe” and “someone POSTed to your URL.” Filter your events by state to confirm a provider is set up correctly — a stream that’s all unattempted means the secret isn’t registered yet; a failed means the signature didn’t match.

If you verify a signature yourself

webhook.co verifies inbound signatures for you, but the same rule governs any signature you check in your own code — including the signature webhook.co adds when it delivers to your service:
Always verify over the raw request body, byte-for-byte, before any JSON parsing or re-serialization — re-encoding changes the bytes and breaks the signature. And compare digests with a constant-time function (crypto.timingSafeEqual, hmac.compare_digest), never ==. This is the single most common mistake in webhook verification.

Providers

webhook.co verifies 144 providers out of the box, from a single registry. See the provider directory for the exact scheme, header, and handshake behaviour of each, the deep-dive guides for the trickier ones, or bring your own if a provider signs with a standard HMAC we don’t list by name.