Your Cart
WooCommerce webhooks

How to Configure WooCommerce Webhooks for Reliable Store Automation

WooCommerce webhooks connect store events with an external service, API or business workflow. Instead of requiring the receiving system to continually ask the store whether something changed, WooCommerce sends an event notification to a URL selected by the administrator. This can support automation related to coupons, customers, orders, products or other WooCommerce actions.

A reliable setup requires more than entering a URL and saving a form. You need to choose an event that matches the workflow, prepare the receiving endpoint, protect the shared secret and understand how WooCommerce reports unsuccessful deliveries. The receiving service remains separate from WooCommerce, so its accepted event names, payload handling and signature-verification process may differ. The following process focuses on documented WooCommerce behavior and practical checks for store owners, freelancers and agencies.

What WooCommerce Webhooks Do

A WooCommerce webhook is an event notification sent from the store to an administrator-selected URL. WooCommerce delivers the notification to an external HTTP or HTTPS endpoint, normally so another service can start a workflow. That workflow might pass information to an API, update a separate system or trigger an automation connected with the store. WooCommerce handles the delivery request; the receiving system handles what happens after it receives and accepts the request.

This distinction matters when planning an integration. WooCommerce topics and payloads are not automatically identical to event names used by every automation platform. A third-party service may also have its own requirements for request formatting, authentication, response handling and signature verification. Before activating a webhook, confirm that the receiving endpoint is prepared for the selected WooCommerce notification and for an HTTP POST request.

Webhooks should also be treated as an integration component rather than a complete automation policy. The store sends a notification, but the receiving service must decide how to process it, record its result and handle a notification that may be received more than once. WooCommerce documentation does not establish a universal retry, queuing, replay or exactly-once delivery policy for every receiving service.

Create a WooCommerce Webhook Step by Step

The documented administration path begins in WooCommerce > Settings > Advanced > Webhooks. Select the option to add a webhook. Interface wording can vary between WooCommerce installations, so use the Webhooks screen available in the current administration area if a label differs slightly.

Prepare the configuration fields in a deliberate order:

  1. Enter a descriptive name that identifies the business purpose or receiving system.
  2. Choose the status. An active status allows WooCommerce to deliver notifications.
  3. Select the topic that represents the event required by the automation.
  4. Enter the delivery URL for the receiving endpoint.
  5. Configure a private secret that can also be supplied securely to the receiving system.
  6. Save the webhook after confirming that the endpoint is ready to receive the request.

The delivery URL must use HTTP or HTTPS, and WooCommerce sends the webhook payload with an HTTP POST request. Prefer HTTPS when the receiving service supports it, particularly because a request can contain order, customer or product data. HTTPS is a practical security recommendation; it should not be described as a claim that WooCommerce requires HTTPS in every configuration.

Saving an active webhook for the first time creates an important test checkpoint: WooCommerce sends a ping to the configured delivery URL. This confirms that WooCommerce attempted an initial contact, but it does not by itself prove that the complete automation works. Check the receiving service separately, including its request handling, authentication, event processing and response.

Keep the secret out of screenshots, documentation examples and client-facing tickets. If an endpoint is not ready, avoid activating the webhook simply to test the administration screen. A prepared receiver makes it easier to distinguish a WooCommerce configuration issue from a problem on the external side.

Choose the Right WooCommerce Event

Event selection determines when WooCommerce sends a notification. Core WooCommerce topics cover four main families: coupons, customers, orders and products. The documented event variants include created, updated and deleted events for these families. Action-based topics can also be used when the workflow should react to a WooCommerce action rather than to one of those standard object changes.

The WooCommerce administration documentation gives woocommerce_add_to_cart as an example of an action-based topic. Additional topics may be supplied by active extensions, but their availability depends on the extensions installed and active on the site. Do not assume that an event supplied by one extension or receiving platform exists in every WooCommerce installation.

Choose the narrowest event set that provides the information required by the workflow. Subscribing to every available event can make troubleshooting harder and may send notifications that the external process does not need. A focused configuration also makes the purpose of each webhook easier to understand when an agency or store team later reviews the settings.

  • Use a coupon topic when the workflow depends on coupon creation, changes or deletion.
  • Use a customer topic when the external process needs a customer-related event.
  • Use an order topic when the automation is connected with order changes.
  • Use a product topic when the workflow depends on product changes.
  • Use an action-based topic only when the required action is available and supported by the receiving workflow.

Before saving, compare the selected topic with the actual business trigger. For example, an automation that needs changes to an existing object should not be configured only for its creation event. Conversely, adding created, updated and deleted variants without a clear processing need can increase the amount of traffic and event handling required by the receiver.

Secure the Delivery URL and Webhook Secret

The delivery URL identifies the endpoint that receives the notification. WooCommerce supports an HTTP or HTTPS URL and delivers the payload using HTTP POST. The URL should point to a receiving system that is intended to accept webhook requests, rather than to an arbitrary public endpoint. The receiving platform may impose additional requirements that are not documented as universal WooCommerce requirements.

The secret provides a way for the receiving system to verify that the request corresponds to the configured webhook. WooCommerce uses the secret to generate an HMAC-SHA256 signature from the request body. It places the resulting base64-encoded value in the X-WC-Webhook-Signature request header.

