WooCommerce Webhook Tester
Paste a captured webhook payload and its secret, and check whether the X-WC-Webhook-Signature really matches.
Paste the raw payload WooCommerce sent
Use the exact bytes WooCommerce sent (a free inbox like webhook.site shows the raw body). Retyped or reformatted JSON won't match, since the signature covers the exact request body.
Headers WooCommerce sends with every webhook
X-WC-Webhook-Source: your-store.com
X-WC-Webhook-Topic: order.created
X-WC-Webhook-Resource: order
X-WC-Webhook-Event: created
X-WC-Webhook-Signature: <base64 HMAC-SHA256 of the raw body>
X-WC-Webhook-ID: 12
X-WC-Webhook-Delivery-ID: 9f2c1e6a-...Built-in topics: coupon.created, coupon.updated, coupon.deleted, coupon.restored, customer.created, customer.updated, customer.deleted, order.created, order.updated, order.deleted, order.restored, product.created, product.updated, product.deleted, product.restored. WooCommerce also supports a custom "action" topic tied to a WordPress or WooCommerce hook.
How WooCommerce signs a webhook
Every webhook delivery carries an X-WC-Webhook-Signature header: a base64-encoded HMAC-SHA256 hash of the exact raw request body, keyed by the webhook's secret. If you know the secret, you can recompute that hash and confirm the payload really came from your store and wasn't altered in transit.
The signature covers the raw bytes of the body, so retyped or reformatted JSON won't produce a matching hash even with the correct secret. Capture the payload with an inbox tool (webhook.site, RequestBin, or a similar free service) and paste it here unchanged.
Setting up a webhook
- 01
Create it
WooCommerce → Settings → Advanced → Webhooks → Add webhook. Pick a Topic, paste your Delivery URL, and set a Secret (it defaults to your API user's consumer secret if you leave it blank).
- 02
Trigger it
Do the action the topic listens for (place a test order, for example), or use WooCommerce's own "Deliver" button to resend the last payload.
- 03
Capture and verify
Grab the raw payload and the X-WC-Webhook-Signature header from your inbox tool, then paste both here with the secret to confirm they match.
Questions people ask
Does this tool receive webhooks for me?
No, it doesn't host an inbox. Capture the payload with a free tool like webhook.site first, then paste it here to verify the signature.
Why doesn't my signature match even with the right secret?
The signature covers the exact raw request body. If you retyped, reformatted or copy-pasted the JSON through an editor that changed whitespace, the bytes no longer match what WooCommerce actually sent.
What topics can I subscribe to?
Coupon, customer, order and product each have created/updated/deleted (and restored) topics, plus a custom "action" topic tied to any WordPress or WooCommerce hook.
After how many failures does WooCommerce disable a webhook?
Five consecutive delivery failures (any response outside 2xx, 301 or 302) disables it automatically.
Related tools
Last reviewed 30 September 2026.
Sources: WooCommerce Docs: Webhooks
