WooCommerce · AsyncAPI Specification
WooCommerce Webhook Events
Version v3
The WooCommerce webhook system delivers real-time HTTP POST event notifications to a subscriber-configured endpoint URL whenever specific store events occur. Supported topics cover create, update, delete, and restore actions for orders, products, customers, and coupons, as well as custom action-based topics mapped to any WordPress or WooCommerce action hook. Webhook payloads are JSON-encoded and mirror the corresponding REST API v3 response for the affected resource. Each delivery includes a set of X-WC-Webhook-* headers for identification and an HMAC-SHA256 signature generated from the payload using the webhook's configured secret key. WooCommerce automatically disables a webhook after five consecutive delivery failures.
Channels
/webhook
publish
receiveWebhookEventReceive a WooCommerce webhook event notification
The endpoint on the subscriber's server that receives webhook event notifications from WooCommerce. WooCommerce sends HTTP POST requests with JSON-encoded payloads and a set of X-WC-Webhook-* headers. The receiver should verify the X-WC-Webhook-Signature header by computing an HMAC-SHA256 hash of the raw request body using the configured webhook secret key and comparing the base64-encoded result to the header value before processing the payload. Return a 2xx HTTP response to acknowledge receipt; any non-2xx or timeout response is treated as a failure.
Messages
✉
OrderCreated
Order Created
Triggered when a new order is placed in the store.
✉
OrderUpdated
Order Updated
Triggered when an existing order is modified.
✉
OrderDeleted
Order Deleted
Triggered when an order is moved to the trash.
✉
OrderRestored
Order Restored
Triggered when an order is recovered from the trash.
✉
ProductCreated
Product Created
Triggered when a new product is published or saved in the store.
✉
ProductUpdated
Product Updated
Triggered when an existing product is modified.
✉
ProductDeleted
Product Deleted
Triggered when a product is moved to the trash.
✉
ProductRestored
Product Restored
Triggered when a product is recovered from the trash.
✉
CustomerCreated
Customer Created
Triggered when a new customer account is registered.
✉
CustomerUpdated
Customer Updated
Triggered when a customer account is modified.
✉
CustomerDeleted
Customer Deleted
Triggered when a customer account is deleted.
✉
CouponCreated
Coupon Created
Triggered when a new coupon is created.
✉
CouponUpdated
Coupon Updated
Triggered when a coupon is modified.
✉
CouponDeleted
Coupon Deleted
Triggered when a coupon is moved to the trash.
✉
CouponRestored
Coupon Restored
Triggered when a coupon is recovered from the trash.
✉
CustomAction
Custom Action
Triggered by a custom WordPress or WooCommerce action hook.
Servers
https
woocommerce
https://{store-domain}
WooCommerce sends webhook notifications as HTTP POST requests from the merchant's WordPress installation. The subscriber's registered delivery URL must be a publicly accessible HTTPS endpoint. Webhooks are configured in WooCommerce admin under Settings > Advanced > Webhooks or via the REST API /wc/v3/webhooks endpoints.
AsyncAPI Specification
asyncapi: 2.6.0
info:
title: WooCommerce Webhook Events
description: >-
The WooCommerce webhook system delivers real-time HTTP POST event
notifications to a subscriber-configured endpoint URL whenever specific
store events occur. Supported topics cover create, update, delete, and
restore actions for orders, products, customers, and coupons, as well as
custom action-based topics mapped to any WordPress or WooCommerce action
hook. Webhook payloads are JSON-encoded and mirror the corresponding REST
API v3 response for the affected resource. Each delivery includes a set of
X-WC-Webhook-* headers for identification and an HMAC-SHA256 signature
generated from the payload using the webhook's configured secret key.
WooCommerce automatically disables a webhook after five consecutive
delivery failures.
version: 'v3'
contact:
name: WooCommerce Developer Support
url: https://developer.woocommerce.com/docs/best-practices/urls-and-routing/webhooks/
termsOfService: https://woocommerce.com/terms-conditions/
externalDocs:
description: WooCommerce Webhooks Documentation
url: https://woocommerce.com/document/webhooks/
servers:
woocommerce:
url: 'https://{store-domain}'
protocol: https
description: >-
WooCommerce sends webhook notifications as HTTP POST requests from the
merchant's WordPress installation. The subscriber's registered delivery
URL must be a publicly accessible HTTPS endpoint. Webhooks are configured
in WooCommerce admin under Settings > Advanced > Webhooks or via the REST
API /wc/v3/webhooks endpoints.
variables:
store-domain:
description: The domain of the WooCommerce store (e.g. example.com).
security:
- hmacSignature: []
channels:
/webhook:
description: >-
The endpoint on the subscriber's server that receives webhook event
notifications from WooCommerce. WooCommerce sends HTTP POST requests with
JSON-encoded payloads and a set of X-WC-Webhook-* headers. The receiver
should verify the X-WC-Webhook-Signature header by computing an
HMAC-SHA256 hash of the raw request body using the configured webhook
secret key and comparing the base64-encoded result to the header value
before processing the payload. Return a 2xx HTTP response to acknowledge
receipt; any non-2xx or timeout response is treated as a failure.
publish:
operationId: receiveWebhookEvent
summary: Receive a WooCommerce webhook event notification
description: >-
WooCommerce delivers this message to the subscriber's registered
delivery URL each time a subscribed store event occurs. The message
type is determined by the X-WC-Webhook-Topic header (e.g.
order.created). Verify the HMAC-SHA256 signature before processing.
message:
oneOf:
- $ref: '#/components/messages/OrderCreated'
- $ref: '#/components/messages/OrderUpdated'
- $ref: '#/components/messages/OrderDeleted'
- $ref: '#/components/messages/OrderRestored'
- $ref: '#/components/messages/ProductCreated'
- $ref: '#/components/messages/ProductUpdated'
- $ref: '#/components/messages/ProductDeleted'
- $ref: '#/components/messages/ProductRestored'
- $ref: '#/components/messages/CustomerCreated'
- $ref: '#/components/messages/CustomerUpdated'
- $ref: '#/components/messages/CustomerDeleted'
- $ref: '#/components/messages/CouponCreated'
- $ref: '#/components/messages/CouponUpdated'
- $ref: '#/components/messages/CouponDeleted'
- $ref: '#/components/messages/CouponRestored'
- $ref: '#/components/messages/CustomAction'
components:
securitySchemes:
hmacSignature:
type: httpApiKey
name: X-WC-Webhook-Signature
in: header
description: >-
Base64-encoded HMAC-SHA256 signature of the raw JSON request body.
The signature is generated using the webhook's configured secret key.
Subscribers must compute HMAC-SHA256(secret, raw_body), base64-encode
the result, and compare it to this header value to verify the
notification originated from WooCommerce and has not been tampered with.
messages:
OrderCreated:
name: OrderCreated
title: Order Created
summary: Triggered when a new order is placed in the store.
description: >-
WooCommerce delivers this event when a new order is created, regardless
of whether the order was placed by a customer, created via the admin, or
submitted through the REST API. The payload mirrors the REST API v3
order resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: order.created
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: order
X-WC-Webhook-Event:
type: string
description: The event action.
const: created
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: The webhook's numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/OrderPayload'
OrderUpdated:
name: OrderUpdated
title: Order Updated
summary: Triggered when an existing order is modified.
description: >-
Delivered when any order property changes including status transitions,
address updates, payment information, and line item modifications. The
payload mirrors the REST API v3 order resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: order.updated
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: order
X-WC-Webhook-Event:
type: string
description: The event action.
const: updated
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/OrderPayload'
OrderDeleted:
name: OrderDeleted
title: Order Deleted
summary: Triggered when an order is moved to the trash.
description: >-
Delivered when an order is trashed from the WooCommerce admin or deleted
via the REST API. The payload mirrors the REST API v3 order resource at
the time of deletion.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: order.deleted
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: order
X-WC-Webhook-Event:
type: string
description: The event action.
const: deleted
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/OrderPayload'
OrderRestored:
name: OrderRestored
title: Order Restored
summary: Triggered when an order is recovered from the trash.
description: >-
Delivered when a previously trashed order is restored. The payload
mirrors the REST API v3 order resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: order.restored
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: order
X-WC-Webhook-Event:
type: string
description: The event action.
const: restored
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/OrderPayload'
ProductCreated:
name: ProductCreated
title: Product Created
summary: Triggered when a new product is published or saved in the store.
description: >-
Delivered when a new product is created via the WooCommerce admin, REST
API, or import. The payload mirrors the REST API v3 product resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: product.created
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: product
X-WC-Webhook-Event:
type: string
description: The event action.
const: created
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/ProductPayload'
ProductUpdated:
name: ProductUpdated
title: Product Updated
summary: Triggered when an existing product is modified.
description: >-
Delivered when any product property changes including price, stock,
description, images, categories, or status. The payload mirrors the
REST API v3 product resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: product.updated
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: product
X-WC-Webhook-Event:
type: string
description: The event action.
const: updated
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/ProductPayload'
ProductDeleted:
name: ProductDeleted
title: Product Deleted
summary: Triggered when a product is moved to the trash.
description: >-
Delivered when a product is trashed. The payload mirrors the REST API
v3 product resource at the time of deletion.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: product.deleted
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: product
X-WC-Webhook-Event:
type: string
description: The event action.
const: deleted
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/ProductPayload'
ProductRestored:
name: ProductRestored
title: Product Restored
summary: Triggered when a product is recovered from the trash.
description: >-
Delivered when a previously trashed product is restored. The payload
mirrors the REST API v3 product resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: product.restored
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: product
X-WC-Webhook-Event:
type: string
description: The event action.
const: restored
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/ProductPayload'
CustomerCreated:
name: CustomerCreated
title: Customer Created
summary: Triggered when a new customer account is registered.
description: >-
Delivered when a new WordPress user with the customer role is created,
whether via storefront registration, checkout account creation, admin
creation, or REST API. The payload mirrors the REST API v3 customer
resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: customer.created
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: customer
X-WC-Webhook-Event:
type: string
description: The event action.
const: created
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/CustomerPayload'
CustomerUpdated:
name: CustomerUpdated
title: Customer Updated
summary: Triggered when a customer account is modified.
description: >-
Delivered when customer profile data changes including billing/shipping
addresses, email address, password, or custom meta fields. The payload
mirrors the REST API v3 customer resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: customer.updated
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: customer
X-WC-Webhook-Event:
type: string
description: The event action.
const: updated
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/CustomerPayload'
CustomerDeleted:
name: CustomerDeleted
title: Customer Deleted
summary: Triggered when a customer account is deleted.
description: >-
Delivered when a customer's WordPress user account is permanently
deleted. The payload mirrors the REST API v3 customer resource at the
time of deletion.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: customer.deleted
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: customer
X-WC-Webhook-Event:
type: string
description: The event action.
const: deleted
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/CustomerPayload'
CouponCreated:
name: CouponCreated
title: Coupon Created
summary: Triggered when a new coupon is created.
description: >-
Delivered when a new discount coupon is saved. The payload mirrors the
REST API v3 coupon resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: coupon.created
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: coupon
X-WC-Webhook-Event:
type: string
description: The event action.
const: created
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/CouponPayload'
CouponUpdated:
name: CouponUpdated
title: Coupon Updated
summary: Triggered when a coupon is modified.
description: >-
Delivered when a coupon's properties change including amount, expiry,
usage limits, or restriction settings. The payload mirrors the REST API
v3 coupon resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: coupon.updated
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: coupon
X-WC-Webhook-Event:
type: string
description: The event action.
const: updated
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/CouponPayload'
CouponDeleted:
name: CouponDeleted
title: Coupon Deleted
summary: Triggered when a coupon is moved to the trash.
description: >-
Delivered when a coupon is trashed. The payload mirrors the REST API
v3 coupon resource at the time of deletion.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: coupon.deleted
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: coupon
X-WC-Webhook-Event:
type: string
description: The event action.
const: deleted
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/CouponPayload'
CouponRestored:
name: CouponRestored
title: Coupon Restored
summary: Triggered when a coupon is recovered from the trash.
description: >-
Delivered when a previously trashed coupon is restored to active status.
The payload mirrors the REST API v3 coupon resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: The webhook topic identifier.
const: coupon.restored
X-WC-Webhook-Resource:
type: string
description: The resource type.
const: coupon
X-WC-Webhook-Event:
type: string
description: The event action.
const: restored
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
$ref: '#/components/schemas/CouponPayload'
CustomAction:
name: CustomAction
title: Custom Action
summary: Triggered by a custom WordPress or WooCommerce action hook.
description: >-
Delivered when the specified WordPress/WooCommerce action hook fires.
The topic is prefixed with action. (e.g. action.woocommerce_add_to_cart).
The payload for custom action webhooks is the array of arguments passed
to the hook. Custom action topics are configured in the WooCommerce
admin or via the REST API webhook resource.
headers:
type: object
properties:
X-WC-Webhook-Topic:
type: string
description: >-
The full custom topic name in the format action.{hook_name}
(e.g. action.woocommerce_add_to_cart).
pattern: '^action\..+'
X-WC-Webhook-Resource:
type: string
description: Set to action for custom action topics.
const: action
X-WC-Webhook-Event:
type: string
description: The action hook name without the action. prefix.
X-WC-Webhook-Signature:
type: string
description: Base64-encoded HMAC-SHA256 payload signature.
X-WC-Webhook-ID:
type: string
description: Webhook numeric post ID.
X-WC-Webhook-Delivery-ID:
type: string
description: Unique delivery log identifier.
payload:
type: object
description: >-
The hook arguments array serialized as a JSON object. Structure varies
by the specific action hook.
additionalProperties: true
schemas:
Address:
type: object
description: Billing or shipping address.
properties:
first_name:
type: string
description: First name.
last_name:
type: string
description: Last name.
company:
type: string
description: Company name.
address_1:
type: string
description: Address line 1.
address_2:
type: string
description: Address line 2.
city:
type: string
description: City.
state:
type: string
description: State code.
postcode:
type: string
description: Postal code.
country:
type: string
description: ISO 3166-1 alpha-2 country code.
email:
type: string
description: Email address (billing).
phone:
type: string
description: Phone number (billing).
MetaData:
type: object
description: Custom metadata key-value entry.
properties:
id:
type: integer
description: Metadata ID.
key:
type: string
description: Metadata key.
value:
type: string
description: Metadata value.
OrderPayload:
type: object
description: >-
Order webhook payload mirroring the WooCommerce REST API v3 order
resource.
properties:
id:
type: integer
description: Order unique identifier.
parent_id:
type: integer
description: Parent order ID.
number:
type: string
description: Order number displayed to customers.
order_key:
type: string
description: Order key for ownership verification.
status:
type: string
description: >-
Order status (pending, processing, on-hold, completed, cancelled,
refunded, failed).
currency:
type: string
description: ISO 4217 currency code.
date_created:
type: string
description: Date the order was created (ISO8601).
date_modified:
type: string
description: Date the order was last modified (ISO8601).
discount_total:
type: string
description: Total discount as a decimal string.
shipping_total:
type: string
description: Total shipping cost as a decimal string.
total:
type: string
description: Grand total as a decimal string.
total_tax:
type: string
description: Total tax as a decimal string.
customer_id:
type: integer
description: Customer ID (0 for guest orders).
customer_note:
type: string
description: Note from the customer.
billing:
$ref: '#/components/schemas/Address'
shipping:
$ref: '#/components/schemas/Address'
payment_method:
type: string
description: Payment method ID.
payment_method_title:
type: string
description: Human-readable payment method name.
transaction_id:
type: string
description: Payment gateway transaction ID.
line_items:
type: array
description: Products purchased in the order.
items:
type: object
properties:
id:
type: integer
description: Line item ID.
name:
type: string
description: Product name.
product_id:
type: integer
description: Product ID.
variation_id:
type: integer
description: Variation ID.
quantity:
type: integer
description: Quantity.
subtotal:
type: string
description: Line subtotal.
total:
type: string
description: Line total.
sku:
type: string
description: Product SKU.
meta_data:
type: array
description: Custom metadata.
items:
$ref: '#/components/schemas/MetaData'
ProductPayload:
type: object
description: >-
Product webhook payload mirroring the WooCommerce REST API v3 product
resource.
properties:
id:
type: integer
description: Product unique identifier.
name:
type: string
description: Product name.
slug:
type: string
description: Product slug.
type:
type: string
description: Product type (simple, variable, grouped, external).
status:
type: string
description: Product status.
featured:
type: boolean
description: Whether the product is featured.
description:
type: string
description: Product description.
sku:
type: string
description: Product SKU.
price:
type: string
description: Current price.
regular_price:
type: string
description: Regular price.
sale_price:
type: string
description: Sale price.
on_sale:
type: boolean
description: Whether on sale.
stock_status:
type: string
description: Stock status.
stock_quantity:
type: integer
description: Stock quantity.
nullable: true
categories:
type: array
description: Assigned categories.
items:
type: object
properties:
id:
type: integer
name:
type: string
slug:
type: string
date_created:
type: string
description: Date created (ISO8601).
date_modified:
type: string
description: Date modified (ISO8601).
meta_data:
type: array
description: Custom metadata.
items:
$ref: '#/components/schemas/MetaData'
CustomerPayload:
type: object
description: >-
Customer webhook payload mirroring the WooCommerce REST API v3 customer
resource.
properties:
id:
type: integer
description: Customer unique identifier.
date_created:
type: string
description: Date account was created (ISO8601).
date_modified:
type: string
description: Date account was last modified (ISO8601).
email:
type: string
description: Customer email address.
first_name:
type: string
description: First name.
last_name:
type: string
description: Last name.
role:
type: string
description: WordPress user role.
username:
type: string
description: WordPress username.
billing:
$ref: '#/components/schemas/Address'
shipping:
$ref: '#/components/schemas/Address'
is_paying_customer:
type: boolean
description: Whether the customer has completed at least one order.
orders_count:
type: integer
description: Total number of orders.
total_spent:
type: string
description: Total amount spent.
meta_data:
type: array
description: Custom metadata.
items:
$ref: '#/components/schemas/MetaData'
CouponPayload:
type: object
description: >-
Coupon webhook payload mirroring the WooCommerce REST API v3 coupon
resource.
properties:
id:
type: integer
description: Coupon unique identifier.
code:
type: string
description: Coupon code.
amount:
type: string
description: Discount amount.
discount_type:
type: string
description: Discount type (percent, fixed_cart, fixed_product).
description:
type: string
description: Admin description.
date_expires:
type: string
description: Expiry date (ISO8601).
nullable: true
usage_count:
type
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/woocommerce/refs/heads/main/asyncapi/woocommerce-webhooks-asyncapi.yml