floorplan.published | the operator publishes the plan | Thin event — re-fetch GET /floorplan and re-check your table mapping. |
table.seated | an order gains tables | tableIds is the order’s full current set. reservationExternalId is YOUR id when the party came from a reservation; null for walk-ins. Also the confirmation of a seat you initiated. |
order.updated | a seated order’s items are sent to the kitchen (a Send, or a fired-line void) | Fired total in totalMinor — the gross of lines sent to the kitchen, not the live cart. Not emitted on unsent edits or covers changes. Throttled to ≥30 s per order, trailing-edge: the last state always ships. |
check.paid | a check is paid | One event per check — split bills produce several. tenders[] includes provider_prepaid consumption; lines[] is the itemized summary. roomCharges[] names each posting made to a hotel stay (stayId, postingId, amountMinor, tip excluded), [] when nothing went to a room. The till posted it: read it, and never post that meal yourself. |
table.freed | order paid/cancelled, or tables removed | reason: paid, cancelled, or moved. A re-seat is table.freed(moved) + table.seated. |
service.closed | the last order linked to a reservation closes, with or without a table | outcome: settled if a payment settled the service, voided if everything was cancelled unpaid. prepaidConsumedMinor is the total across every check, so its arrival against check.paid does not matter. settled is terminal for the deposit: the register no longer offers it. After voided, a new order may use it. |
reservation.status_changed | staff marks arrived / no-show / cancelled on the till | Forwarded gestures — update your reservation accordingly. |
reservation.tables_changed | the floor re-plated a booking from the till | Apply it, then echo the result back with a normal reservation write. previousTableIds lets you recognise your own echo and skip it. |
reservation.covers_changed | the party sat a different number than booked, and staff corrected it on the seated order | Apply it, then echo the result back. Not optional: covers also travel down (booking → order), so a booking left on the old number reinstates it on the till at your next write. previousCovers identifies your own echo. |
reservation.note_changed | staff rewrote the internal note on the seated order | Apply it to the booking’s note, then echo the result back. Same reasoning as covers: the note also travels down (booking → order, where the kitchen ticket prints it), so a booking left on the old text reinstates it at your next write. note: null means the note was CLEARED — an edit, not “no change”. previousNote identifies your own echo. |
reservation.seat_rejected | the till refused your seat instruction | The target table got occupied in the race window. Re-seat the party elsewhere; the instruction will not retry until you change the reservation. |