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 multiple differentiated steps. We will proceed to describe each of these steps in detail:
The regular normal operation order is:
This order may be notified in any of the following ways:
In addition to CruiseBookingRules:
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 hotel integration process, here we supply you with a series of resources which, along the use of test environment XML credentials, will let you experience the hotel integration process first hand.
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.
Important note:
The maximum frequency allowed for downloading the static data (if you use them), is two weeks. This is a mandatory condition aimed to keep the static data always updated.
Static request which return the entire existing itinerary following the search parameters: ship, cruise, zone, dates and market.
<CruiseItinerary>
<CruiseItineraryRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com"/>
<CruiseItineraryRequest>
<SearchSegmentsItineary>
<SearchSegmentItineary ShipCode="ZEPT0722" Zone="12345" CruiseCode="ZEPT072205/08/2013PUL" Start="01-08-2013" End="10-08-2013" Duration="LeesThan7Days" ItineraryCode="ITT/08/2013PUL">
<CountryOfResidence>ES</CountryOfResidence>
</SearchSegmentItineary>
</SearchSegmentsItineary>
</CruiseItineraryRequest>
</CruiseItineraryRQ>
</CruiseItinerary>
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. |
CruiseItineraryRequest | N | - | - |
./CruiseItineraryRequest/SearchSegmentsItinerary | N | - | - |
./SearchSegmentsItinerary/SearchSegmentItinerary | N | - | - |
./SearchSegmentItinerary/@ShipCode | Y | String | Ship code. |
./SearchSegmentItinerary/@Zone | N | Integer | Search xone for the itinerary. |
./SearchSegmentItinerary/@CruiseCode | Y | String | Cruise code. |
./SearchSegmentItinerary/@ItineraryCode | Y | String | Itinerary code to be searched. |
./SearchSegmentItinerary/@Start | N | Date | Start date for the search. Format: yyyy-MM-dd |
./SearchSegmentItinerary/@End | N | Date | End date for the search. Format: yyyy-MM-dd. |
./SearchSegmentItinerary/@Duration | Y | Integer | Duration of the cruise. Possible values: - LessThan7Days. - Between7And8Days. - Between9And12Days. - MoreThan12Days. |
./SearchSegmentsItinerary/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. |
<CruiseItineraryResponse xmlns="http://www.juniper.es/webservice/2007/">
<CruiseItineraryRS Url=http://xml.bookingengine.es TimeStamp="2013-05-08T15:28:51.2186425+02:00" IntCode="iDzd7E5HUz8NXDP/RfQDiQdC/em+Xfxe5Bckct8WJDU=">
<Errors></Errors>
<Warnings></Warnings>
<Results>
<Itinerary Code="ITRE/14623" CruiseCode="ZEPT072205/08/2013CST">
<Sea zone="">Mediterraneo</Sea>
<StarDays>
<StarDay Date="2013-08-08">Monday</StarDay>
<StarDay Date="2013-08-15">Monday</StarDay>
</StarDays>
<Images>
<Image url="http://miDominio/img/ITRE/14623" />
</Images>
<Ship Code="ZEPT0722">Concordia</Ship>
<Route>
<Day Code="MON" DepartureTime="21:00:00" ArrivalTime="00:00:00" Order="0" OnSea="False">
<Harbor Code="ATH" Name="Atenas (Pireo), Grecia">
<Images>
<Image url="http://miDominio/img/ATH" />
</Images>
</Harbor>
</Day>
<Day Code="TUE" DepartureTime="00:00:00" ArrivalTime="00:00:00" Order="1" OnSea="True">
<Harbor Code="ASE" Name="En mar" />
</Day>
<Day Code="WED" DepartureTime="18:00:00" ArrivalTime="06:00:00" Order="2" OnSea="False">
<Harbor Code="JTR" Name="Santorini, Grecia">
<Images>
<Image url="http://miDominio/img/JTR" />
</Images>
</Harbor>
</Day>
<Day Code="THU" DepartureTime="21:00:00" ArrivalTime="06:00:00" Order="3" OnSea="False">
<Harbor Code="IZM" Name="Izmir, Turquía">
<Images>
<Image url="http://miDominio/img/IZM" />
</Images>
</Harbor>
</Day>
<Day Code="FRI" DepartureTime="21:00:00" ArrivalTime="00:00:00" Order="4" OnSea="False">
<Harbor Code="IST" Name="Estambul" >
<Images>
<Image url="http://miDominio/img/IST" />
</Images>
</Harbor>
</Day>
<Day Code="SAT" DepartureTime="00:00:00" ArrivalTime="00:00:00" Order="5" OnSea="True">
<Harbor Code="ASE" Name="En mar"></Harbor>
</Day>
<Day Code="SUN" DepartureTime="21:00:00" ArrivalTime="00:00:00" Order="6" OnSea="False">
<Harbor Code="ATH" Name="ATENAS (PIREO), GRECIA">
<Images>
<Image url="http://miDominio/img/ATH" />
</Images>
</Harbor>
</Day>
</Route>
</Itinerary>
<Itinerary Code="ITRE/14611" CruiseCode="ZEPT072205/08/2013CST">
<Sea zone="">Mediterraneo</Sea>
<StarDays>
<StarDay Date="10/09/2013">Monday</StarDay>
<StarDay Date="16/09/2013">Sunday</StarDay>
</StarDays>
<Images>
<Image url="http://miDominio/img/ITRE/14611" />
</Images>
<Ship Code="ZEPT0722">Concordia</Ship>
<Route>
<Day Code="MON" DepartureTime="21:00:00" ArrivalTime="00:00:00" Order="0" OnSea="False">
<Harbor Code="ATH" Name="Atenas (Pireo), Grecia">
<Images>
<Image url="http://miDominio/img/ATH" />
</Images>
</Harbor>
</Day>
<Day Code="TUE" DepartureTime="00:00:00" ArrivalTime="00:00:00" Order="1" OnSea="True">
<Harbor Code="ASE" Name="En mar" ></Harbor>
</Day>
<Day Code="WED" DepartureTime="18:00:00" ArrivalTime="06:00:00" Order="2" OnSea="False">
<Harbor Code="JTR" Name="Santorini, Grecia" >
<Images>
<Image url="http://miDominio/img/JTR" />
</Images>
</Harbor>
</Day>
<Day Code="THU" DepartureTime="21:00:00" ArrivalTime="06:00:00" Order="3" OnSea="False">
<Harbor Code="IZM" >
<Images>
<Image url="http://miDominio/img/IZM" />
</Images>
</Harbor>
</Day>
<Day Code="SAT" DepartureTime="00:00:00" ArrivalTime="00:00:00" Order="4" OnSea="True">
<Harbor Code="ASE" Name="En mar"></Harbor>
</Day>
<Day Code="SUN" DepartureTime="21:00:00" ArrivalTime="00:00:00" Order="5" OnSea="False">
<Harbor Code="ATH" Name="Atenas (Pireo), Grecia">
<Images>
<Image url="http://miDominio/img/ATH" />
</Images>
</Harbor>
</Day>
</Route>
</Itinerary>
</Results>
</CruiseItineraryRS>
</CruiseItineraryResponse>
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 itineraries. |
./Results/Itinerary | N | - | Item itinerary. |
./Itinerary/@Code | N | String | Code of the itinerary. |
./Itinerary/@CruiseCode | N | String | Code of the cruise associated. |
./Itinerary/Sea | N | - | - |
./Sea/@Code | N | Integer | Zone code. It is the same of the departure port. |
./Itinerary/StarDays | N | - | Daylist of the itinerary. |
./StarDays/StarDay | N | String | Name of the check-in week day in the same language as the request. |
./StarDay/@Date | N | Date | Check-in date for the itinerary. Format: yyyy-MM-dd |
./Itinerary/Images | Y | - | Images list of the itinerary. |
./Images/Image | Y | - | Item image. |
./Image/@URL | Y | String | Image URL. |
./Itinerary/Ship | N | String | Ship. |
./Ship/@Code | N | String | Ship code. |
./Itinerary/Route | N | - | Route of the itinerary. Day list of the cruise and where will be the cruise each day. |
./Route/Day | N | - | - |
./Day/@Code | N | String | Code of the day. Possible values: - MON - TUE - WED - THU - FRI - SAT - SUN |
./Day/@DepartureTime | N | DateTime | Departure time. If this day the cruise is at sea, it will return 00:00. Format: hh:mm:ss |
./Day/@ArrivalTime | N | DateTime | Arrival time. If this day the cruise is at sea, it will return 00:00. Format: hh:mm:ss |
./Day/@Order | N | Integer | Order of each day in the complete itinerary. E.g.: order = 1 means first day of the itinerary, order = 2 means the second and so on. |
./Day/@OnSea | N | Boolean | "True" means that the ship is on the sea and "false" at the harbor. |
./Day/Harbor | N | - | Harbor data and name in which the cruise is docked. |
./Harbor/@Code | N | String | Harbor code. |
./Harbor/@Name | N | String | Harbor name. |
./Harbor/Images | Y | - | Image list of the itinerary. |
./Images/Image | Y | - | - |
./Image/URL | Y | - | - |
Static request which returns the existing information about the ships.
<CruiseShip>
<CruiseShipRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com" />
<CruiseShipRequest>
<SearchSegmentsShip>
<SearchSegmentShip ShipCode="ZEPT0722" Zone="12345" CruiseCode="ZEPT072205/08/2013PUL" Start="2013-08-01" End="2013-08-10" Duration="LeesThan7Days">
<CountryOfResidence>ES</CountryOfResidence>
</SearchSegmentShip>
</SearchSegmentsShip>
</CruiseShipRequest>
</CruiseShipRQ>
</CruiseShip>
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. |
CruiseItineraryRequest | N | - | - |
./CruiseItineraryRequest/SearchSegmentsShip | N | - | - |
./SearchSegmentsShip/SearchSegmentShip | N | - | - |
./SearchSegmentShip/@ShipCode | Y | String | Ship code. |
./SearchSegmentShip/@Zone | Y | String | Search zone for the itinerary. |
./SearchSegmentShip/@CruiseCode | Y | String | Cruise code. |
./SearchSegmentShip/@Start | N | Date | Start date for the search. Format: yyyy-MM-dd |
./SearchSegmentShip/@End | N | Date | End date for the search. Format: yyyy-MM-dd. |
./SearchSegmentShip/@Duration | Y | Integer | Duration of the cruise. Possible values: - LessThan7Days. - Between7And8Days. - Between9And12Days. - MoreThan12Days. |
./SearchSegmentsShip/CruiseSuppliers | N | - | - |
./CruiseSuppliers/CruiseSupplier | N | - | - |
./CruiseSupplier/@Code | Y | String | Supplier code |
./SearchSegmentsShip/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. |
<CruiseShipResponse xmlns="http://www.juniper.es/webservice/2007/">
<CruiseShipRS>
<Errors></Errors>
<Warnings></Warnings>
<Results>
<Ship Code="ZEPT0722">
<Name>Concordia</Name>
<Shipping Code="CST">
<Name> COSTA S.L.</Name>
</Shipping>
<Description>Ship ...</Description>
<Images>
<Image url="http://miDominio/img/Ship/1" />
<Image url="http://miDominio/img/Ship/2" />
</Images>
<Cruises>
<Cruise Code="ZEPT072205/08/222PUL">
<StarDays>
<StarDay Date="2013-08-08">Monday</StarDay>
<StarDay Date="2013-08-15">Monday</StarDay>
</StarDays>
</Cruise>
<Cruise Code="ZEPT072205/08/2013PUL">
<StarDays>
<StarDay Date="2013-06-10">Monday</StarDay>
<StarDay Date="2013-06-15">Sunday</StarDay>
</StarDays>
<Cruise></Cruise>
</Cruise>
</Cruises>
<Decks>
<Deck Level="1">
<DeckName>SATIEINF</DeckName>
<Description>Mani ...</Description>
<Images>
<Image url="http://miDominio/img/Deks/4578" />
</Images>
</Deck>
<Deck Level="2">
<DeckName>MARINE</DeckName>
<Description>Mani ...</Description>
<Images>
<Image url="http://miDominio/img/Deks/45" />
</Images>
</Deck>
<Deck Level="3">
<DeckName>SEATOM</DeckName>
<Description>Mani ...</Description>
<Images>
<Image url="http://miDominio/img/Deks/478" />
</Images>
</Deck>
</Decks>
<Overview>
<Building>1978</Building>
<Span>254</Span>
<Servicelevel>1234</Servicelevel>
<Tonnage>12.34</Tonnage>
<Sleeve>12.34</Sleeve>
<Length>124.6</Length>
<CabExt>1245</CabExt>
<CabInt>1545</CabInt>
<CabBal>145</CabBal>
<CapMaxCab>5000</CapMaxCab>
<CapTotal>7505</CapTotal>
<Flag>Spanish</Flag>
<Crew>Spanish</Crew>
<Deck>5</Deck>
</Overview>
<Tipstandards>Se han de entregar antes de la salida en efectivo</Tipstandards>
<Serv Casino="false" Cinema="false" Beautysalons="false" Chapel="false" Library="false" Theater="false" Disco="false" Spa="false" Playroom="false" Wedding="false" Internet="true" Laundry="true" Autolaundry="false" Showroom="false">
<Barlounges>20</Barlounges>
<Languages>Spanish, English</Languages>
<Jacuzzi>5</Jacuzzi>
<Restaurants>15</Restaurants>
<Stores>50</Stores>
<Lifts>50</Lifts>
</Serv>
<Sport Basketball="false" Tennis="false" Golf="false" Jogging="false" Minigolf="true" Rocodrom="false" Pathinhileo="false" Gym="true" Aquaticplant="false">
<Pools>12</Pools>
<Indorpools>4</Indorpools>
<Extpools>8</Extpools>
</Sport>
<Nin Creche="true" Ninzone="true" Youthzone="true" Ninpool="true" Youthprogram="false"/>
<Cabin Dryer="true" Phone="false" Cabinasistan="false" Internet="true" Safe="true" Contiguous="false" />
</Ship>
</Results>
</CruiseShipRS>
</CruiseShipResponse>
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 ships. |
./Results/Ship | N | - | Item ship. |
./Ship/@Code | N | String | Ship code. |
./Ship/Name | N | String | Ship name. |
./Ship/Shipping | N | String | Shipping company. |
./Shipping/@Code | N | String | Shipping company code. |
./Shipping/Name | Y | String | Shipping company name. |
./Ship/Description | N | String | Ship description. |
./Ship/Images | Y | - | Image list of the ship. |
./Images/Image | N | - | Image item. |
./Image/@URL | N | String | Image URL. |
./Ship/Cruises | N | - | List of cruises of this ship. |
./Cruises/Cruise | N | - | Cruise. |
./Cruise/@Code | N | - | Cruise code. |
./Cruises/StartDays | N | - | List of start dates of the cruise. |
./StartDays/StartDay | N | - | - |
./StartDay/@Date | N | Date | Start date. |
./Ship/Decks | Y | - | List of decks. |
./Decks/Deck | N | - | Item decks. |
./Deck/DeckName | N | String | Deck name. |
./Deck/Description | N | String | Deck description. |
./Deck/Images | Y | - | Image list of the deck. |
./Images/Image | N | - | Item image. |
./Images/@URL | N | String | Image URL. |
./Ship/Overview | Y | - | Fuselage information. |
./Overview/Building | Y | Integer | Year of construction. |
./Overview/Span | Y | Integer | Square meters per passenger. |
./Overview/ServiceLevel | Y | Integer | - |
./Overview/Tonnage | Y | Float | Tonnage. |
./Overview/Sleeve | Y | Float | Sleeve. |
./Overview/Length | Y | Float | Length. |
./Overview/CabExt | Y | Integer | Number of outward-facing cabins. |
./Overview/CabInt | Y | Integer | Number of interior cabins. |
./Overview/CabBal | Y | Integer | Number of cabins with balcony. |
./Overview/CapMaxCab | Y | Integer | Maximum capacity of the cabin. |
./Overview/CapTotal | Y | Integer | Total capacity. |
./Overview/Flag | Y | String | Flag. |
./Overview/Crew | Y | String | Crew. |
./Overview/Deck | Y | Integer | Number of decks. |
./Ship/Tipstandards | Y | - | Rules for the tips. |
./Ship/Serv | Y | - | Services information. |
./Serv/@Casino | Y | Boolean | If there is a casino. |
./Serv/@Ciema | Y | Boolean | If there is a cinema. |
./Serv/@BeautySalons | Y | Boolean | If there is a beauty salon. |
./Serv/@Chapel | Y | Boolean | If there is a chapel. |
./Serv/@Library | Y | Boolean | If there is a library. |
./Serv/@Theater | Y | Boolean | If there is a theater. |
./Serv/@Disco | Y | Boolean | If there is a disco. |
./Serv/@Spa | Y | Boolean | If there is a spa. |
./Serv/@Playroom | Y | Boolean | If there is a playroom. |
./Serv/@Wedding | Y | Boolean | If there is a wedding salon. |
./Serv/@Internet | Y | Boolean | If there is internet service. |
./Serv/@Laundry | Y | Boolean | If there is laundry service. |
./Serv/@AutoLaundry | Y | Boolean | If there is autolaundry. |
./Serv/@Showroon | Y | Boolean | If there is a showroom. |
./Serv/Barlounges | Y | Integer | Number of lounge bars. |
./Serv/Languages | Y | String | Languages spoken by the crew. |
./Serv/Jacuzzi | Y | Integer | Number of jacuzzis. |
./Serv/Restaurants | Y | Integer | Number of restaurants. |
./Serv/Stores | Y | Integer | Number of stores. |
./Serv/Lifts | Y | Integer | Number of lifts. |
./Ship/Sport | Y | - | Sport information. |
./Sport/@Basketball | Y | Boolean | If there is a basketball court. |
./Sport/@Tennis | Y | Boolean | If there is a tennis court. |
./Sport/@Golf | Y | Boolean | If there is a golf course. |
./Sport/@Jogging | Y | Boolean | If there is a place for jogging. |
./Sport/@Minigolf | Y | Boolean | If there is a minigolf park. |
./Sport/@Rocodrom | Y | Boolean | If there is a rocodrom. |
./Sport/@Pathinhileo | Y | Boolean | If there is an ice skating rink. |
./Sport/@Gym | Y | Boolean | If there is a gym. |
./Sport/@Aquaticplan | Y | Boolean | If there is an aquatic plant. |
./Sport/Pools | Y | Integer | Number of pools. |
./Sport/Indoorpools | Y | Integer | Number of indoor pools. |
./Sport/Extpools | Y | Integer | Number of exterior pools. |
./Ship/Nin | Y | - | Information regarding services for children. |
./Nin/@Creche | Y | Boolean | If there is a creche. |
./Nin/@Ninzone | Y | Boolean | If there is a children's play area. |
./Nin/@Youthzone | Y | Boolean | If there is a youth play area. |
./Nin/@Ninpool | Y | Boolean | If there is a pool for children. |
./Nin/@Youthprogramm | Y | Boolean | If there is a specific programmes for youth. |
./Ship/Cabin | Y | - | Cabin information. |
./Cabin/@24h | Y | Boolean | If there is 24h room service. |
./Cabin/@Dryer | Y | Boolean | If there is a dryer in the cabins. |
./Cabin/@Phone | Y | Boolean | If there is a telephone in the cabins. |
./Cabin/@Cabinasistan | Y | Boolean | If there is individual cabin assistance. |
./Cabin/@Internet | Y | Boolean | If there is internet in the cabins. |
./Cabin/@Safe | Y | Boolean | If there is a security box in the cabins. |
./Cabin/@Contiguous | Y | Boolean | If there are contiguous cabins. |
Static request which returns the existing information about the ships
<CruiseDataList>
<CruiseDataRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com"/>
<CruiseDataRequest>
<SearchSegmentsData>
<SearchSegmentData ShipCode="ZEPT0722" Zone="12345" CruiseCode="ZEPT072205/08/2013PUL" Start="2013-08-01" End="2013-08-10" Duration="LeesThan7Days">
<CountryOfResidence>ES</CountryOfResidence>
</SearchSegmentData>
</SearchSegmentsData>
<IncludeShipInfo>1</IncludeShipInfo>
</CruiseDataRequest>
</CruiseDataRQ>
</CruiseDataList>
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. |
CruiseDataList | N | - | - |
./CruiseDataList/SearchSegmentsData | N | - | - |
./SearchSegmentsData/SearchSegmentData | N | - | - |
./SearchSegmentData/@ShipCode | Y | String | Ship code. |
./SearchSegmentData/@Zone | N | String | Search zone for the itinerary. |
./SearchSegmentData/@CruiseCode | Y | String | Cruise code. |
./SearchSegmentData/@Start | N | Date | Start date for the search. Format: yyyy-MM-dd |
./SearchSegmentData/@End | N | Date | End date for the search. Format: yyyy-MM-dd. |
./SearchSegmentData/@Duration | Y | Integer | Duration of the cruise. Possible values: - LessThan7Days. - Between7And8Days. - Between9And12Days. - MoreThan12Days. |
./SearchSegmentsData/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. |
./CruiseDataList/IncludeShipInfo | N | Boolean | Include all data |
<CruiseDataListResponse>
<CruiseDataRS>
<Errors></Errors>
<Warnings></Warnings>
<CruiseStaticData>
<CruiseDataList>
<CruiseData Code = "code">
<Name>Name</Name>
<Description/>
<LongDescription/>
<Images>
<Image>http://url/to/image.png</Image>
</Images>
<ImagesLong>
<Image Type = "">
<FileName>http://url/to/image.png</FileName>
<Title/>
</Image>
</ImagesLong>
<Ship Code = "SN">
<Name>Name</Name>
<Description/>
<Images>
<Image>http://url/to/image.png</Image>
</Images>
<ImagesLong>
<Image Type = "">
<FileName>http://url/to/image.png</FileName>
<Title/>
</Image>
</ImagesLong>
<Overview>
<Tonnage>0</Tonnage>
<Sleeve>0</Sleeve>
<Length>0</Length>
<CabExt>254</CabExt>
<CabInt>496</CabInt>
<CabBal>1790</CabBal>
<CapMaxCab>2440</CapMaxCab>
<CapTotal>0</CapTotal>
<Crew/>
<Decks>16</Decks>
</Overview>
</Ship>
<Categories>
<Category Code = "1A">
<Name>Interior</Name>
<Description>Interior</Description>
<Images>
<Image>http://url/to/images</Image>
</Images>
<ImagesLong>
<Image Type = "">
<FileName>http://url/to/images</FileName>
<Title/>
</Image>
</ImagesLong>
</Category>
<Category Code = "PT">
<Name>PT</Name>
<Description/>
<ImagesLong/>
</Category>
</Categories>
</CruiseData>
</CruiseDataList>
</CruiseStaticData>
</CruiseDataRS>
</CruiseDataListResponse>
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. |
CruiseDataList | N | - | List of ships. |
./CruiseDataList/CruiseData | N | - | Item ship. |
./CruiseData/@Code | N | String | Ship code. |
./CruiseData/Name | N | String | Ship name. |
./CruiseData/Description | Y | String | Description. |
./CruiseData/LongDescription | Y | String | Long description. |
./CruiseData/Images | Y | String | Image list of the ship. |
./Images/Image | N | String | Image URL. |
./CruiseData/ImagesLong | Y | - | Extended image list of the ship. |
./ImagesLong/Image | N | - | Item image. |
./Image/@Type | N | String | Type of image. |
./Image/Image | N | String | Image URL. |
./Image/Title | N | String | Image title. |
./CruiseData/Ship | N | - | List of cruises of this ship. |
./Ship/@Code | N | - | Ship code. |
./Ship/Name | Y | - | Ship name. |
./Ship/Description | N | - | Ship description. |
./Ship/Images | N | - | Image list (Same as CruiseData.Images). |
./Ship/ImagesLong | N | - | Extended image list (Same as CruiseData.ImagesLong). |
./Ship/Overview | N | - | Fuselage information. |
./Overview/Bulding | Y | - | Year of construction. |
./Overview/Span | Y | - | Square meters per passenger. |
./Overview/Servicelevel | Y | - | - |
./Overview/Tonnage | Y | - | Tonnage. |
./Overview/Sleeve | Y | - | Sleeve. |
./Overview/Length | Y | - | Length. |
./Overview/CabExt | Y | - | Number of outward-facing cabins. |
./Overview/CabInt | Y | - | Number of interior cabins. |
./Overview/CabBal | Y | - | Number of cabins with balcony. |
./Overview/capMaxCab | Y | - | Maximum capacity of the cabin. |
./Overview/CapTotal | Y | - | Total capacity. |
./Overview/Flag | Y | - | Flag. |
./Overview/Crew | Y | - | Crew. |
./Overview/Deck | Y | - | Number of decks. |
./Ship/Categories | Y | - | Services information. |
./Categories/Name | Y | - | Ship name. |
./Categories/Description | N | - | Ship description. |
./Categories/Images | N | - | Image list (Same as CruiseData.Images). |
./Categories/ImagesLong | N | - | Extended image list (Same as CruiseData.ImagesLong). |
Availability request which doesn’t take any passenger distribution, but always two adults are sent. It returns the available cruises and a SelectionCode for each category. These data and rates come from data previously retrieved and so there might not be availability for them at the moment of the request. The response will contain the available categories and their prices.
For this transaction it is mandatory to send the search zone or the shipping company.
<CruisePreAvail>
<CruisePreAvailRQ Version = "1.1" Language = "es">
<Login Password = "pass" Email = "user@mydomain.com"/>
<CruisePreRequest>
<SearchSegmentsCruise>
<SearchSegmentCruise ShipCode = "COST0722" Zone = "12345" Start = "01-08-2013" End ="30-08-2013" Duration = "LessThan7Days">
<CountryOfResidence>ES</CountryOfResidence>
</SearchSegmentCruise>
<CruiseSuppliers>
<CruiseSupplier Code = "COSTA"/>
</CruiseSuppliers>
</SearchSegmentsCruise>
</CruisePreRequest>
</CruisePreAvailRQ>
</CruisePreAvail>
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. |
CruisePreRequest | N | - | - |
./CruisePreRequest/SearchSegmentsCruise | N | - | Search properties. |
./SearchSegmentsCruise/SearchSegmentCruise | N | - | Basic search properties. |
./SearchSegmentCruise/@ShipCode | Y | String | Ship filter. If the Zone is not specified it is a mandatory value. |
./SearchSegmentCruise/@Zone | Y | Integer | Departure zone filter. If the ShipCode is not specified it is a mandatory value. |
./SearchSegmentCruise/@Duration | Y | Integer | Duration of the cruise. Possible values: - LessThan7Days. - Between7And8Days. - Between9And12Days. - MoreThan12Days. |
./SearchSegmentCruise/@Start | N | Date | Start date for the search. Format: yyyy-MM-dd |
./SearchSegmentCruise/@End | N | Date | End date for the search. Format: yyyy-MM-dd |
./SearchSegmentCruise/@CountryOfResidence | N | String | Supplier code. |
./SearchSegmentsCruise/CruiseSuppliers | N | - | List of suppliers. |
./CruiseSuppliesr/CruiseSupplier | N | - | Item supplier. |
./CruiseSupplier/@Code | N | String | Supplier code. |
List of possible suppliers:
Code | Description |
---|---|
PUL | Pullmantur. |
RCC | Royal Caribbean. |
MSC | MSC Cruises. |
NCL | Norwegian Cruises. |
CST | Costa Cruceros. |
IBE | Iberocruceros. |
C | Crucero propio. |
<CruisePreAvailResponse xmlns = "http://www.juniper.es/webservice/2007/">
<AvailabilityRS Url = "https://xml-uat.bookingengine.es" TimeStamp = "2013-05-08T15:28:51.2186425+02:00" IntCode = "iDzd7E5HUz8NXDP/RfQDiQdC/em+Xfxe5Bckct8WJDU=">
<Errors></Errors>
<Warnings></Warnings>
<Results>
<CruiseResult CruiseCode = "ZEPT072205/08/2013PUL" Zone = "12345" StartDate = "2013-08-05" DaysDuration = "7">
<Sea>Mediterraneo</Sea>
<Name>ZENITH / ATENAS (PIREO), GRECIA</Name>
<Ship Code = "COST0722">
<Name>Costa Classica</Name>
<Shipping Code = "CST"/>
</Ship>
<Itinerary Code = "ITRE/14623"/>
<Description><![CDATA[ZENITH / ATENAS (PIREO), GRECIA]]></Description>
<Categories>
<Category Code = "Z" DeckLoc = "IO" SelectionCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU...">
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "259" Nett = "259">
<Service Amount = "259.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Fees>
<Fee>ServiceFee</Fee>
<Fee>CreditCardPaymentFee</Fee>
</Fees>
<Components>
<Component Type = "fligt"></Component>
</Components>
<Promotions>
<Promotion Code = "3MCIXDM">económica</Promotion>
</Promotions>
</AdditionalElements>
</Category>
<Category Code = "F" DeckLoc = "IO" SelectionCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOimeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg...">
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "179" Nett = "179">
<Service Amount = "179.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Components></Components>
<Promotions>
<Promotion Code = "3MCIXDM">económica</Promotion>
</Promotions>
</AdditionalElements>
</Category>
</Categories>
</CruiseResult>
<CruiseResult CruiseCode = "TTTT072205/08/2013PUL" Zone = "12345" StartDate = "2013-08-11" DaysDuration = "7">
<Sea>Mediterraneo</Sea>
<Name>ZENITH / ATENAS (PIREO), GRECIA</Name>
<Ship Code = "COST0722">
<Name>Costa Classica</Name>
<Shipping Code = "CST"/>
</Ship>
<Itinerary Code = "ITRE/14458"/>
<Description><![CDATA[ZENITH / ATENAS (PIREO), GRECIA]]></Description>
<Categories>
<Category Code = "Z" DeckLoc = "IO" SelectionCode = "9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg...">
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "259" Nett = "259">
<Service Amount = "259.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Fees>
<Fee>ServiceFee</Fee>
<Fee>CreditCardPaymentFee</Fee>
</Fees>
<Components>
<Component Type = "Flight"></Component>
</Components>
<Promotions>
<Promotion Code = "3MCIXDM">Económica</Promotion>
</Promotions>
</AdditionalElements>
</Category>
<Category Code = "F" DeckLoc = "IO" SelectionCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg...">
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "179" Nett = "179">
<Service Amount = "179.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Promotions>
<Promotion Code = "3MCIXDM">Económica</Promotion>
</Promotions>
</AdditionalElements>
</Category>
</Categories>
</CruiseResult>
</Results>
</AvailabilityRS>
</CruisePreAvailResponse>
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. |
Result | N | - | List of results. |
./Result/CruiseResult | N | - | Item cruise. |
./CruiseResult/@CruiseCode | N | String | Cruise identifier. |
./CruiseResult/@Zone | N | Integer | Departure zone. |
./CruiseResult/@StartDate | N | Date | Start date of the cruise. Format: yyyy-MM-dd |
./CruiseResult/@DaysDuration | N | Integer | Duration of the cruise. |
./@DaysDuration/Sea | N | String | Sea in which the cruise starts. |
./@DaysDuration/Name | N | String | Cruise name in the selected language. |
./@DaysDuration/Ship | N | String | Ship of the cruise. |
./Ship/@Code | N | String | Ship identifier. |
./Ship/@Name | N | String | Ship name. |
./Ship/@Shipping | N | String | Shipping company. |
./Shipping/@Code | N | String | Shipping company code. |
./@DaysDuration/Itinerary | N | - | Cruise itinerary. |
./Itinerary/@Code | N | String | Itinerary identifier. |
./@DaysDuration/Description | Y | String | Short description of the cruise. |
./@DaysDuration/Categories | N | - | List of categories. |
./Categories/Category | N | - | Item category. |
./Category/@Code | N | String | Category code. |
./Category/@DeckLoc | N | String | Location of the cabin. Possible values: - I: Interior cabin. - O: Outward-facing cabin. - IO: Cabins with balcony. - S: Suite. - U: Undefined. |
./Category/@SelectionCode | N | String | Selection code of the category. When selectiong a cruise, we are actually choosing a category of a cruise. This SelectionCode is which we should take and set it in CruiseAvail to indicate the right category. |
./Categories/{Prices} | N | - | - |
./Categories/AdditionalElements | N | - | List of elements included in the price. |
./Categories/Fees | Y | - | List of feed included in the price. |
./Fees/Fee | Y | String | Item fee. |
./Categories/Components | Y | - | List of components included in the price. |
./Components/Component | Y | String | Item component. |
./Components/@Type | N | String | Type of component (flight, hotel, transfer). If the price includes a component, it means in the CruiseBookingRules request it will be necessary to add this component. If we have a component, this attribute will be returned. |
./Categories/Promotions | Y | - | List of applied promotions. |
./Promotions/Promotion | Y | String | Item promotion. |
./Promotions/@Code | N | String | Code of the applied promotion. In this transaction, it will always come as the cheapest promotion or the single promotion. |
./Promotions/Name | N | String | Promotion name. |
This request is more restricted than the CruisePreAvail and has two different ways of working:
After calling the transaction CruisePreAvail and having a RatePlanCode (SelectionCode): The availability returned by the CruisePreAvail is meant for two passengers, so with this transaction, you will be able to change the distribution (add or remove passengers). When we change the distribution, the price can change accordingly or even no longer have availability. If there is availability the new response will return a new RatePlanCode (SelectionCode) with the new rates. This is the recommended way, as it will provide the best response times and allow you access all the available product.
Sending the search parameters: We will sent the necessary data to compose an availability request. Amongst them, it is also possible to send a particular cruise code (retrieved from either the static data or the CruisePreAvail). Keep in mind that if you don’t specify a RatePlanCode (SelectionCode) retrieved from the CruisePreAvail the availability will only return direct contracted cruises avoiding requests to external suppliers.
Request
With SelectionCode
<CruiseAvail>
<CruiseAvailRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com"/>
<Paxes>
<Pax IdPax="1">
<Age>25</Age>
</Pax>
<Pax IdPax="2">
<Age>28</Age>
</Pax>
<Pax IdPax="3">
<Age>45</Age>
</Pax>
</Paxes>
<CruiseRequest>
<CruiseSearch Married="false" SelectionCode="wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU...." />
<RelPaxDist>
<RelPaxes>
<RelPax IdPax="1"/>
<RelPax IdPax="2"/>
<RelPax IdPax="3"/>
</RelPaxes>
</RelPaxDist>
</CruiseRequest>
</CruiseAvailRQ>
</CruiseAvail>
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 | String | Customer login to access the Web Service. |
{Paxes} | N | - | Indicates the passenger information. Array of passengers. Fields necessary for this transaction: - @IdPax: Required. - Age: Optional for adults. |
CruiseRequest | N | - | - |
./CruiseRequest/CruiseSearch | N | - | Cruise. |
./CruiseSearch/@Married | N | Boolean | Indicated if a "Just Married" promotion should apply, if any. |
./CruiseSearch/@SelectionCode | N | String | Code retrieved from the CruisePreAvail transaction. It contains the information of the cruise category we wish to book. |
./CruiseRequest/RealPaxDist | N | - | Real passengers distribution. |
./RealPaxDist/RaelPaxes | N | - | Real passengers list. |
./RealPaxes/RealPax | N | - | Passenger. |
./RealPax/@IdPax | N | Integer | Passenger identifier. |
<CruiseAvail>
<CruiseAvailRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com"/>
<Paxes AdultsFree="0" ChildrenFree="0">
<Pax Gender="M" IdPax="1">
<Age>25</Age>
</Pax>
<Pax Gender="M" IdPax="2">
<Age>28</Age>
</Pax>
<Pax Gender="M" IdPax="3">
<Age>45</Age>
</Pax>
</Paxes>
<SearchSegmentsCruise>
<SearchSegmentCruise ShipCode="COST0722" Zone="12345" Married="false" CruiseCode="ZEPT072205/08/2013PUL" Start="2013-08-01" End="2013-08-12" Duration="LessThan7Days">
<CountryOfResidence>ES</CountryOfResidence>
</SearchSegmentCruise>
<CruiseSuppliers>
<CruiseSupplier Code="COSTA" />
</CruiseSuppliers>
</SearchSegmentsCruise>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax="1"/>
<RelPax IdPax="2"/>
<RelPax IdPax="3"/>
</RelPaxes>
</RelPaxDist>
</CruiseAvailRQ>
</CruiseAvail>
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 | String | Customer login to access the Web Service. |
{Paxes} | N | - | Indicates the passenger information. Array of passengers. Fields necessary for this transaction: - @IdPax: Required. - Age: Optional for adults. |
CruiseRequest | N | - | - |
./CruiseRequest/SearchSegmentsCruise | N | - | - |
./SearchSegmentsCruise/SearchSegmentCruise | N | - | - |
./SearchSegmentCode/@ShipCode | Y | String | Ship code. It can be retrieved from the transaction CruisePreAvail. |
./SearchSegmentCode/@Zone | N | Integer | Search zone for the itinerary. |
./SearchSegmentCode/@Married | N | Boolean | Indicated if a "Just Married" promotion should apply, if any. |
./SearchSegmentCode/@CruiseCode | Y | String | Cruise code. It can be retrieved from the transaction CruisePreAvail. |
./SearchSegmentCode/@Start | N | Date | Start date for the search. Format: yyyy-MM-dd |
./SearchSegmentCode/@End | N | Date | End date for the search. Format: yyyy-MM-dd |
./SearchSegmentCode/@Duration | Y | Integer | Duration of the cruise. Possible values: - LessThan7Days. - Between7And8Days. - Between9And12Days. - MoreThan12Days. |
./SearchSegmentCode/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. |
./SearchSegmentsCruise/CruiseSuppliers | Y | - | List of suppliers. |
./CruiseSuppliers/CruiseSupplier | Y | - | Item supplier. |
./CruiseSupplier/@Code | N | String | Supplier code. |
./CruiseRequest/RealPaxDist | N | - | Real passengers distribution. |
./RealPaxDist/RaelPaxes | N | - | Real passengers list. |
./RealPaxes/RealPax | N | - | Passenger. |
./RealPax/@IdPax | N | Integer | Passenger identifier. |
<CruiseAvailResponse xmlns = "http://www.juniper.es/webservice/2007/">
<AvailabilityRS Url = "http://xml.bookingnengine.es" TimeStamp = "2013-05-08T15:28:51.2186425+02:00" IntCode = "iDzd7E5HUz8NXDP/RfQDiQdC/em+Xfxe5Bckct8WJDU=">
<Errors></Errors>
<Warnings></Warnings>
<Results>
<CruiseResult CruiseCode = "ZEPT072205/08/2013PUL" Zone = "12345" StartDate = "2013-08-05" DaysDuration = "7">
<Sea>Mediterraneo</Sea>
<Name>ZENITH / ATENAS (PIREO), GRECIA</Name>
<Ship Code = "COST0722">
<Name>Costa Classica</Name>
<Shipping Code = "CST"/>
</Ship>
<Itinerary Code = "ITRE/14623"/>
<Description><![CDATA[ZENITH / ATENAS (PIREO), GRECIA]]></Description>
<Categories>
<Category Code = "Z" DeckLoc = "IO" RatePlanCode = "...G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "259" Nett = "259">
<Service Amount = "259.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Fees>
<Fee>ServiceFee</Fee>
<Fee>CreditCardPaymentFee</Fee>
</Fees>
<Components>
<Component Type = "Flight"/>
</Components>
<Promotions>
<Promotion Code = "3MCIXDM"/>
</Promotions>
</AdditionalElements>
</Category>
</Categories>
</CruiseResult>
</Results>
</AvailabilityRS>
</CruiseAvailResponse>
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. |
Result | N | - | List of results. |
./Result/CruiseResult | N | - | Item cruise. |
./CruiseResult/@CruiseCode | N | String | Cruise identifier. |
./CruiseResult/@Zone | N | Integer | Departure zone. |
./CruiseResult/@StartDate | N | Date | Start date of the cruise. Format: yyyy-MM-dd |
./CruiseResult/@DaysDuration | N | Integer | Duration of the cruise. |
./@DaysDuration/Sea | N | String | Sea in which the cruise starts. |
./@DaysDuration/Name | N | String | Cruise name in the selected language. |
./@DaysDuration/Ship | N | String | Ship of the cruise. |
./Ship/@Code | N | String | Ship identifier. |
./Ship/@Name | N | String | Ship name. |
./Ship/@Shipping | N | String | Shipping company. |
./Shipping/@Code | N | String | Shipping company code. |
./@DaysDuration/Itinerary | N | - | Cruise itinerary. |
./Itinerary/@Code | N | String | Itinerary identifier. |
./@DaysDuration/Description | Y | String | Short description of the cruise. |
./@DaysDuration/Categories | N | - | List of categories. |
./Categories/Category | N | - | Item category. |
./Category/@Code | N | String | Category code. |
./Category/@DeckLoc | N | String | Location of the cabin. Possible values: - I: Interior cabin. - O: Outward-facing cabin. - IO: Cabins with balcony. - S: Suite. - U: Undefined. |
./Category/@RatePlanCode | N | String | Identifier of the cruise category. It is necessary and must be sent in the BookingRules transaction in oorder to continue with the booking. |
./Categories/{Prices} | N | - | - |
./Categories/AdditionalElements | N | - | List of elements included in the price. |
./Categories/Fees | Y | - | List of feed included in the price. |
./Fees/Fee | Y | String | Item fee. |
./Categories/Components | Y | - | List of components included in the price. |
./Components/Component | Y | String | Item component. |
./Components/@Type | N | String | Type of component (flight, hotel, transfer). If the price includes a component, it means in the CruiseBookingRules request it will be necessary to add this component. If we have a component, this attribute will be returned. |
./Categories/Promotions | Y | - | List of applied promotions. |
./Promotions/Promotion | Y | String | Item promotion. |
./Promotions/@Code | N | String | Code of the applied promotion. In this transaction, it will always come as the cheapest promotion or the single promotion. |
./Promotions/Name | N | String | Promotion name. |
It is an optional transaction. It returns the RatePlanCode and informs if there has been any change regarding the availability.
It consists on a single product availability process. It may be useful to check if there has been any price change.
<CruiseCheckAvail>
<CruiseCheckAvaiRQ Version="1.1" Language="es">
<Login Password="pass" Email="user@mydomain.com"/>
<CruiseRules RatePlanCode="wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=" />
</CruiseCheckAvaiRQ>
</CruiseCheckAvail>
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 | String | Customer login to access the Web Service. |
CruiseRules | - | - | - |
./CruiseRules./@RatePlanCode | N | - | Code to be checked by the CruiseCheckAvail transaction |
AdvancedOptions | - | - | NOT IMPLEMENTED |
./AdvancedOptions/ShowBreakdownPrice | - | - | NOT IMPLEMENTED |
<CruiseChekcAvailResponse xmlns = "http://www.juniper.es/webservice/2007/">
<ChekcAvailRS Url = "https://xml-uat.bookingengine.es" TimeStamp = "2013-05-09T10:03:57.6186798+02:00" IntCode = "XlGOThOt+i4Vpm4nUIswLzpGP42L+RK2vKPidKfHVJA=">
<Errors></Errors>
<Warnings>
<Warning Code = "warnPriceChanged" Text = "Price changed. A new RatePlanCode has been returned. Use the new RatePlanCode."/>
</Warnings>
<Results>
<CruiseResult RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<PriceInformation>
<Components></Components>
<Category Code = "Z" DeckLoc = "I/O">
<Cabins>
<Cabin Code = "KI" Type = "SUITE" Capacity = "3" Beds = "1" CabinNumber = "005" RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8...pfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Images>
<Image>
<FileName>http://www.costaclick.net/CostaClick/esAR/Pianonave.htm?CabinId=1022&ShipId=PA</FileName>
</Image>
</Images>
<Deck Level = "5">
<Name>SATIEINF</Name>
<Description>PENTION SUITE</Description>
</Deck>
</Cabin>
</Cabins>
</Category>
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "421" Nett = "421">
<Service Amount = "421.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Fees>
<Fee>ServiceFee</Fee>
<Fee>CreditCardPaymentFee</Fee>
</Fees>
<Components>
<Component Type = "fligt" Mandatory = "false">
<Station Type = "AEO" Code = "SVG" Days = "">
</Station>
</Component>
</Components>
<Promotions>
<Promotion Code = "3MCIXDM">
<Name>ECO</Name>
</Promotion>
</Promotions>
<CruiseSupplements>
<CruiseSupplement Units = "1" Type = "Others" Name = "Upgrade bed">
<RelPaxes>
<RelPax IdPax = "1"/>
</RelPaxes>
</CruiseSupplement>
<CruiseSupplement Units = "1" Type = "UpgrateMeal" Name = "15:00">
</CruiseSupplement>
</CruiseSupplements>
</AdditionalElements>
</PriceInformation>
</CruiseResult>
</Results>
</ChekcAvialRS>
</CruiseChekcAvailResponse>
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 cruise results. |
./Results/CruiseResult | N | Item cruise. | |
,/CruiseResult/@RatePlanCode | N | String | If there has been a price change, a new RatePlanCode will be returned. |
,/CruiseResult/PriceInformation | N | ||
./PriceInformation/Components | N | - | List of additional components. |
./Components/Component | Y | String | If there is no components or we have already selected the cabin, this field won’t be returned. |
./Component/@Type | N | String | Type of component. Possible values: • Flight: flight. • Hotel: hotel. • Transport: bus or train. |
./Component/@Mandatory | N | Boolean | Indicates if it is a mandatory component. If the component is mandatory, we would not allowed to continue until there is one selected. |
./Component/Stations | N | String | List of departure points of the flight, transport or location (in case of hotels). |
./Stations/Station | N | String | Item station. |
./Station/@Type | N | String | Type of station: • CITY: in the city. • AEO: airport terminal. • BUS: bus terminal. • TRN: train terminal. |
./Station/@Code | N | String | Station code. |
./Station/@Days | Y | Integer | Number of stay days, in case of hotel. |
./Station/@RatePlanCode | N | String | Code to be send in the CruiseBookingRules request and so select the station. |
./Station/{Prices} | N | Price of the cruise selecting this component. | |
./PriceInformation/Category | N | - | Selected category. |
./Category/@Code | N | String | Category code. |
./Category/@DeckLoc | N | String | Location of the cabin. Possible values: • I: Interior cabin. • O: outward-facing cabin. • IO: cabins with balcony. • S: suite. • U: undefined. |
./Category/Cabins | Y | Sting | List of cabins |
./Cabins/Cabin | N | Item cabin | |
./Cabin/@Code | N | String | Cabin code. |
./Cabin/CabinNo | N | String | Cabin number. |
./CabinNo/@URL | Y | String | URL of the cabin image. |
./Cabin/Beds | Y | Integer | Amount of beds. |
./Cabin/CabinType | Y | String | Type of cabin. |
./Cabin/Deck | Y | Integer | Deck info. |
./Deck/@Level | Y | Integer | Deck in which the cabin id located. |
./Deck/Name | Y | String | Name of the deck. |
./Deck/Description | Y | String | Cabin description. |
./Cabin/DeckName | Y | String | Name of the deck. |
./Cabin/CabinDesc | Y | String | Cabin description. |
./Cabin/CabinCapacity | Y | String | Cabin capacity. |
./Category/{Prices} | |||
./Category/AdditionalElements | List of elements included in the price. | ||
./AdditionalElements/Fees | N | List of fees included in the price. | |
./Fees/Fee | Y | String | Item fee |
./AdditionalElements/Components | N | - | List of components included in the price. |
./Components/Component | Y | String | Item component. If there is no components, or the cabin has been already selected, no components will be returned. |
./Component/@Type | N | String | Type of component (flight, hotel, transfer). |
./Component/@Mandatory | N | Boolean | Indicates if it is a mandatory component. If there is any mandatory component, we would not able to continue until we have one selected. |
./Component/Stations | N | String | List of departure points of the flight, transport or location in case it is a hotel. |
./Stations/Station | N | String | Item station. |
./Station/@Type | N | String | Type of station • CITY: in the city. • AEO: airport terminal. • BUS: bus terminal. • TRN: train terminal. |
./Station/@Code | N | String | Station code. |
./Station/@Days | N | Integer | Number of stay days, in case of hotel. |
./Category/Promotions | Y | - | List of applied promotions. |
./Promotions/Promotion | Y | String | Item promotion. |
./Promotions/@Code | N | String | Code of the applied promotion. In this transaction, it will always come as the cheapest promotion or the single promotion. |
./Promotions/Name | N | String | Promotion code. |
./Category/CruiseSupplements | N | List of additional supplements for the cruise. | |
./CruiseSupplements/CruiseSupplement | Y | String | Item supplement. |
./CruiseSupplement/@Units | N | Integer | Amount of supplements. |
./CruiseSupplement/@Type | N | String | Type of supplement. |
./CruiseSupplement/@Name | N | String | Name of the supplement. |
./CruiseSupplement/RelPaxes | Y | ||
./RelPaxes/RelPax | N | ||
./RelPax/@IdPax | N | Integer | Identifier of the passenger to which the supplement applies. |
This is a mandatory transaction before the booking. It is not possible to confirm a booking without it. CruiseBookingRules will return the elements needed for the booking, amongst them the BookingCode. If wedon’t have the BookingCode, it means that there are mandatory elements not selected yet. In this situation a warning containing the next element to be selected will be returned. If an element depends on another, it will not be returned until we select the first one. For instance, if components are mandatory, we won’t be able to select the cabin until we have selected the category. In case the components are not mandatory, the cabin will be returned, if the category is not guaranteed. However, we won’t obtain the optional supplements (as for example meal upgrade) until we have selected the cabin. In order to select an option we have to take the RatePlanCode and send a CruiseBookingRules with it, so that it is selected and shown in additionalElements section.
When an element is selected, the transaction will respond with this same element and without RatePlanCode. The rest of the previously selectable options of this element will not be returned once the element is selected. This is, the list will contain a single element without RatePlanCode, which is the one we have selected.
In cases that the user selects a category with guaranteed cabins, the cabin will be automatically selected. These cabins will not return information regarding its location in the cruise, unlike the rest of the cabins, which will return information about its location, cabin number and deck.
The regular order is:
This order may be modified in any of the following ways:
Request
<CruiseBookingRules>
<CruiseBookingRulesRQ Version = "1.1" Language = "es">
<Login Password = "pass" Email = "user@mydomain.com"/>
<CruiseRules RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRM
LeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg="/>
</CruiseBookingRulesRQ>
</CruiseBookingRules>
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. |
CruiseRules | - | - | - |
./CruiseRules./@RatePlanCode | N | String | Internal Code retrieved from the CruiseAvail response. |
AdvancedOptions | - | - | NOT IMPLEMENTED |
./AdvancedOptions/ShowBreakdownPrice | - | - | NOT IMPLEMENTED |
./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. |
Response
Example 1: Response with no BookingCode.
We are receiving a warning message, so an item should be selected. In this case, the message informs that we have to select a category. As you may observe, in the response there is a list of cabins and each one of them is associated with a RatePlanCode. In order to select a cabin, we will send a new CruiseBookingRules request setting as RatePlanCode the one that corresponds to the choosen cabin.
<CruiseBookingRulesResponse xmlns = "http://www.juniper.es/webservice/2007/">
<CruiseBookingRulesRS
Url = "https://xml-uat.bookingengine.es"
TimeStamp = "2013-05-
09T10:03:57.6186798+02:00"
IntCode = "XlGOThOt+i4Vpm4nUIswLzpGP42L+RK2vKPidKfHVJA=">
<Warnings>
<Warning Code = "warnCategoriesRequired" Text = "No categories selected."/>
</Warnings>
<Results>
<CruiseResult>
<Cruise
Status = "OK"
CruiseCode = "ZEPT072205/08/2013PUL"
Zone = "12345"
StartDate = "2013-08-05"
DaysDuration = "7">
<Sea>Mediterraneo</Sea>
<Name>ZENITH / ATENAS (PIREO), GRECIA</Name>
<Ship Code = "COST0722">
<Shipping Code = "CST"/>
<Name>Concordia</Name>
</Ship>
<Itinerary Code = "ITRE/14623"/>
<Description><![CDATA[ZENITH / ATENAS (PIREO), GRECIA]]></Description>
<BookingCode ExpirationDate = "2013-05-09T10:13:57.6186798+02:00"></BookingCode>
<CruiseRequiredFields>
<CruiseBook>
<Paxes>
<Pax Gender = "M" IdPax = "1">
<Title></Title>
<Name>Dav</Name>
<Surname>Lon</Surname>
<Age>25</Age>
<Email></Email>
<Document Type = "NIF">11111111</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "2">
<Title></Title>
<Name>Fernando</Name>
<Surname>Milan</Surname>
<Age>28</Age>
<Email></Email>
<Document Type = "NIF">111111112</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "3">
<Title></Title>
<Name>Alex</Name>
<Surname>Roma</Surname>
<Age>45</Age>
<Email></Email>
<Document Type = "NIF">11111111</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
</Paxes>
<BookingCode>codigoDeEjemplo</BookingCode>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
<RelPax IdPax = "3"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</CruiseBook>
</CruiseRequiredFields>
<CancellationPolicy>
<Description/>
<Rules>
<Rule
From = ""
To = ""
DateFrom = ""
DateTo = ""
Type = ""
FixedPrice = ""
PercentPrice = ""
Nigths = ""/>
</Rules>
</CancellationPolicy>
<PriceInformation>
<Category Code = "Z" DeckLoc = "I/O">
<Cabins>
<Cabin
Code = "PT"
Type = "SUITE"
Capacity = "3"
Beds = "1"
CabinNumber = "1126"
RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Images>
<Image>
<FileName>http://www.costaclick.net/CostaClick/esAR/Pianonave.htm?CabinId=1022&ShipId=PA</FileName>
</Image>
</Images>
<Deck Level = "5">
<Name>SATIEINF</Name>
<Description>PENTION SUITE</Description>
</Deck>
</Cabin>
<Cabin
Code = "KI"
Type = "SUITE"
Capacity = "3"
Beds = "1"
CabinNumber = "005"
RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Images>
<Image>
<FileName>http://www.costaclick.net/CostaClick/esAR/Pianonave.htm?CabinId=1022&ShipId=PA</FileName>
</Image>
</Images>
<Deck Level = "5">
<Name>SATIEINF</Name>
<Description>PENTION SUITE</Description>
</Deck>
</Cabin>
<Cabin
Code = "II"
Type = "SUITE"
Capacity = "3"
Beds = "1"
CabinNumber = "1022"
RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Images>
<Image>
<FileName>http://www.costaclick.net/CostaClick/esAR/Pianonave.htm?CabinId=1022&ShipId=PA</FileName>
</Image>
</Images>
<Deck Level = "5">
<Name>SATIEINF</Name>
<Description>PENTION SUITE</Description>
</Deck>
</Cabin>
</Cabins>
</Category>
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "389" Nett = "389">
<Service Amount = "389.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Fees>
<Fee>ServiceFee</Fee>
<Fee>CreditCardPaymentFee</Fee>
</Fees>
<Components>
<Component Type = "Flight" Mandatory = "false">
<Station
Type = "AEO"
Code = "SVG"
Days = "">
</Station>
</Component>
</Components>
<Promotions>
<Promotion Code = "3MCIXDM">
<Name>ECO</Name>
</Promotion>
</Promotions>
<CruiseSupplements></CruiseSupplements>
</AdditionalElements>
</PriceInformation>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
<RelPax IdPax = "3"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</Cruise>
</CruiseResult>
</Results>
</CruiseBookingRulesRS>
</CruiseBookingRulesResponse>
Example 2: Response with BookingCode.
Once we have selected all the necessary elements to make a booking, the BookingRules response will return an element BookingCode. We will send this code in the Booking transaction in order to confirm the booking. If we receive a BookingCode, this response will only contain additional RatePlanCodes of the optional elements that we do not need to confirm in the booking. If we want to select any of these optional elements, we will proceed in the same way as in the Example 1.
<CruiseBookingRulesResponse xmlns = "http://www.juniper.es/webservice/2007/">
<CruiseBookingRulesRS
Url = "https://xml-uat.bookingengine.es"
TimeStamp = "2013-05-09T10:03:57.6186798+02:00"
IntCode = "XlGOThOt+i4Vpm4nUIswLzpGP42L+RK2vKPidKfHVJA=">
<Errors></Errors>
<Warnings></Warnings>
<Results>
<CruiseResult
Status = "OK"
CruiseCode = "ZEPT072205/08/2013PUL"
Zone = "12345"
StartDate = "05/08/2013"
DaysDuration = "7">
<Sea>Mediterraneo</Sea>
<Name>ZENITH / ATENAS (PIREO), GRECIA</Name>
<Ship Code = "COST0722">
<Shipping Code = "CST"/>
<Name>Concordia</Name>
</Ship>
<Itinerary Code = "ITRE/14623"/>
<Description><![CDATA[ZENITH / ATENAS (PIREO), GRECIA]]></Description>
<BookingCode ExpirationDate = "2013-05-09T10:13:57.6186798+02:00">
db/mQNgYVSAvOccbME596lCJJmI1SI0xXqdU4xymouHvNiJ9Gc22T5rRgrhNeSDb2Bu809HNQ2pkEyidwJWaTub6yPMC9DgehAIEchPR6hQkX1kvSgblD7VJdvU7lqzAUW1oCjWIDtnyVWtsHjcZV/RYWe5cokfgbXCdByXonnYS0yjWUhRMb278HXdQTJPsYKth5mP0xVcq4NjM4qsTYI0lcO3Mz14gmkLOlaYYJYw=
</BookingCode>
<CruiseRequiredFields>
<CruiseBook>
<Paxes>
<Pax Gender = "M" IdPax = "1">
<Title></Title>
<Name>Dav</Name>
<Surname>Lon</Surname>
<Age>25</Age>
<Email></Email>
<Document Type = "NIF">11111111</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "2">
<Title></Title>
<Name>Fernando</Name>
<Surname>Milan</Surname>
<Age>28</Age>
<Email></Email>
<Document Type = "NIF">111111112</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "3">
<Title></Title>
<Name>Alex</Name>
<Surname>Roma</Surname>
<Age>45</Age>
<Email></Email>
<Document Type = "NIF">11111111</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
</Paxes>
<BookingCode> oVNUq//Ewxj62g7wTzFRg/5loM6UUsc41IbtJZF8Wfmxvx4Argu6x02Z9xXrKTfS9Mhhk1pdhahiWcxWVxqWVx0UpvwlAZdaXVKpPBsdi7q5yCBwyltuiAwnizXahBS4cN5XjD0/0RrXiM1tj/r1AVfzNu9v+4eZGyL0q7z4D+EaX0W9/k/DWACz3fe1Y2is/s6oV9XeVuPjZfB344t0fNMILdYd9YwPQKYOeoy6AOZ1sRGUOra+VMxLRcgcTxjN
</BookingCode>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
<RelPax IdPax = "3"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</CruiseBook>
</CruiseRequiredFields>
<CancellationPolicy>
<Description/>
<Rules>
<Rule
From = ""
To = ""
DateFrom = ""
DateTo = ""
Type = ""
FixedPrice = ""
PercentPrice = ""
Nigths = ""/>
</Rules>
</CancellationPolicy>
<PriceInformation>
<Components></Components>
<Category Code = "Z" DeckLoc = "I/O">
<cabins>
<Cabin
Code = "KI"
Type = "SUITE"
Capacity = "3"
Beds = "1"
CabinNumber = "005">
<Images>
<Image>
<FileName>http://www.costaclick.net/CostaClick/esAR/Pianonave.htm?CabinId=1022&ShipId=PA</FileName>
</Image>
</Images>
<Deck Level = "5">
<Name>SATIEINF</Name>
<Description>PENTION SUITE</Description>
</Deck>
</Cabin>
</cabins>
</Category>
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "421" Nett = "421">
<Service Amount = "421.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Fees>
<Fee>ServiceFee</Fee>
<Fee>CreditCardPaymentFee</Fee>
</Fees>
<Components>
<Component Type = "Flight" Mandatory = "false">
<Station
Type = "AEO"
Code = "SVG"
Days = "">
</Station>
</Component>
</Components>
<Promotions>
<Promotion Code = "3MCIXDM">
<Name>ECO</Name>
</Promotion>
</Promotions>
<CruiseSupplements>
<CruiseSupplement
Units = "1"
Type = "Others"
Name = "Upgrade bed">
<RelPaxes>
<RelPax IdPax = "1"/>
</RelPaxes>
</CruiseSupplement>
<CruiseSupplement
Units = "1"
Type = "UpgrateMeal"
Name = "15:00">
</CruiseSupplement>
</CruiseSupplements>
</AdditionalElements>
</PriceInformation>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
<OptionalElements>
<CruiseSupplements>
<CruiseSupplement
Units = "1"
Type = "Others"
Name = "Upgrade bed">
<RelPaxes>
<RelPax IdPax = "1" RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "435" Nett = "435">
<Service Amount = "435.9"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
</RelPax>
<RelPax IdPax = "2" RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "435" Nett = "435">
<Service Amount = "435.9"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
</RelPax>
</RelPaxes>
</CruiseSupplement>
<CruiseSupplement
Units = "1"
Type = "UpgrateMeal"
Name = "15:00"
RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "535" Nett = "535">
<Service Amount = "535.9"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</CruiseSupplement>
</CruiseSupplements>
</OptionalElements>
</CruiseResult>
</Results>
</CruiseBookingRulesRS>
</CruiseBookingRulesResponse>
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 cruise results. |
./Result/CruiseResult | N | - | Item cruise. |
./CruiseResult/@Status | N | String | Category status. |
./CruiseResult/@CruiseCode | N | String | Cruise code. |
./CruiseResult/@Zone | N | Integer | Search zone for the itinerary. |
./CruiseResult/@StartDate | N | Date | Start date of the cruise. Format: yyyy-MM-dd |
./CruiseResult/@Status | N | String | Category status. |
./CruiseResult/@CruiseCode | N | String | Cruise code. |
./CruiseResult/@Zone | N | String | Departure zone of the cruise. |
./CruiseResult/@StartDate | N | Date | Start date of the cruise. Format: yyyy-MM-dd |
./CruiseResult/@DaysDuration | N | Integer | Duration of the cruise. |
./CruiseResult/BookingCode | Y | String | Code for booking. If there is no BookingCode it means there are mandatory elements left that must be selected. |
./BookingCode/@ExpirationDate | N | String | Expiry date of the BookingCode. |
./CruiseResult/CruiseRequiredFields | - | - | Required fields for the booking. Mandatory fields which are not informed will be filled with random data. |
./CruiseRequiredFields/{Paxes} | N | - | Passenger data. Mandatory passenger data will be filled in with random data. |
./CruiseRequiredFields/BookingCode | N | - | Code for the booking. This element is always mandatory. |
./CruiseRequiredFields/RelPaxes | N | - | Passenger list for the cruise. This element is always mandatory. |
./RelPaxes/RelPax | N | - | Passenger. |
./RelPax/@IdPax | N | Integer | Passenger identifier. This is always mandatory for the booking. |
./CruiseResult/{CancellationPolicy} | - | - | Cancellation policies. NOT IMPLEMENTED |
./CruiseResult/PriceInformation | - | - | - |
./PriceInformation/Components | N | - | List of additional components. |
./Components/Component | Y | String | If there is no components or we have already selected the cabin, this field won't be returned. |
./Component/@Type | N | String | Type of component. Posssible values: - Flight: Flight. - Hotel: Hotel. - Transport: Bus or train. |
./Component/@Mandatory | N | Boolean | Indicates if it is a mandatory component. If the component is mandatory, we would not allow the user to continue until there is one selected. |
./Component/Stations | N | String | List of departure points of the flight, transport or location (in case of hotels). |
./Stations/Station | N | String | Item station. |
./Station/@Type | N | String | Type of station. Possible values: - CITY: In the city. - AEO: Airport terminal. - BUS: Bus terminal. - TRN: Train terminal. |
./Station/@Code | N | String | Station code. |
./Station/@Days | Y | Integer | Number of stay days, in case of hotel. |
./Station/@RatePlanCoce | N | String | Code to be sent in the CruiseBookingRules request and so select the station. |
./Station/{Prices} | - | - | Price of the cruise selecting this component. |
./PriceInformation/Category | N | - | Selected category. |
./Category/@Code | N | String | Category code. |
./Category/@DeckLoc | N | String | Lotation of the cabin. Possible values: - I: Interior cabin. - O: Outward-facing cabin. - IO: Cabins with balcony. - S: Suite. - U: Undefined. |
./Category/Cabins | N | String | List of cabins. If there is any mandatory component, no cabin will be returned to be selected. If the cabin is guaranteed, also no cabin will be returned, as the category guarantees the cabin. |
./Cabins/Cabin | Y | String | Cabin. |
./Cabin/@Code | N | String | Cabin code. |
./Cabin/@Type | Y | String | Type of cabin. |
./Cabin/@Capacity | Y | Integer | Cabin capacity. |
./Cabin/@Beds | Y | Integer | Number of beds. |
./Cabin/@CabinNumber | N | Integer | Cabin number. |
./Cabin/Images | - | - | Images of the cabin. |
./Images/FileName | Y | String | Image URL. |
./Cabin/Deck | - | - | Deck info. |
./Deck/@Level | Y | Integer | Deck in which the cabin ID is located. |
./Deck/Name | Y | String | Name of the deck. |
./Deck/Description | Y | String | Cabin description. |
./PriceInformation/{Prices} | - | - | - |
./PriceInformation/AdditionalElements | - | - | List of elements included in the price. |
./AdditionalElements/Fees | - | - | List of elements included in the price. |
./Fees/Fee | Y | String | Item fee. |
./AdditionalElements/Components | N | - | List of components included in the price. |
./Components/Component | Y | String | Item component. If there are no coponents, ir the cabin has been already selected, no components will be returned. |
./Component/@Type | N | String | Type of component. Posssible values: - Flight: Flight. - Hotel: Hotel. - Transport: Bus or train. |
./Component/@Mandatory | N | Boolean | Indicates if it is a mandatory component. If the component is mandatory, we would not allow the user to continue until there is one selected. |
./Component/Stations | N | String | List of departure points of the flight, transport or location (in case of hotels). |
./Stations/Station | N | String | Item station. |
./Station/@Type | N | String | Type of station. Possible values: - CITY: In the city. - AEO: Airport terminal. - BUS: Bus terminal. - TRN: Train terminal. |
./Station/@Code | N | String | Station code. |
./Station/@Days | Y | Integer | Number of stay days, in case of hotel. |
./AdditionalElements/Promotions | Y | - | List of applied promotions. |
./Promotions/Promotion | Y | - | Item promotion. |
./Promotions/@Code | N | String | Code of the applied promotion. In this transaction, it will always come as the cheapest promotion or a single promotion. |
./Promotions/Name | N | String | Promotion name. |
./AdditionalElements/CruiseSupplements | - | - | List of additional supplements for the cruise. |
./CruiseSupplements/CruiseSupplement | Y | String | Item supplement. |
./CruiseSupplement/@Units | N | Integer | Amount of supplements. |
./CruiseSupplement/@Units | N | String | Type of supplement. |
./CruiseSupplement/@Units | N | String | Name of the supplement. |
./CruiseSupplement/RelPaxes | Y | - | - |
./RelPaxes/RelPax | - | - | - |
./RelPax/@IdPax | N | Integer | Identifier of the passenger to which the supplement applies. |
./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. |
./CruiseResult/RelPaxesDist | N | - | Real passenger distribution. We state "real" because the booking holder enters its data as a passenger, but not necessarily has to be one of the real passengers. |
./RelPaxesDist/RelPaxDist | N | - | - |
./RelPaxDist/RelPaxes | N | - | - |
./RelPaxes/RelPax | N | - | - |
./RelPax/@IdPax | N | Integer | Passenger identifier. |
./RelPaxes/Cards | Y | - | - |
./Cards/Card | N | String | Points or discount card. |
./Cards/@Type | N | String | Possible values: - P: Points card. - D: Discount card. If the card contains informetion, this field will be mandatory, otherwise it is not necessary. |
./CruiseResult/OptionalElements | Y | - | Optional supplements. We will not have these supplements available until we actually select a cabin. |
./OptionalElements/CruiseSupplements | - | - | List of optional supplements. |
./CruiseSupplements/CruiseSupplement | Y | String | Item supplement. |
./CruiseSuppement/@Units | N | Integer | Possible amount of supplements. Its vañue will be usually 1. |
./CruiseSuppement/RelPaxes | Y | - | List of passengers to which the optional supplement applies to all of them. |
./RelPaxes/RelPax | - | - | Item passenger. |
./RelPax/@IdPax | N | String | Passenger identifier. |
./RelPax/RatePlanCode | N | String | RatePlanCode for in which this supplement is included or the passenger IdPax. In order to add the supplement, we should send a new CruiseBookingRules request including it. |
./RelPax/{Prices} | - | - | Total Price of the service including this supplement. |
./CruiseSupplement/{Prices} | - | - | If the supplement apllies to all passengers of the booking. Total Price of the service including this supplement. |
./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. |
List of possible Warnings:
Code | Description |
---|---|
WarnComponentRequired | Required components not selected. |
WarnCategoryRequired | Required categories not selected. |
WarnCabinRequired | Required cabins not selected. |
Request Booking
Transaction to confirm a booking
It returns a similar response containing the same information as if we read an existing booking (transaction
Read).
We book a cruise with the BookingCode retrieved in the BookingRules response:
<CruiseBook>
<CruiseBookRQ Version = "2.1" Language = "es">
<Login Password = "pass" Email = "user@mydomain.com"></Login>
<Holder>
<RelPax IdPax = "1"/>
</Holder>
<Paxes>
<Pax Gender = "M" IdPax = "1">
<Title></Title>
<Name>Dav</Name>
<Surname>Lon</Surname>
<Age>25</Age>
<Email></Email>
<Document Type = "NIF">B145213426</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "2">
<Title></Title>
<Name>Fernando</Name>
<Surname>Milan</Surname>
<Age>28</Age>
<Email></Email>
<Document Type = "NIF">415246875B</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "3">
<Title></Title>
<Name>Alex</Name>
<Surname>Roma</Surname>
<Age>45</Age>
<Email></Email>
<Document Type = "NIF">4875122B</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
</Paxes>
<Elements>
<CruiseElement>
<BookingCode> oVNUq//Ewxj62g7wTzFRg/5loM6UUsc41IbtJZF8Wfmxvx4Argu6x02Z9xXrKTfS9Mhhk1pdhahiWcxWVxqWVx0UpvwlAZdaXVKpPBsdi7q5yCBwyltuiAwnizXahBS4cN5XjD0/0RrXiM1tj/r1AVfzNu9v+4eZGyL0q7z4D+EaX0W9/k/DWACz3fe1Y2is/s6oV9XeVuPjZfB344t0fNMILdYd9YwPQKYOeoy6AOZ1sRGUOra+VMxLRcgcTxjN
</BookingCode>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
<RelPax IdPax = "3"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</CruiseElement>
</Elements>
</CruiseBookRQ>
</CruiseBook>
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 passengers. Fields necessary fot this transaction: - @IdPax (Required). - Age (Optional for adults). |
Holder | N | - | Main guest of the booking. |
./Holder/RelPax | N | - | - |
./RelPax/@IdPax | N | Integer | Holder identifier. |
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. |
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 | - | Booking elements. |
./Elements/CruiseElement | N | - | Cruise element. |
./CruiseElement/BookingCode | N | String | This BookingCode is returned in the response of BookingRules and encodes all the information needed to book the quoted product. |
./CruiseElement/RelPaxesDist | N | - | List of distributions. |
./RelPaxesDist/RelPaxDist | N | - | Real passengers distribution. |
./RelPaxDist/RelPaxes | N | - | Real passengers list. |
./RelPaxes/RelPax | N | - | Passenger. |
./RelPax/@IdPax | N | - | Passenger identifier. |
AdvancedOptions | Y | - | Optional information. |
./AdvancedOptions/SendMailTo | Y | String | If included with the ALL value a booking confirmation email will be sent to your email account. |
./AdvancedOptions/ShowBreardownPrice | 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/BookingPaid | Y | String | Parameter meant for internal use only. |
Response
<CruiseBookResponse xmlns = "http://www.juniper.es/webservice/2007/">
<BookingRS
Url = "https://xml-uat.bookingengine.es"
TimeStamp = "2013-05-20T13:14:06.3241029+02:00"
IntCode = "u9t4/rqOqu4z1WbGt9KuluTDIsl+pHREKpJK7uiDz9k=">
<Errors></Errors>
<Warnings></Warnings>
<Reservations>
<Reservation Locator = "5QT3RO" Status = "PAG">
<Holder>
<RelPax IdPax = "1"/>
</Holder>
<Paxes>
<Pax Gender = "M" IdPax = "1">
<Title></Title>
<Name>Dav</Name>
<Surname>Lon</Surname>
<Age>25</Age>
<Email></Email>
<Document Type = "NIF">11111111</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "2">
<Title></Title>
<Name>Fernando</Name>
<Surname>Milan</Surname>
<Age>28</Age>
<Email></Email>
<Document Type = "NIF">111111112</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
<Pax Gender = "M" IdPax = "3">
<Title></Title>
<Name>Alex</Name>
<Surname>Roma</Surname>
<Age>45</Age>
<Email></Email>
<Document Type = "NIF">11111111</Document>
<PhoneNumbers>
<PhoneNumber Type = ""></PhoneNumber>
</PhoneNumbers>
<BornDate>1970-01-01</BornDate>
<Address></Address>
<City></City>
<Country></Country>
<PostalCode></PostalCode>
<Nationality>ES</Nationality>
</Pax>
</Paxes>
<Items>
<CruiseItem ItemId = "89391" Status = "OK">
<CancellationPolicy>
<Description/>
<Rules>
<Rule
From = ""
To = ""
Dfrom = ""
Dto = ""
Type = ""
FixedPrice = ""
PercentPrice = ""
Nigths = ""/>
</Rules>
</CancellationPolicy>
<PriceInformation>
<Components></Components>
<Category Code = "Z" DeckLoc = "I/O">
<cabins>
<Cabin
Code = "KI"
Type = "SUITE"
Capacity = "3"
Beds = "1"
CabinNumber = "005"
RatePlanCode = "wKqRZu1pelUTYuNyNN9gI2Z5Hli3L4w4HFu6IMNnutNxgqFsOx6GjtFZMOiFtLuno1r8o4NVlBhTf4cuRMLeY19koVSaxUU+G9XxL18D059ZYMIGb1KhpRqVpfMEBACdAmPyuBdEUmeCYmfyetBB3hpvp9h/UKUbl00oIi8m1wg=">
<Images>
<Image>
<FileName>http://www.costaclick.net/CostaClick/esAR/Pianonave.htm?CabinId=1022&ShipId=PA</FileName>
</Image>
</Images>
<Deck Level = "5">
<Name>SATIEINF</Name>
<Description>PENTION SUITE</Description>
</Deck>
</Cabin>
</cabins>
</Category>
<Prices>
<Price Type = "S" Currency = "USD">
<TotalFixAmounts Gross = "421" Nett = "421">
<Service Amount = "421.25"/>
<ServiceTaxes Included = "true" Amount = "0"/>
<Commissions Included = "true" Amount = "0"/>
<HandlingFees Included = "true" Amount = "0"/>
<Discount Amount = "0"/>
</TotalFixAmounts>
</Price>
</Prices>
<AdditionalElements>
<Fees>
<Fee>ServiceFee</Fee>
<Fee>CreditCardPaymentFee</Fee>
</Fees>
<Components>
<Component Type = "fligt" Mandatory = "false">
<Station
Type = "AEO"
Code = "SVG"
days = "">
</Station>
</Component>
</Components>
<Promotions>
<Promotion Code = "3MCIXDM">
<Name>ECO</Name>
</Promotion>
</Promotions>
<CruiseSupplements>
<CruiseSupplement
Units = "1"
Type = "Others"
Name = "Upgrade bed">
<RelPaxes>
<RelPax IdPax = "1"/>
</RelPaxes>
</CruiseSupplement>
<CruiseSupplement
Units = "1"
Type = "UpgrateMeal"
Name = "15:00">
</CruiseSupplement>
</CruiseSupplements>
</AdditionalElements>
</PriceInformation>
</CruiseItem>
<RelPaxesDist>
<RelPaxDist>
<RelPaxes>
<RelPax IdPax = "1"/>
<RelPax IdPax = "2"/>
<RelPax IdPax = "3"/>
</RelPaxes>
</RelPaxDist>
</RelPaxesDist>
</Items>
</Reservation>
</Reservations>
</BookingRS>
</CruiseBookResponse>
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 | N | - | Bookings. |
./Reservations/Reservation | N | - | Booking. |
./Reservation/Locator | N | String | Booking identifier. |
./Reservation/Status | N | String | Booking status. |
./Reservation/Holder | N | String | Main guest of the booking. |
./Holder/RelPax | N | String | - |
./RelPax/@IdPax | N | Integer | Holder identifier. |
./Reservation/{Paxes} | N | - | Passengers and booking holder. |
./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 | - | - |
./Items/CruiseItem | N | - | - |
./CruiseItem/@ItemId | N | Integer | Identifier of the booking line. |
./CruiseItem/@Status | N | String | Status of the booking. |
./CruiseItem/{CancellationPolicy} | N | - | Cancellation policies. |
./CruiseItem/PriceInformation | - | - | - |
./PriceInformation/Components | N | - | List of additional components. |
./Components/Component | Y | String | If there is no components or we have already selected the cabin, this field won't be returned. |
./Component/@Type | N | String | Type of component. Posssible values: - Flight: Flight. - Hotel: Hotel. - Transport: Bus or train. |
./Component/@Mandatory | N | Boolean | Indicates if it is a mandatory component. If the component is mandatory, it will not allow the user to continue until he / she selects one. |
./Component/Stations | N | String | List of departure points of the flight, transport or location (in case of hotels). |
./Stations/Station | N | String | Item station. |
./Station/@Type | N | String | Type of station. Possible values: - CITY: In the city. - AEO: Airport terminal. - BUS: Bus terminal. - TRN: Train terminal. |
./Station/@Code | N | String | Station code. |
./Station/@Days | Y | Integer | Number of stay days, in case of hotel. |
./Station/@RatePlanCode | N | String | Code to be sent in the CruiseBookingRules request and so select the station. |
./Station/{Prices} | - | - | Price of the cruise selecting this component. |
./PriceInformation/Category | N | - | Selected category. |
./Category/@Code | N | String | Category code. |
./Category/@DeckLoc | N | String | Lotation of the cabin. Possible values: - I: Interior cabin. - O: Outward-facing cabin. - IO: Cabins with balcony. - S: Suite. - U: Undefined. |
./Category/Cabins | Y | String | List of cabins. |
./Cabins/Cabin | Y | String | Item cabin. |
./Cabin/@Code | N | String | Cabin code. |
./Cabin/CabinNo | N | String | Number of the cabin. |
./CabinNo/@URL | Y | String | Image URL. |
./Cabin/Beds | Y | Integer | Number of beds. |
./Cabin/@CabinType | Y | String | Type of cabin. |
./Cabin/Deck | Y | Integer | Deck info. |
./Deck/@Level | Y | Integer | Deck in which the cabin ID is located. |
./Deck/Name | Y | String | Name of the deck. |
./Deck/Description | Y | String | Cabin description. |
./PriceInformation/{Prices} | - | - | - |
./PriceInformation/AdditionalElements | - | - | List of elements included in the price. |
./AdditionalElements/Fees | - | - | List of elements included in the price. |
./Fees/Fee | Y | String | Item fee. |
./AdditionalElements/Components | N | - | List of components included in the price. |
./Components/Component | Y | - | Item component. If there are no coponents, ir the cabin has been already selected, no components will be returned. |
./Component/@Type | N | String | Type of component. Posssible values: - Flight: Flight. - Hotel: Hotel. - Transport: Bus or train. |
./Component/@Mandatory | N | Boolean | Indicates if it is a mandatory component. If the component is mandatory, we would not allow the user to continue until there is one selected. |
./Component/Stations | N | String | List of departure points of the flight, transport or location (in case of hotels). |
./Stations/Station | N | String | Item station. |
./Station/@Type | N | String | Type of station. Possible values: - CITY: In the city. - AEO: Airport terminal. - BUS: Bus terminal. - TRN: Train terminal. |
./Station/@Code | N | String | Station code. |
./Station/@Days | Y | Integer | Number of stay days, in case of hotel. |
./AdditionalElements/Promotions | Y | - | List of applied promotions. |
./Promotions/Promotion | Y | - | Item promotion. |
./Promotions/@Code | N | String | Code of the applied promotion. In this transaction, it will always come as the cheapest promotion or a single promotion. |
./Promotions/Name | N | String | Promotion name. |
./AdditionalElements/CruiseSupplements | - | - | List of additional supplements for the cruise. |
./CruiseSupplements/CruiseSupplement | Y | String | Item supplement. |
./CruiseSupplement/@Units | N | Integer | Amount of supplements. |
./CruiseSupplement/@Units | N | String | Type of supplement. |
./CruiseSupplement/@Units | N | String | Name of the supplement. |
./CruiseSupplement/RelPaxes | Y | - | - |
./RelPaxes/RelPax | - | - | - |
./RelPax/@IdPax | N | Integer | Identifier of the passenger to which the supplement applies. |
./Items/RelPaxesDist | N | - | Real passenger distribution. We state "real" because the booking holder enters its data as a passenger, but not necessarily has to be one of the real passengers. |
./RelPaxesDist/RelPaxDist | N | - | - |
./RelPaxDist/RelPaxes | N | - | - |
./RelPaxes/RelPax | N | - | - |
./RelPax/@IdPax | N | Integer | Passenger identifier. |
./Items/{AdjustmentItem} | Y | - | Additional adjustment item. It will be available if, for example, you've manually added a PromoCode on the previous BookingRules step. |
Obtaining a booking by its reference code. The returned information is the same as in Booking Method. Please see the respective Booking method for further information.
<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="CSY243"/>
</ReadRQ>
</ReadBooking>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
ReadBooking | N | - | - |
@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 | - | - | - |
./ReadRequest/@ReservationLocator | N | - | Booking code. |
It returns the same information as the response of TransferBooking. For further information regarding the parameters, please review the section related to the response of TransferBooking transaction.
It allows you to cancel the total booking or of one of its services / items. It will also allow you to learn about the cancellation charges that you would incur if the booking is cancelled. In the following example we cancel a complete 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="CSY243"/>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv:Envelope>
Node / Attribute (@) | Opt | Type | Description |
---|---|---|---|
ReadBooking | N | - | - |
@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 | - | - | - |
./CancelRequest/@ReservationLocator | N | - | Booking code. |
./CancelRequest/@ItemId | Y | Integer | Indentifier of the booking line. |
When cancelling it returns the same information as the response of TransferBooking. For further details regarding the parameters, please review the section related to the response of TransferBooking transaction.
Example of obtaining the cancellation charges. This option does not cancel the booking.
Request
<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="CSY243" OnlyCancellationFees="true"/>
</CancelRQ>
</CancelBooking>
</soapenv:Body>
</soapenv: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>
<CancelBookingResponse
xmlns="http://www.juniper.es/webservice/2007/">
<BookingRS Url="http://xml-uat.bookingengine.es" TimeStamp="2019-12-27T14:48:45.0326528+01:00" IntCode="s+4sOTN3Hx0l/7Vc/Y5qqrv+FENED1aFnZKFpM7GLlg=">
<Warnings>
<Warning Code="warnCancellationCostRetrieved" Text="Cancellation cost retrieved. Reservation was not cancelled."/>
<CancelInfo>
<BookingCodeState>Pag</BookingCodeState>
<BookingCancelCost>50</BookingCancelCost>
<BookingCancelCostCurrency>USD</BookingCancelCostCurrency>
</CancelInfo>
</Warnings>
</BookingRS>
</CancelBookingResponse>
</soap:Body>
</soap:Envelope>
When it has not been possible to calculate the cancellation charges, the message returned is the following:
<Warnings>
<Warning Code="warnCancellationNotCalculated" Text="Cancellation cost could not be calculated. Reservation was not cancelled."/>
</Warnings>
Should this happen, please, contact your partner.