Спецификация метода HotelDetails

Пример вызова


Протокол: HTTP POST
Адресная строка: api/HotelDetails/Execute


Метод апи: Execute
Аналогичен одноименному методу с передаваемым запросом в виде единого XML

Информация о запросе

Ниже приведены параметры запроса и их краткое описание

Параметры запроса

Название параметраОписаниеТИП
req No documentation available.

GET.


Описание работы сервиса

Диаграмма бизнес-процесса

Сервис HotelDetails предоставляет подробное описание доступных рейтов в рамках одного отеля, полученных от разных поставщиков.

Пример для отправки запроса в теле сообщения

<?xml version="1.0" encoding="utf-8" ?>
<HotelDetailsRequest SecurityKey="XXX" id_Profile="0" IsTest="false"  DateRequestStarted="0001-01-01T00:00:00" OnlyDescription="false">
  <IsTest>false</IsTest>
  <SystemInformation />
  <CheckInTime />
  <CheckOutTime />
  <Accessors>
    <Accessor id_System="46" id_City="6297" HotelName="che_minihotel" id_ProviderGroup="6" id_Profile="XXX">
      <HotelCode>che_minihotel</HotelCode>
      <Adults>1</Adults>
      <ChildAges></ChildAges>
      <Checkin>2017-11-21</Checkin>
      <Checkout>2017-11-22</Checkout>
      <CurrentPaymentType>0</CurrentPaymentType>
      <Details />
    </Accessor>
  </Accessors>
</HotelDetailsRequest>

Пример успешного ответа

