Hotel API · Booking flow
HotelSearch()
This function is dedicated for hotels search (rates and availability)
Request
<HotelSearchREQ>
<Credential>
<Login>?</Login>
<Password>?</Password>
</Credential>
<SearchDetails>
<BookingDetails>
<User>?</User>
<Language>?</Language>
<FromDate>?</FromDate>
<ToDate>?</ToDate>
<IdCity>?</IdCity>
<Timeout>?</Timeout>
<Rooms>
<Room>
<Pax>
<Adult>2</Adult>
<Child age="">0</Child>
<Infant age="">0</Infant>
</Pax>
<Boarding>?</Boarding>
</Room>
<Room>
<Pax>
<Adult>1</Adult>
<Child age="8-10">2</Child>
<Infant age="0">1</Infant>
</Pax>
<Boarding>?</Boarding>
</Room>
<Room>
<Pax>
<Adult>2</Adult>
<Child age="9">1</Child>
<Infant age="1">1</Infant>
</Pax>
<Boarding>?</Boarding>
</Room>
</Rooms>
</BookingDetails>
<Filters>
<Budget minimum="?" Maximum="?">?</Budget>
<Keywords>?</Keywords>
<Categories>
<Category>?</Category>
</Categories>
<Sort>
<By>?</By>
</Sort>
<OnlyAvailable>True/False</OnlyAvailable>
<FromCache>True/False</FromCache>
<ItemsPerPage>?</ItemsPerPage>
<PageNumber>?</PageNumber>
<hotels_ids>?;?;?</hotels_ids>
<exclude_hotels_ids>?</exclude_hotels_ids>
<WithoutNRF>True/False</WithoutNRF>
<OnlyBestPriceCombination>True/False</OnlyBestPriceCombination>
<keywords>?</keywords>
<TariffNotes>True/False</TariffNotes>
<Nationality>XX</Nationality>
<SourceMarket>XX</SourceMarket>
<GeoLocation latitude=”?” longitude=”?” radius=”?” />
</Filters>
</SearchDetails>
</HotelSearchREQ>| Root | Sub Root | Description | Values & Format | Tag |
|---|---|---|---|---|
| Credential | Mandatory | |||
| Login | Login | Text | ||
| Password | Password | Text | ||
| SearchDetails | BookingDetails | |||
| BookingDetails :User | Current user id | Text | Mandatory | |
| BookingDetails :Language | Cyberesa’s language ID to be used to return suitable texts | Text | Mandatory | |
| BookingDetails :FromDate | Search start Date | dd/mm/yyyy | Mandatory | |
| BookingDetails :ToDate | Search end date | dd/mm/yyyy | Mandatory | |
| BookingDetails :IdCity | Search IdCity | Numeric | Mandatory | |
| BookingDetails:Timeout | maximum response time in milliseconds | Numeric | ||
| BookingDetails :Rooms :Room :Pax | Describe configuration of requested pax within the search | Mandatory | ||
| BookingDetails :Rooms :Room:Pax :Adult | Number Of adults for the current room configuration | Numeric | Mandatory | |
| BookingDetails :Rooms :Room:Pax :Child : | Number of children for the current room configuration | Numeric | Mandatory | |
| BookingDetails :Rooms :Room:Pax :Child @Age | Children ages separated by “-” ex: “5” or “5-6” | Text | Mandatory for child | |
| BookingDetails :Rooms :Room:Pax :Infant: | Number of infants for the current room configuration | Numeric | Optional | |
| BookingDetails :Rooms :Room:Pax :Infant@Age | Infants ages separated by “-” ex: “0” or “0-1” | Text | Mandatory for Infants | |
| BookingDetails :Rooms :Room:Boarding | Search by specific boarding id | Numeric | Optional | |
| Filters | ||||
| Budget:@minimum | Indicate a minimum budget | Numeric | Optional | |
| Budget:@maximum | Indicate a maximum budget | Numeric | Optional | |
| keywords | Search by keywords | Text | Optional | |
| category | Search by category | Numeric | Optional | |
| Sort:by | Specify an order by (City or Category or Title or Review or Priority or Nearby), if not indicated, default order by Priority ascendant will be applied | Text | Optional | |
| onlyAvailable | Show only available hotels | Boolean | Optional | |
| FromCache | If “False” then do not return results from cache | Boolean | Optional | |
| ItemsPerPage | Value indicating items to be returned per page | Numeric | Mandatory | |
| PageNumber | Value indicates the number of the page to be returned | Numeric | Mandatory | |
| hotels_ids | Return only those hotels ids if exists or available ex: <hotels_ids>706</hotels_ids> or <hotels_ids>706@8</hotels_ids> if external source (source = 8 here) | Text | Optional | |
| exclude_hotels_ids | Exclude those hotels ids from results if exists or available | Text | Optional | |
| withoutnrf | Excludes any offer that is non refundable | Boolean | Optional | |
| OnlyBestPriceCombination | If true, returns only the cheapest available offer per hotel. A hotel with no available offer will not return. If empty or false, all combinations will return. | Boolean | Optional | |
| keywords | Show only hotels that have a title or a description that contain these keywords | Text | Optional | |
| TariffNotes | If true, return TariffNotes in the HotelSearchRES | Boolean | Optional | |
| Nationality | 2 letters iso-code, If provided, then filter only offers for the nationality | 2 letters in uppercase | Optional | |
| SourceMarket | 2 letters iso-code, If provided, then filter only offers for the SourceMarket | 2 letters in uppercase | Optional | |
| GeoLocation:@latitude | The latitude of the reference point | Numeric | Optional | |
| GeoLocation:@longitude | The longitude of the reference point | Numeric | Optional | |
| GeoLocation:@radius | defining the search area around the point (latitude, longitude). | Numeric | Optional |
Response
<HotelSearchRES>
<ErrorResult id="’?’">
<message>?</message>
</ErrorResult>
<FromDate>?</FromDate>
<ToDate>?</ToDate>
<Language>?</Language>
<Currency>?</Currency>
<City id="’?’">?</City>
<Destination id="’?’">?</Destination>
<PaginationData currentPage="’?’" TotalPages="’?’" />
<Hotels count="’?’">
<Hotel id="’0000’">
<Title>?</Title>
<PromotionTitle>?</PromotionTitle>
<TariffNotes>?</TariffNotes>
<Category id="">?</Category>
<ThumbImage url="’?’">?</ThumbImage>
<Review id="’?’">
<Note>?</Note>
<Number>?</Number>
</Review>
<Localization>
<Longitude>?</Longitude>
<Latitude>?</Latitude>
</Localization>
<Address>?</Address>
<Summary>?</Summary>
<Rooms>
<Room id="’?’" count="’?’">
<Adult>?</Adult>
<Child maxage="’?’" minage="’?’" age="’?’">?</Child>
<Infant maxage="’?’" minage="’?’" age="’?’">?</Infant>
<Title>?</Title>
<AvailableQuantity>?</AvailableQuantity>
<Boardings>
<Boarding id="’?’" OfferId=”?”>
<Title>?</Title>
<Available code="’?’" status="’?’" value="’?’">?</Available>
<Rate currency="?">?</Rate>
<NonRefundable>?</NonRefundable>
<CancellationPolicy>
<FromDate>?</FromDate>
<Fee>?</Fee>
</CancellationPolicy>
<TariffNotes>?</TariffNotes>
</Boarding>
</Boardings>
<Supplements>
<Supplement>
<Title>?</Title>
<Rate currency="?">?</Rate>
</Supplement>
</Supplements>
</Room>
<GlobalSupplements>
<GlobalSupplement id="’?’">?</GlobalSupplement>
</GlobalSupplements>
</Rooms>
<GlobalSupplement>?</GlobalSupplement>
</Hotel>
<Hotel id="’???’">
<Source>?</Source>
<Title>?</Title>
<PromotionTitle>?</PromotionTitle>
<Category id="">?</Category>
<ThumbImage url="’?’">?</ThumbImage>
<Review id="’?’">
<Note>?</Note>
<Number>?</Number>
</Review>
<Localization>
<Longitude>?</Longitude>
<Latitude>?</Latitude>
</Localization>
<Address>?</Address>
<Rooms>
<Room id="’?’" count="’?’">
<Adult>?</Adult>
<Child maxage="’?’" minage="’?’" age="’?’">?</Child>
<Title>?</Title>
<AvailableQuantity>?<AvailableQuantity>
<Boardings>
<Boarding id="’?’" OfferId=”’?’”>
<Title>?</Title>
<Available code="’?’" status="’?’" value="’?’">?</Available>
<Rate currency="?">?</Rate>
<NonRefundable>?</NonRefundable>
<CancellationPolicy>
<FromDate>?</FromDate>
<Fee>?</Fee>
</CancellationPolicy>
<TariffNotes>?</TariffNotes>
</Boarding>
</Boardings>
<Supplements>
<Supplement>
<Title>?</Title>
<Rate currency="?">?</Rate>
</Supplement>
</Supplements>
</Room>
<GlobalSupplements>
<GlobalSupplement id="’?’">?</GlobalSupplement>
</GlobalSupplements>
</Rooms>
<GlobalSupplement>?</GlobalSupplement>
<SourceGlobalSupplement>?</SourceGlobalSupplement>
</Hotel>
</Hotels>
<c>?</c>
</HotelSearchRES>| Root | Sub Root | Description | Valeurs & Format | Tag |
|---|---|---|---|---|
| ErrorResult | ||||
| ErrorResult:@id | Error id | Numeric | ||
| ErrorResult:message | Appropriate message | Text | ||
| FromDate | Search start date | dd/mm/yyyy | ||
| ToDate | Search end date | dd/mm/yyyy | ||
| Source | Source | Numeric | ||
| Language | Language code | Text | ||
| Currency | Currency code | Numeric | ||
| City | City Name | Text | ||
| City :@Id | City Id | Numeric | ||
| Destination | Destination Name | Text | ||
| Destination :@Id | Destination ID | Numeric | ||
| PaginationData :@CurrentPage | Current result page | Numeric | ||
| PagiationData : @TotalPages | Total result pages | Numeric | ||
| c | Results are coming from cache and not calculated in real-time | bit | ||
| Hotels | ||||
| Hotels :@count | Total count of hotels | Numeric | ||
| Hotels :Hotel :@Id | Current hotel id. | Text | ||
| Hotels :Hotel :Title | Hotel Name | Text | ||
| Hotels :Hotel :PromortionTitle | Hotel Promotion Title | Text | ||
| Hotels :Hotel :TariffNotes | Hotel special tariff notes | Text | ||
| Hotels :Hotel : Category | Hotel category | Text | ||
| Hotels :Hotel : Category :@id | Hotel Category ID(stars number) | Numeric | ||
| Hotels :Hotel : ThumbImage :@url | Url of hotel’s thumb image | Text | ||
| Hotels:Hotel: ThumbImage | Caption for hotel’s thumb image | Text | ||
| Hotels:Hotel: Review:Note | Hotel review note | Numeric | ||
| Hotels :Hotel : Review :Number | Hotel review number | Numeric | ||
| Hotels :Hotel : Localization : Longitude | Hotel longitude | Numeric | ||
| Hotels :Hotel : Localization : Latitude | Hotel Latitude | Numeric | ||
| Hotels : Hotel :Address | Hotel address | Text | ||
| Hotels : Hotel : Summary | Hotel short description | Text | ||
| Hotels :Hotel : GlobalSupplement | Global Supplement for the current hotel | Numeric | ||
| Hotels :Hotel : SourceGlobalSupplement | Source Global Supplement for the current hotel | Numeric | applicable only for a hotel with <source> node (3rd party). This is a handling booking fee | |
| Rooms | ||||
| Room:@Id | Id of the current available room | Numeric | ||
| Room:@count | Count of Total returned rooms with the same pax | Numeric | ||
| Room:Adult | Adults count for the current room | |||
| Room:Child | Child count for the current room | |||
| Room:Child:@minage | Child minimaum accepted age | Numeric | ||
| Room:Child:@maxage | Child maximaum accepted age | Numeric | ||
| Room:Child:@age | Children ages separated by “-” | Text | ||
| Room:Infant | Infant count for the current room | |||
| Room:Infant:@minage | Infant minimaum accepted age | Numeric | ||
| Room:Infant:@maxage | Infant maximaum accepted age | Numeric | ||
| Room:Infant:@age | ages separated by “-” | Text | ||
| Room:Title | Room Title | Text | ||
| Room: AvailableQuantity | Available quantity of the room | Numeric | ||
| Room:Boardings:Boarding:@id | Boarding id | Boolean | ||
| Room:Boardings:Boarding:@OfferId | Boarding OfferId(offer identifier) | Text | OPTIONAL to be used in Hotel Quote REQ | |
| Room:Boardings:Boarding:Title | Boarding title | Numeric | ||
| Room:Boardings:Boarding:Available | Indicates whether the current boarding is available or not | Text | ||
| Room:Boardings:Boarding:Available:@code | The Availability code | Numeric | Possible values : 200 or 0 : hotel available : 210 or 2044 : minimal stay overnight is not respect, 210 by hotel, 2044 by boarding 489 : stop sale period 203 : authorized delay to book an hotel is not respected (retrocession delay) Other code to indicate hotel on request | |
| Room:Boardings:Boarding:Available:@status | The Availability status | Text | Possible values : ‘ms’ (minimum stay) if @code = 210 or 2044 ‘ss’ (stop sale) if @code = 489 ‘dr’ (retrocession delay) if @code = 203 | |
| Room:Boardings:Boarding:Available:@value | The Availability value | Text | Possible values : minimalStay : if @code=210 or 2044 authorized FromDate to start booking : if @code=203 | |
| Room:Boardings:Boarding:Rate:@currency | Currency of the current price value | Numeric | ||
| Room:Boardings:Boarding :TariffNotes | Display any comment about the related rate like "You will pay upon arrival a tax charge of XXX for the YY night(s)" or if NRF: "This booking is non-refundable"..etc. | Text | ||
| Room:Boardings:Boarding:Rate: | Boarding price for the current room | Text | ||
| Room: Boardings:Boarding: NonRefundable | Indicate if offer is non refundable | Bool | ||
| Room:Boardings:Boarding: CancellationPolicy | ||||
| Room:Boardings:Boarding: CancellationPolicy: FromDate | This fromDate is the deadline for free cancellation delay, beyond this, there is a 100% penalty. | Date | ||
| Room:Boardings:Boarding: CancellationPolicy: Fee | Cancellation Policy fee rate | Decimal | ||
| Room:Supplements:Supplement | Supplements details for the current room | Text | Optionnal | |
| Room:Supplements:Supplement:Title | Supplement title | Text | ||
| Room:SupplementsSupplement:Rate:@currency | Currency of the supplement price value | Numeric | ||
| Room:Supplement:Rate: | Supplement Rate | Text | ||
| Room:GlobalSupplements:GlobalSupplement:@id | Id of the global supplement | Numeric | ||
| Room:GlobalSupplements:GlobalSupplement | Value of the global supplement | Numeric |