Skip to main content

Checkout ReqSample Senarials

Good catches. Let me address each:

customerNametag — yes, flexible label, not necessarily a name.

Rounds — when adding a round, cashier picks existing open bill from bills list, then creates new session linked to that bill. So we need billId in request — if null means new bill, if provided means add round to existing bill.

Tab ID — yes we need billId in request for rounds.

Let me redo all samples clean:

1. POS — Pay Now

{
  "kitchenId": "uuid",
  "sessionType": "IMMEDIATE",
  "channel": "POS",
  "fulfillmentType": "PICKUP",
  "staffId": "uuid",
  "paymentMethod": "CASH",
  "tag": "John",
  "orderInstructions": null,
  "items": [
    {"menuId": "uuid", "quantity": 2, "itemInstructions": null}
  ]
}

2. POS — Generate Slip

{
  "kitchenId": "uuid",
  "sessionType": "SLIP",
  "channel": "POS",
  "fulfillmentType": "PICKUP",
  "staffId": "uuid",
  "tag": "John",
  "items": [
    {"menuId": "uuid", "quantity": 1, "itemInstructions": "no salt"}
  ]
}

3. POS — Tab (Round 1, new bill)

{
  "kitchenId": "uuid",
  "sessionType": "TAB",
  "channel": "POS",
  "fulfillmentType": "DINE_IN",
  "staffId": "uuid",
  "tableNumber": "05",
  "tag": "Family ya Mbeya",
  "billId": null,
  "items": [
    {"menuId": "uuid", "quantity": 1, "itemInstructions": null}
  ]
}

4. POS — Tab (Round 2, existing bill)

{
  "kitchenId": "uuid",
  "sessionType": "TAB",
  "channel": "POS",
  "fulfillmentType": "DINE_IN",
  "staffId": "uuid",
  "tableNumber": "05",
  "billId": "existing-bill-uuid",
  "items": [
    {"menuId": "uuid", "quantity": 2, "itemInstructions": null}
  ]
}

5. Kiosk — Cash Slip

{
  "kitchenId": "uuid",
  "sessionType": "SLIP",
  "channel": "KIOSK",
  "fulfillmentType": "PICKUP",
  "items": [
    {"menuId": "uuid", "quantity": 2, "itemInstructions": null}
  ]
}

6. Kiosk — Mobile Money (Immediate)

{
  "kitchenId": "uuid",
  "sessionType": "IMMEDIATE",
  "channel": "KIOSK",
  "fulfillmentType": "PICKUP",
  "paymentMethod": "MOBILE_MONEY",
  "items": [
    {"menuId": "uuid", "quantity": 1, "itemInstructions": null}
  ]
}

7. Table QR — Pay on Phone

{
  "kitchenId": "uuid",
  "sessionType": "IMMEDIATE",
  "channel": "TABLE_QR",
  "fulfillmentType": "DINE_IN",
  "tableNumber": "05",
  "paymentMethod": "MOBILE_MONEY",
  "items": [
    {"menuId": "uuid", "quantity": 1, "itemInstructions": null}
  ]
}

8. Table QR — Pay at Cashier (Slip)

{
  "kitchenId": "uuid",
  "sessionType": "SLIP",
  "channel": "TABLE_QR",
  "fulfillmentType": "DINE_IN",
  "tableNumber": "05",
  "items": [
    {"menuId": "uuid", "quantity": 1, "itemInstructions": null}
  ]
}

9. App — From Cart, Delivery

{
  "sessionType": "IMMEDIATE",
  "channel": "APP",
  "fulfillmentType": "DELIVERY",
  "paymentMethod": "MOBILE_MONEY",
  "fromCart": true,
  "deliveryAddress": {
    "street": "Lumumba St",
    "area": "Mbeya",
    "city": "Mbeya",
    "notes": "Green gate",
    "latitude": -8.9,
    "longitude": 33.4
  }
}

10. WhatsApp — Delivery

{
  "kitchenId": "uuid",
  "sessionType": "IMMEDIATE",
  "channel": "WHATSAPP",
  "fulfillmentType": "DELIVERY",
  "paymentMethod": "MOBILE_MONEY",
  "customerPhone": "+255700000000",
  "deliveryAddress": {
    "street": "Lumumba St",
    "area": "Mbeya",
    "city": "Mbeya",
    "notes": "Green gate",
    "latitude": -8.9,
    "longitude": 33.4
  },
  "items": [
    {"menuId": "uuid", "quantity": 1, "itemInstructions": null}
  ]
}

All 10 scenarios covered. What do u think — anything off?