<?xml version="1.0" encoding="utf-8" ?>
<HotelDetailsResponse>
  <Errors />
  <ExtendedHotelInfo Stars="5" Latitude="55.793548583984375" Longitude="49.1494140625" ProviderCode="38210" HasAirportTransfer="true" HasFitness="true" HasInternet="true" HasParking="true" HasSpa="false" HasPool="false">
    <HotelAccessKey/>
    <HotelName>
      <BS Rus="Корстон Роял Отель Казань" En="Korston Royal" />
    </HotelName>
    <HotelAddress>
      <BS Rus="Россия, Республика Татарстан, г.Казань, ул.Н.Ершова, д.1А" En="1a Ershova street, Kazan, 420061 Russia" />
    </HotelAddress>
    <Hoteldescription>
      <BS Rus="Описание..." En="description goes here..." />
    </Hoteldescription>
    <FacilitiesRu>
      <Facility>Бизнес-центр</Facility>
      <Facility>Салон красоты</Facility>
      <Facility>Парковка</Facility>
      <Facility>Услуги прачечной</Facility>
      <Facility>Обслуживание в номерах</Facility>
      <Facility>Сауна</Facility>
      <Facility>Магазин</Facility>
      ...
    </FacilitiesRu>
    <FacilitiesEn>
      <Facility>Business centre</Facility>
      <Facility>Beauty salon</Facility>
      <Facility>Parking</Facility>
      <Facility>Laundry service</Facility>
      <Facility>Room service</Facility>
      <Facility>Sauna</Facility>
      <Facility>Shop</Facility>
      ...
    </FacilitiesEn>
    <ThumbnailUrl>https://dict.travelnow.ru/resource/hotel/photo/118/6787/32857020.jpg</ThumbnailUrl>
    <Email>reservation@kzn.korston.ru</Email>
    <HotelType>hotel</HotelType>
    <Phone/>
    <Images>
      <src>https://dict.travelnow.ru/resource/hotel/photo/118/6787/32857020.jpg</src>
      ...
    </Images>
    <TripAdvisorRate ServicesRate="0" PriceRate="0" CleannessRate="0" ComfortRate="0" LocationRate="0" PersonnelRate="0" FeedbackQuantity="0" />
    <DefaultCheckinTime>14:00:00</DefaultCheckinTime>
    <DefaultCheckoutTime>12:00:00</DefaultCheckoutTime>
    <SpecialRemark>
      <BS Rus="" En="" />
    </SpecialRemark>
    <Rooms>
      <ExtendedRoomdescription IsOnRequest="false" UniqueAccessCode="eBsnWdWzpE68nig_8aOcXw" AutomaticEarlyCheckin="false" AutomaticLateCheckout="false" AutomaticMealAddition="false" HasBreakfast="true" HasInternet="false" HasBathroom="false" Is3D="false">
        <FacilitiesRu />
        <FacilitiesEn />
        <RoomName>
          <BS Rus="Клуб Люкс DBL for Single use , завтрак шведский стол" En="Клуб Люкс DBL for Single use , завтрак шведский стол" />
        </RoomName>
        <RoomPhotos />
        <Roomdescription>
          <BS Rus="" En="" />
        </Roomdescription>
        <RoomSize />
        <ProviderCode />
        <AgentInformation>Непосредственный поставщик: Hotelbeds</AgentInformation>
        <VAT>НДС включен</VAT>
        <CustomerInformation>
          <BS Rus="Штраф за внесение изменений применяется начиная с:12.10.2017. Размер штрафа: 13021,52 RUB" En="Penalty for changes in reserve starts from:12.10.2017. Penalty amount: 13021,52 RUB" />
        </CustomerInformation>
        <LateCheckoutComment>
          <BS Rus="" En="" />
        </LateCheckoutComment>
        <EarlyCheckinComment>
          <BS Rus="" En="" />
        </EarlyCheckinComment>
        <AdditionalMealComment>
          <BS Rus="" En="" />
        </AdditionalMealComment>
        <DailyPrices>
          <Price>13021.52 RUB</Price>
        </DailyPrices>
        <FreeCancelationDate>12.10.2017 00:00:00</FreeCancelationDate>
        <CancelationPolicies>
          <ExtendedCancelationPolicy>
            <DateStart>12.10.2017 00:00:00</DateStart>
            <DateEnd/>
            <RefundFee>13021.52</RefundFee>
            <CurrencyCode>RUB</CurrencyCode>
          </ExtendedCancelationPolicy>
        </CancelationPolicies>
        <BaseHotelRateAccessor id_System="35" RateCode="297435" id_Profile="6659" AgencyName="Unifest"  Price="13021.52">
          <SystemName>Hotelbook</SystemName>
          <Details>
            <LatestCheckOutTime>12:00</LatestCheckOutTime>
            <EarlestCheckInTime>14:00</EarlestCheckInTime>
            <ResultId>297435</ResultId>
            <Identity>Клуб Люкс DBL for Single use , завтрак шведский стол;13021,52;12.10.2017 0:00:00;13021,52;True;;14:00;12:00;</Identity>
          </Details>
          <Accessor id_System="35" id_City="4585" HotelName="Корстон Роял Отель Казань" id_ProviderGroup="427" id_Profile="6659">
            <HotelCode>38210</HotelCode>
            <Adults>1</Adults>
            <ChildAges/>
            <Checkin>2017-10-13</Checkin>
            <Checkout>2017-10-14</Checkout>
            <CurrentPaymentType>0</CurrentPaymentType>
            <Details>
              <SearchId>98490015</SearchId>
              <ResultIds>297435,297436,297437</ResultIds>
            </Details>
          </Accessor>
        </BaseHotelRateAccessor>
        <ExtendedRatePrice TotalPrice="13321.52" CurrencyCode="RUB" OriginalPrice="13021.52" ConvertionRate="1" HiddenServiceFee="0" ServiceFee="300" Discount="0" EarlyCheckinPrice="0" LateCheckoutPrice="0" AdditionalMealPrice="0" AdditionalServicePrice="0" ComparisionAddditionalServicePrice="0" ComparisionTotalPrice="13321.52" ComparisionOriginalPrice="13021.52" ComparisionDiscount="0" ComparisionServiceFee="300" ComparisionHiddenServiceFee="0">
          <id_Currency>3</id_Currency>
          <VAT>НДС включен</VAT>
          <Commission>0 RUB</Commission>
        </ExtendedRatePrice>
        <OtherInformation />
      </ExtendedRoomdescription>
      ...
    </Rooms>
    <Warnings />
  </ExtendedHotelInfo>
