Skip to main content

Reservations Catalog

The Reservations catalog provides three distinct reservation systems, each with specialized features.

TypeUse caseDuration unitKey fieldsSDK resource
TableRestaurants, diningMinutestime, duration, personsNumber, floorPlanIdclient.tableReservations
RoomHotels, accommodationsNightscheckIn, checkOut, nights, ratePerNight, guestIdclient.roomReservations
RentalEquipment, vehicles, spacesHours/MinutesstartAt, endAt, tierId, paymentclient.rentalReservations

How it fits together

The catalog separates bookable concepts from physical inventory, and reservation records from physical assignment. A category groups resources; each resource is a bookable type with physical instances; reservations are booked against three resource types.

Reservations catalog structureA category groups resources. Each resource has physical instances. Reservations are booked as one of three types: table, room, or rental.groupsstocksCategorygroupingResourcebookable typeInstancephysical unitbooked asTableRoomRental
  • A resource defines a bookable type (a table type, room type, or rental product).
  • A resource instance is a physical unit that can be assigned, blocked, cleaned, or taken out of service.
  • A reservation record captures customer intent and commercial state.
  • Settings define location-level behavior; slot queries generate availability.

How a reservation works

Availability comes from real schedules and resource state, so customers only book genuinely open times. A reservation then moves through its lifecycle — slightly different per type.

Reservation flow and lifecycleFour steps: check availability, choose resource, reserve, confirm and assign. Lifecycle for tables and rooms: pending, confirmed, checked-in, completed, with cancelled and no-show. Rentals follow upcoming, out, returned.Availabilityslot queryChooseresourceReservehold the slotConfirm& assignTABLE / ROOM LIFECYCLEpendingconfirmedchecked_incompletedorcancelledno_showRentals follow: upcoming → pickup_soon → out → returned (overdue if late).

Why it matters

  • For inventory — model a resource type once and stock it with physical instances; availability reflects real instance state (occupied, cleaning, maintenance), not a guess.
  • For the booking — slot queries return only genuinely open times, and each reservation type captures the right fields (party size, nights and nightly rate, pickup/return and deposit).
  • For operations — per-location settings, maintenance blocks, and tier/deposit rules mean the catalog mirrors how each site actually runs.

Status models

EnumValues
ReservationStatus (table/room)pending, confirmed, seated, checked_in, completed, cancelled, no_show
RentalReservationStatusupcoming, pickup_soon, out, returned, overdue, cancelled
PaymentStatus (room)pending, paid, partial, failed, refunded
DepositStatus (rental)pending, paid, returned, forfeited
ResourceInstance statusavailable, reserved, occupied, maintenance, cleaning, out_of_service

SDK parity matrix

This reflects what the SDK example guides demonstrate for each language.

Unified Python resource

In TypeScript, reservations are split into tableReservations, roomReservations, and rentalReservations. In Python, a single client.reservations resource handles all types, discriminated by reservation_type, and client.reservation_resources manages bookable resources.

AreaOperationsTypeScriptPython
Resourcescreate
Resourcesget, get by type, update, batch
Resource categories & instancesCRUD
Reservationscreate (table, room)
Reservationsget, get by customer, get by resource, update, update status, reschedule✓ (per type)✓ (unified)
Rental reservationscreate, slot query, operations
Floor plans, slot queriescreate, query
Settings & maintenancesettings, blocks

Pages