Available Events
| Event | Trigger |
|---|---|
order.created | A new order is placed in your store (after successful payment or for free orders) |
order.status.changed | An order’s status is updated (e.g., from pending to completed, or completed to cancelled) |
order.created
Fired when a customer successfully places an order. This includes orders from all sources: the storefront, embed checkout, and the Storefront API. Common use cases:- Send a custom notification (Slack, Telegram, email)
- Sync the order to an external system (CRM, ERP, accounting)
- Trigger a fulfillment workflow
- Update inventory in an external system
- Log the sale for analytics
order.status.changed
Fired when an order’s status changes after the initial creation. This event is not triggered for the first status (order creation) — only for subsequent status updates. Common use cases:- Notify customers of shipping or delivery updates via your own channels
- Update external dashboards or reporting tools
- Trigger post-purchase workflows (e.g., send a review request after completion)
- Sync order status with third-party fulfillment systems
order.created, reflecting the current state of the order after the status change. The statuses array includes the complete status history.
Order Status Values
Thestatus field in the payload corresponds to these values:
| Status | Meaning |
|---|---|
| 1 | Waiting for Payment |
| 2 | Under Review |
| 3 | Processing |
| 4 | Completed |
| 5 | Cancelled |
| 6 | Refunded |
Choosing the Right Event
order.created
Use when you need to react to new sales — send notifications, sync to external systems, or trigger fulfillment.
order.status.changed
Use when you need to track order lifecycle — notify customers of updates, sync status changes, or trigger post-purchase workflows.
You can create multiple webhooks for the same event with different URLs. For example, one webhook sending
order.created to your CRM and another sending it to a Slack channel.