</HotelDetailsResponse>

Структура ответа

Детальная информация по рейтам (см. HotelDetails)

Рейт (ExtendedHotelInfo) — предложение номера от одного поставщика. Один и тот же номер от нескольких поставщиков выдается отдельными рейтами.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
int Attribute Stars количество звезд всегда 5
double Attribute Latitude географическая широта, координаты местоположения отеля всегда 55.793548583984375
double Attribute Longitude географическая долгота, координаты местоположения отеля всегда 49.1494140625
int Attribute ProviderGroup идентификатор агентства, от которго пришел запрос всегда 38210
bool Attribute HasAirportTransfer имеется ли услуга трансфера из аэропорта/в аэропорт (true/false) всегда true
bool Attribute HasFitness имеется финтес зал (true/false) всегда true
bool Attribute HasInternet имеется интернет (true/false) всегда true
bool Attribute HasParking имеется парковка (true/false) всегда true
bool Attribute HasSpa имеется спа (true/false) всегда false
bool Attribute HasPool имеется бассейн (true/false) всегда false
Element HotelAccessKey уникальный (в рамках текущего поиска отелей) ключ отеля всегда
HotelName Element HotelName название отеля на русском и английском всегда -
HotelAddress Element HotelAddress адрес отеля на русском и английском всегда -
Hoteldescription Element Hoteldescription подробное описание характеристик отеля на русском и английском. Описание предлагается в виде неструктурированного текста. всегда -
FacilitiesRu Element FacilitiesRu структурированный список услуг, доступных в отеле. Список выдается на русском языке. всегда -
FacilitiesEn Element FacilitiesEn структурированный список услуг, доступных в отеле. Список выдается на английском языке всегда -
string Element ThumbnailUrl небольшая картинка, логотип отеля< всегда http://images.acase.ru/hotels_images/800300_00.jpg
string Element Email электронная почта отеля всегда reservation@kzn.korston.ru
string Element HotelType тип отеля - отель, хостел и т.п. всегда hotel
string Element Phone телефон отеля всегда
Images Element Images список доступных изображений отеля, передается в виде ссылок всегда -
TripAdvisorRate Element TripAdvisorRate рейтинг отеля в сервисе TripAdvisor всегда -
DateTime Element DefaultCheckinTime стандартное время заезда всегда 14:00:00
DateTime Element DefaultCheckoutTime стандартное время выезда всегда 12:00:00
SpecialRemark Element SpecialRemark специальные отметки. Здесь может содержаться специальная информация от отеля всегда -
Rooms Element Rooms расширенное описание рейтов (подробнее) всегда

Rooms расширенное описание рейтов

ExtendedRoomDescription — расширенное описание рейта, включая услуги, цены, комментарии и т.п.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
bool Attribute IsOnRequest по запросу всегда false
string Attribute UniqueAccesscode уникальный идентификатор предложения в отеле всегда eBsnWdWzpE68nig_8aOcXw
bool Attribute AutomaticEarlyCheckin автоматический ранний заезд всегда false
bool Attribute AutomaticLateCheckout автоматический поздний выезд всегда false
bool Attribute AutomaticMealAddition автоматическое добавление питания всегда false
bool Attribute HasBreakfast имеется ли завтрак (true/false) всегда true
bool Attribute HasInternet имеется ли бесплатный интернет (true/false) всегда false
bool Attribute HasBathroom ванная комната (true/false) всегда false
bool Attribute Is3D имеется ли трехсторонний договор между клиентом и отелем (true/false) всегда false
FacilitiesRu Element FacilitiesRu структурированный список услуг, доступных для данного рейта. Список выдается на русском языке. всегда -
FacilitiesEn Element FacilitiesEn структурированный список услуг, доступных для данного рейта. Список выдается на английском языке. всегда -
RoomName Element RoomName название номера, если имеется всегда -
RoomPhotos Element RoomPhotos список доступных изображений номера, передается в виде ссылок всегда -
RoomDescription Element RoomDescription описание номера. Описание предлагается в виде неструктурированного текста всегда -
string Element RoomSize размеры комнаты всегда
string Element Providercode идентификатор клиента, посылающего запрос, в системе Кортеос всегда
string Element AgentInformation информация о непосредственном поставщике всегда Непосредственный поставщик: Hotelbeds
string Element VAT информация об НДС (включен/не включен) всегда НДС включен
CustomerInformation Element CustomerInformation информация для гостя о штрафах, датах изменения в брони и прочее. всегда -
LateCheckoutComment Element LateCheckoutComment комментарий о возможном позднем выезде всегда -
EarlyCheckinComment Element EarlyCheckinComment комментарий о возможном раннем заезде всегда -
AdditionalMealComment Element AdditionalMealComment комментарий о возможном питании всегда -
DailyPrices Element DailyPrices ежедневные цены всегда -
datetime Element FreeCancelationDate последняя дата отмены брони без штрафов всегда 12.10.2017 00:00:00
CancelationPolicies Element CancelationPolicies список политик отмены брони. В некоторых случаях размер штрафа может зависеть от даты отмены всегда -
BaseHotelRateAccessor Element BaseHotelRateAccessor контекст доступа к конкретному рейту, содержит информацию о поставщике для данного рейта, аксессор и прочее всегда -
ExtendedRatePrice Element ExtendedRatePrice расширенное описание цены и сборов за данный рейт всегда -
string Element OtherInformation иная информация, заметки, сноски и т.д. всегда -
int Element RoomsAvailable количество доступных к бронированию номеров если поставщик предоставляет эту информацию 5
string Element DefaultCheckInTime время заезда по умолчанию если предоставлено поставщиком 14:00
string Element DefaultCheckOutTime время выезда по умолчанию если предоставлено поставщиком 12:00
double Element EarlyCheckInSurcharge сумма доплаты за ранний заезд если ранний заезд поддерживается поставщиком, ранний заезд предполагает доплату и ранный заезд выбран 1000
double Element LateCheckOutSurcharge сумма доплаты за поздний выезд если поздний выезд поддерживается поставщиком, поздний выезд предполагает доплату и поздний выезд выбран 1000
bool Element HasTimeInformation поставщик всегда передает часы и минуты для политик отмены всегда true
double Element TimeZone временная зона, в которой находится комната (сдвиг в часах относительно UTC) если поставщик предоставляет данные 3

CustomerInformation

CustomerInformation — информация для гостя о штрафах, датах изменения в брони и прочее.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
string Attribute Rus русский текст всегда Штраф за внесение изменений применяется начиная с:12.10.2017. Размер штрафа: 13021,52 RUB
string Attribute En английский текст всегда Penalty for changes in reserve starts from:12.10.2017. Penalty amount: 13021,52 RUB

LateCheckoutComment

LateCheckoutComment — комментарий о возможном позднем выезде

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
string Attribute Rus русский текст всегда
string Attribute En английский текст всегда

EarlyCheckinComment

EarlyCheckinComment — комментарий о возможном раннем заезде

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
string Attribute Rus русский текст всегда
string Attribute En английский текст всегда

AdditionalMealComment

AdditionalMealComment — комментарий о возможном питании

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
string Attribute Rus русский текст всегда
string Attribute En английский текст всегда

DailyPrices

DailyPrices — ежедневные цены

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
string Element Price цена всегда 13021.52 RUB

CancelationPolicies

CancelationPolicies — список политик отмены брони. В некоторых случаях размер штрафа может зависеть от даты отмены

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
- Element ExtendedCancelationPolicy детальная информация о конкретной политике отмены брони всегда -
DateTime Element DateStart с какой даты действует данная политика отмены брони, время местное всегда 12.10.2017 00:00:00
DateTime Element DateEnd до какой даты действует данная политика отмены брони, время местное всегда
double Element RefundFee стоимость возврата, т.е. удерживаемая сумма в случае отмены всегда 13021.52
string Element Currencycode код валюты (см. справочник валют) всегда RUB
bool Element HasTimeInformation дата начала и окончания политики содержит время, устарело, используйте HasTimeInformation в ExtendedRoomDescription всегда true
double Element TimeZone смещение времени начала и окончания политики относительно UTC, устарело, используйте TimeZone в ExtendedRoomDescription если поставщик предоставляет данные 3

BaseHotelRateAccessor

BaseHotelRateAccessor — контекст доступа к конкретному рейту, содержит информацию о поставщике для данного рейта, аксессор и прочее.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
int Attribute id_System идентификатор поставщика всегда 35
string Attribute RateCode кода тарифа (может быть одинаковым для нескольких комнат) в Академсервисе и системах с аналогичным протоколом (Ариадна, Континент-Амадеус) всегда 297435
int Attribute id_Profile идентификатор профиля всегда 6659
string Attribute AgencyName всегда Unifest
string Attribute CheckInTime Время заезда всегда 14:00
string Attribute CheckOutTime Время выезда всегда 12:00
double Attribute Price Значение, эквивалентное значению ComparisionOriginalPrice объекта ExtendedRatePrice. Необходимо для контроля изменения стоимости на этапе бронирования всегда 5000
string Element SystemName название поставщика (например, Островок, ХотелБук и т.д.) всегда Hotelbook
string Element CheckInTime Время заезда всегда 14:00
string Element CheckOutTime Время выезда всегда 12:00
int Element CurrentPaymentType всегда 0
Details Element Details базовая информация о рейте всегда -
Accessors Element Accessors аксессор всегда

Details

Details — детали информации по рейтам.

Внимание! Структура блока Details варьируется для детальной информации по рейтам и ответа на запрос управления статусом брони.

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
DateTime Element LatestCheckOutTime максимальное время выезда метод HotelDetails 12:00
DateTime Element EarlestCheckInTime минимальное время заезда метод HotelDetails 14:00
uint Element ResultId идентификатор предложения в Хотелбуке метод HotelDetails 297435
string Element Identity строка содержащая название, стоимость, дату наступления штрафов, размер штрафа, название питания, CheckInTime, CheckOutTime.
Необходима для повторного поиска при просроченной сессии Хотелбука
метод HotelDetails Клуб Люкс DBL for Single use , завтрак шведский стол;13021,52;12.10.2017 0:00:00;13021,52;True;;14:00;12:00;
DateTime Attribute DefaultCheckInTime время заезда по умолчания метод OrderManagement 12:00
DateTime Attribute DefaultCheckOutTime время выезда по умолчанию метод OrderManagement 12:00
string Element Allotmentcode уникальный код предложения (комнаты) в Академсервисе и системах с аналогичным протоколом (Ариадна, Континент-Амадеус) метод OrderManagement 9500001+1454378+9500001+2
uint Element code код метод OrderManagement 1369888
int Element Mealcode код питания метод OrderManagement 1
int Element NumberOfGuests количество гостей в номере метод OrderManagement 1
int Element NumberOfExtraBedChild количество дополнительных кроватей для детей метод OrderManagement 0

ExtendedRatePrice

ExtendedRatePrice — расширенное описание цены и сборов за данный рейт

Поля класса:

