Technical Architecture

Redeam's Operator API enables communication between Redeam-connected resellers and operators by establishing a two-way interface between Redeam and operators. The first half of this interface, the Operator Booking System, provides Redeam access to fetch information and create bookings against the operator.

Operator Booking System Schema

The OBS schema works off of six objects:

  1. The Supplier object represents a provider or operator of a tour or attraction. This could be a discrete business (e.g. 'Widget Tours') or a satellite location (e.g. 'Widget Tours Orlando').
  2. The Product object sits underneath a supplier (one supplier has one or many products), and represents a general tour or attraction offering (e.g. 'History of Widgets Exhibit').
  3. The Option object sits underneath a product (one product has one or many options), and represents a variation of a product (e.g. 'Guided Tour').
  4. Each option contains an array of one or more Unit objects, which describes a discrete, bookable type of an option (e.g. 'Adult', 'Child').
  5. Availabilities are associated with all options (including options which require no reservation, aka Freesale), and reflect the dates & times at which the option may be booked.
  6. A Booking references one of all the above objects (possibly multiple units) and represents a held or confirmed reservation of a particular option at a specific time for a number of guests.
erDiagram SUPPLIER ||--|{ PRODUCT : contains SUPPLIER { string id } PRODUCT ||--|{ OPTION : contains PRODUCT { string id array options } OPTION { string id array units } OPTION ||--o{ AVAILABILITY : has OPTION ||--|{ UNIT : contains AVAILABILITY { string id string optionId } BOOKING { string supplierId string productId string optionId string availabilityId array unit } UNIT { string type }

Booking Flow

The booking object has five status states, which are enumerated below:

  1. HOLD
  2. PENDING*
  3. CONFIRMED
  4. EXPIRED
  5. REJECTED

The PENDING status represents a booking with a confirmation request that is waiting on action from the operator _(where instantConfirmation is set to false on the product) _before transitioning into CONFIRMED or REJECTED. At this time, this state is not supported by Redeam, but may be supported in future versions.

More information on each state can be found in the API reference. Below is a diagram depicting the transition between booking states:

graph TD cb1[[Create Booking Request]] subgraph Booking Hold h1[HOLD] h1 --> h3[[Extension Request]] h1 --> h4[[Confirmation Request]] h3 -- Accepted --> h1 end rejected([REJECTED]) confirmed([CONFIRMED]) expired([EXPIRED]) h1 -- Expires --> expired cb1 -- Rejected --> rejected cb1 -- Accepted --> h1 h4 -- Accepted --> confirmed h3 -- Rejected --> rejected h4 -- Rejected --> rejected
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard