WooCommerce Webhook Tester

Paste a captured webhook payload and its secret, and check whether the X-WC-Webhook-Signature really matches.

Describe the result you need. AI will set up the tool and ask for any missing details.

Configure with AI

Enter to submit · Shift + Enter for a new line

Sent to AI. Leave out passwords and private customer data.

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

text
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

  1. 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).

  2. 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.

  3. 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.

Want this builtinto your store?

I'm Emmanuel, a Shopify and WooCommerce developer. If this tool pointed at something you'd rather have fixed for you (a faster store, cleaner product data, a migration, a custom feature), send me a note.

Emmanuel Asika

Emmanuel Asika

Shopify & WooCommerce developer, Dublin

I build and fix online stores: new builds, migrations, speed, SEO and the custom bits apps can't do.

hello@emmanuelasika.com

Last reviewed 30 September 2026.

Sources: WooCommerce Docs: Webhooks