Тип XML-тип Название Комментарий Наличие в ответах Пример
double Attribute TotalPrice итоговая цена всегда 13321.52
string Attribute Currencycode код валюты всегда RUB
double Attribute OriginalPrice изначальная цена всегда 13021.52
double Attribute ConvertionRate коэффициент конверсии всегда 1
double Attribute HiddenServiceFee скрытый сервисный сбор всегда 0
double Attribute ServiceFee сервисный сбор всегда 300
double Attribute Discount скидка всегда 0
double Attribute EarlyCheckinPrice если ранний заезд возможен, цена с учетом раннего заезда всегда 0
double Attribute LateCheckoutPrice если поздний выезд возможен, цена с учетом позднего выезда всегда 0
double Attribute AdditionalMealPrice дополнительная цена за питание всегда 0
double Attribute AdditionalServicePrice дополнительная цена за услуги всегда 0
double Attribute ComparisionAddditionalServicePrice общая стоимость дополнительных услуг в рублях всегда 0
double Attribute ComparisionTotalPrice цена предложения итого в рублях (цена поставщика - скидки + сервисный сбор + скрытый сервисный сбор) всегда 13321.52
double Attribute ComparisionOriginalPrice цена поставщика в рублях всегда 13021.52
double Attribute ComparisionDiscount скидка в рублях всегда 0
double Attribute ComparisionServiceFee сервисный сбор в рублях всегда 300
double Attribute ComparisionHiddenServiceFee скрытый сервисный сбор в рублях всегда 0
int Element id_Currency код валюты в нашей системе всегда 3
string Element VAT информация об НДС при оплате рейта (включен, не включен) всегда НДС включен
double Element VATDouble численное значение НДС при оплате рейта. Если НДС включен, но значение неизвестно, то значение -1 всегда, если НДС включен 1034.98
string Element Commission комиссия агентства всегда 0 RUB
double Element CommissionDouble численное значение комиссии агентства всегда, если комиссия есть 0
string Element PriceChangeLog история изменения цены при применении сборов всегда, если применяются сборы
double Attribute RackRatePrice цена рейта от стойки (rack rate) в валюте поставщика если поставщик предоставляет эту информацию, если условия договора предусматривают передачу этой информации 6900

Примеры ошибок

Системная ошибка

Выдается в случае неверного набора входных параметров, например, пропущен какой-то обязательный параметр или передан неверный тип данных

<?xml version="1.0" encoding="utf-8" ?>
<Error>
  <Message>The request is invalid.</Message>
  <MessageDetail>
    The parameters dictionary contains a null entry for parameter 'id_Profile' of non-nullable type 'System.Int32' for method 'System.Net.Http.HttpResponseerrorText HotelTreeResults(System.String, Int32, System.String, Int64, Boolean)' in 'HotelEngineAPI.Controllers.HotelSearchController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
  </errorTextDetail>
</Error>

Ошибка в передаваемых параметрах

Возникает в том случае, если при анализе структуры параметров возникает исключение. Примером ошибки может служить некорректный XML документ.

<?xml version="1.0" encoding="utf-8" ?>
<Error>
  <errorText>An error has occurred.</errorText>
  <ExceptionerrorText>
    "<" не является допустимым маркером. Ожидается маркер ">"., строка 18, позиция 5.
  </ExceptionerrorText>
  <ExceptionType>System.Exception</ExceptionType>
</Error>

Ошибка уровня движка

Возникает в том случае, если при исполнении входного запроса на уровне движка произошла какая-то ошибка

<?xml version="1.0" encoding="utf-8" ?>
<Response HasErrors="true" HasWarnings="false">
  <EngineResponse>
    <HotelDetailsResponse>
      <Errors>
        <Error>Служба поиска гостиниц временно недоступна, попробуйте повторить свой запрос позже.</Error>
      </Errors>
    </HotelDetailsResponse>
  </EngineResponse>
  <Warnings />
</Response>