Use Cases¶
Getting Started
General Overview and Format of Use Cases
This guide presents common use cases for interacting with the G Adventures reservation system through the WRITE methods of the API. Every client integration may vary with respect to the different functions that are implemented. This documentation enumerates these functions through use cases, in order of relevance. Each use case is structured withe the following sections:
Description
A brief description of the function, with links to the relevant resource documentation. The documentation for each resource should be consulted in full prior to implementation. Some details are given relating the use case to G Adventures products. In some cases, a specific resource is listed as a recommendation for testing.
References
Links to related use cases or documentation of request/response examples.
Preconditions
An enumerated list of relevant resource preconditions that must be met to implement this use case. It is recommended that these are used in client tests.
Postconditions
An enumerated list of relevant resource postconditions that will be present upon successful implementation of this use case. It is recommended that these are used in client tests.
Booking Life Cycle¶
Use cases are grouped in sections based on the life cycle of a booking. These sections are by no means mutually-exclusive. Integrations may mix and match use cases for the desired implementation that works best with the client systems.
In Booking Tour Departures we examine the core functionality for creating a booking. The use cases are ordered and represent the minimum implementation for any integration. This section should be the starting place for ANY integration. The general process for making a booking is:
Create a new booking
Think of this as an order number or shopping cart.
Create new customers
These are your clients who are making the booking.
Create a new departure service (a reservation on the departure)
Think of this as the main item in your shopping cart. A customer MUST be booked on a departure_service before any other actions can be performed on the booking. G Adventures does not allow booking add-ons such as accommodations, transports, activities, etc… without first booking a departure service.
Every new departure service is created with an Option status. When the departure service is on Option, the customer is temporarily reserving space on the departure but has not committed to the purchase. No payment is required to hold an Option. An Option can be held for a maximum of 4 days before it will automatically be Expired (reserved space released) by G Adventures.
Fulfill confirmation requirements
In order to Confirm a departure service, we need specific customer information. These confirmation requirements are enumerated in the departure, as each has different requirements.
This process of updating customer information can be eliminated by always providing these details (and hence meeting the requirements) when creating the customers. Why not always require the additional customer details in order to eliminate this extra step? Some implementations may want the ability to hold an Option with minimal set of information needed from the customer.
Confirm the departure service
Once the requirements are met, the departure service can be Confirmed. Think of this as the checkout step - the customer has confirmed that they wish to purchase the product.
Booking Tour Departures - Special Cases
Next, in Booking Tour Departures - Special Cases we enumerate very specific cases that some integrations may want to implement while others may not. Some of these use cases relate to special booking conditions such as:
booking last minute, close to departure
booking departures that are full
booking many customers
etc…
Other use cases relate to departures that have special considerations and processes that must be followed.
Next, in Managing Bookings we explore use cases that often occur at a later date, after the initial booking is made:
Cancelling/Expiring
Updating customer information
Fulfilling checkin requirements that must be met before the customer travels
etc…
Some of these use cases may be irrelevant if the integration is strict in requiring this detailed information from the customer at the time of booking. Some customers may not have the necessary information at the time of booking, so the ability to provide updates at a later date provides greater flexibility. These functions will map to backend processes in the client systems for each integration.
Finally, in Booking Add Ons we identify use cases for booking add-ons to the core departure service. None of the add-ons can be booked as stand-alone products (i.e. always require a departure service on the booking before they can be booked).
In many implementations these functions will be used as part of the initial booking process, similar to adding items to a shopping cart. They are offered as stand-alone functions in order to facilitate the ability to book add-ons at a later date, after the initial booking is made with the core departure service item.
Booking Tour Departures¶
Holding an Option on a Non-Rooming Departure¶
Description
Create a booking and new customers, with an Option departure service on a non-rooming departure.
A non-rooming departure is one that is land-based (i.e. not on a ship).
All new departure services must initially be booked as an Option. They can then be Confirmed (see Confirming a Departure Service) once all CONFIRMATION requirements are fulfilled (see Fulfilling CONFIRMATION Requirements). When the departure service is on Option, the customer is temporarily reserving space on the departure but has not committed to the purchase. No payment is required to hold an Option. An Option can be held for a maximum of 4 days before it will automatically be Expired (reserved space released) by G Adventures.
Suggested testing tour dossiers: id 21783 (CRA ‘product_line’)
References
Preconditions
the departure does not have the “NO_OPTIONS” flag in the ‘flags’ list
the departure has only a single ‘rooms’ list item where ‘rooms.code’ is “STANDARD” (non-rooming)
the departure has ‘availability.status’ of “AVAILABLE”
the new customers must be within the ‘min_age’ and ‘max_age’ of one of the departure ‘price_bands’ for the ‘rooms’ item
there are less or equal new customers than the value of the departure ‘availability.status.total’
the number of new customers must be within the ‘min_travellers’ and ‘max_travellers’ of one of the departure ‘price_bands’ for the ‘rooms’ item
there are no ‘promotions’ listed on the departure
Postconditions
a new booking is created
the new booking ‘currency’ is set to ‘currency’ value that was POSTed
the new booking ‘date_of_first_travel’ matches the departure ‘start_date’
the new booking ‘date_of_last_travel’ matches the departure ‘finish_date’
the new customers are created with all input parameters persisting in the object representation
a new departure service is created and listed under the booking’s services sub-resource
the new departure service ‘customers’ list contains all new customers
the new departure service has ‘status’ “Option”
the new departure service has ‘status_transitions’ [“Confirmed”, “Expired”]
the new departure service has an ‘option_expiry_date’ 4 days in the future
the new departure service ‘purchase_price’ matches the currency-specific price listed in the departure (as per preconditions), multiplied by the number of customers
the departure service has a null ‘applied_promotion’ (see also Booking a Departure with a Promotion)
the new departure service ‘product’ is linked to the departure
a new invoice is created and listed under the booking’s invoices sub-resource
Holding an Option on a Rooming Departure¶
Description
Create a booking and new customers, with an Option departure service on a rooming departure.
A rooming departure is one that is based on travelling by ship (e.g. cruising, sailing, etc…). In most cases there are various cabin classes/options for different prices.
All new departure services must initally be booked as an Option. They can then be Confirmed (see Confirming a Departure Service) once all CONFIRMATION requirements are fulfilled (see Fulfilling CONFIRMATION Requirements). When the departure service is on Option, the customer is temporarily reserving space on the departure but has not committed to the purchase. No payment is required to hold an Option. An Option can be held for a maximum of 4 days before it will automatically be Expired (reserved space released) by G Adventures.
Suggested testing tour dossiers: id 21595 (XVCASX ‘product_line’)
References
Preconditions
- Exceptions:
the departure has one or more ‘rooms’ list items where ‘rooms.code’ is NOT “STANDARD”
- Additions:
the departure ‘rooms’ list has an item with ‘availability.status’ of “AVAILABLE”
there are less or equal new customers than the value of the departure ‘rooms’ list ‘availability.status.total’
there are less or equal new customers than the value of the departure ‘rooms’ list ‘availability.status.total’
Postconditions
- Additions:
each item in the new departure service ‘rooms’ list, has a value in the ‘code’ field that matches the departure (linked via the departure service ‘product’) rooms list item used to create the departure service
each new customer appears in one of the departure service ‘rooms’ list items
Fulfilling CONFIRMATION Requirements¶
Description
Fulfilling departure/departure service CONFIRMATION requirements related to customers: AGE_RESTRICTED, DATE_OF_BIRTH, NATIONALITY, PASSPORT_EXPIRY_DATE, PASSPORT_NUMBER.
A departure service can only be Confirmed (see Confirming a Departure Service) once all CONFIRMATION requirements are fulfilled.
See the Booking Requirements section for details on the relationship between each requirement and specific customer fields.
References
see similar: Fulfilling CHECKIN Requirements
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
a departure service with an ‘incomplete_requirement’ item of ‘type’ “CONFIRMATION” and ‘code’ equal to that of the specific requirement
the customer field(s) related to the specific requirement is/are null or invalid
Postconditions
the departure service ‘incomplete_requirement’ item no longer appears in the list
the customer field(s) related to the specific requirement is/are NOT null and valid
Confirming a Departure Service¶
Description
Confirming a departure service, for both a rooming and non-rooming departure.
Think of this as the checkout step - the customer has confirmed that they wish to purchase the product. This use case can be implemented as part of the initial booking process, or as a follow up process at a later date. Remember, an Option can be held for a maximum of 4 days before it will automatically be Expired (reserved space released) by G Adventures.
References
Preconditions
see first Fulfilling CONFIRMATION Requirements
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
the departure service ‘status’ is “Option”
the departure service has “Confirmed” in the ‘status_transitions’
the departure service has no ‘incomplete_requirements’ list items with ‘type’ “CONFIRMATION”
Postconditions
the departure service has ‘status’ “Confirmed”
the departure service has ‘status_transitions’ [“Request Cancellation”]
the departure service has an ‘date_confirmed’ with the current date/time
the departure service has a null ‘option_expiry_date’
Booking a Departure with a Promotion¶
Description
Create a booking and new customers, with a departure service on a departure with a promotion.
Every agency has a promotions sub-resource for a complete list of current and past promotions. The same promotions are also attached to the individual departure resources.
References
Preconditions
same as Holding an Option on a Non-Rooming Departure or Holding an Option on a Rooming Departure
- Exceptions:
there are ‘promotions’ listed on the departure (can be found easily by looking at the agency.promotions sub-resource)
Postconditions
same as Holding an Option on a Non-Rooming Departure or Holding an Option on a Rooming Departure
- Exceptions:
the new departure service has a non-null ‘applied_promotion’ with ‘id’, ‘name’, ‘promotion_code’, and ‘terms_and_conditions’ values equal to the promotion resource linked in the departure ‘rooms[].price_bands[].prices[].promotions’ list item
the new departure service ‘applied_promotion.discount_amount’ value (multiplied by the number of customers) equals the departure ‘rooms[].price_bands[].prices[].promotions[].amount’ value for the currency that matches the booking ‘currency’
the new departure service ‘purchase_price’ is equal to the currency-specific price listed in the departure (as per preconditions), multiplied by the number of customers, minus the departure service ‘applied_promotion.discount_amount’
Booking Tour Departures - Special Cases¶
Booking with Existing Customers
Description
Create a booking for existing customers, with a departure service on a departure.
For repeat customers there is no need to create a new customer record when making a booking. If the customer ‘id’ is stored, this can be used for subsequent bookings at a later date. Using this methodology will ensure a complete view of a particular customer’s booking history, as well as save time inputting customer information that is stored in the G Adventures reservation system from the customer’s first booking.
References
Preconditions
same as Holding an Option on a Non-Rooming Departure or Holding an Option on a Rooming Departure
- Exceptions:
the existing customers must be within the ‘min_age’ and ‘max_age’ of one of the departure ‘price_bands’ for the ‘rooms’ item
there are less or equal existing customers than the value of the departure ‘availability.status.total’
the number of existing customers must be within the ‘min_travellers’ and ‘max_travellers’ of one of the departure ‘price_bands’ for the ‘rooms’ item
Postconditions
same as Holding an Option on a Non-Rooming Departure or Holding an Option on a Rooming Departure
- Exceptions:
no new customers are created
the new departure service ‘customers’ list contains all existing customers
Managing Bookings¶
Updating a Booking External ID Reference¶
Description
Update a booking ‘external_id’ field.
This field should be used to store the unique identifier for the corresponding object in the client’s backend system. The use of this field is encouraged, but optional. We do not enforce uniqueness of this field across records.
This field can also be set when a booking is created.
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
Postconditions
the booking has an ‘external_id’ which matches the input value
Updating Transport Service Arrival Details¶
Description
Update a transport service ‘pickup_time’ and ‘flight_number’.
This information corresponds to the customer’s arrival/departure flight information. While it can be set when a transport service is created, in many cases a customer may book their flights at later date, at which point they will have the necessary information to update these details on the transport service.
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first Booking Transports
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
Postconditions
the transport service has ‘pickup_time’ and ‘flight_number’ which match the input values
Confirming a Non-Departure Service
Description
Confirming a transport service, accommodation service, or activity service.
This use cases is similar to that of Confirming a Departure Service, except non-departure services currently do not have any CONFIRMATION requirements. Since non-departure services cannot be booked as stand-alone product, all necessary information for these add-ons is obtained via the departure service CONFIRMATION requirements.
When adding a transport service, accommodation service, or activity service to a Confirmed departure service, it will automatically be Confirmed. Manually confirming a non-departure service is only necessary if it is booked as an add-on to a departure service on Option.
References
see also: Confirming a Departure Service
Preconditions
the service’s booking has a ‘date_of_first_travel’ that is in the future
the service ‘status’ is “Option”
Postconditions
Expiring a Service¶
Description
Expiring a departure service, transport service, accommodation service, or activity service.
An Option can be held for a maximum of 4 days before it will automatically be Expired (reserved space released) by G Adventures. We encourage clients to follow up with their customers before this time and manually Expire any Option services that will not be Confirmed. There is never a cancellation fee service for expiring an Option.
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first: Confirming a Departure Service
the service’s booking has a ‘date_of_first_travel’ that is in the future
the service ‘status’ is “Option” or “On Request” or “Waitlisted
the departure service has “Expired” in the ‘status_transitions’
Postconditions
the service ‘status’ is “Expired”
the service has an empty ‘status_transitions’ list
the service has an empty ‘customers’ list
the service has a ‘date_cancelled’ with the current date/time
the service has a ‘purchase_price’ of “0.00”
a new invoice is created and listed under the booking’s invoices sub-resource
Requesting Cancellation of a Service¶
Description
Submitting a request for the cancellation a departure service, transport service, accommodation service, or activity service.
G Adventures staff will be responsible for processing and confirming the cancellation, at which point the service ‘status’ will be changed to “Cancelled” and a fee service may be generated depending on the agency cancellation conditions. Once the service is Cancelled, a new invoice will be created and listed under the booking’s invoices sub-resource. Automatic notification of these changes can be accomplished using Webhooks. The postconditions once cancelled are the same as those for the Expiring a Service use case.
References
same as Expiring a Service
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first: Confirming a Departure Service
the service’s booking has a ‘date_of_first_travel’ that is in the future
the service ‘status’ is “Confirmed” or “Request Confirmation”
the departure service has “Request Cancellation” in the ‘status_transitions’
Postconditions
Fulfilling CHECKIN Requirements¶
Description
Fulfilling departure/departure service CHECKIN requirements: ARRIVAL_FLIGHT_DETAILS, DEPARTURE_FLIGHT_DETAILS, INTERNATIONAL_TICKET_NUMBER, TRAVELLER_HEIGHT.
See Fulfilling CONFIRMATION Requirements for customer-related CHECKIN requirements: EMERGENCY_CONTACT_DETAILS, PASSPORT_ISSUE_DATE, PASSPORT_PLACE_OF_ISSUE, PLACE_OF_BIRTH.
There is currently no way to fulfill the following CHECKIN requirements via the API: PICKUP_POINT, APPLICATION_FORM_RECEIVED, COPY_OF_PASSPORT, CRIMINAL_BACKGROUND_CHECK_RECEIVED, LETTER_OF_INVITATION, LETTER_OF_REFERENCE_RECEIVED, PASSPORT_SIZED_PHOTO_RECEIVED. PICKUP_POINT relies on a new Location resource that will be released in the future. The other 7 CHECKIN requirements relies on the ability to POST/PUT documents, which will also be released in the future. The following CHECKIN requirements are fulfilled by G Adventures staff: COPY_OF_PASSPORT_SENT, COPY_OF_VISA_SENT, FIRST_NIGHT_HOTEL. The best way to know when these have been fulfilled is by monitoring the departure service resouce with Webhooks.
A departure service voucher will be generated by G Adventures staff once all CHECKIN requirements have been fulfilled. Again, the best way to know when these have been fulfilled is by monitoring the departure service resouce with Webhooks..
See the Booking Requirements section for details about each requirement and how it relates to departure service fields.
CHECKIN requirements must be met before the booking’s ‘date_of_first_travel’. We recommend obtaining these details from customers ASAP. Some implementations may want to request this information from the customer at time of booking so that the data can be used when creating the departure service as opposed to having to update it later. With that said, many customers do not have this information at the time of booking. As such, a process to update the information at a later date is usually needed.
Suggested testing tour dossiers: id 22429 (EWLA ‘product_line’) has ARRIVAL_FLIGHT_DETAILS, DEPARTURE_FLIGHT_DETAILS, and TRAVELLER_HEIGHT as CHECKIN requirements Suggested testing tour dossiers: id 21838 (PHPT ‘product_line’) has INTERNATIONAL_TICKET_NUMBER as CHECKIN requirement
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first: Confirming a Departure Service
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
a departure service with an ‘incomplete_requirement’ item of ‘type’ “CHECKIN” and ‘code’ equal to that of the specific requirement
Postconditions
the departure service ‘incomplete_requirement’ item no longer appears in the list
the departure service list field associated with the particular requirement (‘arrival_flight_details’, ‘departure_flight_details’, ‘international_ticket_numbers’, or ‘traveller_heights’), has an item for each customer on the departure service, and all fields are not null for the item.
Booking Add Ons¶
Booking Accommodations
Description
Add a Confirmed accommodation service to a booking with existing customers from a Confirmed departure service.
An accommodation service cannot be booked as a stand-alone product. A departure service must first be booked where the underlying departure ‘product’ contains the accommodation in the list of addons
.
Usually an accommodation service is:
pre-night(s) Hotel before the start of a departure service, identified by the
addons
list item ‘finish_date’ matching the ‘start_date’ of the associated departurepost-night(s) Hotel at the end of a departure service, identified by the
addons
list item ‘start_date’ matching the ‘finish_date’ of the associated departure
There cannot be any gaps between the ‘finish_date’ of a pre-night accommodation service and the ‘start_date’ of the associated departure service. Similarly, there cannot be any gaps between the ‘start_date’ of a post-night accommodation service and the ‘finish_date’ of the associated departure service.
In most cases, the available accommodation addons
will be at the same Hotel as the start or end of a departure. This can be verified by comparing the accommodation ‘address’ to the ‘start_address’ or ‘finish_address’ of the departure.
When adding an accommodation service to a Confirmed departure service, it will automatically be Confirmed. It is also possible to add an accommodation service to a departure service on Option, however the status of the new accommodation service will mirror that of the departure service (Option).
Suggested testing tour dossier below contains departures which have pre &
post accommodation addons
:
Request
curl -H "X-Application-Key: YOUR_APPLICATION_KEY"
https://rest.gadventures.com/tour_dossiers/23735
Response
{ "id": "23735", "href": "https://rest.gadventures.com/tour_dossiers/23735", "name": "Explore Belize", "slug": "explore-belize", "product_line": "CBENG", "departures_start_date": "2015-07-17", "departures_end_date": "2029-12-31", "description": "Whether relaxing on the beach or immersing yourself in the local culture, refresh your spirit on a 10-day adventure in Belize. Explore some of best-preserved Mayan ruins anywhere, take part in a Garifuna drumming lesson, discover a monkey sanctuary and remote jungle villages, and swim in the luxuriously warm waters off Caye Caulker. Leave your to-do list at home, and slow down to the pace of this special place in the sun.", "booking_companies": [ { "id": "1", "href": "https://rest.gadventures.com/booking_companies/1" } ], "structured_itineraries": [ { "id": "2251", "variation_id": "4612", "href": "https://rest.gadventures.com/itineraries/2251/4612", "valid_during_ranges": [ { "start_date": "2017-01-01", "end_date": null } ] }, { "id": "2251", "variation_id": "4034", "href": "https://rest.gadventures.com/itineraries/2251/4034", "valid_during_ranges": [ { "start_date": "2016-09-09", "end_date": "2016-12-31" } ] }, { "id": "2251", "variation_id": "2633", "href": "https://rest.gadventures.com/itineraries/2251/2633", "valid_during_ranges": [ { "start_date": "2015-07-17", "end_date": "2016-09-08" } ] } ], "details": [ { "body": "Your Journeys Highlight Moment: Tortilla-Making Lesson, San Ignacio\nYour Journeys Highlight Moment: Howler Monkey Experience, San Ignacio\nYour Journeys Highlight Moment: Garifuna Drumming Lesson and Performance, Hopkins\nYour G for Good Moment: San Antonio Women's Cooperative visit with Pottery Class and Local Lunch, San Ignacio\nYour Welcome Moment: Meet Your CEO and Group\nYour Discover Moment: San Ignacio\nYour Discover Moment: Caye Caulker. Arrival transfer. Lamanai ruins guided tour. Tour a hot sauce factory. Visit Belize Tropical Education Center. Farewell dinner at a local Caye Caulker restaurant. All transport between destinations and to/from included activities.", "detail_type": { "id": "30", "label": "What's Included" } }, { "body": "Explore the jungle-set Mayan ruins of Lamanai, enjoy a traditional Cayo lunch at a women's cooperative in San Antonio, learn how to drum with a lesson at the Lebeha Drumming Center, taste the difference at Marie Sharp's hot sauce factory, chill out and enjoy the tropical island vibe on Caye Caulker", "detail_type": { "id": "2", "label": "Highlights" } }, { "body": "The information in this trip details document has been compiled with care and is provided in good faith. However it is subject to change, and does not form part of the contract between the client and the operator. The itinerary featured is correct at time of printing. It may differ slightly to the one in the brochure. Occasionally our itineraries change as we make improvements that stem from past travellers, comments and our own research. Sometimes it can be a small change like adding an extra meal along the itinerary. Sometimes the change may result in us altering the tour for the coming year. Ultimately, our goal is to provide you with the most rewarding experience. Please note that our brochure is usually released in November each year. If you have booked from the previous brochure you may find there have been some changes to the itinerary. \r\n\r\nVERY IMPORTANT: Please ensure that you print a final copy of your Trip Details to review a couple of days prior to travel, in case there have been changes that affect your plans.", "detail_type": { "id": "79", "label": "Dossier Disclaimer" } }, { "body": "While it is our intention to adhere to the route described below, there is a certain amount of flexibility built into the itinerary and on occasion it may be necessary, or desirable to make alterations. The itinerary is brief, as we never know exactly where our journey will take us. Due to our style of travel and the regions we visit, travel can be unpredictable. The Trip Details document is a general guide to the tour and region and any mention of specific destinations or wildlife is by no means a guarantee that they will be visited or encountered. Aboard expedition trips visits to research stations depend on final permission. \r\n\r\nAdditionally, any travel times listed are approximations only and subject to vary due to local circumstances.", "detail_type": { "id": "25", "label": "Itinerary Disclaimer" } }, { "body": "1. POST-ACCOMMODATION\r\nFor any post tour accommodation you have the option of booking at either Caye Caulker or Belize City.\r\n\r\n2. DEPARTURE DETAILS\r\nPlease note that this trip finishes in Caye Caulker, which is located one hour by water taxi from Belize city. There are frequent departures between 7:30am and 5pm.\r\n\r\n3. COMBO TRIP\r\nPlease note that this trip is part of a combination of multiple G Adventures tours. As such, the CEO, staff and/or particular vehicles operating your tour may change between tour segments. You may also expect some group members to join or leave the tour, between tour segments.", "detail_type": { "id": "26", "label": "Important Notes" } }, { "body": "All G Adventures group trips are accompanied by one of our group leaders, a G Adventures representative, or an expedition team. The aim of the group leader is to take the hassle out of your travels and to help you have the best trip possible. They will provide information on the places you are travelling through, offer suggestions for things to do and see, recommend great local eating venues and introduce you to our local friends. While not being guides in the traditional sense you can expect them to have a broad general knowledge of the countries visited on the trip, including historical, cultural, religious and social aspects. We also use local guides where we think more specific knowledge will add to the enjoyment of the places we are visiting- we think it's the best of both worlds.", "detail_type": { "id": "27", "label": "Group Leader Description" } }, { "body": "Max 16, avg 12", "detail_type": { "id": "5", "label": "Group Size Notes" } }, { "body": "9 breakfasts, 2 lunches, 1 dinner", "detail_type": { "id": "10", "label": "Meals Included" } }, { "body": "Eating is a big part of traveling. Travelling with G Adventures you experience the vast array of wonderful food that is available out in the world. Generally meals are not included in the trip price when there is a choice of eating options, to give you the maximum flexibility in deciding where, what and with whom to eat. It also gives you more budgeting flexibility, though generally food is cheap. Our groups tend to eat together to enable you to taste a larger variety of dishes and enjoy each other's company. There is no obligation to do this though. Your CEO will be able to suggest favourite restaurants during your trip. Please refer to the meals included and budget information for included meals and meal budgets.", "detail_type": { "id": "38", "label": "Meals" } }, { "body": "Private vehicle, water taxi, walking.", "detail_type": { "id": "7", "label": "Transport" } }, { "body": "We believe single travellers should not have to pay more to travel so our group trips are designed for shared accommodation and do not involve a single supplement. Single travellers joining group trips are paired in twin or multi-share accommodation with someone of the same sex for the duration of the trip. Some of our Independent trips are designed differently and single travellers on these itineraries must pay the single trip price.", "detail_type": { "id": "28", "label": "Solo Travellers" } }, { "body": "Hotels (9 nts).", "detail_type": { "id": "6", "label": "Accommodation" } }, { "body": "Please note that if you have booked the \"My Own Room\" option for this tour, you will receive your own single room for all night stops except Day 6-7 (Hopkins)", "detail_type": { "id": "114", "label": "My Own Room" } }, { "body": "Please note that hotels vary greatly throughout Central America and even within Belize depending on the location. We do our best to pick comfortable accommodations, but in remote places, options can be limited. It also is important to remember that hot water shortages and power outages can be fairly common in Belize (even in upgraded hotels). We appreciate your patience and understanding that these occurrences are outside of our control. ", "detail_type": { "id": "102", "label": "About Accommodation" } }, { "body": "For details of your joining hotel please refer to your tour voucher, G Account, the G Adventures App or contact your travel agent.", "detail_type": { "id": "46", "label": "Joining Hotel" } }, { "body": "An arrival transfer is included when you arrive on Day 1, or if you arrive up to three days prior provided that you have booked your pre-accommodation through National Geographic Journeys in our joining hotel. Due to customer experience and quality considerations, all services related to the tour must be continuous.\r\n\r\nOur driver will be waiting for you with a National Geographic Journeys sign with your name on it, and they will be waiting for you outside the luggage hall. There most likely will be many signs, so please check carefully for your name.\r\n\r\nPlease note that Day 1 is an arrival day and no activities have been planned, so you may arrive at any time. Similarly the last day is a departure day in which no activities are planned.\r\n\r\nYour CEO will contact you at the hotel on Day 1 and make sure you are settled comfortably. If you arrive late, they will leave you a message detailing what time and where you should meet the next morning. Your CEO will organize a short meeting soon after arrival, during which you will meet other tour participants and receive information about general and specific aspects of the trip.", "detail_type": { "id": "48", "label": "Joining Instructions" } }, { "body": "We don't expect any problems, and nor should you, but if for any reason you are unable to commence your trip as scheduled, as soon as possible please contact your starting point hotel, requesting that you speak to or leave a message for your CEO (if you are not on a group tour please refer to the emergency contact details provided in this dossier). If you are unable to get in touch with your leader, please refer to our emergency contact details. If you have pre-booked an airport transfer and have not made contact with our representative within 30 minutes of clearing customs and immigration, we recommend that you make your own way to the Starting Point hotel, following the Joining Instructions. Please apply to your travel agent on your return for a refund of the transfer cost if this occurs.", "detail_type": { "id": "49", "label": "Arrival Complications" } }, { "body": "Should you need to contact us during a situation of dire need, it is best to first call either the G Adventures Local Operator (if one is listed below) or our G Adventures Local Office. If for any reason you do not receive an immediate answer, please leave a detailed message and contact information, so they may return your call and assist you as soon as possible. \r\n\r\nAIRPORT TRANSFER\r\nIf you have purchased an arrival through G Adventures or if an arrival transfer is included in the cost of your tour, please note that:\r\n\r\nYour arrival transfer has been arranged based on flight information provided to us. If you are advised of a flight schedule change within 48 hours of your scheduled arrival time, we will do our best to rearrange your arrival transfer however we cannot guarantee this. If your arrival transfer does not arrive within 30 minutes after you have exited the arrivals area please take a taxi to your start point hotel.\r\n\r\nEMERGENCY CONTACT NUMBERS\r\n\r\nG Adventures Office San Jose, Costa Rica\r\nDuring Office hours (Weekdays 9am-5pm Local Time): +506 4001 8474\r\nAfter hours emergency number: +506 8322 9140\r\n\r\nIf you are unable for any reason to contact our local office, please call the numbers listed below, which will connect you directly with our 24 hour Sales team, who will happily assist you.\r\n\r\nToll-free, North America only: 1 888 800 4100\r\nCalls from UK: 0344 272 0000\r\nCalls from Germany: 0800 365 1000\r\nCalls from Australia: 1 300 796 618\r\nCalls from New Zealand: 0800 333 307 \r\nOutside North America, Australia, New Zealand, Germany and the UK: +1 416 260 0999", "detail_type": { "id": "50", "label": "Emergency Contact" } }, { "body": "This trip finishes on Caye Caulker, which is located one hour by water taxi from Belize city (an additional 30 min by taxi to the airport). There are frequent ferry departures between 7:30am and 5pm - if you are flying home on day 10 of the trip, please ensure your flight departure is no earlier than 11:30AM. You can purchase your return ferry ticket easily once you get to Caye Caulker. \r\n\r\nShould you wish to have additional post nights in Caye Caulker or Belize City, please ask your sales agent.", "detail_type": { "id": "99", "label": "Finishing Point Instructions" } }, { "body": "We recommend using a backpack for your convenience, or a medium-sized suitcase if you prefer. A daypack is also essential for carrying everyday items. Space is limited on transportation, so there is a limit of one main piece of luggage per person. You will be responsible for carrying your own luggage.", "detail_type": { "id": "58", "label": "What to Take" } }, { "body": "Documents:\n• Flight info (required) (Printouts of e-tickets may be required at the border)\n• Insurance info (required) (With photocopies)\n• Passport (required) (With photocopies)\n• Required visas or vaccination certificates (required) (With photocopies)\n• Vouchers and pre-departure information (required)\n\nEssentials:\n• Binoculars (optional)\n• Camera (With extra memory cards and batteries)\n• Cash, credit and debit cards\n• Day pack (Used for daily excursions or short overnights)\n• Ear plugs\n• First-aid kit (should contain lip balm with sunscreen, sunscreen, whistle, Aspirin, Ibuprofen, bandaids/plasters, tape, anti-histamines, antibacterial gel/wipes, antiseptic cream, Imodium or similar tablets for mild cases of diarrhea, rehydration powder, water purification tablets or drops, insect repellent, sewing kit, extra prescription drugs you may be taking)\n• Flashlight/torch (Headlamps are ideal)\n• Fleece top/sweater\n• Footwear\n• Hat\n• Locks for bags\n• Long pants/jeans\n• Moneybelt\n• Outlet adapter\n• Personal entertainment (Reading and writing materials, cards, music player, etc.)\n• Reusable water bottle\n• Shirts/t-shirts\n• Sleepwear\n• Small travel towel\n• Sunglasses\n• Toiletries (Preferably biodegradable)\n• Watch and alarm clock\n• Waterproof backpack cover\n• Windproof rain jacket\n\nSmart Dress:\n• Smart outfit (For evenings out)\n\nWarm Weather:\n• Sandals/flip-flops\n• Shorts/skirts (Longer shorts/skirts are recommended)\n• Sun hat/bandana\n• Swimwear", "detail_type": { "id": "59", "label": "Packing List" } }, { "body": "Laundry facilities are offered by some of our hotels for a charge. There will be times when you may want to or have to do your own laundry so we suggest you bring non-polluting/biodegradable soap.", "detail_type": { "id": "57", "label": "Laundry" } }, { "body": "All countries require a valid passport (with a minimum 6 months validity). Contact your local embassy, or consulate for the most up-to-date visa requirements, or see your travel agent.", "detail_type": { "id": "32", "label": "Visas and Entry Requirements" } }, { "body": "Every traveller is different and therefore spending money requirements will vary. Some travellers may drink more than others while other travellers like to purchase more souvenirs than most. Please consider your own spending habits when it comes to allowing for drinks, shopping and tipping. Please also remember the following specific recommendations when planning your trip.", "detail_type": { "id": "37", "label": "Spending Money" } }, { "body": "Credit cards and debit cards are very useful for cash advances. Visa cards are the most widely accepted cards. While ATMs are widely available, there are no guarantees that your credit or debit cards will actually work in Latin America. Check with your bank. You should be aware that to purchase products or services on a credit card a fee of 5%-10% usually applies. Do not rely on credit or debit cards as your only source of money. A combination of US dollars cash and cards with travellers cheques as backup is best. Always take more rather than less, as you don't want to spoil the trip by constantly feeling short of funds.\r\n\r\nCURRENCY EXCHANGE TIP: Please be advised that slightly torn notes, notes that have been heavily marked or are faded may be difficult to exchange. It is best to bring notes in fairly good condition, in denominations lower than 100USD (or equivalent). \r\n\r\nAs currency exchange rates can fluctuate often we ask that you refer to the following website for daily exchange rates: www.xe.com", "detail_type": { "id": "36", "label": "Money Exchange" } }, { "body": "Please also make sure you have access to at least an additional USD $200 (or equivalent) as an 'emergency' fund, to be used when circumstances outside our control (ex. a natural disaster) require a change to our planned route. This is a rare occurrence!", "detail_type": { "id": "43", "label": "Emergency Fund" } }, { "body": "Airport tax - USD39\r\nDeparture fee when leaving Belize by land - BZ 40 or USD 20\r\n", "detail_type": { "id": "42", "label": "Departure Tax" } }, { "body": "It is customary in Latin America to tip service providers such as waiters, at approximately 10%, depending on the service. Tipping is an expected - though not compulsory - component of your tour program and an expression of satisfaction with the persons who have assisted you on your tour. Although it may not be customary to you, it is of considerable significance to the people who will take care of you during your travels. There are several times during the trip where there is opportunity to tip the local guides or drivers we use. Recommendations for tipping drivers and local guides would range from $5-10 USD per day depending on the quality and length of the service; ask your CEO for specific recommendations based on the circumstances and culture.\r\n\r\nAlso at the end of each trip if you felt your G Adventures Chief Experience Officer did an outstanding job, tipping is appreciated. The amount is entirely a personal preference, however as a guideline $20-25 USD per person, per week can be used.", "detail_type": { "id": "41", "label": "Tipping" } }, { "body": "Actun Tunichil Muknal\n- Actun Tunichil Muknal Cave Visit (90USD per person)\n\nXunantunich\n- Xunantunich Visit (5USD per person)\n\nSan Ignacio\n- Butterfly Gardens (8USD per person)\n\nCaves Branch\n- Cave Tubing (75USD per person)\n\nBarton Creek\n- Barton Creek Cave Canoeing (50-75USD per person)\n\nHopkins\n- Biking (5-10USD per person)\n- Bike Rental\n- Cockscomb Basin Wildlife Sanctuary Visit (70-180USD per person)\n- Mayflower Bocawina Forest Reserve Visit (20-165USD per person)\n\nTobacco Caye\n- Tobacco Caye Visit and Snorkel (70USD per person)\n\nCaye Caulker\n- Bike with Purpose Rental (7-30USD per person)\n- Sunset Sailing Boat Tour (35USD per person)\n- Hol Chan Snorkel Tour (80USD per person)\n- Hol Chan Marine Reserve Visit\n", "detail_type": { "id": "40", "label": "Optional Activities" } }, { "body": "Please note inoculations may be required for the country visited. It is your responsibility to consult with your travel doctor for up to date medical travel information well before departure. \r\n\r\nYou should consult your doctor for up-to-date medical travel information well before departure. We recommend that you carry a First Aid kit and hand sanitizers / antibacterial wipes as well as any personal medical requirements. Please be aware that quite often we are in remote areas and away from medical facilities, and for legal reasons our leaders are prohibited from administering any type of drug including headache tablets, antibiotics, etc. When selecting your trip please carefully read the brochure and itinerary and assess your ability to cope with our style of travel. Please refer to the Physical and Culture Shock ratings for trip specific information. G Adventures reserves the right to exclude any traveller from all or part of a trip without refund if in the reasonable opinion of our CEO they are unable to complete the itinerary without undue risk to themselves and/or the rest of the group.", "detail_type": { "id": "33", "label": "Health" } }, { "body": "Many national governments provide a regularly updated advice service on safety issues involved with international travel. We recommend that you check your government's advice for their latest travel information before departure. We strongly recommend the use of a neck wallet or money belt while travelling, for the safe keeping of your passport, air tickets, travellers' cheques, cash and other valuable items. Leave your valuable jewellery at home - you won't need it while travelling. Many of the hotels we use have safety deposit boxes, which is the most secure way of storing your valuables. A lock is recommended for securing your luggage. When travelling on a group trip, please note that your CEO has the authority to amend or cancel any part of the trip itinerary if it is deemed necessary due to safety concerns. Your CEO will accompany you on all included activities. During your trip you will have some free time to pursue your own interests, relax and take it easy or explore at your leisure. While your CEO will assist you with options available in a given location please note that any optional activities you undertake are not part of your itinerary, and we offer no representations about the safety of the activity or the standard of the operators running them. Please use your own good judgment when selecting an activity in your free time. Although the cities visited on tour are generally safe during the day, there can be risks to wandering throughout any major city at night. It is our recommendation to stay in small groups and to take taxis to and from restaurants, or during night time excursions.\r\n\r\nProtests and Demonstrations- Protests and demonstrations, even those that are well intended, have the potential to turn violent with no warning. Counter protests can also turn violent. Action by security forces to disperse demonstrators and protesters may occur at any time. If you are in an area where demonstrators or protesters are gathering, avoid the temptation of staying for a good photo opportunity and leave the area immediately.\r\n\r\nWater based activities have an element of danger and excitement built into them. We recommend only participating in water based activities when accompanied by a guide(s). We make every reasonable effort to ensure the fun and adventurous element of any water based activities (in countries with varying degrees of operating standards) have a balanced approach to safety. It is our policy not to allow our CEOs to make arrangements on your behalf for water based activities that are not accompanied by guide(s).\r\n\r\nSwimming, including snorkeling, is always at your own risk.\r\n\r\nWe take all prudent measures in relation to your safety. For ways to further enhance your personal safety while traveling, please visit: \r\n\r\n<a href=\"http://www.gadventures.com/travel-resources/safety/\">\r\nwww.gadventures.com/travel-resources/safety/</a>", "detail_type": { "id": "61", "label": "Safety and Security" } }, { "body": "Belize City can be dangerous during the night - please ensure you use taxis. Also on Caye Caulker exercise caution and do not walk around alone at night. There have also been cases of drinks being spiked here.", "detail_type": { "id": "62", "label": "Trip Specific Safety" } }, { "body": "Illegal drugs will not be tolerated on any trips. Possessing or using drugs not only contravenes the laws of the land but also puts the rest of the group at risk. Smoking marijuana and opium is a part of local culture in some parts of the world but is not acceptable for our travellers. Our philosophy of travel is one of respect towards everyone we encounter, and in particular the local people who make the world the special place it is. The exploitation of prostitutes is completely contrary to this philosophy. Our CEOs have the right to expel any member of the group if drugs are found in their possession or if they use prostitutes.", "detail_type": { "id": "65", "label": "A Couple of Rules" } }, { "body": "Travel Insurance: Travel insurance is compulsory in order to participate on any of our trips. When travelling on a group trip, you will not be permitted to join the group until evidence of travel insurance has been sighted by your CEO, who will take note of your insurance details. When selecting a travel insurance policy please bear in mind that all clients must have medical coverage and that we require a minimum coverage of USD 200,000 for repatriation and emergency rescue. We strongly recommend that the policy also covers personal liability, cancellation, curtailment and loss of luggage and personal effects. If you have credit card insurance we require proof of purchase of the trip (a receipt of credit card statement) with a credit card in your name. Contact your bank for details of their participating insurer, the level of coverage and emergency contact telephone number.", "detail_type": { "id": "31", "label": "Travel Insurance" } }, { "body": "Please make sure to ask for permission while photographing local people!", "detail_type": { "id": "82", "label": "Trip Specific Responsible Travel" } }, { "body": "The Planeterra Foundation <a href=\"https://www.planeterra.org\">planeterra.org</a> is a Canadian non-profit organization that helps empower local people to develop their communities, conserve their cultures, and create humane and supportive systems for their endeavours. Planeterra provides capacity building and catalyst grants to get community social enterprises off the ground. These businesses address local challenges by providing benefits for indigenous people, empowering marginalized women, and granting disadvantaged youth access to education, employment, and brighter futures. Planeterra also works to ensure these businesses have a thriving customer base by integrating programs into G Adventures’ itineraries globally.\r\n\r\nG Adventures is Planeterra’s largest corporate donor, covering all operating costs so 100% of your donation will bring opportunity to people in need. \r\n \r\nDollar-a-Day Program\r\nG Adventures’ Dollar-a-Day Program provides travellers with the opportunity to give back to the people and places visited on our tours by donating one dollar for every day you are on trip. 100% of these donations go directly to support community development projects worldwide that are implemented by Planeterra.", "detail_type": { "id": "67", "label": "Planeterra-The G Adventures Foundation" } }, { "body": "After your travels, we want to hear from you! Your feedback information is so important to us that we'll give you 5% off the price of your next G Adventures trip if your feedback is completed on-line within 30 days of finishing your trip. Your tour evaluation will be e-mailed to you 24 hours after the conclusion of your trip. If you do not receive the tour evaluation link in the days after your tour has finished, please drop us a line at customerservice@gadventures.com and we will send it on to you. ", "detail_type": { "id": "66", "label": "Feedback" } }, { "body": "Our adventure travel e-newsletter is full of travel news, trip information, interesting stories and contests. To avoid missing out on special offers and updates from G Adventures, subscribe at <a href=\"https://www.gadventures.com/newsletters/\">www.gadventures.com/newsletters/</a>\r\n\r\nStay current on how our company invests in our global community through our foundation – Planeterra. Sign up for <a href=\"http://letsgo.gadventures.com/Planeterra-Consumers_Planeterra-Newsletter-Signup-Page.html\">Planeterra's monthly news</a> to learn more about how to give back and support the people and places we love to visit.\r\n", "detail_type": { "id": "69", "label": "Newsletter" } }, { "body": "You must be 18 to travel unaccompanied on a G Adventures tour. For minors travelling with a guardian over 21 years old, the minimum age is 12.", "detail_type": { "id": "134", "label": "Minimum Age" } }, { "body": "Check-in times and baggage allowances/restrictions vary by airline and can change at any time. For the most up-to-date information for your flight, please contact your airline. We recommend checking in online in advance to avoid potential delays at the airport.", "detail_type": { "id": "146", "label": "International Flights" } }, { "body": "15", "detail_type": { "id": "113", "label": "Max Pax" } }, { "body": "Chief Experience Officer (CEO) throughout, local guides", "detail_type": { "id": "18", "label": "Group Leader" } } ], "categories": [ { "id": "320", "href": "https://rest.gadventures.com/tour_categories/320", "category_type": { "id": "16", "href": "https://rest.gadventures.com/tour_categories/16", "label": "Travel Style" }, "name": "National Geographic Journeys" }, { "id": "31", "href": "https://rest.gadventures.com/tour_categories/31", "category_type": { "id": "28", "href": "https://rest.gadventures.com/tour_categories/28", "label": "Service Level" }, "name": "Upgraded" }, { "id": "35", "href": "https://rest.gadventures.com/tour_categories/35", "category_type": { "id": "33", "href": "https://rest.gadventures.com/tour_categories/33", "label": "Physical Grading" }, "name": "2 - Light" }, { "id": "59", "href": "https://rest.gadventures.com/tour_categories/59", "category_type": { "id": "58", "href": "https://rest.gadventures.com/tour_categories/58", "label": "Trip Type" }, "name": "Small Group" } ], "advertised_departures": [], "geography": { "region": { "id": "1", "name": "Central America" }, "primary_country": { "id": "BZ", "href": "https://rest.gadventures.com/countries/BZ", "name": "Belize" }, "start_country": { "id": "BZ", "href": "https://rest.gadventures.com/countries/BZ", "name": "Belize" }, "finish_country": { "id": "BZ", "href": "https://rest.gadventures.com/countries/BZ", "name": "Belize" }, "visited_countries": [ { "id": "BZ", "href": "https://rest.gadventures.com/countries/BZ", "name": "Belize" } ], "start_city": { "id": "805162", "href": "https://rest.gadventures.com/places/805162", "name": "Belize City" }, "finish_city": { "id": "804918", "href": "https://rest.gadventures.com/places/804918", "name": "Caye Caulker" } }, "images": [ { "type": "MAP", "image_href": "https://media-gadventures.global.ssl.fastly.net/media-server/dynamic/admin/maps/2016/CBENG.png" }, { "type": "BANNER", "image_href": "https://media-gadventures.global.ssl.fastly.net/media-server/cache/7c/90/7c9027a3cbc5d422a54f18abe333fdcd.jpg" }, { "type": "BANNER_DESKTOP", "image_href": "https://media-gadventures.global.ssl.fastly.net/media-server/cache/40/30/4030062b5773835a89dc8045d9ff1d0f.jpg" }, { "type": "BANNER_HIRES", "image_href": "https://media-gadventures.global.ssl.fastly.net/media-server/dynamic/admin/trip-banners/central-america/belize/CBENG/TripBanner-CBENG2.jpg" }, { "type": "LARGE_SQUARE", "image_href": "https://media-gadventures.global.ssl.fastly.net/media-server/cache/e0/ab/e0abddd1ab4d5fe9c8cd48d322b295c4.jpg" } ], "site_links": [ { "type": "OVERVIEW", "href": "https://www.gadventures.com/trips/explore-belize/CBENG/" }, { "type": "DETAILS", "href": "https://www.gadventures.com/trips/explore-belize/CBENG/details/" }, { "type": "PRICING", "href": "https://www.gadventures.com/trips/explore-belize/CBENG/pricing/" }, { "type": "DETAILS_PDF", "href": "https://www.gadventures.com/trips/explore-belize/CBENG/details/download/" } ], "tour": { "id": 23735, "href": "https://rest.gadventures.com/tours/23735" }, "departures": { "href": "https://rest.gadventures.com/tour_dossiers/23735/departures" } }
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first: Confirming a Departure Service
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
a departure service with ‘status’ “Confirmed”
the departure service ‘product’, is a departure with an
addons
item of type “accommodations”the departure service ‘product’, is a departure with ‘availability.status’ not equal to “REQUEST_SPACE”
the accommodation ‘rooms’ list has an item with ‘availability.status’ of “AVAILABLE”
the number of departure service existing customers is less than or equal to the value of the accommodation ‘rooms’ list item ‘availability.status.total’
the number of nights being booked, must be between the ‘min_nights’ and ‘max_nights’ of the accommodation ‘rooms’ list item
the ‘start_date’ and ‘finish_date’ being booked must be within the ‘start_date’ and ‘finish_date’ of one of the accommodation ‘season_dates’ for the ‘rooms’ list item
the ‘start_date’ and ‘finish_date’ being booked can not be within the ‘start_date’ and ‘finish_date’ of one of the accommodation ‘blackout_dates’ for the ‘rooms’ list item
the number of departure service existing customers must be within the ‘min_travellers’ and ‘max_travellers’ of one of the accommodation ‘price_bands’ for the ‘rooms’ list item
the existing departure service’s customers must be within the ‘min_age’ (if not null) and ‘max_age’ (if not null) of one of the accommodation ‘price_bands’ for the ‘rooms’ list item
Postconditions
a new accommodation service is created and listed under the booking services sub-resource
the new accommodation service has ‘status’ “Confirmed”
the new accommodation service has ‘status_transitions’ [“Request Cancellation”]
the new accommodation service has ‘start_date’ and ‘finish_date’ matching the input values
the new accommodation service ‘customers’ list is the same as the departure service
the new accommodation service has an ‘date_confirmed’ with the current date/time
the new accommodation service has a null ‘option_expiry_date’
the new accommodation service ‘purchase_price’ matches the currency-specific price listed in the accommodation (as per preconditions), multiplied by the number of customers
the new accommodation service ‘product’ is linked to the accommodation
the new accommodation service ‘room’ dictionary ‘code’, ‘name’, and ‘class’ values match that of the accommodation ‘rooms’ list item
a new invoice is created and listed under the booking’s invoices sub-resource
Booking Transports¶
Description
Add a Confirmed transport service to a booking with existing customers from a Confirmed departure service.
A transport service cannot be booked as a stand-alone product. A departure service must first be booked where the underlying departure ‘product’ contains the transport in the list of addons
.
Usually a transport service is:
arrival transfer (from airport) before the start of a departure service, identified by the
addons
list item ‘finish_date’ matching the ‘start_date’ of the associated departuredeparture transfer at the end (to airport) of a departure service, identified by the
addons
list item ‘start_date’ matching the ‘finish_date’ of the associated departure
There cannot be any gaps between the ‘finish_date’ of an arrival transport service and the ‘start_date’ of the associated departure service. Similarly, there cannot be any gaps between the ‘start_date’ of a post-night accommodation service and the ‘finish_date’ of the associated departure service. The exception to each of these rules occurs when either pre-night or post-night accommodation services are booked at the start or end of a departure service. In this case, there cannot be any gaps between the ‘finish_date’ of an arrival transport service and the ‘start_date’ of the earliest pre-night accommodation service. Similarly, there cannot be any gaps between the ‘start_date’ of a departure transport service and the ‘finish_date’ of the last accommodation service. In both cases, the accommodation services are those that are related to the same departure service for which the transport service is being added. The departure service has an underlying departure ‘product’. This departure contains all accommodations and transports in the addons
list.
In most cases, the available transport addons
will finish/start at the start/finish point of the departure. For arrival transfers, this can be verified by comparing the transport ‘finish_address’ to the ‘start_address’ of the departure. For departure transfers, this can be verified by comparing the transport ‘start_address’ to the ‘finish_address’ of the departure.
When adding a transport service to a Confirmed departure service, it will automatically be Confirmed. It is also possible to add an transport service to a departure service on Option, however the status of the new transport service will mirror that of the departure service (Option). The following fields are required to Confirm (automatically or manually) a transport service: ‘pickup_time’ & ‘flight_number’. An Option can be booked without these details, and then they can be added at Confirmation time.
Suggested testing tour dossier: DTWE Tour Dossier. Departures have arrival & departure transport addons
.
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first: Confirming a Departure Service
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
a departure service with ‘status’ “Confirmed”
the departure service ‘product’, is a departure with an
addons
item of type “transports”the departure service ‘product’, is a departure with ‘availability.status’ not equal to “REQUEST_SPACE”
the transport has an ‘availability.status’ of “AVAILABLE”
the number of departure service existing customers is less than or equal to the value of the transport ‘availability.status.total’
the ‘start_date’ and ‘finish_date’ being booked must be within the ‘start_date’ and ‘finish_date’ of one of the transport ‘season_dates’ for the ‘price_bands’ list item
the ‘start_date’ and ‘finish_date’ being booked can not be within the ‘start_date’ and ‘finish_date’ of one of the transport ‘blackout_dates’ for the ‘price_bands’ list item
the number of departure service existing customers must be within the ‘min_travellers’ and ‘max_travellers’ of one of the transport ‘price_bands’ list item
the existing departure service’s customers must be within the ‘min_age’ (if not null) and ‘max_age’ (if not null) of one of the transport ‘price_bands’ list item
Postconditions
new transport service is created and listed under the booking services sub-resource
the new transport service has ‘status’ “Confirmed”
the new transport service has ‘status_transitions’ [“Request Cancellation”]
the new transport service has ‘start_date’ and ‘finish_date’ matching the ‘start_date’ input values (should be the same)
the new transport service ‘customers’ list is the same as the departure service
the new transport service has an ‘date_confirmed’ with the current date/time
the new transport service has a null ‘option_expiry_date’
the new transport service ‘purchase_price’ matches the currency-specific price listed in the transport (as per preconditions), multiplied by the number of customers
the new transport service ‘product’ is linked to the transport
the new transport service ‘pickup_time’ and ‘flight_number’ are not null
a new invoice is created and listed under the booking’s invoices sub-resource
Booking Activities
Description
Add a Confirmed activity service to a booking with existing customers from a Confirmed departure service.
An activity service is an optional activity that occurs during a departure service, but has an additional charge to participate. Some examples suggested for testing:
Costa Rica Adrenaline Theme Pack (see ‘addons’ for a departure of tour dossier example: CRQ Tour Dossiers)
Antarctica Kayaking, Antarctica Camping (see ‘addons’ for a departure of tour dossier example: XVCASX Tour Dossiers)
It cannot be booked as a stand-alone product. A departure service must first be booked where the underlying departure ‘product’ contains the activity in the list of addons
.
When adding an activity service to a Confirmed departure service, it will automatically be Confirmed. It is also possible to add an activity service to a departure service on Option, however the status of the new activity service will mirror that of the departure service (Option). When the departure service is Confirmed, any associated activity services will also automatically be Confirmed.
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first: Confirming a Departure Service
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
a departure service with ‘status’ “Confirmed”
the departure service ‘product’, is a departure with an
addons
’ item of type “activities”the departure service ‘product’, is a departure with ‘availability.status’ not equal to “REQUEST_SPACE”
the activity has an ‘availability.status’ of “AVAILABLE”
the number of departure service existing customers is less than or equal to the value of the activity ‘availability.status.total’
the number of departure service existing customers must be within the ‘min_travellers’ and ‘max_travellers’ of one of the activity ‘price_bands’ list item
the existing departure service’s customers must be within the ‘min_age’ (if not null) and ‘max_age’ (if not null) of one of the activity ‘price_bands’ list item
Postconditions
a new activity service is created and listed under the booking services sub-resource
the new activity service has ‘status’ “Confirmed”
the new activity service has ‘status_transitions’ [“Request Cancellation”]
the new activity service has ‘start_date’ and ‘finish_date’ match those of the activity
the new activity service ‘customers’ list is the same as the departure service
the new activity service has an ‘date_confirmed’ with the current date/time
the new activity service has a null ‘option_expiry_date’
the new activity service ‘purchase_price’ matches the currency-specific price listed in the activity (as per preconditions), multiplied by the number of customers
the new activity service ‘product’ is linked to the activity
a new invoice is created and listed under the booking’s invoices sub-resource
Booking a Single Supplement
Description
Add a Confirmed single supplement service to a booking with existing customers from a Confirmed departure service.
A single supplement service is a booked single supplement, which is an optional surcharge that can be added for a customer who wishes to have their own room on the departure service. Pricing is always based on double-occupancy, so single travellers that do not purchase this option will share a room with another single traveller. For rooming trips, the single supplement is the surcharge to purchase the entire cabin. On most trips, a limited number of single supplements are available. They are usually booked by single customers.
Suggested testing tour dossiers (non-rooming): CRA Tour Dossier, a departure where “My Own Room” appears in addons
Suggested testing tour dossiers (rooming): XVCASX Tour Dossier, a departure where “My Own Room” appears in addons
A single supplement service cannot be booked as a stand-alone product. A departure service must first be booked where the underlying departure ‘product’ contains the single supplement in the list of addons
.
When adding an single supplement service to a Confirmed departure service, it will automatically be Confirmed. It is also possible to add an single supplement service to a departure service on Option, however the status of the new single supplement service will mirror that of the departure service (Option). When the departure service is Confirmed, any associated single supplement services will also automatically be Confirmed.
References
Preconditions
see first Holding an Option on a Non-Rooming Departure and Holding an Option on a Rooming Departure
see first: Confirming a Departure Service
a booking with a null ‘date_closed’
a booking with a ‘date_of_first_travel’ that is in the future
a departure service with ‘status’ “Confirmed”
the departure service ‘product’, is a departure with an
addons
item of type “single_supplements”the departure service ‘product’, is a departure with ‘availability.status’ not equal to “REQUEST_SPACE”
the departure service ‘rooms.code’ matches that of the single supplement ‘rooms’ item ‘code’ for the single supplement service
the single supplement has an ‘availability.status’ of “AVAILABLE”
the number of departure service existing customers is less than or equal to the value of the single supplement ‘availability.status.total’
the number of departure service existing customers must be within the ‘min_travellers’ and ‘max_travellers’ of one of the single supplement ‘price_bands’ list item (i.e. only one customer on the departure service
the existing departure service’s customers must be within the ‘min_age’ (if not null) and ‘max_age’ (if not null) of one of the activity ‘price_bands’ list item
Postconditions
a new single supplement service is created and listed under the booking services sub-resource
the new single supplement service has ‘status’ “Confirmed”
the new single supplement service has ‘status_transitions’ [] (at this time it is not possible to Cancel single supplement service via the API)
the new single supplement service has ‘start_date’ and ‘finish_date’ match those of the related departure service
the new single supplement service ‘customers’ list is the same as the departure service
the new single supplement service has a ‘date_confirmed’ with the current date/time
the new single supplement service has a null ‘option_expiry_date’
the new single supplement service ‘purchase_price’ matches the currency-specific price listed in the single supplement (as per preconditions), multiplied by the number of customers
the new single supplement service ‘product’ is linked to the single supplement
a new invoice is created and listed under the booking’s invoices sub-resource