---
updatedAt: 2026-08-12T16:23:56.000Z
---

Fetch the complete documentation index at: https://developers.flipdish.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Flipdish events (v3) overview

A catalog of every Flipdish Webhooks (v3) event type, what triggers it, and when to use it, with links to the full schema for each.

This page lists every event type available through **Flipdish Webhooks (v3)**. For how to create a subscription, verify requests, and handle delivery, see [Subscribe to Flipdish Events (v3)](webhooks-v3). For the exact JSON payload of any event, follow the **Definition** link in the table.

***

## Event catalog

| Event type                   | Category            | Fires when                                                                                                                     | Status              | Definition                                                                                                    |
| ---------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------- |
| `menu.published.v1`          | Menu Publishing     | An org publishes a menu (new or updated), making it available to sales channels and integrations.                              | Generally available | [menu.published.v1](https://developers.flipdish.com/v3.0/reference/post_menu-published-v1)                    |
| `menu.validation.failed.v1`  | Menu Validation     | A menu fails validation after a publish attempt.                                                                               | Generally available | [menu.validation.failed.v1](https://developers.flipdish.com/v3.0/reference/post_menu-validation-failed-v1)    |
| `menu.item.snoozed.v1`       | Snoozes             | A menu item (category item or option set item) is snoozed (temporarily hidden).                                                | Generally available | [menu.item.snoozed.v1](https://developers.flipdish.com/v3.0/reference/post_menu-item-snoozed-v1)              |
| `menu.item.unsnoozed.v1`     | Snoozes             | A previously snoozed menu item becomes available again.                                                                        | Generally available | [menu.item.unsnoozed.v1](https://developers.flipdish.com/v3.0/reference/post_menu-item-unsnoozed-v1)          |
| `sales_channel.snoozed.v1`   | Snoozes             | A sales channel is snoozed (temporarily taken offline).                                                                        | Generally available | [sales\_channel.snoozed.v1](https://developers.flipdish.com/v3.0/reference/post_sales-channel-snoozed-v1)     |
| `sales_channel.unsnoozed.v1` | Snoozes             | A previously snoozed sales channel is brought back online.                                                                     | Generally available | [sales\_channel.unsnoozed.v1](https://developers.flipdish.com/v3.0/reference/post_sales-channel-unsnoozed-v1) |
| `sale.created.v1`            | Sale Created        | Any sale is ingested by Flipdish, on any channel (POS, kiosk, web, marketplace, or API). Carries the full sale payload inline. | Beta                | [sale.created.v1](https://developers.flipdish.com/v3.0/reference/post_sale-created-v1)                        |
| `sale.updated.v1`            | Sale Updated        | A sale ingested by Flipdish is materially updated (items, charges, or discounts changed).                                      | Beta                | [sale.updated.v1](https://developers.flipdish.com/v3.0/reference/post_sale-updated-v1)                        |
| `sale.status.updated.v1`     | Sale Status Updated | Any sale transitions to a new lifecycle status, on any channel. Unifies POS and delivery status into one event.                | Beta                | [sale.status.updated.v1](https://developers.flipdish.com/v3.0/reference/post_sale-status-updated-v1)          |

***

## When to use which event

### Menu events

* **`menu.published.v1`** — subscribe to keep a downstream system (POS, aggregator, cache) in sync whenever a menu is published.
* **`menu.validation.failed.v1`** — subscribe alongside `menu.published.v1` to alert on publish attempts that failed validation, instead of only detecting the absence of a publish.
* **`menu.item.snoozed.v1` / `menu.item.unsnoozed.v1`** — use to reflect an item's temporarily-unavailable/available state in an external menu display or POS.
* **`sales_channel.snoozed.v1` / `sales_channel.unsnoozed.v1`** — use to reflect a whole channel going offline/online (e.g. store paused on a marketplace).

### Sale events

The **`sale.*`** family is the canonical set of sale webhook events. It fires for sales on **any** channel (POS, kiosk, web, marketplace, API) and carries the full sale payload inline, so no follow-up API call is needed — see [Sale webhook events](sale-events) for full details. Use `sale.updated.v1` to track mid-lifecycle changes to items, charges, and discounts.

> 📘 The legacy `sales.*` family has been retired from the webhook catalog
>
> The legacy `sales.*` events (`sales.created.v1`, `sales.cancelled.v1`, `sales.pos.status.updated.v1`, `sales.delivery.status.updated.v1`) are no longer offered as Flipdish webhooks and have been removed from this catalog. Build all integrations against the `sale.*` family instead.

#### `sales.*` → `sale.*` mapping

If you previously integrated against a legacy `sales.*` event, use the canonical `sale.*` replacement:

| Legacy (`sales.*`, retired)                                        | Canonical (`sale.*`)                                                                                          |
| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| `sales.created.v1`                                                 | `sale.created.v1`                                                                                             |
| `sales.pos.status.updated.v1` + `sales.delivery.status.updated.v1` | `sale.status.updated.v1` (single unified status event covering both)                                          |
| `sales.cancelled.v1`                                               | `sale.status.updated.v1` with status `SALE_CANCELLED` — there's no separate cancelled event in the new family |
| *(no equivalent)*                                                  | `sale.updated.v1` — tracks mid-lifecycle changes to items, charges, and discounts                             |

`sale.*` also drops the follow-up API call: the full sale payload is inline, and `brandId` is included where the legacy `sales.*` payloads didn't carry it.

***

## Related

* [Subscribe to Flipdish Events (v3)](webhooks-v3) — create a subscription, verify signatures, and handle delivery/retries
* [Sale webhook events](sale-events) — deep dive on `sale.*` events and how to subscribe
* [Webhooks](webhooks-overview) — comparison with the legacy webhook system