Orders API
Order processing and lifecycle
GET
/api/ordersList orders
Query Parameters
locationIdstatusorderTypestartDateendDatepagelimit
Response
{
"data": [
{
"id": "uuid",
"orderNumber": "#1043",
"status": "COMPLETED",
"orderType": "DINE_IN",
"subtotal": 24.5,
"total": 26.22,
"createdAt": "2026-03-21T14:30:00Z"
}
],
"total": 156,
"page": 1,
"limit": 20
}GET
/api/orders/{id}Get order details
Response
{
"id": "uuid",
"orderNumber": "#1043",
"status": "COMPLETED",
"orderType": "DINE_IN",
"tableId": "uuid",
"items": [
{
"id": "uuid",
"productId": "uuid",
"name": "Espresso",
"quantity": 2,
"unitPrice": 3.5,
"total": 7
}
],
"subtotal": 24.5,
"taxAmount": 1.72,
"total": 26.22,
"payments": [
{
"id": "uuid",
"amount": 26.22,
"method": "CARD",
"cardLastFour": "4242"
}
],
"createdAt": "2026-03-21T14:30:00Z"
}POST
/api/ordersCreate a new order
Request Body
{
"orderType": "DINE_IN | TAKEOUT | DELIVERY | BAR_TAB",
"tableId": "uuid (optional)",
"customerId": "uuid (optional)",
"guestCount": "number (optional)",
"notes": "string (optional)"
}Response
{
"id": "uuid",
"orderNumber": "#1044",
"status": "DRAFT",
"orderType": "DINE_IN",
"items": [],
"createdAt": "2026-03-21T15:00:00Z"
}POST
/api/orders/{id}/itemsAdd item to order
Request Body
{
"productId": "uuid",
"quantity": "number",
"variantId": "uuid (optional)",
"modifiers": "array of { modifierOptionId: uuid, name: string, price: number } (optional)",
"notes": "string (optional)"
}Response
{
"id": "uuid",
"productId": "uuid",
"name": "Espresso",
"quantity": 2,
"unitPrice": 3.5,
"total": 7,
"modifiers": []
}PUT
/api/orders/{id}/items/{itemId}Update order item
Request Body
{
"quantity": "number (optional)",
"notes": "string (optional)",
"status": "PENDING | SENT | PREPARING | READY | SERVED | VOIDED (optional)"
}Response
{
"id": "uuid",
"quantity": 3,
"total": 10.5,
"updatedAt": "2026-03-21T15:05:00Z"
}DELETE
/api/orders/{id}/items/{itemId}Void order item
Request Body
{
"reason": "string"
}Response
{
"success": true,
"message": "Item voided"
}POST
/api/orders/{id}/sendSend order to kitchen
Response
{
"success": true,
"kitchenOrderId": "uuid",
"sentItems": 3
}POST
/api/orders/{id}/paymentsProcess payment for order
Request Body
{
"amount": "number",
"paymentMethod": "CASH | CARD | GIFT_CARD | LOYALTY | STORE_CREDIT",
"tipAmount": "number (optional)",
"processorTransactionId": "string (optional)",
"cardLastFour": "string (optional)",
"cardBrand": "string (optional)"
}Response
{
"id": "uuid",
"amount": 26.22,
"tipAmount": 5,
"paymentMethod": "CARD",
"status": "COMPLETED",
"processedAt": "2026-03-21T15:10:00Z"
}POST
/api/orders/{id}/discountApply discount to order
Request Body
{
"discountAmount": "number",
"discountCode": "string (optional)"
}Response
{
"orderId": "uuid",
"discountAmount": 5,
"newTotal": 21.22
}POST
/api/orders/{id}/transferTransfer order to another table
Request Body
{
"tableId": "uuid"
}Response
{
"orderId": "uuid",
"previousTableId": "uuid",
"newTableId": "uuid"
}POST
/api/orders/{id}/completeMark order as completed
Response
{
"id": "uuid",
"status": "COMPLETED",
"completedAt": "2026-03-21T15:15:00Z"
}DELETE
/api/orders/{id}Cancel order
Request Body
{
"reason": "string"
}Response
{
"success": true,
"message": "Order cancelled",
"refundAmount": 26.22
}