In order to understand the JP WebService work flow, we've prepated a flow chart that outlines and simplies all of the steps that need to be taken through the booking process. We will refer to this flow chart as we advance further on our explanation.
As you may have observed, this booking process is divided in four differentiated steps. We will proceed to describe each of these steps in detail:
This is the step that embraces all of the static data transactions meant for the retrieval of package information that you may need prior to overtaking the booking flow process.
An optimal static data retrieval process could consist of:
This is the first step required in order to create a new booking. Through the use of the PackageAvail request you will be capable of retrieving results on all of the available packages.
This list will contain configuration and prices for the cheapest mandatory products, although it will also inform about the optional products the package may have and if it is possible to perform searches for the rest of the package products. We will get a code for each package “PackageCode”, which is needed for the subsequent treatment of the package.
At this step, on which we've already performed the availability request and selected a package through a RatePlanCode from its response, we will validate that the mentioned is still effective and that there has been no change on the same.
In this step we have the following transactions available:
PackageChangeProduct: Pptional transaction to get the different options of a certain product. For instance, it can be obtained from all the available hotels for a package. Each package result will be a different hotel combination, with it's “RatePlanCode” which uniquely identifies the package combination. The same goes for flights.
PackageCheckAvail: Optional transaction that can be called with a “RatePlanCode” and it will check the package, their products, availability, and prices.
PackageBookingRules: It will return the necessary information of each product for the booking confirmation, cancellation policies, and required fields. It will also validate the package with the selected products, consistence and final Price. It returns a booking code “BookingCode”, needed to confirm the booking.
Once you retrieve the BookingCode of the package that you wish to confirm through the PackageBookingRules response, you may then send the booking confirmation request along all of the data that is requested for on the PackageRequiredFields node from the aforementioned transaction.
The response will return a booking code (@Locator) that will identify the booking in a unique way and let you read and/or cancel the same if you ever wish to do the same.
Kindly refer to the PackageBooking section for more information.
Moving on, once the booking has been created, successfully confirmed and you've been able to retrieve its @Locator, there are two additional actions that you may take in this regard:
Kindly refer to the ReadBooking section for more information.
Kindly refer to the CancelBooking section for more information.
Having detailed all of the Package integration process, here we supply you with a series of resources which, along with the use of test environment XML credentials, will let you experience the Package integration process first hand.
On this section you will be able to find SoapUI test suites that may help you perform the development of your integration.
Juniper WebService Package PULL Welcome Pack. This test suite contains all of the transactions that will be neccesary in order to perform an integration against the Juniper system.
On this section we have a Postman example that embraces all of the Package integration process.
On this section we have a series of code samples that will let you understand how to implement and use one of the transactions from our API.
Object that details the stays of a package. It contains multiple product related nodes that are detailed below. This is a very important object to implement in order to properly understand the contents of a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
.Stays | N | - | List of package stays. |
./Stays/Stay | N | - | Specific package stay. |
./Stay/@Code | N | Integer | Stay order code. |
./Stay/@DestinationZone | N | Integer | Destination code. |
./Stay/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./Stay/@End | N | Date | End date range Format: yyyy-MM-dd |
./Stay/{Hotels} | Y | - | List of hotels included within the package. |
./Stay/{Flights} | Y | - | List of flights included within the package. |
./Stay/{Transfers} | Y | - | List of transfers included within the package. |
./Stay/{Services} | Y | - | List of tickets included within the package. |
./Stay/{Packages} | Y | - | List of packages included within the package. It is possible for dynamic packages to contain enclosed packages within its configuration. |
./Stay/{Insurances} | Y | - | List of insurances included within the package. |
./Stay/{Rentacars} | Y | - | List of rentacar included within the package. |
Object that details the list of available hotel products within a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Hotels | Y | - | List of package hotels |
./Hotels/Hotel | N | - | Item containing hotel details |
./Hotel/@Code | Y | String | Product Code. |
./Hotel/@JPCode | Y | String | Product JPCode. |
./Hotel/@Start | N | Date | Checkin date of the stay Format: yyyy-MM-dd |
./Hotel/@End | N | Date | Checkout date of the stay Format: yyyy-MM-dd |
./Hotel/@ICode | Y | String | Encrypted product code. Useful for optional products |
./Hotel/@SearchMore | Y | Boolean | Shows if it is posible to search other hotels for the stay |
./Hotel/@BestDeal | Y | Boolean | Indicates if the hotel is a BestDeal |
./Hotel/HotelInfo | Item with information concerning the hotel | ||
./HotelInfo/Name | N | String | Hotel name |
./HotelInfo/Images | Y | - | Hotel images |
./Images/Image | N | String | Image URL |
./Images/Description | Y | String | Image description |
./Hotel/HotelOptions | N | - | List of hotel distributions |
./HotelOptions/HotelOption | N | - | Hotel distribution |
./HotelOption/Board | Board type distribution | ||
./Board/@Type | Y | String | Board type |
./HotelOption/HotelRooms | N | - | List of Hotel rooms |
./HotelRooms/HotelRoom | N | - | Hotel rooms |
./HotelRoom/@Units | Y | Integer | Number of rooms. |
./HotelRoom/@JRCode | Y | String | Juniper room code. To be used in conjuction with the Hotel API, refer to the RoomList request if you would like for more information. |
./HotelRoom/RoomCategory | N | String | Name of the room type |
./RoomCategory/@Type | N | String | Room type |
./Hotel/Rebook | Y | - | Rebook-related information. Available on the booking and read responses of rebook-type reservations (disregard this node if you're implementing the normal booking flow). |
./Rebook/@ItemId | N | Integer | Booking line id of the rebook. |
Object that details the list of available flight products within a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Flights | Y | - | List of package flights |
./Flights/Flight | N | - | Item with information concerning the flight |
./Flight/@FareType | N | String | Indicates type of the fare: Public, Negotiated or Private. |
./Flight/@Direction | Y | String | Flight direction. Possible values: • Outbound • Inbound • Roundtrip |
./Flight/@SearchMore | Y | Boolean | Shows if it is posible to search for alternatives flights for the stay |
./Flight/@ICode | Y | String | Encrypted product code. Useful for optional products |
./Flight/Routes | N | - | List of flight Routes |
./Routes/Route | N | - | Flight route |
./Route/@Origin | N | Integer | Juniper code for the origin zone of the route |
./Route/@Destination | N | Integer | Juniper code for the destination zone of the route |
./Route/Segments | N | - | List of Flight Segments |
./Segments/Segment | N | - | Segment of the Route |
./Segment/@Order | N | Integer | Number of the segment in the route |
./Segment/@FareBasis | Y | String | Indicates the code of the fare. |
./Segment/@AirplaneType | Y | String | Indicates the airplane type or code. |
./Segment/@DepartureAirport | N | String | IATA code of the origin airport of the segment. |
./Segment/@ArrivalAirport | N | String | IATA code of the destination airport of the segment. |
./Segment/@DepartureDateTime | N | DateTime | Starting date and time of the flight Format: yyyy-MM-ddThh:mm:ss (UTC) |
./Segment/@ArrivalDateTime | DateTime | Ending date and time of the flight Format: yyyy-MM-ddThh:mm:ss (UTC) |
|
./Segment/@OperatingAirline | Y | String | Code of the airline that manages the flight |
./Segment/@FlightNumber | Y | String | Flight number |
./Segment/@Class | Y | String | Accommodation class of the flight |
./Segment/@Cabin | Y | String | Cabin code from the GDS |
./Segment/@JourneyDuration | Y | Duration | Length of the flight Format: P0DT7H50M0S (PDiasDTHorasHMinutosMSegundosS) |
./Segment/@GroundDuration | Y | Duration | Length of the segment Format: P0DT7H50M0S (PDiasDTHorasHMinutosMSegundosS) |
./Segment/@MarquetingAirline | N | String | Marketing company or sales company. |
./Segment/TechnicalStops | Y | - | |
./TechnicalStops/TechnicalStop | Y | - | Technical stop of segment. |
./TechnicalStops/@AirportCode | Y | String | Airport code of the technical stop. |
./TechnicalStops/@ArrivalDate | Y | Date | Arrival date of the technical stop. |
./TechnicalStops/@DepartureDate | Y | Date | Departure date after technical stop. |
./Segment/{SeatingMap} | Y | - | Seating map information. Kindly refer to the related object for more information regarding this feature. |
./Flight/InfoExtra | N | - | Additional flight information. |
./InfoExtra/ExternalLocator | N | String | External/supplier locator. Restricted by a special permission. |
./InfoExtra/Source | N | String | Supplier that offers the flight. Ej: Amad(Amadeus), Chv2(CharterV2), Sab2(SabreV2), etc. |
./Flight/OptionalElements | Y | - | Optional elements that may be applied to the flight. |
./OptionalElements/{Bags} | Y | - | Baggage information. Kindly refer to the related object for more information regarding this feature. |
Object that details the list of available transfer products within a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Transfers | Y | - | Package transfer list |
./Transfers/Transfer | N | - | Item with transfer details |
./Transfer/@SearchMore | Y | Boolean | It indicates if there are alternatives to this transfer. |
./Transfer/@ICode | Y | String | Product encrypted code. |
./Transfer/@Code | Y | String | Product code. |
./Transfer/TransferInfo | N | - | Transfer details |
./TransferInfo/Name | N | String | Transfer name |
./TransferInfo/Description | Y | String | Transfer description |
./TransferInfo/Image | Y | String | Transfer image route |
./TransferInfo/TransferOptions | N | - | Selected transfer option |
./TransferOptions/TranferOption | N | - | Transfer option details |
./TranferOption/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./TranferOption/@End | N | Date | End date range Format: yyyy-MM-dd |
./TranferOption/@Origin | Y | Integer | Transfer origin area code |
./TranferOption/@Destination | Y | Integer | Transfer destination area code |
./TranferOption/@Duration | Y | String | Transfer duration format HH:MM:SS |
./TranferOption/@StartHour | Y | String | Start time Format HH:MM:SS |
./TranferOption/Name | N | String | Transfer option name |
./TranferOption/Description | N | String | Transfer description option |
./TranferOption/OriginName | N | String | Transfer origin name |
./TranferOption/DestinationName | N | String | Transfer destination name |
Object that details the list of available service products within a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Services | Y | - | Package service list. |
./Services/Service | N | - | Item with service details |
./Service/@SearchMore | Y | Boolean | It indicates if there are alternatives to this service. |
./Service/@ICode | Y | String | Product encrypted code. |
./Service/@Code | Y | String | Product code. |
./Service/ServiceInfo | N | - | Service details |
./ServiceInfo/@SearchMore | Y | Boolean | It indicates if it is possible to search for alternatives to this service. |
./ServiceInfo/@ICode | Y | String | Product encrypted code. |
./ServiceInfo/ServiceInfo | N | - | Service details. |
./ServiceInfo/Name | N | String | Service name. |
./ServiceInfo/Description | Y | String | Service description. |
./ServiceInfo/Image | Y | String | Service image route. |
./ServiceInfo/ServiceOptions | N | - | Selected service option |
./ServiceOptions/ServiceOption | N | - | Service option details |
./ServiceOption/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./ServiceOption/@End | N | Date | End date range Format: yyyy-MM-dd |
./ServiceOption/@Destination | Y | Integer | Service destination area code |
./ServiceOption/@Duration | Y | String | Service duration format HH:MM:SS |
./ServiceOption/@StartHour | Y | String | Start time Format HH:MM:SS |
./ServiceOption/Name | N | String | Service option name |
./ServiceOption/Description | N | String | Service option description |
./ServiceOption/DestinationName | N | String | Service destination name |
Object that details the list of available insurance products within a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Insurances | Y | - | Package insurance list. |
./Insurances/Insurance | N | - | Item with insurance details |
./Insurance/@SearchMore | Y | Boolean | Indicates if there are alternatives to this insurance |
./Insurance/@ICode | Y | String | Product encrypted code |
./Insurance/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./Insurance/@End | N | Date | End date range Format: yyyy-MM-dd |
./Insurance/@Code | Y | String | Product code. |
./Insurance/InsuranceInfo | N | - | Insurance details |
./InsuranceInfo/Name | Y | String | Insurance name |
./InsuranceInfo/{Descriptions} | Y | - | Insurance description |
Object that details the list of available package products within a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Packages | Y | - | |
./Packages/Package | N | - | |
./Package/@SearchMore | Y | Boolean | It indicates if there are alternatives to this tour. |
./Package/@ICode | Y | String | Product encrypted code. |
./Package/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./Package/@End | N | Date | End date range Format: yyyy-MM-dd |
./Package/@Code | Y | String | Product code. |
./Package/Name | N | String | Tour circuit name |
./Package/Description | Y | String | Tour circuit description |
./Package/Image | Y | String | Tour circuit image route |
./Package/HotelInfo | Y | - | Item with information concerning the hotel |
./HotelInfo/Name | N | String | Hotel name |
./HotelInfo/Description | Y | String | Hotel description |
./HotelInfo/Images | Y | - | Hotel images |
./Images/Image | N | String | Image URL |
./Package/HotelOptions | Y | - | List of hotel distributions |
./HotelOptions/HotelOption | N | - | Hotel distribution |
./HotelOption/HotelRooms | N | - | List of Hotel rooms |
./HotelRooms/HotelRoom | N | - | Hotel rooms |
./HotelRoom/RoomCategory | N | String | Name of the room type |
Object that details the list of available rent a car products within a package.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
Rentacars | Y | - | Package vehicle list. |
./Rentacars/Rentacar | N | - | Item with vehicle details |
./Rentacar/@SearchMore | Y | Boolean | It indicates if there are alternatives to this vehicle. |
./Rentacar/@ICode | Y | String | Product encrypted code. |
./Rentacar/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./Rentacar/@End | N | Date | End date range Format: yyyy-MM-dd |
./Rentacar/@Code | Y | String | Product code. |
./Rentacar/RentacarInfo | N | - | Vehicle details |
./RentacarInfo/Name | Y | String | Vehicle name |
./RentacarInfo/Description | Y | String | Vehicle description |
./RentacarInfo/Image | Y | String | Vehicle image route |
./Rentacar/PickupOffice | N | - | Vehicle pick-up office. |
./Rentacar/DropOffOffice | N | - | Vehicle return office. |
Object that shows supplements and offers/promotions. We refer to this object labeled as: {AdditionalElements}
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
AdditionalElements | Y | - | List of additional elements of the package. By now supplements. |
./AdditionalElements/PackageSupplements | N | - | List os package supplements |
./PackageSupplements/PackageSupplement | N | - | Package supplement |
./PackageSupplement/Name | N | String | Supplement name |
./PackageSupplement/Description | N | String | Supplement description |
Object that contains most of the package crucial information. It is shared between the bookingRules and booking steps.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
.PackageElement | N | - | Package element |
./PackageElement/BookingCode | N | String | Encrypted code which identifies the package you want to book |
./PackageElement/RelPaxesDist | N | - | Passenger distribution of the booking. |
./RelPaxesDist/RelPaxDist | N | - | Distribution list. |
./RelPaxDist/RelPaxes | N | - | Passengers list of this distribution. |
./RelPaxes/RelPax | N | - | Passenger |
./RelPax/@IdPax | N | Integer | Passenger Identifier. It should match with a Pax@IdPax |
./PackageElement/PackageBookingInfo | N | - | Basic information of the package |
./PackageBookingInfo/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./PackageBookingInfo/@End | N | Date | End date range Format: yyyy-MM-dd |
./PackageBookingInfo/PackageCode | N | String | Code of the package to book |
./PackageBookingInfo/Price | Y | - | Price information. Required for the confirmation of the package. |
./Price/PriceRange | N | - | Price range information. |
./PriceRange/@Minimum | N | Double | Minimum price of the reservation. When booking, if the price is lower, the booking will be cancelled automatically. |
./PriceRange/@Maximum | N | Double | Maximum price of the reservation. When booking, if the price is higher, the booking will be cancelled automatically. |
./PriceRange/@Currency | N | String | Currency code of the reservation. |
./PackageElement/TransfersBookingInfo | Y | - | List of required fields needed by the transfers contained within the package. |
./TransfersBookingInfo/TransferBookingInfo | N | - | Required fields of a specific transfer of the package. |
./TransferBookingInfo/@ICode | N | String | Unique code that identifies the product |
./TransferBookingInfo/Origin | N | - | Required fields related to the origin of the transfer. |
./Origin/@Code | N | Integer | Destination code of the origin |
./Origin/@Type | N | String | Type of destination of the transfer origin. Possible values: - ARP: airport - ALO: hotel - PRT: port - EST: train/bus stations - OTR: other zones |
./Origin/@Start | Y | Date | Start date range Format: yyyy-MM-dd |
./Origin/@MeetingTime | Y | Time | Meeting time at the origin |
./Origin/MeetingPointInfo | N | - | Information about the meeting point. It contains data of the transfer type of zone |
./MeetingPointInfo/@Code | N | String | Meeting point code. It is mandatory if the client is using groundhandling. If not, it accepts ‘000’. This code can be retrieved from a transaction by using the ICode |
./MeetingPointInfo/@MeetingTime | N | Time | Pickup time at the meeting point |
./MeetingPointInfo/Name | Y | String | Name of the hotel or zone of the meeting point |
./MeetingPointInfo/Address | Y | String | Meeting point address |
./MeetingPointInfo/PostalCode | Y | String | Post code of the zone in whihc the meeting point is located |
./Origin/FlightInfo | Y | String | Basic information about the flight. Flight number. Mandatory for the type of zone ARP (airport) |
./FlightInfo/@Airport | N | String | IATA code of the airport |
./FlightInfo/@FlightTime | N | Time | Flight time. |
./FlightInfo/@FlightNumber | Y | String | Flight number. |
./Origin/ShipInfo | Y | - | Basic information about the type of zone PRT (port) |
./ShipInfo/Name | N | String | Name of the ship, cruise or ferry |
./ShipInfo/Company | N | String | Name of the shipping company |
./Origin/TrainInfo | Y | - | Basic information about the type of zone EST (bus/train station) |
./TrainInfo/Name | N | String | Name of the train, bus or station service |
./TrainInfo/StationInfo | N | String | Name of the bus/train station |
./StationInfo/@Code | N | String | Station code |
./Origin/TerminalArrival | Y | String | Name of the arrival terminal |
./Origin/TerminalDeparture | Y | String | Name of the departure terminal |
./TransferBookingInfo/Destination | N | - | Required fields related to the destination of the transfer. |
./Destination/@Code | N | Integer | Destination code of the destination |
./Destination/@Type | N | String | Type of destination of the transfer destination. Possible values: - ARP: airport - ALO: hotel - PRT: port - EST: train/bus stations - OTR: other zones |
./Destination/@Start | Y | Date | Start date range Format: yyyy-MM-dd |
./Destination/@MeetingTime | Y | Time | Meeting time at the destination |
./Destination/MeetingPointInfo | N | - | Information about the meeting point. It contains data of the transfer type of zone |
./MeetingPointInfo/@Code | N | String | Meeting point code. It is mandatory if the client is using groundhandling. If not, it accepts ‘000’. This code can be retrieved from a transaction by using the ICode |
./MeetingPointInfo/@MeetingTime | N | Time | Pickup time at the meeting point |
./MeetingPointInfo/Name | Y | String | Name of the hotel or zone of the meeting point |
./MeetingPointInfo/Address | Y | String | Meeting point address |
./MeetingPointInfo/PostalCode | Y | String | Post code of the zone in whihc the meeting point is located |
./Destination/FlightInfo | Y | String | Basic information about the flight. Flight number. Mandatory for the type of zone ARP (airport) |
./FlightInfo/@Airport | N | String | IATA code of the airport |
./FlightInfo/@FlightTime | N | Time | Flight time. |
./FlightInfo/@FlightNumber | Y | String | Flight number. |
./Destination/ShipInfo | Y | - | Basic information about the type of zone PRT (port) |
./ShipInfo/Name | N | String | Name of the ship, cruise or ferry |
./ShipInfo/Company | N | String | Name of the shipping company |
./Destination/TrainInfo | Y | - | Basic information about the type of zone EST (bus/train station) |
./TrainInfo/Name | N | String | Name of the train, bus or station service |
./TrainInfo/StationInfo | N | String | Name of the bus/train station |
./StationInfo/@Code | N | String | Station code |
./Destination/TerminalArrival | Y | String | Name of the arrival terminal |
./Destination/TerminalDeparture | Y | String | Name of the departure terminal |
./TransferBookingInfo/{HotelService} | Y | - | Optional information about the selected hotel of the service. |
./TransferBookingInfo/Language | Y | - | Language to be booked. |
./Language/@Code | N | String | Language ISO2 code. |
./PackageElement/ServicesBookingInfo | Y | - | List of required fields needed by the services contained within the package. |
./ServicesBookingInfo/ServiceBookingInfo | N | - | Essential information of a service |
./ServiceBookingInfo/MeetingPointInfo | N | - | Information about the meeting point including the type of transfer |
./MeetingPointInfo/@Code | N | String | Meeting point code. It is mandatory if the client is using groundhandling. If not, it accepts ‘000’. This code can be retrieved from a transaction by using the Icode |
./MeetingPointInfo/@MeetingTime | N | Time | Pickup time at the meeting point |
./MeetingPointInfo/Name | Y | String | Name of the hotel or zone of the meeting point |
./MeetingPointInfo/Address | Y | String | Meeting point address |
./MeetingPointInfo/PostalCode | Y | String | Post code of the zone in whihc the meeting point is located |
./ServiceBookingInfo/{HotelService} | Y | - | Optional information about the selected hotel of the service. |
./TransferBookingInfo/Language | Y | - | Language to be booked. |
./Language/@Code | N | String | Language ISO2 code. |
For the methods to retrieve the static information such as areas, packages, etc. Take into account that the information varies between the test environment and production environment.
Important note:
The maximum allowed frequency for the retrieval of static data information (if you plan on retrieving such information) is at least once every 15 days. This a requirement meant to keep the static data information from our system updated.
This request allows you to get all the package codes filtering by a specific area (from an origin or to a certain destination), master packages (only for direct contracted product), by supplier, etc.
The ZoneCode node indicates the zone code where you wish to search hotels. It is mandatory; the value can be retrieved from ZoneList.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
PackageListRequest | N | - | Search properties |
./PackageListRequest/@OriginZone | Y | Integer | Juniper code of the origin area. This attribute is optional. If it is not specified, the search will only take into account the DestinationZone value. For this option, OriginZone can be omitted or sent as “-1” |
./PackageListRequest/@DestinationZone | N | Integer | Juniper code of the destination area. |
./PackageListRequest/@Masters | Y | Boolean | Indicates if you want to obtain the list containing the codes of all the package considered as “Masters”. Default value: false. If it is set as “true”, the search will not take into account the values of OriginZone and DestinationZone. |
./PackageListRequest/Suppliers | Y | - | With this option you can specify the suppliers you wish. |
./Suppliers/Supplier | N | String Supplier code. |
Master packages: Packages in which there is no defined origin and destination. They don’t have a fixed/specified duration and consist of at least two products: flight and hotel.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageList>
<PackageListRQ Version="1.1" Language="en">
<Login Password="pass" Email="user@mydomain.com"/>
<PackageListRequest OriginZone="-1" DestinationZone="17852" Masters="false">
<Suppliers>
<Supplier>D3N</Supplier>
</Suppliers>
</PackageListRequest>
</PackageListRQ>
</PackageList>
</soap:Body>
</soap:Envelope>
PackageList Response Detail
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
PackageList | N | - | - |
./PackageList/Packages | N | - | List of package codes |
./Packages/Package | N | - | Element package |
./Packages/@Code | N | String | Package code. This code will be used in the PackageContent transaction to retrieve the static information of them. |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageListResponse xmlns="http://www.juniper.es/webservice/2007/">
<PackageListRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-09-30T22:04:06.765295+02:00" IntCode="Yt2gJ2zAulIae0DRxPvCCGjMIdyrOiW9FBId5qIhmvQ=">
<PackageList>
<Packages>
<Package Code="up7BLW/+eFb4XBEzE8x2oA=="/>
<Package Code="6/pwF6TNbSnwuFnTiuFGNg=="/>
<Package Code="uN49y9g6MMuD90w4lol9BQ=="/>
<Package Code="f6VAJXcebYbEM7rVshrYYA=="/>
<Package Code="ROI4/BEylaYrciHJrD9cqQ=="/>
<Package Code="2DHiixeN/c+NzskFdPMvpg=="/>
<Package Code="BEvMpJA+MO6pClFXteNCWw=="/>
<Package Code="SS8hzoMAXCGgM0unAF9JNg=="/>
<Package Code="m9o3+Fse0xLaiflRqDKnaQ=="/>
</Packages>
</PackageList>
</PackageListRS>
</PackageListResponse>
</soap:Body>
</soap:Envelope>
From the message PackageList we obtain a set of PackageCodes; with these codes we can request more information about a specific package. The request also allows to search up to 25 properties at once.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
Packages | Y | - | List of package codes |
./Packages/Package | Y | - | Item package |
./Package/@Code | N | String | Package code. |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:ns = "http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageContent>
<PackageContentRQ Version = "1.1" Language = "en">
<Login Email = "user@mydomain.com" Password = "pass"/>
<Packages>
<Package Code = "2Xqw6mPlEU5BSITvM3NQuQ=="/>
</Packages>
</PackageContentRQ>
</PackageContent>
</soap:Body>
</soap:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
Contents | N | - | List of the requested package profiles. |
./Contents/PackageContent | N | - | Static data of the package profile |
./PackageContent/@Code | N | String P | ackage code |
./PackageContent/@Duration | Y | String | Length of the package Format: P0DT7H50M0S (PDaysDTHoursHMinutesMSecondsS) If it is not returned, it means the package has an undefined length. |
./PackageContent/PackageName | N | String | Package name |
./PackageContent/Origins | Y | - | List of available origins within the package. There may be packages with no defined origin (for example, masters). |
./Origins/PackageZone | N | - | Specific destination. |
./PackageZone/@Code | N | Integer | Destination internal code. |
./PackageZone/Name | N | String | Destination name. |
./PackageContent/Destinations | Y | - | List of available destinations within the package. There may be packages with no defined destination (for example, masters) but, otherwiese, there will always be at least one destination. |
./Destinations/PackageZone | N | - | Specific destination. |
./PackageZone/@Code | N | Integer | Destination internal code. |
./PackageZone/Name | N | String | Destination name. |
./PackageZone/RelStays | N | - | Destination stay order. By looking into all of the RelStays of all of the available destinations, you will be capable of identifying which order will be each of the destination stayed upon in a typified way. This may be helpful for you to create your own package itinerary on your system. |
./RelStays/RelStay | N | - | Stay order. A specific PackageZone may have multiple RelStay nodes (whenever the destination will be stayed upon more than once). |
./RelStay/@Code | N | Integer | Stay order code. Starting at 1, this property will identify the specific order in which this destination will be stayed upon. |
./PackageContent/Dates | Y | - | List of dates in which the package is valid. There won’t be any date for Master packages |
./Dates/Date | N | - | Contains the start and end dates of the valid range of the package. |
./Date/@Start | N | Date | Start date |
./Date/@End | N | Date | End date |
./PackageContent/Prices | Y | - | List of package prices |
./Prices/Price | N | - | Price from |
./Price/@From | N | Integer | Price amount |
./Price/@Currency | N | String | Currency |
./Price/@Start | N | Date | Start date of the price |
./Price/@End | N | Date | End date of the price |
./PackageContent/Images | Y | - | List of package images |
./Images/Image | N | String | Image URL |
./PackageContent/Descriptions | Y | - | List of package descriptions |
./Descriptions/Description | N | String | Item description |
./Description/@Type | N | String | Type of description. Possible values: • SHT - Short • LNG – Long • INC – Price Include • NIN – Price Not Include • INO – Important notes |
./PackageContent/Itineraries | Y | - | List of itineraries |
./Itineraries/Itinerary | N | - | Itinerary |
./Itinerary/@Day | N | String | Day in which an itinerary starts. Possible values: • Number • LAST – last day |
./Itinerary/@Duration | Y | String | Itinerary duration. Depends on the @Day. Possible values: • Number • BEFORELAST – the day before the last. Only for Package with flexible duration Examples: • Day 1, Duration 1: the itinerary includes the first day of the Package • Day 2, Duration 4: the itinerary includes the day 2, 3, 4 and 5 of the Package. • Day 10, Duration BEFORELAST: from day 10 till the day before the last day of the package • Day LAST, Duration (empty) : the last they of the package |
./Itinerary/Title | Y | String | Itinerary title |
./Itinerary/Subtitle | Y | String | Itinerary subtitle |
./Itinerary/Description | Y | String | Itinerary description |
./Itinerary/DailyProductTypes | Y | - | Product types per day |
./DailyProductTypes/ProductTypes | N | - | |
./ProductTypes/@Day | Y | - | Number of day within the current itinerary. Example: Itinerary @Day=6, @Duration=3 DailyProductTypes: /ProductTypes/@Day=1: day 6 of the itinerary /ProductTypes/@Day=2: day 7 of the itinerary /ProductTypes/@Day=3: day 8 of the itinerary If there is no @Day it means that it corresponds to various days. Only for @Duration=BEFORELAST |
./ProductTypes/ProductType | N | - | Product type values: refer to below ProductTypes node. |
./PackageContent/ProductTypes | Y | - | Products that the package contains |
./ProductTypes/ProductType | N | String | Product type values: • HOT - Hotel • CAR - Car • TKT - Ticket • TRF - Transfer • PCK – Package • FLH – Flight • INS – Insurance |
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageContentResponse xmlns = "http://www.juniper.es/webservice/2007/">
<ContentRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2021-02-19T11:15:33.3247476+01:00" IntCode = "UgBQF3pBn9Sh1JmvRjNb8VqYA+gTHhMclwRJiT1Bxpc=">
<Contents>
<PackageContent Code = "2Xqw6mPlEU5BSITvM3NQuQ==" Duration = "P7DT0H0M0S">
<PackageName>Dynamic Package GEN flight</PackageName>
<Origins>
<PackageZone Code = "37786">
<Name>Adolfo Suárez Madrid-Barajas Aeropuerto</Name>
</PackageZone>
</Origins>
<Destinations>
<PackageZone Code = "15011">
<Name>Palma de Mallorca</Name>
<RelStays>
<RelStay Code = "1"/>
</RelStays>
</PackageZone>
</Destinations>
<Descriptions>
<Description Type = "SHT">A very nice trip to somewhere</Description>
</Descriptions>
</PackageContent>
</Contents>
</ContentRS>
</PackageContentResponse>
</soap:Body>
</soap:Envelope>
This request allows you to retrieve all the destinations, origins, dates, stays, and package codes of all the available packages on a certain supplier.
This request is sequential and will return different results depending on the used filters:
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
PackageSearcherRequest | Y | - | Package search properties. If no property are set a list will all the available destinations will be returned. |
./PackageSearcherRequest/@DestinationZone | Y | Integer | Destination code, if specified, a list with all the available origins of the destination will be returned. |
./PackageSearcherRequest/@OriginZone | Y | Integer | Origin code, if specified alongside the destination code a list with all the available dates will be returned. |
./PackageSearcherRequest/@Date | Y | Date | Package date, if specified alongside the destination and the origin code a list with all the available stays will be returned. |
./PackageSearcherRequest/@Duration | Y | Integer | Stay duration of the package, if specified alongside the destination code, the origin code and a date a list with all the available package codes will be returned. |
Suppliers | Y | - | List of suppliers that you wish to request for. If not informed, only dynamic packages will be returned. |
./Suppliers/Supplier | N | String | Supplier code. Possible values: • P - Predefined packages • D3N - Dynamic packages • Supplier code - Code of the supplier you want to obtain the results from (e.g. EUM) |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<PackageSearcher>
<PackageSearcherRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<PackageSearcherRequest/>
</PackageSearcherRQ>
</PackageSearcher>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<PackageSearcher>
<PackageSearcherRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<PackageSearcherRequest DestinationZone="15011" />
</PackageSearcherRQ>
</PackageSearcher>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<PackageSearcher>
<PackageSearcherRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<PackageSearcherRequest DestinationZone="15011" OriginZone="37786" />
</PackageSearcherRQ>
</PackageSearcher>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<PackageSearcher>
<PackageSearcherRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<PackageSearcherRequest DestinationZone="15011" OriginZone="37786" Date="2020-02-28"/>
</PackageSearcherRQ>
</PackageSearcher>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<PackageSearcher>
<PackageSearcherRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<PackageSearcherRequest DestinationZone="15011" OriginZone="37786" Date="2020-02-28" Duration="7"/>
</PackageSearcherRQ>
</PackageSearcher>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
PackageSearcher | N | - | - |
./PackageSearcher/PackageSearcherItems | N | - | Element container. |
./PackageSearcherItems/PackageSearcherItem | N | - | Element with the asked information (based on the filters used on the request) |
./PackageSearcherItem/@Code | N | String | Value with the asked information. Note that all values will be returned as a String (including the Dates, which should be used in the request as a DateTime) |
./PackageSearcherItem/Name | Y | String | Name of the value (destination name…) |
Here we have examples on all the available responses depending on the used filters:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageSearcherResponse xmlns="http://www.juniper.es/webservice/2007/">
<PackageSearcherRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-01T01:08:52.209618+02:00" IntCode="WNWtjLoI9p42JJDNwwsLjKkhdsMLeP0webPv/7piy/0=">
<PackageSearcher>
<PackageSearcherItems>
<PackageSearcherItem Code="319">
<Name>Barcelona Province</Name>
</PackageSearcherItem>
<PackageSearcherItem Code="1953">
<Name>Majorca</Name>
</PackageSearcherItem>
<PackageSearcherItem Code="1361">
<Name>Orlando</Name>
</PackageSearcherItem>
<PackageSearcherItem Code="15011">
<Name>Palma de Mallorca</Name>
</PackageSearcherItem>
<PackageSearcherItem Code="40233">
<Name>Palma de Mallorca Airport</Name>
</PackageSearcherItem>
</PackageSearcherItems>
</PackageSearcher>
</PackageSearcherRS>
</PackageSearcherResponse>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageSearcherResponse xmlns="http://www.juniper.es/webservice/2007/">
<PackageSearcherRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-01T01:11:32.1164998+02:00" IntCode="1BixGo+mkCx3rQcIGNDHb5x1Cen8B0gxYTHc6VCI+dQ=">
<PackageSearcher>
<PackageSearcherItems>
<PackageSearcherItem Code="37786">
<Name>Adolfo Suárez Madrid-Barajas Airport</Name>
</PackageSearcherItem>
</PackageSearcherItems>
</PackageSearcher>
</PackageSearcherRS>
</PackageSearcherResponse>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageSearcherResponse xmlns="http://www.juniper.es/webservice/2007/">
<PackageSearcherRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-01T01:12:51.0873401+02:00" IntCode="BLcs2BeUqiXorEsQO8epnlrekq/JdRmAca/zVt+8p3k=">
<PackageSearcher>
<PackageSearcherItems>
<PackageSearcherItem Code="02/10/2019"/>
<PackageSearcherItem Code="03/10/2019"/>
<PackageSearcherItem Code="04/10/2019"/>
<PackageSearcherItem Code="05/10/2019"/>
<PackageSearcherItem Code="06/10/2019"/>
<PackageSearcherItem Code="07/10/2019"/>
<PackageSearcherItem Code="08/10/2019"/>
<PackageSearcherItem Code="09/10/2019"/>
<PackageSearcherItem Code="10/10/2019"/>
<PackageSearcherItem Code="11/10/2019"/>
<PackageSearcherItem Code="12/10/2019"/>
<PackageSearcherItem Code="13/10/2019"/>
<PackageSearcherItem Code="14/10/2019"/>
<PackageSearcherItem Code="15/10/2019"/>
<PackageSearcherItem Code="16/10/2019"/>
<PackageSearcherItem Code="17/10/2019"/>
<PackageSearcherItem Code="22/12/2020"/>
<PackageSearcherItem Code="23/12/2020"/>
<PackageSearcherItem Code="24/12/2020"/>
<PackageSearcherItem Code="25/12/2020"/>
<PackageSearcherItem Code="26/12/2020"/>
<PackageSearcherItem Code="27/12/2020"/>
<PackageSearcherItem Code="28/12/2020"/>
<PackageSearcherItem Code="29/12/2020"/>
<PackageSearcherItem Code="30/12/2020"/>
<PackageSearcherItem Code="31/12/2020"/>
</PackageSearcherItems>
</PackageSearcher>
</PackageSearcherRS>
</PackageSearcherResponse>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageSearcherResponse xmlns="http://www.juniper.es/webservice/2007/">
<PackageSearcherRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-01T01:15:49.2561086+02:00" IntCode="BLcs2BeUqiXorEsQO8epnl5bitaujEcb3RGveYp6Jrk=">
<PackageSearcher>
<PackageSearcherItems>
<PackageSearcherItem Code="7"/>
</PackageSearcherItems>
</PackageSearcher>
</PackageSearcherRS>
</PackageSearcherResponse>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageSearcherResponse xmlns="http://www.juniper.es/webservice/2007/">
<PackageSearcherRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-01T01:16:24.6771394+02:00" IntCode="rfavwxN/pzfRC7wL8bOsXqLAoI18ub7sYIVeJhY2HmU=">
<PackageSearcher>
<PackageSearcherItems>
<PackageSearcherItem Code="2Xqw6mPlEU5BSITvM3NQuQ==">
<Name>Dynamic Package GEN flight</Name>
</PackageSearcherItem>
</PackageSearcherItems>
</PackageSearcher>
</PackageSearcherRS>
</PackageSearcherResponse>
</soap:Body>
</soap:Envelope>
From the message PackageList we obtain a set of PackageCodes; with these codes we can request a list of a package prices. The request also allows to search up to 25 package codes at once.
Important note:
It is worth noting that this transaction is only capable of supplying information for predefined packages and when configured as to do so internally. Kindly contact with your supplier if you're on using this transaction.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
PackageCalendarPriceParameter | Y | - | Package calendar price search properties. |
./PackageCalendarPriceParameter/@OriginZone | N | Integer | Juniper code of the origin zone. |
./PackageCalendarPriceParameter/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./PackageCalendarPriceParameter/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./PackageCalendarPriceParameter/@End | Y | Date | End date range. Format: yyyy-MM-dd |
./PackageCalendarPriceParameter/PackageCodes | N | - | List of the requested packages. |
./PackageCodes/@Code | N | - | Package code to request. |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageCalendarPrice>
<PackageCalendarPriceRQ Version="1.1" Language="es">
<Login Email="user@mydomain.com" Password="pass" />
<PackageCalendarPriceParameter OriginZone="225" DestinationZone="2034" Start="2019-05-01" End="2019-06-21">
<PackageCodes>
<Package Code="WKQUk5uv2f6C2bLl3zhrnQ==" />
</PackageCodes>
</PackageCalendarPriceParameter>
</PackageCalendarPriceRQ>
</PackageCalendarPrice>
</soap:Body>
</soap:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
PackageCalendarPrice | N | - | Static data of the package profile |
./PackageCalendarPrice/PackageCalendarPriceItems | N | - | Package price ítem list |
./PackageCalendarPrice/@Code | N | String | Package code |
./PackageCalendarPrice/@OriginZone | Y | String | Juniper code of the origin zone. |
./PackageCalendarPrice/@DestinationZone | Y | String | Juniper code of the destination zone. |
./PackageCalendarPrice/@Currency | Y | String | Price currency |
./PackageCalendarPriceItems/PackageCalendarPriceItem | N | - | Package Price item |
./PackageCalendarPriceItem/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./PackageCalendarPriceItem/@End | N | Date | End date range. Format: yyyy-MM-dd |
./PackageCalendarPriceItem/@Price | N | - | Price information |
Returns a list of packages with a range of a prices. The following code is an example of availabilty response for a PackageCalendarPrice request.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageCalendarPriceResponse xmlns="http://www.juniper.es/webservice/2007/">
<PackageCalendarPriceRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-04-01T01:24:05.0315011+02:00" IntCode="1BixGo+mkCx3rQcIGNDHbxdHjuofdcKUt/7nTu5MJdU=">
<PackageCalendarPrice>
<PackageCalendarPriceItems Code="WKQUk5uv2f6C2bLl3zhrnQ==" OriginZone="25" DestinationZone="2034" Currency="EUR">
<PackageCalendarPriceItem Start="2019-05-21" End="2019-05-29" Price="245" />
<PackageCalendarPriceItem Start="2019-05-24" End="2019-06-01" Price="247" />
<PackageCalendarPriceItem Start="2016-05-27" End="2019-06-04" Price="250" />
<PackageCalendarPriceItem Start="2016-05-28" End="2019-06-05" Price="250" />
<PackageCalendarPriceItem Start="2016-05-31" End="2019-06-08" Price="255" />
<PackageCalendarPriceItem Start="2016-06-03" End="2019-06-11" Price="285" />
<PackageCalendarPriceItem Start="2016-06-04" End="2019-06-12" Price="201" />
</PackageCalendarPriceItems>
</PackageCalendarPrice>
</PackageCalendarPriceRS>
</PackageCalendarPriceResponse>
</soap:Body>
</soap:Envelope>
This is the basic availability request for packages. It returns a list of packages (with mandatory and cheapest products) that fulfill with the specified parameters.
Request. The following example is an availability request, and mandatory information for this request is:
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
{Paxes} | N | - | Indicates the passenger information. Array of passangers. Fields necessary for this transaction: - @IdPax (Required) - Age (Optional for adults) |
PackageRequest | N | - | Search properties. |
./PackageRequest/SearchSegmentsPackages | N | - | List of elements which contains package information |
./SearchSegmentsPackages/SearchSegmentsPackage | N | - | Package code, composed by its identifier concatenated with the provider code |
./SearchSegmentsPackage/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./SearchSegmentsPackage/@End | N | Date | End date range Format: yyyy-MM-dd |
./SearchSegmentsPackage/@OriginZone | Y | Integer | Juniper code of the origin zone. |
./SearchSegmentsPackage/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./SearchSegmentsPackage/@DestinationZoneForHotel | Y | Integer | Zone code where you want to search hotels. Only for the code of the zone where you want to look for a hotel. Only for Master packages. |
./SearchSegmentsPackage/Suppliers | Y | . | List of supplier codes that you wish for the results to be filtered for. NOT IMPLEMENTED |
./Suppliers/Supplier | N | String | Supplier code. Multiple supplier codes may be specified through multiple supplier nodes. |
./SearchSegmentsPackage/CountryOfResidence | N | String | Code of the country residence of the passenger following the ISO-3166-1 standard. You may refer to the FAQ section for further information. |
./SearchSegmentsPackage/PackageCodes | N | - | List of package codes |
./PackageCodes/PackageCode | N | String | Package code that you want to search. You can search up to 20 package codes |
./SearchSegmentsPackage/HotelName | Y | String | Name of the hotel that you want to filter by |
./SearchSegmentsPackage/HotelCategories | Y | - | List of hotel categories that you want to filter by |
./HotelCategories/HotelCategory | N | String | Hotel category |
./HotelCategory/@Type | N | Integer | Type of category |
./PackageRequest/RelPaxesDist | N | - | Passengers’ distribution you wish to request. |
./RelPaxesDist/RelPaxDist | N | - | Distribution list. |
./RelPaxDist/RelPaxes | N | - | Passengers list of this distribution |
./RelPaxes/RelPax | N | - | Passenger |
./RelPax/@IdPax | N | Integer | Passenger Identifier. It should match with a Pax@IdPax |
AdvancedOptions | Y | - | Optional information |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is True, it will show the full price object with all the information about the prices. If not specified, False is assumed by default. |
./AdvancedOptions/TimeOut | Y | Integer | This value allows you to set the timeout that will be used on the availability request. Note that this node expects milliseconds (for example; 5000 for a 5 second timeout). |
./AdvancedOptions/UseCurrency | Y | String | This value allows you to set the currency code that will be used on the booking flow process. It is important to note that if a currency is specified on the availability request, you will then need to set the same AdvancedOption along the same value on the rest of the booking flow transactions. It is also important to note that the list of available currencies for your use (if any, as the feature could not be available) will entirely depend of the Juniper supplier that you will be connecting to. Last of all, please note that if no currency is set on the request the system will then use the default currency configured by your Juniper supplier. |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns = "http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageAvail>
<PackageAvailRQ Version = "1.1" Language = "es">
<Login Email = "user@mydomain.com" Password = "pass"/>
<Paxes>
<Pax IdPax = "1">
<Age>30</Age>
</Pax>
<Pax IdPax = "2">
<Age>30</Age>
</Pax>
</Paxes>
<PackageRequest>
<SearchSegmentsPackages>
<SearchSegmentPackages Start = "2019-07-18" End = "2019-07-24" OriginZone = "40841" DestinationZone = "17852" DestinationZoneForHotel = "28564">
<CountryOfResidence>ES</CountryOfResidence>
<PackageCodes>
<PackageCode>qZFWAak+fHxtnJYsV6cyfA==</PackageCode>
</PackageCodes>
</SearchSegmentPackages>
</SearchSegmentsPackages>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</PackageRequest>
</PackageAvailRQ>
</PackageAvail>
</soap:Body>
</soap:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
Results | N | - | List of package results |
./Results/PackageResult | N | - | Element containing the package information |
./PackageResult/@Start | N | Date | Start date range. Format: yyyy-MM-dd |
./PackageResult/@End | Y | Date | End date range. Format: yyyy-MM-dd |
./PackageResult/@OriginZone | Y | Integer | Juniper code of the origin zone. |
./PackageResult/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./PackageResult/@Code | N | String | Package code. |
./PackageResult/@Status | N | String | Package status: - OK: Available - RQ: On Request |
./PackageResult/@RatePlanCode | N | String | Encoded data with package combination |
./PackageResult/PackageInfo | - | ||
./PackageInfo/Name | N | String | Package name |
./PackageInfo/Images | Y | - | Images |
./Images/Image | N | String | Image URL |
./PackageInfo/Description | Y | - | Package description |
./PackageResult/{Prices} | N | - | - |
./PackageResult/{Stays} | N | - | List of package stays. |
./PackageResult/{AdditionalElements} | Y | - | Additional elements. By now, supplements of the package |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageAvailResponse xmlns = "http://www.juniper.es/webservice/2007/">
<AvailabilityRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-10-02T00:29:28.3315342+02:00" IntCode = "IawoqcWcVdPTG10jGXkd2YfTb2BkqZk8NX93IVe4Ag0=">
<Results>
<PackageResult Start = "2020-03-01" End = "2020-03-07" DestinationZone = "1953" Code = "OkidhLAw+j5/wFBPHnmoJQ==" Status = "OK" RatePlanCode = "nMI3+8AqJYbVuxZxwIPgVH3HbO2oFwbLnEc33tpfKSjPEud7AKCXjCnqWZRh5yRfAayb/ndI/Vysf2VgUGO6LusZxNf4y+kIc3sOFcaV9uHGiPkRKNUOV1pG6P+3lFH1">
<PackageInfo>
<Name>Dynamic Package GEN</Name>
</PackageInfo>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "0" Gross = "176.44" Nett = "176.44">
<Service Amount = "176.44"/>
</TotalFixAmounts>
</Price>
</Prices>
<Stays>
<Stay Code = "1" DestinationZone = "1953" Start = "2020-03-01" End = "2020-03-07">
<Hotels>
<Hotel Code = "R/RRTnGDR5XKxYI/Axn9Tg==" JPCode = "JP148067" Start = "2020-03-01" End = "2020-03-07" ICode = "DstJXeDYuAM9+5Nc+4OdxVYTKBT4b9y6tR94su2nuHQDFrcQ8A//Wz2rZu/HmFzHssCrXFrgueVu4d86pNyRn597YrRgZFogJKUvFXpeiFNC1GtEAPBfYoow+j8x47W+FCm9AiYFOHPbLsu82DjGNBsD5FoThIHWginh7rAYj96s8k7U+JW5uq/6OwgFJxJcWlWw9AEbueGd9fClByiPuZIXvpdV22S90Zy3QwdZOncKNKYBYZ/w+ejwO5a8vNnUATDrxYcNMPhIrACMr8D9bSDQWw+BOzpC5m3fafcWRVtpvpXk1iLeH17dQ2EYutAGXYhmRPIqOz/1OxaAFD8eOWup6V5WkYKQVdX1ZRdaxT53dRZAgB2MUUaM+dsFbYz7IpSHs9RFw9z6HqooKJnsTGwEECUcED1PhhOIHtsEcti/XovhQxG8A8hR3I8De9oOroIHB4HziWa66uYXnFrNx5PS4XbpLyWz10+m9I1uONh+d+xrka+nnsQ5+RVc/MgRmqBFODcz1+MGNujp9gV2NNmcwkIP1kLZ7QqroGwK7/ocaCO4EyJLp+guoilLNtpPXEGKcNmVnGSX4yuYMEsCr5TZDUZsTgurGTNh8o1D58s=" SearchMore = "true">
<HotelInfo>
<Name>Riutort</Name>
<Images/>
<HotelCategory Type = "3">3 Estrellas</HotelCategory>
<Address>BARTOLOME CALAFELL,13 , 07600, EL ARENAL</Address>
<Latitude>39.507883</Latitude>
<Longitude>2.753729</Longitude>
</HotelInfo>
<HotelOptions>
<HotelOption PackageContract = "false">
<Board Type = "SA">SOLO HABITACIÓN</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "DBL.BL">DOBLE CON BALCÓN</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights/>
<Transfers>
<Transfer Code = "HmI+0kDMRhu0c9ysAbhvxQ==" ICode = "1HCeFFjSX2o/z5hS3sR+HynvjBs6ihZRbqCrbPBuNo8/7IQ66txeElEcNpeJPhrq" SearchMore = "true">
<TransferInfo>
<Name>PMI Airport to center</Name>
<Description>Descripcion de traslado de Aeropuerto Palma de Mallorca al centro</Description>
<Images>
<Image>https://juniper-uat.bookingengine.es/images/upload_p//Transfers/cache_46940620.png</Image>
</Images>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2020-03-01T00:00:00" End = "2020-03-01T00:45:00" Origin = "40233" OriginType = "ARP" Destination = "15011" DestinationType = "ALO" Duration = "P0DT0H45M0S">
<Name>Taxi</Name>
<Description/>
<OriginName>Aeropuerto de Palma de Mallorca</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
<TransferBookingInfo/>
</Transfer>
</Transfers>
<Services>
<Service Code = "hBtuXBVFPv3WjWfbAtQevA==" ICode = "KMr93LHn7NuLszTSH2M2e/1pUQo1e1WgJe7xIguqUbeyhkZ0b3jNOj2e4RgBxuD1" SearchMore = "true">
<ServiceInfo>
<Name>Best Escape Rooms Ocimax</Name>
<Description>Las habitaciones de escape son un nuevo juego de estrategia en equipo</Description>
<Images>
<Image>
<FileName>https://juniper-uat.bookingengine.es/images/upload_p//Services/bero_main.jpg</FileName>
</Image>
</Images>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2020-03-04T00:00:00" End = "2020-03-04T00:00:00" Destination = "15011">
<Name>La Egipcia</Name>
<Description>
Reserva tu habitación Egipcia e intenta resolver el Cetro de Anubis
Grupo mínimo 3 personas. Máximo 6.
Apto para adultos y jóvenes a partir de 14 años.
La sala Egipcia en algún momento del juego consta de espacios cerrados reducidos. Si algún miembro del equipo sufre claustrofobia recomendamos jugar la sala Medieval.
Niños acompañados de sus padres a partir de 8 años.
Abierto de 16:00 a 23:30 (última entrada 22:30). Domingos cerrado durante el verano.
NOTA: se ruega puntualidad con la hora reservada. Si se llega tarde puede ser que tengan que jugar en otro horario si el siguiente turno está reservado o tendrán que resolver la sala con menos de 60 minutos. El depósito no es retornable por llegar tarde.
</Description>
</ServiceOption>
</ServiceOptions>
</Service>
</Services>
<Insurances/>
<Rentacars/>
</Stay>
</Stays>
</PackageResult>
<PackageResult Start = "2020-03-01" End = "2020-03-07" DestinationZone = "1953" Code = "5II/fG+JGlu7ohE0UTiU1g==" Status = "OK" RatePlanCode = "vcMlFQjKD2dGSdK+Z4OEveVev6fN7KRvJqrXmt/daXkUu3PjbFR6QuHt1YOAOAiss56L05MxfLdsEQ8c4N86O79Mi0h+PB9w2arhuMLsjkT4vulgYxibmGj/Lq7YDalO">
<PackageInfo>
<Name>Dynamic Package GEN only services</Name>
</PackageInfo>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "0" Gross = "706.8" Nett = "706.8">
<Service Amount = "645.64"/>
<ServiceTaxes Included = "false" Amount = "61.16"/>
</TotalFixAmounts>
</Price>
</Prices>
<Stays>
<Stay Code = "1" DestinationZone = "1953" Start = "2020-03-01" End = "2020-03-07">
<Hotels>
<Hotel Code = "j8SZiYI/Ut6Ir0JgCO/xWA==" JPCode = "JP046300" Start = "2020-03-01" End = "2020-03-07" ICode = "5CWyQRiyHkGuIuR4hrtAk0gVsPyt6Dvz7MBT4/RKIQTnRmUE6J8xNeEjMpVFTHWrDzduyyrQA5PgH3r9XuFygX/ewp2xLth5XjVIcSARy7Jox+BWTYMoiOMr+eba4V6bfgWRg4DX8NwrQoTsWEjm4QBX9M//lX04SAqzSyzxbVTY87yGscHJqG8307zE/UOxlz9qbE0+rRv9fxXXURcWXyvZYKWUCLHN+w9ypIVnllh7adygkkaMDuC/XrjMlXw9imm45kEmtdaFWHHU7UK03o60l0de8kb5nkjjVPliK5luPz1vI5FYKWSjUk17So4w">
<HotelInfo>
<Name>APARTAMENTOS ALLSUN PIL-LARI PLAYA</Name>
<Description>Situados frente al mar, en el paseo marítimo de la Playa de Palma Inmueble de 204 estudios y apartamentos en constante reforma con recepción, bar-cafetería, videojuegos, billar, gimnasio, sala de tv (antena parabólica) y supermercado.</Description>
<Images>
<Image>https://juniper-uat.bookingengine.es/images/upload_p//hotels/APARTAMENTOS_ALLSUN_PIL-LARI_PLAYA.jpg</Image>
</Images>
<HotelCategory Type = "3">3 Estrellas</HotelCategory>
<Address>Calle Marbella 24</Address>
<Latitude>39.564713</Latitude>
<Longitude>2.627979</Longitude>
</HotelInfo>
<HotelOptions>
<HotelOption PackageContract = "false">
<Board Type = "SA">Sólo Alojamiento</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "187">Habitación no reembolsable</RoomCategory>
</HotelRoom>
</HotelRooms>
<AdditionalElements>
<HotelOffers>
<HotelOffer>
<Name>[2019] Descuento del 5%</Name>
<Description>Descripcion de oferta</Description>
</HotelOffer>
</HotelOffers>
</AdditionalElements>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights/>
<Transfers/>
<Services>
<Service Code = "hBtuXBVFPv3WjWfbAtQevA==" ICode = "2WB3f1GrzQK7lZmvmokW/5i5OxQaRpaAw9m5MBrZM1Jf4N5cgJeWBAEiw12odZCT" SearchMore = "true">
<ServiceInfo>
<Name>Best Escape Rooms Ocimax</Name>
<Description>Las habitaciones de escape son un nuevo juego de estrategia en equipo</Description>
<Images>
<Image>
<FileName>https://juniper-uat.bookingengine.es/images/upload_p//Services/bero_main.jpg</FileName>
</Image>
</Images>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2020-03-04T00:00:00" End = "2020-03-04T00:00:00" Destination = "15011">
<Name>La Egipcia</Name>
<Description>
Reserva tu habitación Egipcia e intenta resolver el Cetro de Anubis
Grupo mínimo 3 personas. Máximo 6.
Apto para adultos y jóvenes a partir de 14 años.
La sala Egipcia en algún momento del juego consta de espacios cerrados reducidos. Si algún miembro del equipo sufre claustrofobia recomendamos jugar la sala Medieval.
Niños acompañados de sus padres a partir de 8 años.
Abierto de 16:00 a 23:30 (última entrada 22:30). Domingos cerrado durante el verano.
NOTA: se ruega puntualidad con la hora reservada. Si se llega tarde puede ser que tengan que jugar en otro horario si el siguiente turno está reservado o tendrán que resolver la sala con menos de 60 minutos. El depósito no es retornable por llegar tarde.
</Description>
</ServiceOption>
</ServiceOptions>
</Service>
</Services>
<Insurances/>
<Rentacars/>
</Stay>
</Stays>
</PackageResult>
<PackageResult Start = "2020-03-01" End = "2020-03-07" DestinationZone = "1953" Code = "uwaRwLCeQkPsaH3sMCD3ug==" Status = "OK" RatePlanCode = "Qj8usfVJZznGV2D+z4C0S5uRX0bdoWcXbdj0bWFshYaU2G+vUqxmR51w3Ao/sThyekjz+Ihzix0mjQkyTdt51rmDyhEZhqbC3m2Oy+ut2qbfbHzEkVoLx3pio+qMrvVj">
<PackageInfo>
<Name>Dynamic Package GEN just hotel</Name>
</PackageInfo>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "0" Gross = "672.8" Nett = "672.8">
<Service Amount = "611.64"/>
<ServiceTaxes Included = "false" Amount = "61.16"/>
</TotalFixAmounts>
</Price>
</Prices>
<Stays>
<Stay Code = "1" DestinationZone = "1953" Start = "2020-03-01" End = "2020-03-07">
<Hotels>
<Hotel Code = "j8SZiYI/Ut6Ir0JgCO/xWA==" JPCode = "JP046300" Start = "2020-03-01" End = "2020-03-07" ICode = "cH+oi7Bmb7GSI96DIN9jCNVVtMF0D+159XyN9vs36tL50oR8j9b7uAg90lH8gWx9yYbkAMba45cdRC3JjKA5SJbnZq3rN9TzVN37UCmERRx3tThLySiI/kaiYMwvjmo6yh/c/u6iy4ZY/6Zc2V9coKFUr1jGGOzkPbZtwg+e0rXtdNvwUdG42+YoneQH71H8mG7370DnjUPZ+3v8gdv/s+AsuLrHUAUglKTdEUpFffx6JuhcugawBXrNLgynmTa0lyxsfmeLMtX+OSePX4EiyO0LwZz5mg6kWMDYOnZ5s3q3nPPmBV1j6YABb7vgJoDL">
<HotelInfo>
<Name>APARTAMENTOS ALLSUN PIL-LARI PLAYA</Name>
<Description>Situados frente al mar, en el paseo marítimo de la Playa de Palma Inmueble de 204 estudios y apartamentos en constante reforma con recepción, bar-cafetería, videojuegos, billar, gimnasio, sala de tv (antena parabólica) y supermercado.</Description>
<Images>
<Image>https://juniper-uat.bookingengine.es/images/upload_p//hotels/APARTAMENTOS_ALLSUN_PIL-LARI_PLAYA.jpg</Image>
</Images>
<HotelCategory Type = "3">3 Estrellas</HotelCategory>
<Address>Calle Marbella 24</Address>
<Latitude>39.564713</Latitude>
<Longitude>2.627979</Longitude>
</HotelInfo>
<HotelOptions>
<HotelOption PackageContract = "false">
<Board Type = "SA">Sólo Alojamiento</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "187">Habitación no reembolsable</RoomCategory>
</HotelRoom>
</HotelRooms>
<AdditionalElements>
<HotelOffers>
<HotelOffer>
<Name>[2019] Descuento del 5%</Name>
<Description>Descripcion de oferta</Description>
</HotelOffer>
</HotelOffers>
</AdditionalElements>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights/>
<Transfers/>
<Services/>
<Insurances/>
<Rentacars/>
</Stay>
</Stays>
</PackageResult>
</Results>
</AvailabilityRS>
</PackageAvailResponse>
</soap:Body>
</soap:Envelope>
This transaction uses the RatePlanCode of a package previously obtained through the PackageAvail transaction and allows the option of searching products for a stay and type of product. For instance, search for additional hotels, flights, etc…
In the following example more hotels are requested (as the ICode belongs to a hotel from the selected package)
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
PackageChangeProductRequest | N | - | Search properties. |
./PackageChangeProductRequest/PackageOption | N | - | - |
./PackageOption/@RatePlanCode | N | String | Encoded data with package combination |
./PackageOption/@ICode | N | Strng | Encrypted product code. Useful for optional products |
AdvancedOptions | Y | - | Optional information |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is True, it will show the full price object with all the information about the prices. If not specified, False is assumed by default. |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageChangeProduct>
<PackageChangeProductRQ Version="1.1" Language="es">
<Login Email="user@mydomain.com" Password="pass"/>
<PackageChangeProductRequest>
<PackageOption RatePlanCode="smHlCB+Z/QxfeBpTbXkBOqnLwBVqO7ja80+58JwuW+YidBsMZ+9moJ25oJUAe0+Lky8A8TqmgDMeaUQKlFwASRLUMLHYNumjT9CxtJ24CAa/k8+PMKWtofe5fpGeL/f" ICode="gY/a4++HB2PFMF6zRL/3WezupHKvrQrg6IIoPnveElz9copUQ==" />
</PackageChangeProductRequest>
</PackageChangeProductRQ>
</PackageChangeProduct>
</soap:Body>
</soap:Envelope>
The response we get is composed by some different packages, each one of them is the same as the initial one, but containing a different hotel combination and a new RatePlanCode that identifies each package with the new combination in a unique way.
Next, kindly find a copied a response after requesting for more hotels. The only variation from one result to the other is the hotel and price.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
Results | N | - | List of package results |
./Results/PackageResult | N | - | Element containing the package information |
./PackageResult/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./PackageResult/@End | Y | Date | End date range Format: yyyy-MM-dd |
./PackageResult/@OriginZone | Y | Integer | Juniper code of the origin zone. |
./PackageResult/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./PackageResult/@Code | N | String | Package code. |
./PackageResult/@Status | N | String | Package status: - OK: Available - RQ: On Request |
./PackageResult/@RatePlanCode | N | String | Encoded data with package combination |
./PackageResult/PackageInfo | |||
./PackageInfo/Name | N | String | Package name |
./PackageInfo/Images | Y | - | Images |
./Images/Image | Image URL | ||
./PackageInfo/Description | Y | - | Package description |
./PackageResult/{Prices} | N | - | |
./PackageResult/{Stays} | N | - | List of package stays. |
./PackageResult/{AdditionalElements} | Y | - | Additional elements. By now, supplements of the package |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageChangeProductResponse xmlns = "http://www.juniper.es/webservice/2007/">
<PackageChangeProductResult Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-06-14T13:39:46.8947930+02:00" IntCode = "pCzds/7edy8wT16OLA7vNYMtQj56mKZp10ke5hlKWRk=">
<Results>
<PackageResult Start = "2019-07-18" End = "2019-07-24" OriginZone = "40841" DestinationZone = "17852" Code = "qZFWAak+fHxtnJYsV6cyfA==" Status = "OK" RatePlanCode = "smHlCB+Z/QxfeBpTbXkBOqnLwBVqO7ja80+58JwuW+YidBsMZ+9moJl25oJUAe0+Lky8A8TqmgDMeaUQKlFwASRLUMLHYNumjT9CxtJ24CAa/k8+PMKWtofe5fpGeL/f">
<PackageInfo>
<Name>Vuelo + hotel</Name>
<Images>
<Image>/images/upload_p/paquetes/dinamicos/master1.jpg</Image>
</Images>
<Description>Vuelo + hotel con opcionales</Description>
</PackageInfo>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "771" Gross = "771" Nett = "771">
<Service Amount = "688.49"/>
<ServiceTaxes Included = "true" Amount = "81.98"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "688.49"/>
</TotalFixAmounts>
</Price>
</Prices>
<Stays>
<Stay Code = "1" DestinationZone = "17852" Start = "2019-05-18" End = "2019-05-24">
<Hotels>
<Hotel Start = "2019-07-18" End = "2019-07-24" SearchMore = "True" ICode = "gY/a4++HB2PFMF6zRL/3WezupHKvrQrg6IIoPnveElz9copUQ==">
<HotelInfo>
<Name>Balear Hotel - Demo</Name>
<Description>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed
venenatis, sem a pretium congue, odio velit commodo tellus,
</Description>
<Images>
<Image>/images/upload_p/paquetes/dinamicos/master1.jpg</Image>
</Images>
<HotelCategory Type = "5est">*****</HotelCategory>
</HotelInfo>
<HotelOptions>
<HotelOption>
<Board Type = "SA">Room only</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "DBL">Doble Estándar</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights>
<Flight SearchMore = "True" ICode = "gY/a4++HB2PFMF6zRL/jshfihwhrfhasnveElz9copUQ==">
<Routes>
<Route Origin = "45628" Destination = "41050">
<Segments>
<Segment Order = "1" DepartureAirport = "BCN" ArrivalDestination = "PMI" DepartureDate = "2019-05-18T11:50:00" ArrivalDate = "2019-05-18T12:35:00" OperatingAirline = "UX" FlightNumber = "4001" Class = "M" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
</Segments>
</Route>
<Route Origin = "41050" Destination = "45628">
<Segments>
<Segment Order = "1" DepartureAirport = "PMI" ArrivalDestination = "MAD" DepartureDate = "2019-05-24T13:25:00" ArrivalDate = "2019-05-24T14:15:00" OperatingAirline = "UX" FlightNumber = "4002" Class = "X" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
<Segment Order = "2" DepartureAirport = "MAD" ArrivalDestination = "BCN" DepartureDate = "2019-05-24T15:25:00" ArrivalDate = "2019-05-24T16:15:00" OperatingAirline = "IB" FlightNumber = "8521" Class = "Z" Cabin = "B" JourneyDuration = "P0DT7H5M0S"/>
</Segments>
</Route>
</Routes>
</Flight>
</Flights>
<Transfers>
<Transfer ICode = "357sU/drOtK4kaNI4xDZzXxdW345CqV7irgiw==" SearchMore = "true">
<TransferInfo>
<Name>Transfer by GoriX ES - No tocar por FAVOR</Name>
<Description>Traslado de terminal a aloja / aloja terminal</Description>
<Image>/Jellyfish.jpg</Image>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2019-09-21" End = "2019-09-21" Origin = "46121" Destination = "54813" Duration = "00:30:00" StartHour = "10:00:00">
<Name>Aeropuerto</Name>
<Description>Transfer</Description>
<OriginName>Palma de Mallorca Aeropuerto</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
</Transfer>
</Transfers>
<Services>
<Service ICode = "iCWxbE7mWrch+3G9vzWoFNet1gUJApYKQ==" SearchMore = "true">
<ServiceInfo>
<Name>Servicio RQ</Name>
<Description>Servicio RQ</Description>
<Image/>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2019-09-23" End = "2019-09-23" Destination = "17852" Duration = "00:00:00" StartHour = "00:00:00">
<Name>Aire libre</Name>
<Description>Aire libre</Description>
</ServiceOption>
</ServiceOptions>
</Service>
</Services>
</Stay>
</Stays>
<AdditionalElements>
<PackageSupplements>
<PackageSupplement>
<Name>Suplemento bienvenida</Name>
<Description>Regalo bienvenida incluido</Description>
</PackageSupplement>
</PackageSupplements>
</AdditionalElements>
</PackageResult>
<PackageResult Start = "2019-07-18" End = "2019-07-24" OriginZone = "40841" DestinationZone = "17852" Code = "qZFWAak+fHxtnJYsV6cyfA==" Status = "OK" RatePlanCode = "smHlCB+Z/QxfeBpTbXkBOqnLwBVqO7ja80+58JwuW+YidBsMZ+9moJl25oJUAe0+Lky8A8TqmgDMeaUQKlFwASRLUMLHYNumjT9CxtJ24CAa/k8+PMKWtofe5fpGeL/f">
<PackageInfo>
<Name>Vuelo + hotel</Name>
<Images>
<Image>/images/upload_p/paquetes/dinamicos/master1.jpg</Image>
</Images>
<Description>Vuelo + hotel</Description>
</PackageInfo>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "771" Gross = "771" Nett = "771">
<Service Amount = "788.49"/>
<ServiceTaxes Included = "true" Amount = "81.98"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "788.49"/>
</TotalFixAmounts>
</Price>
</Prices>
<Stays>
<Stay Code = "1" DestinationZone = "17852" Start = "2019-05-18" End = "2019-05-24">
<Hotels>
<Hotel Start = "2019-07-18" End = "2019-07-24" SearchMore = "True" ICode = "gY/a4++HB2PFMF6zRL/j48sf8sdf4snveElz9copUQ==">
<HotelInfo>
<Name>Balear Hotel - Demo</Name>
<Description>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed
venenatis, sem a pretium congue, odio velit commodo tellus,
</Description>
<Images>
<Image>/images/upload_p/paquetes/dinamicos/master1.jpg</Image>
</Images>
<HotelCategory Type = "5est">*****</HotelCategory>
</HotelInfo>
<HotelOptions>
<HotelOption>
<Board Type = "SA">Room only</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "DBL">Doble Estándar</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights>
<Flight SearchMore = "True" ICode = "gY/a4++HB2PFD67D3NFRL/jshfihwhrfhasnveElz9copUQ==">
<Routes>
<Route Origin = "45628" Destination = "41050">
<Segments>
<Segment Order = "1" DepartureAirport = "BCN" ArrivalAirport = "PMI" DepartureDate = "2019-05-18T11:50:00" ArrivalDate = "2019-05-18T12:35:00" OperatingAirline = "UX" FlightNumber = "4001" Class = "M" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
</Segments>
</Route>
<Route Origin = "41050" Destination = "45628">
<Segments>
<Segment Order = "1" DepartureAirport = "PMI" ArrivalAirport = "MAD" DepartureDate = "2019-05-24T13:25:00" ArrivalDate = "2019-05-24T14:15:00" OperatingAirline = "UX" FlightNumber = "4002" Class = "X" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
<Segment Order = "2" DepartureAirport = "MAD" ArrivalAirport = "BCN" DepartureDate = "2019-05-24T15:25:00" ArrivalDate = "2019-05-24T16:15:00" OperatingAirline = "IB" FlightNumber = "8521" Class = "Z" Cabin = "B" JourneyDuration = "P0DT7H5M0S"/>
</Segments>
</Route>
</Routes>
</Flight>
</Flights>
<Transfers>
<Transfer ICode = "357sU/drOtK4kaNI4xDZzXxdW345CqV7irgiw==" SearchMore = "true">
<TransferInfo>
<Name>Transfer by GoriX ES - No tocar por FAVOR</Name>
<Description>Traslado de terminal a aloja / aloja terminal</Description>
<Image>/Jellyfish.jpg</Image>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2019-09-21T10:00:00" End = "2019-09-21T10:30:00" Origin = "46121" Destination = "54813" Duration = "P0DT0H30M0S">
<Name>Aeropuerto</Name>
<Description>Transfer</Description>
<OriginName>Palma de Mallorca Aeropuerto</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
</Transfer>
</Transfers>
<Services>
<Service ICode = "iCWxbE7mWrch+3G9vzWoFNet1gUJApYKQ==" SearchMore = "true">
<ServiceInfo>
<Name>Servicio RQ</Name>
<Description>Servicio RQ</Description>
<Image/>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2019-09-23T10:00:00" End = "2019-09-23T10:30:00" Destination = "17852" Duration = "P0DT0H30M0S">
<Name>Aire libre</Name>
<Description>Aire libre</Description>
</ServiceOption>
</ServiceOptions>
</Service>
</Services>
</Stay>
</Stays>
<AdditionalElements>
<PackageSupplements>
<PackageSupplement>
<Name>Suplemento bienvenida</Name>
<Description>Regalo bienvenida incluido</Description>
</PackageSupplement>
</PackageSupplements>
</AdditionalElements>
</PackageResult>
</Results>
</PackageChangeProductResult>
</PackageChangeProductResponse>
</soap:Body>
</soap:Envelope>
Response as a result of a request for more flights
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageCheckAvailResponse>
<PackageCheckAvailRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-06-17T09:45:03.6961260+02:00" IntCode = "DYF+5lY/+7FJ9Y+hmvL6bNOklagUY/UtbD5WFNRcfZI=">
<Warnings>
<Warning Code = "warnFlightAlert">Hotel :El Vuelo llega el dia siguiente (30/06/2019 6:30:00), se ha ajustado el hotel a tener un noche menos.</Warning>
<Warning Code = "warnPriceChanged">Paquete: El Precio de paquete ha bajado de 2627,16 a 2593,05 USD</Warning>
</Warnings>
<Results>
<PackageResult>
<PackageOptions>
<PackageOption Status = "OK" Start = "2019-07-18" End = "2019-07-24" OriginZone = "40841" DestinationZone = "17852" Code = "1242¬DYN" RatePlanCode = "smHlCB+Z/QxfeBpTbXkBOqnLwBVqO7ja80+58JwuW+YidBsMZ+9moJl25oJUAe0+Lky8A8TqmgDMeaUQKlFwASRLUMLHYNumjT9CxtJ24CAa/k8+PMKWtofe5fpGeL/f">
<Stays>
<Stay Code = "1" DestinationZone = "17852" Start = "2019-07-18" End = "2019-07-24">
<Hotels>
<Hotel Start = "2019-07-18" End = "2019-07-24" SearchMore = "True" ICode = "gY/a4++HB2PFMF6zRL/jshfihwhrfhasnveElz9copUQ==">
<HotelInfo>
<Name>Balear Hotel - Demo</Name>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed venenatis, sem a pretium congue, odio velit commodo tellus,</Description>
<Images>
<Image>/images/upload_p/paquetes/dinamicos/master1.jpg</Image>
</Images>
<HotelCategory Type = "5est">*****</HotelCategory>
</HotelInfo>
<HotelOptions>
<HotelOption>
<Board Type = "SA">Room only</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "DBL">Doble Estándar</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights>
<Flight SearchMore = "True" ICode = "gY/a4++HB2PFMF6zRL/SF353/hfs234z9copUQ==">
<Routes>
<Route Origin = "45628" Destination = "41050">
<FlightSegments>
<FlightSegment Order = "1" DepartureAirport = "BCN" ArrivalDestination = "PMI" DepartureDate = "2019-05-18T11:50:00" ArrivalDate = "2019-05-18T12:35:00" OperatingAirline = "UX" FlightNumber = "4001" Class = "M" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
</FlightSegments>
</Route>
<Route Origin = "41050" Destination = "45628">
<FlightSegments>
<FlightSegment Order = "1" DepartureAirport = "PMI" ArrivalDestination = "MAD" DepartureDate = "2019-05-24T13:25:00" ArrivalDate = "2019-05-24T14:15:00" OperatingAirline = "UX" FlightNumber = "4002" Class = "X" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
<FlightSegment Order = "2" DepartureAirport = "MAD" ArrivalDestination = "BCN" DepartureDate = "2019-05-24T15:25:00" ArrivalDate = "2019-05-24T16:15:00" OperatingAirline = "IB" FlightNumber = "8521" Class = "Z" Cabin = "B" JourneyDuration = "P0DT7H5M0S"/>
</FlightSegments>
</Route>
</Routes>
</Flight>
</Flights>
<Transfers>
<Transfer ICode = "357sU/drOtK4kaNI4xDZzXxdW345CqV7irgiw==" SearchMore = "true">
<TransferInfo>
<Name>Transfer by GoriX ES - No tocar por FAVOR</Name>
<Description>Traslado de terminal a aloja / aloja terminal</Description>
<Image>/Jellyfish.jpg</Image>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2019-09-21T10:00:00" End = "2019-09-21T10:30:00" Origin = "46121" Destination = "54813" Duration = "P0DT7H5M0S">
<Name>Aeropuerto</Name>
<Description>Transfer</Description>
<OriginName>Palma de Mallorca Aeropuerto</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
</Transfer>
</Transfers>
<Services>
<Service ICode = "iCWxbE7mWrch+3G9vzWoFNet1gUJApYKQ==" SearchMore = "true">
<ServiceInfo>
<Name>Servicio RQ</Name>
<Description>Servicio RQ</Description>
<Image/>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2019-09-23T10:00:00" End = "2019-09-23T10:30:00" Destination = "17852" Duration = "P0DT7H5M0S">
<Name>Aire libre</Name>
<Description>Aire libre</Description>
</ServiceOption>
</ServiceOptions>
</Service>
</Services>
</Stay>
</Stays>
<AdditionalElements>
<PackageSupplements>
<PackageSupplement>
<Name>Suplemento bienvenida</Name>
<Description>Regalo bienvenida incluido</Description>
</PackageSupplement>
</PackageSupplements>
</AdditionalElements>
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "2593" Nett = "2593">
<Service Amount = "2583"/>
<ServiceTaxes Included = "true" Amount = "10"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "-0"/>
</TotalFixAmounts>
<Breakdown>
<Concepts>
<Concept Type = "BAS" Name = "Base">
<Items>
<Item Amount = "2583" Quantity = "1"/>
</Items>
</Concept>
<Concept Type = "TAS" Name = "ppp">
<Items>
<Item Amount = "10" Quantity = "1"/>
</Items>
</Concept>
</Concepts>
<Taxes>
<Tax Name = "ppp" IsFix = "true" ByNight = "true" Commissionable = "false" Included = "false">
<Total Base = "2583" Amount = "10"/>
</Tax>
</Taxes>
</Breakdown>
</Price>
</Prices>
</PackageOption>
</PackageOptions>
</PackageResult>
</Results>
</PackageCheckAvailRS>
</PackageCheckAvailResponse>
</soap:Body>
</soap:Envelope>
As we can see, the response consist of a list of different packages that contain all the different options. Just the same as the availability response.
This is an optional request and lets us check the package availability before sending a PackageBookingRules request. Therefore, in order to send this request we need a RatePlanCode obtained from the availability response or after a product change.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
PackageCheckAvailRequest | N | - | Search properties. |
./PackageCheckAvailRequest/PackageOption | N | - | |
./PackageOption/@RatePlanCode | N | String | Encoded data with package combination |
AdvancedOptions | Y | - | Optional information |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is True, it will show the full price object with all the information about the prices. If not specified, False is assumed by default. |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageCheckAvail>
<PackageCheckAvailRQ Version="1.1" Language="es">
<Login Email="user@mydomain.com" Password="pass"/>
<PackageCheckAvailRequest>
<PackageOption RatePlanCode="smHlCB+Z/QxfeBpTbXkBOqnLwBVqO7ja80+58JwuW+YidBsMZ+9moJl25oJUAe0+Lky8A8TqmgDMeaUQKlFwASRLUMLHYNumjT9CxtJ24CAa/k8+PMKWtofe5fpGeL/f" />
</PackageCheckAvailRequest>
</PackageCheckAvailRQ>
</PackageCheckAvail>
</soap:Body>
</soap:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
Results | N | - | List of package results |
./Results/PackageResult | N | - | Element containing the package information |
./PackageResult/PackageOptions | N | - | List of package options |
./PackageOptions/PackageOption | N | - | |
./PackageOption/@Status | N | String | Package status: - OK: Available - RQ: On Request |
./PackageOption/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./PackageOption/@End | N | Date | End date range Format: yyyy-MM-dd |
./PackageOption/@OriginZone | Y | Integer | Juniper code of the origin zone. |
./PackageOption/@DestinationZone | N | Integer | Juniper code of the destination zone. |
./PackageOption/@Code | N | String | Package code |
./PackageOption/@RatePlanCode | N | String | Encoded data with package combination |
./PackageOption/{Stays} | N | - | List of package stays. |
./PackageOption/{AdditionalElements} | Y | - | Additional elements. By now, supplements of the package |
./PackageOption/{Prices} | - | Prices |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageCheckAvailResponse>
<PackageCheckAvailRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-06-17T09:45:03.6961260+02:00" IntCode = "DYF+5lY/+7FJ9Y+hmvL6bNOklagUY/UtbD5WFNRcfZI=">
<Warnings>
<Warning Code = "warnFlightAlert">Hotel :El Vuelo llega el dia siguiente (30/06/2019 6:30:00), se ha ajustado el hotel a tener un noche menos.</Warning>
<Warning Code = "warnPriceChanged">Paquete: El Precio de paquete ha bajado de 2627,16 a 2593,05 USD</Warning>
</Warnings>
<Results>
<PackageResult>
<PackageOptions>
<PackageOption Status = "OK" Start = "2019-07-18" End = "2019-07-24" OriginZone = "40841" DestinationZone = "17852" Code = "1242¬DYN" RatePlanCode = "smHlCB+Z/QxfeBpTbXkBOqnLwBVqO7ja80+58JwuW+YidBsMZ+9moJl25oJUAe0+Lky8A8TqmgDMeaUQKlFwASRLUMLHYNumjT9CxtJ24CAa/k8+PMKWtofe5fpGeL/f">
<Stays>
<Stay Code = "1" DestinationZone = "17852" Start = "2019-07-18" End = "2019-07-24">
<Hotels>
<Hotel Start = "2019-07-18" End = "2019-07-24" SearchMore = "True" ICode = "gY/a4++HB2PFMF6zRL/jshfihwhrfhasnveElz9copUQ==">
<HotelInfo>
<Name>Balear Hotel - Demo</Name>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed venenatis, sem a pretium congue, odio velit commodo tellus,</Description>
<Images>
<Image>/images/upload_p/paquetes/dinamicos/master1.jpg</Image>
</Images>
<HotelCategory Type = "5est">*****</HotelCategory>
</HotelInfo>
<HotelOptions>
<HotelOption>
<Board Type = "SA">Room only</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "DBL">Doble Estándar</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights>
<Flight SearchMore = "True" ICode = "gY/a4++HB2PFMF6zRL/SF353/hfs234z9copUQ==">
<Routes>
<Route Origin = "45628" Destination = "41050">
<FlightSegments>
<FlightSegment Order = "1" DepartureAirport = "BCN" ArrivalDestination = "PMI" DepartureDate = "2019-05-18T11:50:00" ArrivalDate = "2019-05-18T12:35:00" OperatingAirline = "UX" FlightNumber = "4001" Class = "M" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
</FlightSegments>
</Route>
<Route Origin = "41050" Destination = "45628">
<FlightSegments>
<FlightSegment Order = "1" DepartureAirport = "PMI" ArrivalDestination = "MAD" DepartureDate = "2019-05-24T13:25:00" ArrivalDate = "2019-05-24T14:15:00" OperatingAirline = "UX" FlightNumber = "4002" Class = "X" Cabin = "E" JourneyDuration = "P0DT7H5M0S"/>
<FlightSegment Order = "2" DepartureAirport = "MAD" ArrivalDestination = "BCN" DepartureDate = "2019-05-24T15:25:00" ArrivalDate = "2019-05-24T16:15:00" OperatingAirline = "IB" FlightNumber = "8521" Class = "Z" Cabin = "B" JourneyDuration = "P0DT7H5M0S"/>
</FlightSegments>
</Route>
</Routes>
</Flight>
</Flights>
<Transfers>
<Transfer ICode = "357sU/drOtK4kaNI4xDZzXxdW345CqV7irgiw==" SearchMore = "true">
<TransferInfo>
<Name>Transfer by GoriX ES - No tocar por FAVOR</Name>
<Description>Traslado de terminal a aloja / aloja terminal</Description>
<Image>/Jellyfish.jpg</Image>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2019-09-21T10:00:00" End = "2019-09-21T10:30:00" Origin = "46121" Destination = "54813" Duration = "P0DT7H5M0S">
<Name>Aeropuerto</Name>
<Description>Transfer</Description>
<OriginName>Palma de Mallorca Aeropuerto</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
</Transfer>
</Transfers>
<Services>
<Service ICode = "iCWxbE7mWrch+3G9vzWoFNet1gUJApYKQ==" SearchMore = "true">
<ServiceInfo>
<Name>Servicio RQ</Name>
<Description>Servicio RQ</Description>
<Image/>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2019-09-23T10:00:00" End = "2019-09-23T10:30:00" Destination = "17852" Duration = "P0DT7H5M0S">
<Name>Aire libre</Name>
<Description>Aire libre</Description>
</ServiceOption>
</ServiceOptions>
</Service>
</Services>
</Stay>
</Stays>
<AdditionalElements>
<PackageSupplements>
<PackageSupplement>
<Name>Suplemento bienvenida</Name>
<Description>Regalo bienvenida incluido</Description>
</PackageSupplement>
</PackageSupplements>
</AdditionalElements>
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "2593" Nett = "2593">
<Service Amount = "2583"/>
<ServiceTaxes Included = "true" Amount = "10"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "-0"/>
</TotalFixAmounts>
<Breakdown>
<Concepts>
<Concept Type = "BAS" Name = "Base">
<Items>
<Item Amount = "2583" Quantity = "1"/>
</Items>
</Concept>
<Concept Type = "TAS" Name = "ppp">
<Items>
<Item Amount = "10" Quantity = "1"/>
</Items>
</Concept>
</Concepts>
<Taxes>
<Tax Name = "ppp" IsFix = "true" ByNight = "true" Commissionable = "false" Included = "false">
<Total Base = "2583" Amount = "10"/>
</Tax>
</Taxes>
</Breakdown>
</Price>
</Prices>
</PackageOption>
</PackageOptions>
</PackageResult>
</Results>
</PackageCheckAvailRS>
</PackageCheckAvailResponse>
</soap:Body>
</soap:Envelope>
This transaction is based on the “RatePlanCode”. It validates the package starting from the specified RatePlanCode, and returns a new code called “BookingCode” with which it is possible to book the package or finish its configuration with other PackageBookingRules transactions.
Besides the BookingCode needed to confirm the booking, this transaction will return:
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
PackageBookingRuleRequest | N | - | Search properties. |
./PackageBookingRuleRequest/PackageOption | N | - | Selected package option. |
./PackageOption/@RatePlanCode | N | String | Encoded data with package combination |
./PackageBookingRuleRequest/RelPaxesDist | Y | - | Passenger distribution. Optional unless we wish to select specific seat selection codes. |
./RelPaxesDist/RelPaxDist | Y | - | Distribution list, only one is needed. |
./RelPaxDist/RelPaxes | Y | - | Passenger list of this distribution. |
./RelPaxes/RelPax | Y | - | Specific passenger. |
./RelPax/@IdPax | N | Integer | Passenger id. Should match the previously specified distribution. |
./RelPax/PaxSeats | Y | - | Passenger seating information. Through this node, you will be able to establish which seatings you would like to select for each passenger. |
./PaxSeats/PaxSeat | Y | - | Specific passenger seat. |
./PaxSeat/@SeatSelectionCode | N | String | Seat selection code. Should match the value from the SeatSelectionCode property found within the SeatingMap object. Kindly refer to the {Flights} object for further information regarding the seat selection feature. |
./RelPax/PaxBags | Y | - | Passenger baggage information. Through this node, you will be able to establish which bags you would like to select for each passenger. |
./PaxBags/PaxBag | Y | - | Specific passenger bag. |
./PaxBag/@BagSelectionCode | N | String | Bag selection code. Should match the value from the BagSelectionCode property found within the Bags object. Kindly refer to the {Flights} object for further information regarding the bag selection feature. |
AdvancedOptions | Y | - | Optional information |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is True, it will show the full price object with all the information about the prices. If not specified, False is assumed by default. |
./AdvancedOptions/PromoCode | Y | String | Promotional code that you would like to apply to the combination. • If found and applied, the promotion will not be included within the HotelResult price and, instead, be returned through its own AdjustmentElement. • If unsuccessful, the response will include a warnPromoNotApply warning. |
./PromoCode/@BinCode | Y | String | BinCode for which you would like to search for an applicable promotion. May be sent along with a PromoCode, case on which the system will look for the best possible promotion available within the two. |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns = "http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageBookingRules>
<PackageBookingRulesRQ Version = "1.1" Language = "es">
<Login Email = "user@mydomain.com" Password = "pass"/>
<PackageBookingRuleRequest>
<PackageOption RatePlanCode = "smHlCB+Z/QxfeBpTbXkBOqnLwBVqO7ja80+58JwuW+YidBsMZ+9moJl25oJUAe0+Lky8A8TqmgDMeaUQKlFwASRLUMLHYNumjT9CxtJ24CAa/k8+PMKWtofe5fpGeL/f"/>
</PackageBookingRuleRequest>
</PackageBookingRulesRQ>
</PackageBookingRules>
</soap:Body>
</soap:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
Results | N | - | List of package results |
./Results/PackageResult | N | - | Element containing the package information |
./PackageResult/@Status | N | String | Package status: - OK: Available - RQ: On Request |
./PackageResult/@Start | N | Date | Start date range Format: yyyy-MM-dd |
./PackageResult/@End | N | Date | End date range Format: yyyy-MM-dd |
./PackageResult/@OriginZone | Y | Integer | Juniper code of the origin zone |
./PackageResult/@DestinationZone | N | Integer | Juniper code of the destination zone |
./PackageResult/@Code | N | String | Package code |
./PackageResult/BookingCode | N | String | Encrypted code that identifies the package with selected products and options |
./BookingCode/@ExpirationDate | N | DateTime | Shows the expiration date of the generated BookingCode. Format: yyyy-MM-ddThh:mm:ss (UTC) |
./PackageResult/PackageRequiredFields | N | - | List of required elements to confirm the booking. It is very important to comply with this information as, otherwise, the booking will not be confirmed. |
./PackageRequiredFields/PackageBooking | N | - | Set of mandatory elements required in order to successfully confirm the booking. |
./PackageBooking/{Paxes} | N | Indicates the passenger information. Array of passangers. Fields of this transaction: @IdPax (Required) Age (Optional for adults) |
|
./PackageBooking/Holder | N | - | Booking holder. It is mandatory to indicate which of the passengers of the Paxes node that you wish to be the booking holder. Any passenger that stays at the hotel may be the booking holder or you may add a new passenger. |
./Holder/RelPax | N | - | |
./RelPax/@IdPax | N | Integer | Booking passenger Id. It should match with a Pax@IdPax. |
./PackageBooking/Elements | N | List of package elements | |
./Elements/{PackageElement} | N | - | Package element. Follows the same structure as that of the node of the same name found within the PackageBooking request. |
./PackageResult/{CancellationPolicy} | N | - | Cancellation policies |
./PackageResult/PriceInformation | N | - | Price information |
./PriceInformation/PackageInfo | N | - | General information of the package. |
./PackageInfo/Name | N | String | Name of the package. |
./PriceInformation/{Stays} | N | - | List of package stays. |
./PriceInformation/{AdditionalElements} | Y | - | Additional elements. By now, supplements of the package |
./PriceInformation/{Prices} | N | - | |
./PriceInformation/BillingOrganization | Y | String | Billing organization name. This information is restricted and will not be available by default. |
./BillingOrganization/@Code | Y | String | Billing organization code. |
./Results/{AdjustmentResult} | Y | - | Additional adjustment result. It will be available if, for example, you've manually added a PromoCode by using the AdvancedOption found within this same transaction request. |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageBookingRulesResponse xmlns = "http://www.juniper.es/webservice/2007/">
<BookingRulesRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-10-19T00:11:32.845352+02:00" IntCode = "+9UCx8b7UuqesqNcNhZc3WXGxjz72Z0LGmKDBrZnj2E=">
<Results>
<PackageResult Status = "OK" Start = "2020-03-01" End = "2020-03-07" DestinationZone = "1953" Code = "OkidhLAw+j5/wFBPHnmoJQ==">
<BookingCode ExpirationDate = "2019-10-19T00:21:32.8296804+02:00">ShYElaF6T4B2uSSAOuY6TM8mTr7Naii/9DjQ7xzH4n4zz4a1hjN1FJCdoe1zR/BVAONZaOWfC696U0HBz2...</BookingCode>
<PackageRequiredFields>
<PackageBooking>
<Paxes>
<Pax IdPax = "1">
<Title>Pax Title</Title>
<Name>Holder Name</Name>
<Surname>Holder Surname</Surname>
<Age>30</Age>
</Pax>
</Paxes>
<Holder>
<RelPax IdPax = "1"/>
</Holder>
<Elements>
<PackageElement>
<BookingCode>ShYElaF6T4B2uSSAOuY6TM8mTr7Naii/9DjQ7xzH4n4zz4a1hjN1FJCdoe1zR/BVAONZaOWfC696U0HBz2...</BookingCode>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
<PackageBookingInfo Start = "2020-03-01" End = "2020-03-07">
<PackageCode>OkidhLAw+j5/wFBPHnmoJQ==</PackageCode>
</PackageBookingInfo>
<TransfersBookingInfo>
<TransferBookingInfo ICode = "1HCeFFjSX2o/z5hS3sR+HynvjBs6ihZRbqCrbPBuNo8/7IQ66txeElEcNpeJPhrq">
<Origin Type = "ARP">
<MeetingPointInfo Code = "999" MeetingTime = "2019-10-19T00:11:32.5015822+02:00"/>
<FlightInfo FlightTime = "2019-10-19T00:11:32.5015822+02:00" FlightNumber = "XX1234"/>
</Origin>
<Destination Type = "ALO">
<MeetingPointInfo Code = "999" MeetingTime = "2019-10-19T00:11:32.5015822+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
</TransfersBookingInfo>
<ServicesBookingInfo>
<ServiceBookingInfo ICode = "KMr93LHn7NuLszTSH2M2e/1pUQo1e1WgJe7xIguqUbeyhkZ0b3jNOj2e4RgBxuD1">
<MeetingPointInfo Code = "999" MeetingTime = "2020-03-04T00:00:00"/>
</ServiceBookingInfo>
</ServicesBookingInfo>
</PackageElement>
</Elements>
</PackageBooking>
</PackageRequiredFields>
<CancellationPolicy CurrencyCode = "EUR">
<FirstDayCostCancellation Hour = "00:00">2019-10-18</FirstDayCostCancellation>
<Description>Be Live Adults Only Marivent: * Cancelando desde 18/10/2019 a las 00:00:00 hasta 22/02/2020 a las 23:58:59: 0 &euro; * Cancelando después de 22/02/2020 a las 23:59:00: 99.09 &euro; *Fecha y hora se calcula basándose en la hora local del destino (GMT +01:00) | * PMI Airport to center: General policy | * Best Escape Rooms Ocimax: No reembolsable</Description>
<PolicyRules>
<Rule DateFrom = "2019-10-18" DateFromHour = "00:00" DateTo = "2020-02-22" DateToHour = "23:58" Type = "V" FixedPrice = "32" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-02-22" DateFromHour = "23:59" DateTo = "2020-02-23" DateToHour = "23:59" Type = "V" FixedPrice = "131.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-02-24" DateFromHour = "00:00" DateTo = "2020-02-29" DateToHour = "23:59" Type = "V" FixedPrice = "159.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-03-01" DateFromHour = "00:00" Type = "S" FixedPrice = "131.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
</PolicyRules>
</CancellationPolicy>
<PriceInformation>
<PackageInfo>
<Name>Dynamic Package GEN</Name>
</PackageInfo>
<Stays>
<Stay Code = "1" DestinationZone = "1953" Start = "2020-03-01" End = "2020-03-07">
<Hotels>
<Hotel Code = "n150KfeE7tJELgjozI01ow==" JPCode = "JP243849" Start = "2020-03-01" End = "2020-03-07" ICode = "DstJXeDYuAM9+5Nc+4OdxcVHcHobJYLkgiv7LMXLnWEo7Uz9ybcr6GvlHaBWrTJNF9KV5IMQqM5QsoCi1C...">
<HotelInfo>
<Name>Be Live Adults Only Marivent</Name>
<Images/>
<HotelCategory Type = "4">4 Estrellas</HotelCategory>
<Address>Carrer Gavina,9 , 07015, CALA MAYOR</Address>
<Latitude>39.552559</Latitude>
<Longitude>2.606677</Longitude>
</HotelInfo>
<HotelOptions>
<HotelOption PackageContract = "false">
<Board Type = "SA">ROOM ONLY</Board>
<HotelRooms>
<HotelRoom Units = "1">
<RoomCategory Type = "DBT.SU">Double or Twin SUPERIOR</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Flights/>
<Transfers>
<Transfer Code = "HmI+0kDMRhu0c9ysAbhvxQ==" ICode = "1HCeFFjSX2o/z5hS3sR+HynvjBs6ihZRbqCrbPBuNo8/7IQ66txeElEcNpeJPhrq" SearchMore = "true">
<TransferInfo>
<Name>PMI Airport to center</Name>
<Description>Descripcion de traslado de Aeropuerto Palma de Mallorca al centro</Description>
<Images>
<Image Featured = "true">
<FileName>https://juniper-uat.bookingengine.es/images/upload_p//Transfers/cache_46940620.png</FileName>
</Image>
</Images>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2020-03-01T00:00:00" End = "2020-03-01T00:45:00" Origin = "40233" OriginType = "ARP" Destination = "15011" DestinationType = "ALO" Duration = "P0DT0H45M0S">
<Name>Taxi</Name>
<Description/>
<OriginName>Aeropuerto de Palma de Mallorca</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
<TransferBookingInfo/>
</Transfer>
</Transfers>
<Services>
<Service Code = "hBtuXBVFPv3WjWfbAtQevA==" ICode = "KMr93LHn7NuLszTSH2M2e/1pUQo1e1WgJe7xIguqUbeyhkZ0b3jNOj2e4RgBxuD1" SearchMore = "true">
<ServiceInfo>
<Name>Best Escape Rooms Ocimax</Name>
<Description>Las habitaciones de escape son un nuevo juego de estrategia en equipo</Description>
<Images>
<Image>
<FileName>https://juniper-uat.bookingengine.es/images/upload_p//Services/bero_main.jpg</FileName>
</Image>
</Images>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2020-03-04T00:00:00" End = "2020-03-04T00:00:00" Destination = "15011">
<Name>La Egipcia</Name>
<Description>
Reserva tu habitación Egipcia e intenta resolver el Cetro de Anubis
Grupo mínimo 3 personas. Máximo 6.
Apto para adultos y jóvenes a partir de 14 años.
La sala Egipcia en algún momento del juego consta de espacios cerrados reducidos. Si algún miembro del equipo sufre claustrofobia recomendamos jugar la sala Medieval.
Niños acompañados de sus padres a partir de 8 años.
Abierto de 16:00 a 23:30 (última entrada 22:30). Domingos cerrado durante el verano.
NOTA: se ruega puntualidad con la hora reservada. Si se llega tarde puede ser que tengan que jugar en otro horario si el siguiente turno está reservado o tendrán que resolver la sala con menos de 60 minutos. El depósito no es retornable por llegar tarde.
</Description>
</ServiceOption>
</ServiceOptions>
</Service>
</Services>
<Insurances/>
<Rentacars/>
</Stay>
</Stays>
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "0" Gross = "161.58" Nett = "161.58">
<Service Amount = "161.58"/>
</TotalFixAmounts>
</Price>
</Prices>
</PriceInformation>
</PackageResult>
</Results>
</BookingRulesRS>
</PackageBookingRulesResponse>
</soap:Body>
</soap:Envelope>
This is the transaction to confirm the bookings. Each booking is a combination of different products and the BookingCode is the code that identifies the combination.
Besides the BookingCode, it is important to send certain required information about the passenger, or the different products of the package to validate correctly the combination. If it is not sent, it will return an error.
It is possible to include some additional information about transfers and services into a package. This information may be necessary to complete the booking and includes flight numbers, meeting points, hotels, schedules…
The following example returns two transfers, one for each way, including the most common types: transfer from the airport to the hotel and vice versa. It is also shown a service example that specifies information about the meeting point.
Note: For further information regarding the meeting point codes (both transfers and services), please contact XML Support. The rest of the information is available, if the selected package combination has any associated flight. In the flight information, you will find the departure and arrival times, flight numbers, departure and arrival terminals in the origin and destination areas, etc.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
@TimeStamp | Y | DateTime | This is an optional field that allows for you to send your own time stamp. Format: yyyy-MM-ddThh:mm:ss (UTC) |
{Login} | N | - | Customer login to access the Web Service |
{Paxes} | N | - | Indicates the passenger information. Array of passangers. Fields necessary for this transaction: @IdPax (Required) Age (Optional for adults |
Holder | N | - | Main passenger |
./Holder/@IdPax | N | Integer | Main passenger identifier |
ReservationLocator | Y | String | You may indicate an existing booking code to add a package to it. Remarcable points: * If no data of the main pax is sent, current data of the booking holder will be taken. * If some data of the main pax is sent, name and surname should match to the current booking holder. The rest of the info will be updated. |
ExternalBookingReference | Y | String | Free text that may indicate its agency reference, booking code or any code you wish to identify the booking. It will not exceed 50 characters. |
PlatformBookingReference | Y | String | Free text field through which you may send the reference of your platform (ideally you should always prioritize the ExternalBookingReference but, if you would like to differentiate between your platform and the agency's final booking reference, send the agency one on ExternalBookingReference and yours here). Right now this is mainly a referential purposes, and cannot be used in order to search and/or identify bookings. |
FileNumber | Y | String | File No. |
Agent | Y | - | If you are interested you may modify the name and email of the user that is making the booking. By default, the ones that are configured are used in the user. |
./Agent/@Name | Y | String | Agent name |
./Agent/@Email | Y | String | Agent email |
Comments | Y | - | List of comments |
./Comments/Comment | N | String | Comment |
./Comment/@Type | Y | String | Comment type. Possible values: • RES: General booking comments • INT: Internal booking comments. Kindly note that these comments are restricted, contact with Juniper for more information. Note that it is important to set the proper @Type or the comment won’t be properly saved. |
Elements | N | - | List of elements |
./Elements/{PackageElement} | N | - | Package element. Follows the same structure as that of the node of the same name found within the PackageBookingRules response. |
AdvancedOptions | Y | - | Optional information |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is True, it will show the full price object with all the information about the prices. If not specified, False is assumed by default. |
./AdvancedOptions/SendMailTo | Y | String | If included with the ALL value a booking confirmation email will be sent to your email account. |
./AdvancedOptions/BookingPaid | Y | String | Parameter meant for internal use only. |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns = "http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageBooking>
<PackageBookingRQ Version = "1.1" Language = "es">
<Login Email = "user@mydomain.com" Password = "pass"/>
<Paxes>
<Pax IdPax = "1">
<Title>Mr</Title>
<Name>Alfred</Name>
<Surname>Ashton</Surname>
<Age>30</Age>
</Pax>
</Paxes>
<Holder>
<RelPax IdPax = "1"/>
</Holder>
<ExternalBookingReference>REFERENCES0123456</ExternalBookingReference>
<Comments>
<Comment type = "RES">Reservation comment</Comment>
</Comments>
<Elements>
<PackageElement>
<BookingCode>ShYElaF6T4B2uSSAOuY6TM8mTr7Naii/9DjQ7xzH4n4zz4a1hjN1FJCdoe1zR/BVAONZaOWfC696U0HBz2...</BookingCode>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
<PackageBookingInfo Start = "2020-03-01" End = "2020-03-07">
<PackageCode>OkidhLAw+j5/wFBPHnmoJQ==</PackageCode>
<Price>
<PriceRange Minimum = "161.58" Maximum = "161.58" Currency = "EUR"/>
</Price>
</PackageBookingInfo>
<TransfersBookingInfo>
<TransferBookingInfo ICode = "1HCeFFjSX2o/z5hS3sR+HynvjBs6ihZRbqCrbPBuNo8/7IQ66txeElEcNpeJPhrq">
<Origin Type = "ARP">
<MeetingPointInfo Code = "000" MeetingTime = "2020-03-04T00:11:32.5015822+02:00"/>
<FlightInfo FlightTime = "2020-03-04T00:11:32.5015822+02:00" FlightNumber = "XX1234"/>
</Origin>
<Destination Type = "ALO">
<MeetingPointInfo Code = "000" MeetingTime = "2019-10-19T00:11:32.5015822+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
</TransfersBookingInfo>
<ServicesBookingInfo>
<ServiceBookingInfo ICode = "KMr93LHn7NuLszTSH2M2e/1pUQo1e1WgJe7xIguqUbeyhkZ0b3jNOj2e4RgBxuD1">
<MeetingPointInfo Code = "000" MeetingTime = "2020-03-04T00:00:00"/>
</ServiceBookingInfo>
</ServicesBookingInfo>
</PackageElement>
</Elements>
</PackageBookingRQ>
</PackageBooking>
</soap:Body>
</soap:Envelope>
In the response we will receive a booking locator, the status and also basic information regarding the booking.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Url | N | String | URL endpoint |
@TimeStamp | N | DateTime | Response date and time. Format: yyyy-MM-ddThh:mm:ss (UTC) |
@IntCode | N | String | Internal control code |
{Errors} | Y | - | Applicable errors. |
{Warnings} | Y | - | Applicable warnings. |
Reservations | Y | - | List of reservations |
./Reservations/Reservation | N | - | Reservation item |
./Reservation/@Locator | N | String | Booking locator |
./Reservation/@Status | N | String | Booking confirmation status. Possible values are: • PAG: Booking confirmed and paid • CON: Booking confirmed • CAN or CAC: Booking cancelled • PRE or PDI: Booking on request It is very important to check the Status attribute in order to verify the booking is confirmed. |
./Reservation/ExternalBookingReference | N | String | Free text that may indicate its agency reference, booking code or any code you wish to identify the booking. It will not exceed 50 characters. |
./Reservation/Holder | N | - | Booking holder or mail passenger |
./Holder/RelPax | N | - | |
./RelPax/@IdPax | N | Integer | Holder ID |
./Reservation/{Paxes} | N | - | Passenger data. Mandatory passenger data will be filled in with random data. |
./Reservation/Comments | Y | - | List of comments |
./Comments/Comment | N | String | Comment |
./Comment/@Type | Y | String | Comment type. Possible values: • RES: General booking comments • INT: Internal booking comments |
./Reservation/Payment | Y | - | Payment information. |
./Payment/@Type | N | String | Payment type code. Possivle values: •C: Credit •B: Bank •T: POS (Point of sale) |
./Reservation/Items | N | - | List of items |
./Items/PackageItem | N | - | Package ítem |
./PackageItem/@ItemId | N | Integer | ID of the booking Element |
./PackageItem/@Code | N | String | Package code |
./PackageItem/@Status | N | String | Package status |
./PackageItem/@Start | N | Date | Starting date of the package Format: yyyy-MM-dd |
./PackageItem/@End | N | Date | Ending date of the package Format: yyyy-MM-dd |
./PackageItem/{Prices} | N | - | Price |
./PackageItem/{CancellationPolicy} | N | - | Cancellation policies |
./PackageItem/PackageInfo | N | - | General information of the package. |
./PackageInfo/Name | N | String | Name of the package. |
./PackageItem/{Stays} | N | - | List of package stays. |
./PackageItem/{AdditionalElements} | Y | - | Additional elements. By now, supplements of the package |
./PackageItem/RelPaxes | N | - | Passenger distribution of the booking. |
./RelPaxes/RelPax | N | - | Specific passenger. |
./RelPax/@IdPax | N | Integer | Internal id of the passenger. |
./Items/{AdjustmentItem} | Y | - | Additional adjustment item. It will be available if, for example, you've manually added a PromoCode on the previous BookingRules step. |
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageBookingResponse xmlns = "http://www.juniper.es/webservice/2007/">
<BookingRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-10-19T00:22:37.3348325+02:00" IntCode = "UeSgX2MI8i4kIqAqHPF+2hyxElZct5BfBT/VEEJyRnM=">
<Reservations>
<Reservation Locator = "2YWFLZ" Status = "PAG" Language = "es">
<ExternalBookingReference>REFERENCES0123456</ExternalBookingReference>
<Holder>
<RelPax IdPax = "2"/>
</Holder>
<Paxes>
<Pax IdPax = "1">
<Title>Mr</Title>
<Name>Alfred</Name>
<Surname>Ashton</Surname>
<Age>30</Age>
</Pax>
<Pax IdPax = "2">
<Title>Mr</Title>
<Name>Alfred</Name>
<Surname>Ashton</Surname>
<Age>30</Age>
<Nationality>DZ</Nationality>
</Pax>
</Paxes>
<AgenciesData>
<AgencyData>
<ReferencedAgency>false</ReferencedAgency>
<AgencyCode>767</AgencyCode>
<AgencyName>Test XML</AgencyName>
<AgencyHandledBy>Test XML</AgencyHandledBy>
<AgencyEmail>acook@ingic.com</AgencyEmail>
<AgencyReference>REFERENCES0123456</AgencyReference>
</AgencyData>
<AgencyData>
<ReferencedAgency>true</ReferencedAgency>
<AgencyCode>0</AgencyCode>
</AgencyData>
</AgenciesData>
<Items>
<PackageItem ItemId = "152471" Status = "OK" Start = "2020-03-01" End = "2020-03-07" Code = "OkidhLAw+j5/wFBPHnmoJQ==">
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "0" Gross = "161.58" Nett = "161.58">
<Service Amount = "161.58"/>
</TotalFixAmounts>
</Price>
</Prices>
<CancellationPolicy CurrencyCode = "EUR">
<FirstDayCostCancellation Hour = "00:00">2019-10-18</FirstDayCostCancellation>
<Description>Be Live Adults Only Marivent: * Cancelando desde 18/10/2019 a las 00:00:00 hasta 22/02/2020 a las 23:58:59: 0 &euro; * Cancelando después de 22/02/2020 a las 23:59:00: 99.09 &euro; *Fecha y hora se calcula basándose en la hora local del destino (GMT +01:00) | * PMI Airport to center: General policy | * Best Escape Rooms Ocimax: No reembolsable</Description>
<PolicyRules>
<Rule DateFrom = "2019-10-18" DateFromHour = "00:00" DateTo = "2020-02-22" DateToHour = "23:58" Type = "V" FixedPrice = "32" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-02-22" DateFromHour = "23:59" DateTo = "2020-02-23" DateToHour = "23:59" Type = "V" FixedPrice = "131.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-02-24" DateFromHour = "00:00" DateTo = "2020-02-29" DateToHour = "23:59" Type = "V" FixedPrice = "159.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-03-01" DateFromHour = "00:00" Type = "S" FixedPrice = "131.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
</PolicyRules>
</CancellationPolicy>
<PackageInfo>
<Name>Dynamic Package GEN</Name>
</PackageInfo>
<Stays>
<Stay Code = "1" DestinationZone = "1953" Start = "2020-03-01" End = "2020-03-07">
<Hotels>
<Hotel Code = "n150KfeE7tJELgjozI01ow==" JPCode = "JP243849" Start = "2020-03-01" End = "2020-03-07">
<HotelInfo>
<Name>Be Live Adults Only Marivent</Name>
<Description>Este encantador complejo de playa está situado frente a la playa de Cala Major. El aeropuerto está a 14 km y hay una parada de autobús a 50 metros, lo que pone todos los sitios de interés locales al alcance de sus clientes. Este hotel solo para adultos ofrece una variedad de servicios tales como el acceso a internet en todo el complejo, servicio de cambio de divisas, recepción las 24 horas y aire acondicionado. Hay cena y bebidas en el bar y en el restaurante climatizado del hotel. Las habitaciones disponen de baño privado y están equipadas con comodidades como teléfono, secador de pelo, minibar, caja fuerte y TV vía satélite.</Description>
<Images>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_013.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_r_009.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_015.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_011.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_010.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_a_006.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_a_005.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_a_007.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_l_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_014.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_p_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ba_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_p_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_003.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_006.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_t_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_004.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_t_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_005.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_r_010.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_r_011.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_015.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_016.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_019.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_017.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_016.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_018.jpg</Image>
</Images>
<HotelCategory Type = "4">4 Estrellas</HotelCategory>
<Address>Carrer Gavina,9 , 07015, CALA MAYOR</Address>
<Latitude>39.552559</Latitude>
<Longitude>2.606677</Longitude>
</HotelInfo>
<HotelOptions>
<HotelOption PackageContract = "false">
<Board>ROOM ONLY</Board>
<HotelRooms>
<HotelRoom Units = "0">
<RoomCategory Type = "">Double or Twin SUPERIOR</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Transfers>
<Transfer>
<TransferInfo>
<Name>PMI Airport to center</Name>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2020-03-01T00:00:00" End = "2020-03-01T00:00:00" Origin = "40233" OriginType = "ARP" Destination = "15011" DestinationType = "ALO">
<Name>Taxi</Name>
<OriginName>Aeropuerto de Palma de Mallorca</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
<TransferBookingInfo>
<Origin Code = "40233" Type = "ARP">
<MeetingPointInfo MeetingTime = "0001-01-01T11:11:00"/>
<FlightInfo FlightTime = "0001-01-01T23:11:00" FlightNumber = "XX1234"/>
</Origin>
<Destination Code = "15011" Type = "ALO">
<MeetingPointInfo MeetingTime = "0001-01-01T12:11:00">
<Address>MEETING POINT NAME</Address>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
</Transfer>
</Transfers>
<Services>
<Service>
<ServiceInfo>
<Name>Best Escape Rooms Ocimax</Name>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2020-03-04T00:00:00" End = "2020-03-04T00:00:00" Destination = "15011">
<Name>La Egipcia</Name>
</ServiceOption>
</ServiceOptions>
<ServiceBookingInfo>
<MeetingPointInfo MeetingTime = "0001-01-01T00:00:00"/>
</ServiceBookingInfo>
</Service>
</Services>
</Stay>
</Stays>
<RelPaxes>
<RelPax IdPax = "1"/>
</RelPaxes>
</PackageItem>
</Items>
</Reservation>
</Reservations>
</BookingRS>
</PackageBookingResponse>
</soap:Body>
</soap:Envelope>
This transaction allows for the retrieval of the booking information of a specific booking through the use of its booking code.
The returned information is the same as in the PackageBooking response. Please refer to the PackageBooking section for further information.
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
ReadRequest | N | - | - |
./ReadRequest/@ReservationLocator | N | String | Booking code |
AdvancedOptions | Y | - | Optional parameters |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is true, it will show the full price object with all the information about the prices. If not specified, false is assumed by default. |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<ReadBooking>
<ReadRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<ReadRequest ReservationLocator="TQ1TBG"/>
</ReadRQ>
</ReadBooking>
</soapenv:Body>
</soapenv:Envelope>
It returns the same information as the response of PackageBooking. Kindly refer to the PackageBooking section if you wish to consult the specifications of the nodes and properties of this transaction.
<soap:Envelope xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ReadBookingResponse xmlns = "http://www.juniper.es/webservice/2007/">
<BookingRS Url = "http://xml-uat.bookingengine.es" TimeStamp = "2019-10-03T09:50:23.1074823+02:00" IntCode = "Pczv1ukYfu8i+QIhK1rxvNQL+MNfJiiuIIpHIfPsa0I=">
<Reservations>
<Reservation Locator = "2YWFLZ" Status = "PAG" Language = "es">
<ExternalBookingReference>REFERENCES0123456</ExternalBookingReference>
<Holder>
<RelPax IdPax = "2"/>
</Holder>
<Paxes>
<Pax IdPax = "1">
<Title>Mr</Title>
<Name>Alfred</Name>
<Surname>Ashton</Surname>
<Age>30</Age>
</Pax>
<Pax IdPax = "2">
<Title>Mr</Title>
<Name>Alfred</Name>
<Surname>Ashton</Surname>
<Age>30</Age>
<Nationality>DZ</Nationality>
</Pax>
</Paxes>
<AgenciesData>
<AgencyData>
<ReferencedAgency>false</ReferencedAgency>
<AgencyCode>767</AgencyCode>
<AgencyName>Test XML</AgencyName>
<AgencyHandledBy>Test XML</AgencyHandledBy>
<AgencyEmail>acook@ingic.com</AgencyEmail>
<AgencyReference>REFERENCES0123456</AgencyReference>
</AgencyData>
<AgencyData>
<ReferencedAgency>true</ReferencedAgency>
<AgencyCode>0</AgencyCode>
</AgencyData>
</AgenciesData>
<Items>
<PackageItem ItemId = "152471" Status = "OK" Start = "2020-03-01" End = "2020-03-07" Code = "OkidhLAw+j5/wFBPHnmoJQ==">
<Prices>
<Price Type = "S" Currency = "EUR">
<TotalFixAmounts Recommended = "0" Gross = "161.58" Nett = "161.58">
<Service Amount = "161.58"/>
</TotalFixAmounts>
</Price>
</Prices>
<CancellationPolicy CurrencyCode = "EUR">
<FirstDayCostCancellation Hour = "00:00">2019-10-18</FirstDayCostCancellation>
<Description>Be Live Adults Only Marivent: * Cancelando desde 18/10/2019 a las 00:00:00 hasta 22/02/2020 a las 23:58:59: 0 &euro; * Cancelando después de 22/02/2020 a las 23:59:00: 99.09 &euro; *Fecha y hora se calcula basándose en la hora local del destino (GMT +01:00) | * PMI Airport to center: General policy | * Best Escape Rooms Ocimax: No reembolsable</Description>
<PolicyRules>
<Rule DateFrom = "2019-10-18" DateFromHour = "00:00" DateTo = "2020-02-22" DateToHour = "23:58" Type = "V" FixedPrice = "32" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-02-22" DateFromHour = "23:59" DateTo = "2020-02-23" DateToHour = "23:59" Type = "V" FixedPrice = "131.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-02-24" DateFromHour = "00:00" DateTo = "2020-02-29" DateToHour = "23:59" Type = "V" FixedPrice = "159.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
<Rule DateFrom = "2020-03-01" DateFromHour = "00:00" Type = "S" FixedPrice = "131.09" PercentPrice = "0" Nights = "0" ApplicationTypeNights = "Average"/>
</PolicyRules>
</CancellationPolicy>
<PackageInfo>
<Name>Dynamic Package GEN</Name>
</PackageInfo>
<Stays>
<Stay Code = "1" DestinationZone = "1953" Start = "2020-03-01" End = "2020-03-07">
<Hotels>
<Hotel Code = "n150KfeE7tJELgjozI01ow==" JPCode = "JP243849" Start = "2020-03-01" End = "2020-03-07">
<HotelInfo>
<Name>Be Live Adults Only Marivent</Name>
<Description>Este encantador complejo de playa está situado frente a la playa de Cala Major. El aeropuerto está a 14 km y hay una parada de autobús a 50 metros, lo que pone todos los sitios de interés locales al alcance de sus clientes. Este hotel solo para adultos ofrece una variedad de servicios tales como el acceso a internet en todo el complejo, servicio de cambio de divisas, recepción las 24 horas y aire acondicionado. Hay cena y bebidas en el bar y en el restaurante climatizado del hotel. Las habitaciones disponen de baño privado y están equipadas con comodidades como teléfono, secador de pelo, minibar, caja fuerte y TV vía satélite.</Description>
<Images>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_013.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_r_009.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_015.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_011.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_010.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_a_006.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_a_005.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_a_007.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_l_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_014.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_p_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ba_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_p_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_003.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_006.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_t_001.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_004.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_t_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_s_005.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_r_010.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_r_011.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_015.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_016.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_019.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_017.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_002.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_ro_016.jpg</Image>
<Image>https://photos.hotelbeds.com/giata/15/156393/156393a_hb_f_018.jpg</Image>
</Images>
<HotelCategory Type = "4">4 Estrellas</HotelCategory>
<Address>Carrer Gavina,9 , 07015, CALA MAYOR</Address>
<Latitude>39.552559</Latitude>
<Longitude>2.606677</Longitude>
</HotelInfo>
<HotelOptions>
<HotelOption PackageContract = "false">
<Board>ROOM ONLY</Board>
<HotelRooms>
<HotelRoom Units = "0">
<RoomCategory Type = "">Double or Twin SUPERIOR</RoomCategory>
</HotelRoom>
</HotelRooms>
</HotelOption>
</HotelOptions>
</Hotel>
</Hotels>
<Transfers>
<Transfer>
<TransferInfo>
<Name>PMI Airport to center</Name>
</TransferInfo>
<TransferOptions>
<TransferOption Start = "2020-03-01T00:00:00" End = "2020-03-01T00:00:00" Origin = "40233" OriginType = "ARP" Destination = "15011" DestinationType = "ALO">
<Name>Taxi</Name>
<OriginName>Aeropuerto de Palma de Mallorca</OriginName>
<DestinationName>Palma de Mallorca</DestinationName>
</TransferOption>
</TransferOptions>
<TransferBookingInfo>
<Origin Code = "40233" Type = "ARP">
<MeetingPointInfo MeetingTime = "0001-01-01T11:11:00"/>
<FlightInfo FlightTime = "0001-01-01T23:11:00" FlightNumber = "XX1234"/>
</Origin>
<Destination Code = "15011" Type = "ALO">
<MeetingPointInfo MeetingTime = "0001-01-01T12:11:00">
<Address>MEETING POINT NAME</Address>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
</Transfer>
</Transfers>
<Services>
<Service>
<ServiceInfo>
<Name>Best Escape Rooms Ocimax</Name>
</ServiceInfo>
<ServiceOptions>
<ServiceOption Start = "2020-03-04T00:00:00" End = "2020-03-04T00:00:00" Destination = "15011">
<Name>La Egipcia</Name>
</ServiceOption>
</ServiceOptions>
<ServiceBookingInfo>
<MeetingPointInfo MeetingTime = "0001-01-01T00:00:00"/>
</ServiceBookingInfo>
</Service>
</Services>
</Stay>
</Stays>
<RelPaxes>
<RelPax IdPax = "1"/>
</RelPaxes>
</PackageItem>
</Items>
</Reservation>
</Reservations>
</BookingRS>
</ReadBookingResponse>
</soap:Body>
</soap:Envelope>
This transaction allows for the cancellation of a booking, either to the booking as a whole or to specifically one of its services/items. Through the use of the @OnlyCancellationFees property it will also allow you to retrieve the cancellation costs of such booking without needing to actually cancel the same, whenever available (as it is important to note that this information could be unavailable and, on those cases, you will need to rely on the available cancellation policies).
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
@Version | N | String | Web Service version |
@Language | N | String | Language in which the response will be returned. Please, contact Juniper for available languages. |
{Login} | N | - | Customer login to access the Web Service |
CancelRequest | N | - | - |
./CancelRequest/@ReservationLocator | N | String | Booking code. If not used along an @ItemId will allow for the cancellation of the booking as a whole. |
./CancelRequest/@ItemId | Y | Integer | Service/item identifier. If it is the only/latest available item of a booking you will need to cancel the booking as a whole. |
./CancelRequest/@OnlyCancellationFees | Y | Boolean | Allows for the retrieval of the available cancellation costs of the booking. If included, the booking will not be cancelled. |
AdvancedOptions | Y | - | Optional parameters |
./AdvancedOptions/ShowBreakdownPrice | Y | Boolean | If the value is true, it will show the full price object with all the information about the prices. If not specified, false is assumed by default. |
./AdvancedOptions/SendMailTo | Y | String | If included with the ALL value a booking confirmation email will be sent to your email account. |
In the following example we will completely cancel a booking
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<CancelBooking>
<CancelRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<CancelRequest ReservationLocator="TQ1TBG"/>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv:Envelope>
In the following example we will simply retrieve the available cancellation charges without cancelling the same
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.juniper.es/webservice/2007/">
<soapenv:Header/>
<soapenv:Body>
<CancelBooking>
<CancelRQ Version="1.1" Language="en">
<Login Email="user@mydomain.com" Password="pass"/>
<CancelRequest ReservationLocator="TQ1TBG" OnlyCancellationFees="true"/>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv:Envelope>
It returns the same information as the response of PackageBooking. Kindly refer to the PackageBooking section if you wish to consult the specifications of the nodes and properties of this transaction.
In the following example we've simply retrieved the cancellation charges of the booking without cancelling the same
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CancelBookingResponse xmlns="http://www.juniper.es/webservice/2007/">
<BookingRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-03T09:52:41.0407517+02:00" IntCode="ByTsyWyHpjGQxFrBJ+2sko0No5oKI07lPRl2ppRqcHk=">
<Warnings>
<Warning Code="warnCancellationCostRetrieved" Text="Cancellation cost retrieved. Reservation was not cancelled."/>
<CancelInfo>
<BookingCodeState>Pag</BookingCodeState>
<BookingCancelCost>0</BookingCancelCost>
<BookingCancelCostCurrency>EUR</BookingCancelCostCurrency>
</CancelInfo>
</Warnings>
</BookingRS>
</CancelBookingResponse>
</soap:Body>
</soap:Envelope>
When it has not been possible to retrieve the cancellation charges, the following message will be retuended
<Warnings>
<Warning Code="warnCancellationNotCalculated" Text="Cancellation cost could not be calculated. Reservation was not cancelled."/>
</Warnings>
Should this happen, either rely on the cancellation policies and/or contact with your Juniper supplier.
In this section you will find a description of the certification tests and the additional information we will ask you before connecting live.
It basically consists on some basic bookings, including the different options allowed and covering the available product. Moreover, we ask you for some info regarding the approximate volume of traffic you will send to our system (if available) a short description of your system flow and information about the timeouts you have implemented.
You can find next the certification tests that must be completed and sent to Juniper before connecting live. Please consider the certification tests depending on the products you will integrate. If we find any problem, we will inform you, so you can fix it. If everything is correct, we will provide you live access for the provided IP's.
After you complete the development of your integration, before moving to your supplier live environment, you will need to perform a series of tests so that we may validation that the mentioned has been properly implemented.
We will need for you to confirm, read and cancel a booking of a packge of your choice on the development environment. These tests will let us verify that most functionalities are covered.
We will then need for you to supply us with all of the XML logs of the requests and responses related to these bookings, these may include:
We will also need for you to showcase how will you be showing the following information from the PackageBooking response on your system (screenshots may be appreciated). This way, we will confirm that you will be properly retrieving all of the key fields from within the same:
We would also like to have a short description of your system flow (which transactions do you use when) and an expectation of how many requests do you plan on doing when live. We want the approximate number of requests per day and per second for times of more work, both availability and reservations as others (total requests). We need an estimation, the number doesn’t have to be exact.
Please also specify which is the lenght of the timeout that you have set for our responses (availability and booking confirmation) or if you don't have implemented any.
First, the structure of the availability request must be correctly formed, and none of the mandatory fields must be missed. Amongst others, we will check the following nodes:
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns = "http://www.juniper.es/webservice/2007/">
<soap:Header/>
<soap:Body>
<PackageAvail>
<PackageAvailRQ Version = "1.1" Language = "es">
<Login Email = "user@mydomain.com" Password = "pass"/>
<Paxes>
<Pax IdPax = "1">
<Age>30</Age>
</Pax>
<Pax IdPax = "2">
<Age>30</Age>
</Pax>
</Paxes>
<PackageRequest>
<SearchSegmentsPackages>
<SearchSegmentPackages Start = "2019-10-10" End = "2019-10-22" OriginZone = "37786" DestinationZone = "2204">
<CountryOfResidence>ES</CountryOfResidence>
<PackageCodes>
<PackageCode>IffN5XIfLbX+6UGtuyo1+A==</PackageCode>
</PackageCodes>
</SearchSegmentPackages>
</SearchSegmentsPackages>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</PackageRequest>
</PackageAvailRQ>
</PackageAvail>
</soap:Body>
</soap:Envelope>
It is also mandatory to use the compression tool so that the response size is considerable reduced (meaning faster transfer times). If you do not use it, the response will contain the following error:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageAvailResponse xmlns="http://www.juniper.es/webservice/2007/">
<AvailabilityRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-12T16:41:24.894196+02:00" IntCode="+DXlavlbzVVAf/4Ig9GcUz433L6AKHXNUhKIfo6WXPA=">
<Errors>
<Error Text=" Please add the 'Accept-Encoding: gzip, deflate' header in your petition. This can reduce the transmission time and response size by about 75-95%. See more here: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html" Code="COMPRESSION_REQUIRED"/>
</Errors>
</AvailabilityRS>
</PackageAvailResponse>
</soap:Body>
</soap:Envelope>
If the request is valid, you will receive a response containing all the possible packages for the desired criteria. Each package will be returned under a RatePlanCode and may be composed of multiple stays which at the same time will be composed of multiple product types. The RatePlanCode should be used in the next step of the booking flow, which can be PackageChangeProduct (if you desire to change any product of the selected package) or PackageBookingRules. Please be aware that the proper use of the RatePlanCode is an important point in the certification process.
If your system allows the possibility of changing the selected option inside of a package (search for additional hotel, flights…), the next step is the PackageChangeProduct transaction. This is an optional step that allows you the possibility of changing the option of a single product type (hence, if you want to change the option of two or more product types, you will have to send two or more PackageChangeProduct transactions)
This transaction only requires the RatePlanCode from the selected package and the ICode from the product of the selected package that you want to change. The response will contain a list with all of the available options as PackageResults, these PackageResults will be the same as the package that you have already selected on the availability but with the difference that each one of them will contain each one of the available product options (of the product you’ve selected). To select the desired option, you have to use the RatePlanCode from the mentioned PackageResult.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<PackageChangeProductResponse xmlns="http://www.juniper.es/webservice/2007/">
<AvailabilityRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-10-12T16:48:58.9148346+02:00" IntCode="llz1yIFOksJZY6zd0c72URZpX8OC8g2TiaylWwd8O9U=">
<Results>
<PackageResult Start="2019-10-10" End="2019-10-22" OriginZone="37786" DestinationZone="313" Code="IffN5XIfLbX+6UGtuyo1+A==" Status="OK" RatePlanCode="RatePlanCodeA">...</PackageResult>
<PackageResult Start="2019-10-10" End="2019-10-22" OriginZone="37786" DestinationZone="313" Code="IffN5XIfLbX+6UGtuyo1+A==" Status="OK" RatePlanCode="RatePlanCodeB">...</PackageResult>
<PackageResult Start="2019-10-10" End="2019-10-22" OriginZone="37786" DestinationZone="313" Code="IffN5XIfLbX+6UGtuyo1+A==" Status="OK" RatePlanCode="RatePlanCodeC">...</PackageResult>
Once you have changed all of the desired product types (or if you simply do not have this possibility on your system), the next step is the PackageBookingRules transaction. This is a mandatory step for the booking process as, besides the cancellation policies, it validates the allotment/rate and returns the required fields of the combination.
The proper use of the required fields is crucial for the booking confirmation.
This transaction only requires the RatePlanCode from the availability response and its response will contain:
BookingCode: This code, similar to the RatePlanCode, it is only valid for a certain period and must be used to confirm the booking.
<BookingCode ExpirationDate="2014-03-26T10:31:44.393171+01:00">3WCCdKrNDmJB1QQRyLq2X3CEfLuy1bKgHGE61OmWeg12vmo2J0fu7epFHivGIanunBT/zLZAMsvI+d6VZd8B/L4+YQCuR0WQovQcNntLNBIvAPb0DeAoZRudxzGDFh/uI0UHRg2pnZSW0y7GdTfrzEk/KQHjONDkKH8XMpmOySKbvdSTXtO35YtBgquA6m6U</BookingCode>
Warnings: It is important to keep watch of the warning as they will notify you of important information related to the combination.
<Warnings>
<Warning Code="warnNotControlled" Text="Not Controlled warning: Transfer has been adjusted from 10/10/2019 10:00:00 to 10/10/2019 13:20:00 in accordance to flight UA9929 arrival time."/>
<Warning Code="warnNotControlled" Text="Not Controlled warning: Transfer has been adjusted from 14/10/2019 10:00:00 to 14/10/2019 22:50:00 in accordance to flight UA1054 arrival time."/>
<Warning Code="warnNotControlled" Text="Not Controlled warning: Transfer has been adjusted from 14/10/2019 10:00:00 to 14/10/2019 16:40:00 in accordance to flight UA1054 departure time."/>
<Warning Code="warnNotControlled" Text="Not Controlled warning: Transfer departure terminal has been adjusted from (JFK) to (EWR) in flight number: UA1054"/>
<Warning Code="warnNotControlled" Text="Not Controlled warning: Transfer has been adjusted from 21/10/2019 10:00:00 to 21/10/2019 8:35:00 in accordance to flight AC1811 departure time."/>
</Warnings>
Required fields: It is extremely important to consider this node as it contains the mandatory fields that you should included in order to be able to properly confirm a booking. It contains all of the required information for each one of the products included in the package.
<PackageRequiredFields>
<PackageBooking>
<Paxes>
<Pax IdPax = "1">
<Title>Pax Title</Title>
<Name>Holder Name</Name>
<Surname>Holder Surname</Surname>
<Age>30</Age>
</Pax>
<Pax IdPax = "2">
<Title>Pax Title</Title>
<Name>Pax Name</Name>
<Surname>Pax Surname</Surname>
<Age>30</Age>
</Pax>
</Paxes>
<Holder>
<RelPax IdPax = "1"/>
</Holder>
<Elements>
<PackageElement>
<BookingCode>BOOKINGCODE...</BookingCode>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
<PackageBookingInfo Start = "2016-10-10" End = "2016-10-22">
<PackageCode>jHzwqYRSqOHAZw6GpEW9Ow==</PackageCode>
</PackageBookingInfo>
<TransfersBookingInfo>
<TransferBookingInfo ICode = "OhGDFnN5O0/jrQ6TpBO7Y6r4SbSZ41Smgnxdy3MIatVb7SIpOfUOHiDAFxYlTVcXmT/mLoLjMeWfY6x4eMu2/A==">
<Origin Type = "ARP">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>TERMINAL POINT NAME</Name>
</MeetingPointInfo>
</Origin>
<Destination Type = "ALO">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
<TransferBookingInfo ICode = "C8djVXw8moLBxVfSDzplzgatlXZQggcIK3n7/In0K6XjVWeY+rascUlslDP/IezaqrRUoF4X+LfjoJF8wD5FZw==">
<Origin Type = "ALO">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</Origin>
<Destination Type = "ARP">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>TERMINAL POINT NAME</Name>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
<TransferBookingInfo ICode = "T/AFpor//ZUZU9GMinrX9PMCHeGW51HfPwQC2eCdE2cn6uLs+OX5iUjvTYB50sKbzAw5Vi1HKqjjBd0H9faNwg==">
<Origin Type = "ARP">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>TERMINAL POINT NAME</Name>
</MeetingPointInfo>
</Origin>
<Destination Type = "ALO">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
<TransferBookingInfo ICode = "A9t+WYz5md1LQh5UTG9lXaiEUgINRIJ6L+m0irxmgxP14/mgOG5KVWmpwFXEiRdHrwkJq3lHgIq7a7xcrYh6TA==">
<Origin Type = "ALO">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</Origin>
<Destination Type = "ARP">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3272653+02:00">
<Name>TERMINAL POINT NAME</Name>
</MeetingPointInfo>
</Destination>
</TransferBookingInfo>
</TransfersBookingInfo>
<ServicesBookingInfo>
<ServiceBookingInfo ICode = "WNOQMhVuI6L+t35yzMcYeAn0Cs/iN7XnHvqV6HGwzj61erYNzBeiHoPtJO8a2YIqb7ZkYFlE8R+JYjYqkWQmaA==">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3092511+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</ServiceBookingInfo>
<ServiceBookingInfo ICode = "J3wvlec7EvITkhrj5G1OAcX+/mzwUh6MQ2KDHgI+BYCVqkoyO38jQx/Dwblv3OdUdybSvMgIO5noKfylONjnvQ==">
<MeetingPointInfo MeetingTime = "2016-09-12T17:41:34.3092511+02:00">
<Name>MEETING POINT NAME</Name>
</MeetingPointInfo>
</ServiceBookingInfo>
</ServicesBookingInfo>
</PackageElement>
</Elements>
</PackageBooking>
</PackageRequiredFields>
Important note:
Keep in mind that the required fields feature default values, meaning that you have to replace the default values with the preferred information.
Cancellation policies: It is important to remember that we won't always be able to provide a list of cancellation policy rules. On these cases it is mandatory to read the plain text cancellation policy.
<CancellationPolicy CurrencyCode="EUR">
<FirstDayCostCancellation Hour="23:50">2016-09-18</FirstDayCostCancellation>
<Description><![CDATA[Flight: * Canceling from 12/09/2016 at 00:00:00 to 19/09/2016 at 11:50:00: 0 € * Canceling from 19/09/2016 at 11:50:00: 100.00 % of expenses | * DAYS HOTEL BROADWAY: * Canceling from 12/09/2016 at 00:00:00 to 08/10/2016 at 12:00:00: 0 € * Canceling after 08/10/2016 at 12:00:00: 1 nights | * . : * Canceling from 12/09/2016 at 00:00:00 to 06/10/2016 at 01:20:00: 0 € * Canceling from 06/10/2016 at 01:20:00 to 10/10/2016 at 13:20:00: 100.00 % of expenses | * . : * Canceling from 12/09/2016 at 00:00:00 to 10/10/2016 at 04:40:00: 0 € * Canceling from 10/10/2016 at 04:40:00 to 14/10/2016 at 16:40:00: 100.00 % of expenses | * . : * Canceling from 12/09/2016 at 00:00:00 to 06/10/2016 at 12:00:00: 0 € * Canceling from 06/10/2016 at 12:00:00 to 11/10/2016 at 00:00:00: 100.00 % of expenses | * .: * Canceling from 12/09/2016 at 00:00:00 to 06/10/2016 at 12:00:00: 0 € * Canceling from 06/10/2016 at 12:00:00 to 10/10/2016 at 00:00:00: 100.00 % of expenses | * .: * Canceling from 12/09/2016 at 00:00:00 to 06/10/2016 at 12:00:00: 0 € * Canceling from 06/10/2016 at 12:00:00 to 11/10/2016 at 00:00:00: 100.00 % of expenses | * HOTEL LA QUINTA INN & SUITES CANCUN: * Canceling from 12/09/2016 at 00:00:00 to 10/10/2016 at 12:00:00: 0 € * Canceling after 10/10/2016 at 12:00:00: 371.38 € | * .: * Canceling from 12/09/2016 at 00:00:00 to 10/10/2016 at 10:50:00: 0 € * Canceling from 10/10/2016 at 10:50:00 to 14/10/2016 at 22:50:00: 100.00 % of expenses | * . : * Canceling from 12/09/2016 at 00:00:00 to 16/10/2016 at 20:35:00: 0 € * Canceling from 16/10/2016 at 20:35:00 to 21/10/2016 at 08:35:00: 100.00 % of expenses]]>
</Description>
<PolicyRules>
<Rule DateFrom="2016-09-12" DateFromHour="00:00" DateTo="2016-09-19" DateToHour="11:50" Type="V" FixedPrice="0" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-09-19" DateFromHour="11:50" DateTo="2016-10-06" DateToHour="01:20" Type="V" FixedPrice="1183.3" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-06" DateFromHour="01:20" DateTo="2016-10-06" DateToHour="12:00" Type="V" FixedPrice="1219.98" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-06" DateFromHour="12:00" DateTo="2016-10-09" DateToHour="23:59" Type="V" FixedPrice="1306.32" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-10" DateFromHour="00:00" Type="S" FixedPrice="1293.36" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-10" DateFromHour="04:40" Type="S" FixedPrice="1330.04" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-10" DateFromHour="10:50" Type="S" FixedPrice="1356.64" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-10" DateFromHour="12:00" Type="S" FixedPrice="1728.02" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-11" DateFromHour="00:00" Type="S" FixedPrice="1617.96" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-15" DateFromHour="00:00" Type="S" FixedPrice="1554.68" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-16" DateFromHour="20:35" Type="S" FixedPrice="1581.28" PercentPrice="0" Nights="0"/>
<Rule DateFrom="2016-10-21" DateFromHour="11:50" Type="S" FixedPrice="1554.68" PercentPrice="0" Nights="0"/>
</PolicyRules>
</CancellationPolicy>
The last step in the booking flow is the PackageBooking transaction. This transaction validates all of the information retrieved from all of the previous transactions and confirms the booking. Some important information we will check are:
Finally, we ask you to check the value of the Status property from the booking response. You should not consider a booking confirmed without reading its status as it might be returned as canceled (CaC or Can) or on request (Pre or PDI) if there is any problem with the booking confirmation.
Once the booking flow certification has been verified and confirmed by our team and if you plan on retrieving and/or storing static data information from our system (if not, simply say us so), we will ask you to send us a detailed explanation of your static data flow and how you have integrated each one of our static data transactions in such flow.
In short, what we need you to send us are the following: