Lewati ke isi

Sentra F&B — API Documentation

Standard komunikasi API backend berformat JSON.

5.1 POST /api/v1/orders (Pembuatan Order Baru & Seating)

Dipanggil saat pelayan menginput pesanan ke meja dine-in.

  • Request Headers: Content-Type: application/json Authorization: Bearer <JWT_TOKEN>

  • Request Body:

    {
      "seating_session_id": "8a3cf340-9a2c-47bc-926c-d2cbe234dcf1",
      "outlet_id": "c1fbc9c0-8c88-47df-bc62-a7d519b7d8be",
      "items": [
        {
          "menu_variant_id": "41c6f498-f2b7-4aeb-81fa-22345bc7d0e4",
          "qty": 2,
          "customer_notes": "Less ice, extra sweet",
          "modifiers": [
            {
              "menu_modifier_id": "92cbef81-773a-4467-91fa-bc92dcf1e771",
              "qty": 1
            }
          ]
        }
      ]
    }
    

  • Response (201 Created):

    {
      "status": "success",
      "message": "Order successfully routed to Kitchen",
      "data": {
        "order_id": "6a89c922-261f-4ef0-91cc-cbfb4920401b",
        "order_number": "ORD/JKT-01/20260521/0045",
        "status": "KITCHEN_PREP"
      }
    }
    

5.2 POST /api/v1/kds/tickets/status (Update Status Memasak KDS)

Dipanggil saat chef/barista menekan tombol stasiun masak di layar KDS.

  • Request Body:

    {
      "order_item_id": "e4bf51a2-cb31-4091-a18f-2234d6199a09",
      "next_status": "COOKING",
      "staff_id": "11bc90a2-2d9c-44bf-a010-388277cdb2d8"
    }
    

  • Response (200 OK):

    {
      "status": "success",
      "item_id": "e4bf51a2-cb31-4091-a18f-2234d6199a09",
      "current_status": "COOKING",
      "updated_at": "2026-05-21T20:10:00+07:00"
    }
    

5.3 WebSocket /ws/kds/realtime (Aliran Tiket Dapur Realtime)

KDS klien akan berlangganan (subscribe) ke stasiun kerja yang sesuai (contoh stasiun minuman): - Event Name: ticket_received - WS Payload:

{
  "ticket_id": "ticket-7718",
  "table_number": "04",
  "order_number": "ORD/JKT-01/20260521/0045",
  "item_name": "Iced Cafe Latte",
  "qty": 2,
  "modifiers": ["Extra Shot Espresso", "Oat Milk"],
  "notes": "Less sweet",
  "station": "BAR",
  "timestamp": "2026-05-21T20:09:00+07:00"
}