On this documentation we will provide you with a sample of the workflow that will be needed in order to be able to buy Disney products through the Juniper API, while fully describing all of the particularities that these products will have.
The APIs under which we allow for Disney products to be bought are the following (links to their respective specifications):
And we will elaborate on the workflow process of each of these APIs individually:
On this section we will describe, on a request-by-request basis (the requests that comprise the main steps of the booking flow), on how to purchase Disney tickets over the JP Hotel API, accounting for all of its peculiarities in the process (mention all the available options it offers, such as Hotel only, Hotel + Ticket, Dining Plans, and/or Disney promotions).
The HotelAvail request, which stands for the availability step, the first step of the booking flow. Will let you identify if there are Dinsey products available for sale.
Disney uses different age ranges for Hotel and Ticket products. Below are the age ranges defined by Disney, along with a brief explanation of how Juniper handles them:
Hotel
Tickets
For example, if you proceed to book a Disney Hotel + Ticket product with the following passenger distribution:
- 1 adult (30 years old)
- 1 child (10 years old)
- 1 child (5 years old)
The booking details with Disney will be as follows:
- Hotel: 1 adult and 2 children
- Tickets: 2 adults (ages 30 and 10) and 1 child (age 5)
Reason for which it is very important to differentiate between the age ranges of each product types.
In order to search availability for a Disney ticket, you will need to:
This is to be sent through the HotelRequest/SearchSegmentsHotels/HotelCodes/HotelCode node from the HotelAvail request (one HotelCode node per hotel to request), and you will be able to retrieve the list of hotel codes available through the use of the HotelPortfolio request.
Disney hotels are located on the Orlando area (if you would like to be able to identify and to map this area, you will be able to do so through the use of the ZoneList request), and are mostly identified with having Disney as part of its name.
For your reference, some suppliers create a destination named DisneyWorld, and map the hotels there instead (of the Orlando area).
ShowBreakdownPrice
ShowOnlyBestPriceCombination
If the room offer included a ticket and if the ShowBreakdownPrice advanced option got sent as true on the previous request, you will be able to identify the cheapest ticket option available for the room offer on the price breakdown, most concretely as a Type="SUP" (Supplement) concept, including its price and name.
This is to be found on the HotelOptions/HotelOption/Prices/Price/Breakdown/Concepts/Concept node, such as in the following example:
On the availability step, you will always be provided with the cheapest ticket available, not being able to choose which ticket option you will be going to buy in specific (in order to reduce availability response time and size, the team decided to only return the cheapest option available here).
If you need to choose another ticket option, you will be able to do so on the next step of the booking flow, the HotelBookingRules request.
For reference, note that the supplement already comes bundled with Disney tickets for all of the passenger distributions that you would have asked availability for (including both adults and children if applicable).
On the HotelOptions/HotelOption/HotelRooms/HotelRoom node, you will be able to identify the information related to the room name, room category and room occupancy:
On the subject of the room name, it is important to keep in mind that:
On the HotelOptions/HotelOption/HotelRooms/HotelRoom/Contracts/Contract node, you will be able identify the information related to the rate of the option. Such as the Rate ID (under the Name node) and the name of the ticket, if available for this option (under the BrandRating node):
If you were unable of seeing this information (on Disney products), kindly ask Juniper directly as we will need to activate an additional permission.
The HotelBookingRules request, which stands for the valuation step, the second step of the booking flow. Will let you retrieve all of the ticket information that you will need prior to confirming the reservation.
On the HotelOptions/HotelOption/HotelRequiredFields/HotelBooking/Elements/HotelElement/BookingCode node, you will be able to find the BookingCode.
If no tickets are availablie for you to choose from OR if you simply wished to book a room with the pre-chosen cheapest ticket option, the booking flow would remain unchanged, and you will simply need to proceed with the booking confirmation request along with this BookingCode:
If the selected rate includes a ticket, on the HotelOptions/HotelOption/Prices/Price/Breakdown/Concepts/Concept node, it will appear in the breakdown as type “SUP”:
On the HotelOptions/HotelOption/OptionalElements/HotelSupplements node, you will be able to find as individual HotelSupplement's, all of the different ticket options that are available for your choice.
If you wish to change the originally selected ticket option with a different one, you will need to take the RatePlanCode included within any of these HotelSupplement's and to send an additional HotelBookingRules request along with this RatePlanCode. On the response, the room offer will already have the newly selected ticket applied (while also reflecting its corresponding new price), and you will be able to confirm the reservation along with the updated BookingCode that you will be being provided there.
For reference, for each ticket option available within the list, their respective Name, Description and Price Breakdown will be displayed:
The HotelBooking request, which stands for the booking step, the last step of the booking flow. Will let you confirm a reservation for your previously quoted Disney ticket.
On the Reservations/Reservation/Items/HotelItem/ExternalInfo/ExternalLocator node, you will be able to find the Disney booking confirmation reference:
If you were unable of seeing this information (on Disney products), kindly ask Juniper directly as we will need to activate an additional permission.
On the Reservations/Reservation/Items/HotelItem/AdditionalElements/HotelSupplements node, you will be able to identify the information of the ticket that was confirmed alongside the room:
The ReadBooking request, which is one of the two main calls that you may use for your already existing reservations, will let you retrieve all of the information that's related to the booking in question. In order to be able to call this request, you will need to use the Juniper @Locator.
On the Reservations/Reservation/Items/HotelItem/ExternalInfo/ExternalLocator node, you will be able to find the Disney booking confirmation reference:
If you were unable of seeing this information (on Disney products), kindly ask Juniper directly as we will need to activate an additional permission.
On the Reservations/Reservation/Items/HotelItem/AdditionalElements/HotelSupplements node, you will be able to identify the information of the ticket that was confirmed alongside the room:
The CancelBooking request, which is the second main call that you may use for your already existing reservations, will let you cancel any previously existing reservations. In order to be able to call this request, you will need to use the Juniper @Locator.
Must be kept in mind that it is not possible to cancel only the booked room and be left with a ticket or on revese to cancel the ticket reservation and be left with room only – if the Cancellation Request is sent, both room and ticket bookings will get cancelled.
On the Reservations/Reservation/Items/HotelItem/ExternalInfo/ExternalCancellationLocator node, you will be able to find the Disney booking cancellation reference:
If you were unable of seeing this information (on Disney products), kindly ask Juniper directly as we will need to activate an additional permission.
On this section we will describe, on a request-by-request basis (the requests that comprise the main steps of the booking flow), on how to purchase Disney tickets over the JP Ticket API, accounting for all of its peculiarities in the process.
The ServiceAvail request, which stands for the availability step, the first step of the booking flow. Will let you identify if there are Dinsey products available for sale.
Disney uses the following age ranges for ticket bookings:
In order to search availability for a Disney ticket, you will either need to:
Which can be retrieved through the use of the ServicePortfolio request, and by retrieving their corresponding @Code:
This is to be sent through the ServiceRequest/SearchSegmentsServices/DestinationZone node from the ServiceAvail request, and you will be able to retrieve the list of destinations available through the use of the ZoneList request.
For your reference, Disney products are usually located on the Orlando area, but some suppliers create a destination named DisneyWorld, and map the products there instead.
ShowCompleteInfo
Each ServiceResult node, will contain a group of tickets created in Ticket Maintenance.
On the ServiceResult/ServiceInfo node, you will be able to find the Name, the Description and other details of the group.
On the ServiceResult/ServiceOptions/ServiceOption node, you will be able to find all of the tickets available for the performed search from the created group with the date options when the ticket its available:
Note that the options already come bundled with Disney tickets for both adults and children.
If on your availability request you sent the ShowCompleteInfo advanced option along with a true value, on the ServiceOptions/ServiceOption/AdditionalDescriptions node, you will be able to identify all of the descriptions that the ticket has available for use:
Otherwise, if ShowCompleteInfo is skipped or sent as false, you will not receive such info:
The ServiceBookingRules request, which stands for the valuation step, the second step of the booking flow. Will let you retrieve all of the ticket information that you will need prior to confirming the reservation.
ShowCompleteInfo
On the ServiceRequiredFields/ServiceBooking/Paxes node, you will be able to identify the minimum passenger related fields that you will need to comply in order to be able to confirm a reservation:
On the ServiceOptions/ServiceOption/Dates/InfoDates node, you will be able to identify the usage window of the chosen ticket. User can use the ticket at any day inside the indicated time period, if the ticket is multi-day, it can be used sequentially or non-sequentially as long as the number of visiting days does not exceed the indicated on ticket and is inside of the usage window.
On the ServiceOptions/ServiceOption/OptionalElements/Comments node, you will be able to identify important information related to the parks available when buying this ticket and once again passed a usage window.
If on your booking rules request you sent the ShowCompleteInfo advanced option along with a true value, on the ServiceOptions/ServiceOption/AdditionalDescriptions node, you will be able to identify all of the descriptions that the ticket has available for use:
The ServiceBooking request, which stands for the booking step, the last step of the booking flow. Will let you confirm a reservation for your previously quoted Disney ticket.
On the Reservation/Items/ServiceItem/ExternalInfo/ExternalLocator node, you will be able to find the Disney booking confirmation reference:
If you were unable of seeing this information (on Disney products), kindly ask Juniper directly as we will need to activate an additional permission.
On the Reservation/Items/ServiceItem/Vouchers/Voucher node, you will be able to identify the voucher that is available for the reservation you just confirmed. The voucher will contain the Disney ticket confirmation, following their respective requirements.
All Ticket Confirmations for Disney ticket types — ThemePark, SpecialEvent, and NonDateBased — are certified by the Disney team.
The ReadBooking request, which is one of the two main calls that you may use for your already existing reservations, will let you retrieve all of the information that's related to the booking in question. In order to be able to call this request, you will need to use the Juniper @Locator.
On the Reservation/Items/ServiceItem/ExternalInfo/ExternalLocator node, you will be able to find the Disney booking confirmation reference:
If you were unable of seeing this information (on Disney products), kindly ask Juniper directly as we will need to activate an additional permission.
On the Reservation/Items/ServiceItem/Vouchers/Voucher node, you will be able to identify the booking voucher:
The CancelBooking request, which is the second main call that you may use for your already existing reservations, will let you cancel any previously existing reservations. In order to be able to call this request, you will need to use the Juniper @Locator.
All the N tickets that had been booked under this exact locator would be being cancelled, as the supplier's API does not allow for partial cancellations.
On the Reservation/Items/ServiceItem/ExternalInfo/ExternalCancellationLocator node, you will be able to find the Disney booking cancellation reference:
If you were unable of seeing this information (on Disney products), kindly ask Juniper directly as we will need to activate an additional permission.