Pricing and Occupancy Rule

The price of a booking depends on how the travellers are split into rooms, not only on how many there are. Each room is checked against the room rules and priced on its own; the booking total adds up every room, plus any upgrades and add-ons. The Book API runs the same checks, so a booking that breaks a rule, or a total_amount that does not match, fails.

📘

Try it live

Test any room mix and its price in the live pricing and occupancy calculator. Enter the travellers in each room to see whether the booking is valid and what it costs.

Short Names

All prices come from the selected departure (departures[]).

Short namePriceDeparture key
SAPSingle adult pricesingle_adult_price
APAdult priceadult_price
CWBPChild with bed pricechild_price_with_bed
CWOBPChild without bed pricechild_price_without_bed
IPInfant priceinfant_price

Max Age Limits

Age limits for child and infants come from the selected departure.

TravellerAge
Infant0 to max_age_infant (with max_age_infant: 2, a 2-year-old is an infant)
Child with bedup to max_age_child_with_bed
Child without bedup to max_age_child_without_bed

Room Rules

Each room is checked on its own:

  1. Every room needs at least one adult.
  2. A room holds up to max_occupancy people, infants included: DOUBLE = 2, TRIPLE = 3.
max_occupancyValid rooms
DOUBLE1 adult · 2 adults · 1 adult + 1 child · 1 adult + 1 infant · 2 adults + 1 infant
TRIPLEEverything in DOUBLE, plus 3 adults · 2 adults + 1 child · 2 adults + 1 infant · 1 adult + 2 children · 1 adult + 1 child + 1 infant · 1 adult + 2 infants · 3 adults + 1 infant · 2 adults + 1 child + 1 infant

"Child" means a child with or without bed. Rooms in bold use the extra-infant rule. Any other mix is invalid.

Booking Rules

RuleThe booking fails when
Minimum adultsThe adults across all rooms are fewer than min_occupancy. Children and infants do not count.
SeatsAdults and children need more seats than total_available. Infants do not take a seat.

Check both rules, and every room, before you call the Book API.

Room Price

RoomPrice
2 or more adultsEach traveller pays their own price: adults × AP + children with bed × CWBP + children without bed × CWOBP + infants × IP
1 adult aloneSAP
1 adult with othersThe lower of Option A and Option B (below)
  • Option A: SAP for the adult + every other traveller at their own price.
  • Option B: 2 × AP, where one companion is charged as an adult, + everyone else at their own price. The companion charged as an adult is a child with bed if there is one, otherwise a child without bed, otherwise an infant.

Total Price

Total = Σ rooms (room price + upgrade price) + Σ add-ons
  • Upgrade price: a hotel upgrade is priced room by room with the same room rule, using the upgrade's rates (upgrade_adult_price as AP, upgrade_single_adult_price as SAP, and so on).
  • Add-ons: priced per traveller. See Add-ons and Upgrades.

Send the total as total_amount in the Book API. If it does not match the current price, the Book API returns 409 with the expected amount.


Did this page help you?