Overview
Kitchen displays show orders that need to be prepared and allow staff to mark items as they progress through preparation. The system uses WebSocket connections for real-time updates, ensuring all displays stay synchronized.Authentication
All endpoints require authentication using a Bearer token:Permissions
Kitchen staff need the following permissions:orders:read- View active ordersorders:update_item_status- Update individual item status
Base URL
Endpoints
GET /orders
Retrieve active orders for the kitchen display. By default, returns orders inpending, confirmed, preparing, and ready statuses.
Query Parameters
Filter by specific status. Options:
pending, confirmed, preparing, readyIf omitted, returns orders with any active status.Response
Indicates if the request was successful
Array of orders with their items
Example Response
PATCH /items/:id/status
Update the preparation status of a specific order item. This is the primary action for kitchen staff as items move through preparation.Path Parameters
UUID of the order item to update
Request Body
New item status. Must be a valid transition.Options:
pending, preparing, ready, servedItem Status Workflow
| Current Status | Allowed Next Status |
|---|---|
pending | preparing |
preparing | ready |
ready | served |
served | (terminal state) |
Kitchen staff typically only move items from
pending → preparing → ready. Waiters mark items as served.Response
Indicates if the request was successful
The updated order item
Example Response
Real-Time Updates with WebSocket
Kitchen displays should connect to the WebSocket server to receive real-time updates when orders are created or modified.WebSocket Connection
WebSocket Events
Kitchen displays receive events on thebranch:{branchId}:kitchen channel:
order:new
Broadcast when a new order is created.order:updated
Broadcast when an order’s status changes.order:item_status
Broadcast when an individual item’s status changes.WebSocket Channels
Different channels receive different event scopes:| Channel | Scope | Use Case |
|---|---|---|
branch:{branchId} | All branch events | Staff dashboards, order management |
branch:{branchId}:kitchen | Kitchen-relevant events | Kitchen Display Systems (KDS) |
session:{sessionId} | Customer session events | Customer mobile apps |
Kitchen displays should subscribe to the
branch:{branchId}:kitchen channel to receive only relevant updates.Best Practices
Polling Fallback
While WebSocket provides real-time updates, implement periodic polling of
GET /orders as a fallback in case of connection issues.Sound Alerts
Play notification sounds when
order:new events arrive to alert kitchen staff.Visual Timers
Display elapsed time since order creation to help prioritize older orders.
Status Colors
Use color coding for different item statuses (pending=gray, preparing=yellow, ready=green).
Related APIs
- Orders API - Full order management
- Menu API - Menu item details