Отельное API
Ищите среди 1.5M+ объектов размещения по коду города (в стиле IATA, например DXB) или по кодам отелей, сохранённым из нашего каталога; получайте тарифы на уровне номеров с типом питания и условиями отмены, проверяйте и бронируйте, отменяйте по условиям тарифа.
Поиск
POST /v1/hotels/search with a destination and check-in/out dates and one to eight rooms (adults and child ages per room). The destination is a cityCode (IATA-style, e.g. "DXB" — GET /v1/content/cities lists them), a list of hotelCodes from the catalogue you store on your side (GET /v1/content/hotels per city), or a geo circle. Name matching is yours to do against your stored list; availability is always asked by code.
С wait=true вы получаете полный набор результатов; с wait=false — searchId для опроса через GET /v1/hotels/search/{searchId}: передавайте те же даты и число номеров, чтобы ключи тарифов оставались доступными для бронирования. Каждый отель содержит свой контент (название, звёзды, адрес, координаты, главное фото, удобства) и самый дешёвый тариф на номер с непрозрачным rateKey, итоговой и посуточной ценой, типом питания, возможностью возврата и крайним сроком бесплатной отмены.
Номера и тарифы
GET /v1/hotels/{hotelCode}/rooms?rateKey=… перечисляет все типы номеров и тарифы одного объекта на искомые даты проживания: типы кроватей, вместимость, питание, условия, налоги и сборы по отдельности, а также возвратность тарифа.
Проверка тарифа
POST /v1/hotels/rates/{rateKey}/check подтверждает, что тариф всё ещё доступен для бронирования, и возвращает итоговую цену и условия. Делайте это непосредственно перед бронированием: 409 price_changed или rate_expired на этом шаге обходится гораздо дешевле, чем неудачное бронирование.
Бронирование
POST /v1/hotels/bookings с rateKey, держателем брони, гостями по номерам и контактом, плюс Idempotency-Key. Ответ — это бронирование с его номером, подтверждением поставщика и данными ваучера. GET /v1/hotels/bookings/{bookingId} возвращает его снова в любой момент.
Отмена
GET /v1/hotels/bookings/{bookingId}/cancellation-quote возвращает штраф по условиям на текущий момент; POST /v1/hotels/bookings/{bookingId}/cancel (требуется Idempotency-Key) подтверждает отмену.