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 liveTest 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 name | Price | Departure key |
|---|---|---|
| SAP | Single adult price | single_adult_price |
| AP | Adult price | adult_price |
| CWBP | Child with bed price | child_price_with_bed |
| CWOBP | Child without bed price | child_price_without_bed |
| IP | Infant price | infant_price |
Max Age Limits
Age limits for child and infants come from the selected departure.
| Traveller | Age |
|---|---|
| Infant | 0 to max_age_infant (with max_age_infant: 2, a 2-year-old is an infant) |
| Child with bed | up to max_age_child_with_bed |
| Child without bed | up to max_age_child_without_bed |
Room Rules
Each room is checked on its own:
- Every room needs at least one adult.
- A room holds up to
max_occupancypeople, infants included:DOUBLE= 2,TRIPLE= 3.
max_occupancy | Valid rooms |
|---|---|
DOUBLE | 1 adult · 2 adults · 1 adult + 1 child · 1 adult + 1 infant · 2 adults + 1 infant |
TRIPLE | Everything 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
| Rule | The booking fails when |
|---|---|
| Minimum adults | The adults across all rooms are fewer than min_occupancy. Children and infants do not count. |
| Seats | Adults 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
| Room | Price |
|---|---|
| 2 or more adults | Each traveller pays their own price: adults × AP + children with bed × CWBP + children without bed × CWOBP + infants × IP |
| 1 adult alone | SAP |
| 1 adult with others | The lower of Option A and Option B (below) |
- Option A:
SAPfor 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_priceas AP,upgrade_single_adult_priceas 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.
Updated 4 days ago
