Бронирование отелей

В этом разделе описаны методы API, которые позволяют создавать и отменять заказы на бронирование отелей, запускать и отменять процессы оплаты брони. Эти методы имеют общие свойства:

Определения

Асинхронный метод — метод, который только инициирует какой-либо процесс, а результат работы нужно получать периодическим вызовом другого метода.

Офер — предложение пользователю с определенной суммой к оплате. Включает в себя данные об отеле, параметры номера, тип питания, условия отмены, даты бронирования, количество гостей, возраст детей и другие параметры, влияющие на стоимость предложения.

Sold-out — ситуация, при которой после резервирования может оказаться, что номер офера уже продан, или уже недоступно бронирование номера на тех же условиях.

Резервирование номера — процесс, при котором происходит проверка доступности номера с параметрами, указанными в офере. Также возможна отправка сообщения партнеру и отелю о том, что номер зарезервирован и в ближайшее время ожидается оплата — для уменьшения вероятности sold-out.

Токен резервирования — идентификатор набора условий бронирования номера отеля, действующих в настоящее время. Необходим для создания заказа. При попытке использовать токен резервирования с устаревшими условиями метод создания заказа вернет ошибку.

Токен возврата — идентификатор набора условий отмены заказа, действующих в настоящее время. Необходим для запуска процесса отмены заказа. При попытке использовать токен возврата с устаревшими условиями метод отмены заказа вернет ошибку.

Сценарии использования

Бронирование номера в отеле c полной оплатой

С помощью метода GET hotels/booking/offers/{offer_id} можно запросить полную информацию о предложении по номеру отеля — она отображается вместе с формой для ввода информации о гостях и кнопкой Оплатить. При нажатии кнопки оплаты начинается процесс резервирования номера методом POST hotels/booking/orders/create, в котором можно указать промокод для снижения стоимости заказа. После завершения резервирования создается заказ, и пользователь перенаправляется на страницу оплаты в Яндекс Путешествиях. Метод POST hotels/booking/orders/{order_id}/payment/start запускает процесс оплаты, о результатах которого можно узнать с помощью метода GET hotels/booking/orders/{order_id}/status.

Отмена заказа

Метод GET hotels/booking/orders/{order_id}/refund/calculate позволяет рассчитать сумму, которую получит пользователь в случае отмены заказа. После подтверждения того, что пользователь согласен с условиями возврата, выполняется отмена заказа.

Заголовки

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

Обязательные заголовки

Заголовок

Описание

Authorization: OAuth <OAuth token>

Токен, полученный от OAuth-сервера Яндекса.

X-User-IP: <IP адрес пользователя>

IP-адрес пользователя.

X-User-Agent: <User Agent>

User Agent пользователя.

X-Ya-Session-Key

Ключ сессии пользователя — к нему будут привязаны все заказы, созданные пользователем. Также он ограничивает доступ к получению информации и управлению заказом — все операции с заказом будут возможны только при указании ключа той сессии, в рамках которой создан заказ. Максимальный размер — 64 символа. Рекомендуется использовать GUID.

Необязательные заголовки

X-Correlation-Id: <UID запроса к API>

Произвольный идентификатор запроса для логирования и отладки.

Content-Type: application/JSON

Формат содержимого. На данный момент возможно только значение application/JSON — оно используется по умолчанию.

X-YaTravel-PartnerId: <ID партнера>

Идентификатор партнера. Несмотря на то, что сервер API может идентифицировать партнера по токену авторизации, стоит также передавать его в заголовке для поиска проблем. Например: X-YaTravel-PartnerId: aviasales.

X-User-ID: <ID пользователя>

Идентификатор пользователя. В некоторых сценариях на основании этого параметра возможна персонализация.

Написать в службу поддержки