On the receiving side, the endpoint should compare the signature from that header with a signature calculated from the unmodified raw request body and the shared secret. Verification must take place before the event is processed. The exact implementation depends on the receiving platform, framework or automation service, so this should not be presented as one universal no-code procedure.

Several configuration habits reduce avoidable security problems:

  • Prefer an HTTPS delivery URL when the receiving service supports it.
  • Keep the webhook secret confidential and share it only through an appropriate secure process.
  • Do not publish the secret in screenshots, examples, tickets or public documentation.
  • Do not disable signature checks merely to make an integration appear to work.
  • Do not accept arbitrary public endpoints as a substitute for a prepared receiver.

Requests may contain information related to customers, orders or products. When troubleshooting outside WooCommerce’s own delivery logs, avoid recording personally identifiable data unless it is necessary. Limit or redact payload data in additional debug logs and remove temporary diagnostic material when it is no longer needed.

Understand Failed Deliveries and Automatic Disabling

WooCommerce treats unsuccessful HTTP responses as delivery failures. The administration documentation specifically describes responses outside 2xx, 301 and 302 as failures. This means that the receiving endpoint should return an appropriate success response after it has accepted the request according to its own processing design. Do not treat every response as successful simply because the endpoint was reachable.

Repeated unsuccessful deliveries can cause WooCommerce to automatically disable a webhook. The official descriptions use slightly different wording: the administration documentation says that a webhook is disabled after more than five consecutive delivery failures, while the developer documentation describes disabling after five consecutive failed deliveries. Because these descriptions are not identical, do not rely on one exact threshold as a universal rule for every situation. Check the current documentation and test the configuration before building an operational process around a precise number.

Automatic disabling should be treated as a protection and a troubleshooting signal, not as evidence that the original event has been safely replayed. WooCommerce documentation does not provide a universal retry, queue, idempotency or replay policy for the receiving service. The workflow should therefore be designed carefully on the external side, including tolerance for duplicate notifications where that platform permits it.

When a webhook stops delivering, use this recovery sequence:

  1. Inspect the delivery record and identify the response or connection problem.
  2. Check the delivery URL, endpoint availability and receiving-side authentication.
  3. Confirm that the receiver accepts the selected WooCommerce topic and POST request.
  4. Correct the receiving configuration or integration error.
  5. Re-enable the webhook only after the endpoint is ready for another delivery.

Do not assume that re-enabling alone resolves the problem. If the endpoint still rejects requests, the webhook can fail again and the underlying automation remains incomplete.

Troubleshoot with WooCommerce Webhook Logs

Begin diagnosis in the WordPress administration area at WooCommerce > Status > Logs. Filter the available sources for webhooks-delivery. WooCommerce records delivery information, including request and response details, so the log can help connect a store-side configuration with a receiving-side response.

Review the available details systematically rather than changing several settings at once. Pay attention to the delivery URL, request information, response code, response body and other recorded response details. A response that is outside the expected successful range can indicate an endpoint, authentication, routing or processing problem. The log does not replace checking the external service, but it provides a starting point for comparing what WooCommerce sent with what the receiver returned.

The developer documentation also describes access to delivery logs through the webhook REST API. That option can be useful when dashboard inspection is insufficient or when an agency needs to examine delivery information through an operational process. The documented delivery information can include request duration, URL, headers, body, response code, message, response headers and response body.

There is an important retention limitation: the developer documentation states that only the 25 most recent delivery logs are retained for each webhook to limit comment-table growth. Investigate intermittent failures promptly. If the relevant record is replaced by newer deliveries, the available evidence may no longer show the original problem.

After correcting an endpoint, perform a controlled validation:

  • Confirm that the webhook is active and uses the intended topic.
  • Verify that the delivery URL is correct and accepts HTTP POST requests.
  • Confirm that the receiving system has the same secret configured securely.
  • Check that it validates X-WC-Webhook-Signature against the raw request body.
  • Review the response returned by the receiver rather than assuming reachability means success.
  • Inspect the WooCommerce delivery log after the test.
  • Check the receiving workflow for duplicate handling before relying on repeated tests.

Keep diagnostic logging proportionate. WooCommerce’s delivery logs already provide useful request and response information, while additional logs should avoid exposing unnecessary customer or order data. When an issue is resolved, document the selected topic, endpoint purpose and secret-handling process without recording the secret itself.

Reliable WooCommerce automation starts with a focused configuration: create the webhook in the Webhooks settings, select only the event the workflow needs, and prepare the receiving endpoint before activating it. Use HTTP or HTTPS as appropriate, protect the secret and verify the HMAC-SHA256 signature in the receiving system using the raw request body. When delivery fails, inspect webhooks-delivery logs, correct the endpoint or authentication issue, and re-enable the webhook only after testing. Treat automatic disabling and log retention cautiously because the official descriptions do not establish one universal operational policy. Explore our WordPress plugins, WooCommerce extensions, themes and membership plans to find the right tools for your website.

Free Worldwide shipping

You can download the products right away at wpbetterplugins.com

Immediate delivery

After the payment is credited, the product is ready for download

International Warranty

Offered in the country of usage

100% Secure Checkout

Stripe / Apple Pay / Google Pay / MasterCard / Visa