Skip to main content
Cart events describe a POS dine-in cart during service, before the bill is paid.
Cart event money fields are sent as decimal major currency units for most currencies. For example, Singapore dollars are sent as dollars, not cents.

Event types

cart.items_fired payload

Each payload carries the full current state of the cart, not a delta. The latest payload replaces everything you stored from earlier ones, so a missed delivery is healed by the next one. This event fires only for staff-attended POS carts. Self-service carts (QR ordering, kiosk, online) do not fire it. A cart whose order has closed stops firing.
cart_items[].status is sent once the item has been fired to the kitchen, or held while it waits. voided: true marks a removed item. sub_items nests modifiers, using the same fields as a top-level item.

Handling deliveries

Delivery is at-least-once and unordered. Payloads carry no ordering token. Apply these rules:
  1. Match cart events and order events for the same visit on the cart id. It equals the order payload’s cart_id.
  2. Treat each payload as the full cart state. Replace what you stored for that cart. A stale or duplicate delivery is corrected by the next kitchen send.
  3. Discard status: "open" payloads for a cart whose closing order event you have already processed.

cart.archived payload