Skip to main content
Authenticated API

KDS endpoints require a valid JWT Bearer token with kitchen/chef roles. The API gateway exposes 6 KDS endpoints at /v1/commerce/kds/*.

KDS Expo View & Course Firing

Aggregated order status for the expediter station and course firing controls for multi-course meal coordination.

Get Expo View

Get aggregated order status for the expediter station.

GET /api/v1/kds/expo?location_id={location_id}
Authorization: Bearer {access_token}

Response

[
{
"order_id": "order-12345",
"order_reference": "Table 7",
"order_channel": "dine_in",
"customer_name": null,
"server_name": "Sarah",
"tickets": [
{
"ticket_id": "ticket-abc",
"station_name": "Grill",
"station_type": "grill",
"status": "in_progress",
"item_count": 3,
"completed_count": 1
},
{
"ticket_id": "ticket-def",
"station_name": "Fry",
"station_type": "fry",
"status": "ready",
"item_count": 2,
"completed_count": 2
}
],
"total_items": 5,
"completed_items": 3,
"is_complete": false,
"packaging_instructions": null,
"assigned_runner": null,
"delivery_label": null,
"created_at": "2026-01-23T12:00:00Z",
"target_time": "2026-01-23T12:30:00Z"
}
]

Orders are sorted by created_at (oldest first).


Course Firing

Fire Course

Release held tickets for a specific course.

POST /api/v1/kds/courses/fire
Authorization: Bearer {access_token}
Content-Type: application/json
{
"order_id": "order-12345",
"course_number": 2
}

Response: 200 OK

This transitions all held tickets for the order with course_number <= 2 to pending status.

Course Numbering

CourseTypical Items
1Appetizers, soup, salad
2Entrees, main course
3Desserts