POST /bookings/room-service
Food & BeverageAuth: Bearer JWT + API Key

Room Service & Dining API

Fetch restaurant & bar menus, explore dietary categories, place in-room dining orders charged to the room folio, and monitor kitchen prep status.

POSThttps://api.thegrandeur.vip/api/v1/bookings/room-service

Header Parameters

Authorizationstringrequired

Bearer guest access token.

Example: Bearer eyJhbGciOiJIUzI1NiIsIn...

X-API-Keystringrequired

Your hotel live public API key.

Example: hak_live_8f3a1290...

Request Body Schema (JSON)

booking_idUUIDrequired

Active checked-in booking ID where food will be delivered.

Example: bk_9812a

itemsArray<OrderItem>required

Array of items including name, price, quantity, and optional menu_item_id.

Example: [{"name": "Wagyu Burger", "price": 28.0, "quantity": 1}]

Automatic Kitchen Ticket & Thermal Printing

Orders sent to POST /bookings/room-service automatically appear on the Kitchen Display System (KDS) and can trigger ESC/POS receipt printing via the Grandeur Hardware Bridge. The bill is posted directly to the guest's folio.

# 1) Get Menu Categories
curl -s "https://api.thegrandeur.vip/api/v1/menu/categories" \
  -H "X-API-Key: hak_live_YOUR_KEY"

# 2) Get Menu Items (Optional: filter by outlet)
curl -s "https://api.thegrandeur.vip/api/v1/menu/items?outlet=Poolside%20Bar" \
  -H "X-API-Key: hak_live_YOUR_KEY"

# 3) Place Room Service Order
curl -s -X POST "https://api.thegrandeur.vip/api/v1/bookings/room-service" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-API-Key: hak_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "booking_id": "bk_9812a",
    "items": [
      { "name": "Classic Club Sandwich", "price": 18.5, "quantity": 2 },
      { "name": "San Pellegrino 750ml", "price": 7.0, "quantity": 1 }
    ]
  }'
Response Preview
{
  "success_status": true,
  "message": "Room service order submitted",
  "data": {
    "order_id": "ord_fb_771b",
    "booking_id": "bk_9812a",
    "room_number": "304",
    "subtotal": 44,
    "service_charge": 4.4,
    "total": 48.4,
    "status": "received",
    "estimated_delivery_minutes": 30
  }
}