# Events

Subscribe to the topics your app needs. Each delivery is signed and arrives within seconds. Every topic requires a scope, and payloads never include fields the merchant did not grant.

## Order event sequence

1. `abandoned_cart.created` — Cart not paid
2. `order.created` — Order created
3. `order.paid` — Paid
4. `order.digital.delivered` — Digital delivery
5. `order.status.updated` — Status changed
6. `order.refunded` — Refunded

## All topics

| Topic | Scope | Fires when |
|---|---|---|
| `order.created` | `orders:read` | A new order was created, either paid or awaiting payment. |
| `order.paid` | `orders:read` | The order payment was confirmed. |
| `order.status.updated` | `orders:read` | The order status changed. |
| `order.refunded` | `orders:read` | A refund was recorded on the order. |
| `order.digital.delivered` | `orders:read` | Digital content was delivered to the customer. |
| `abandoned_cart.created` | `carts:read` | The store marked an unpaid cart as abandoned, at its first reminder threshold. |
| `product.created` | `products:read` | A product was created, from the merchant dashboard or by an app. |
| `product.updated` | `products:read` | Any product field changed: name, price, images or status. |
| `product.deleted` | `products:read` | A product was deleted. |
| `category.created` | `products:read` | A category was created. |
| `category.updated` | `products:read` | A category name, image, sort order or visibility changed. |
| `category.deleted` | `products:read` | A category was deleted. |
| `inventory.physical.updated` | `inventory:read`, `products:read` | A physical product quantity changed: a sale, a manual adjustment or an app. |
