История изменений (Отели)#

Краткий журнал изменений контрактов операций с отелями — что и в каких методах менялось. Ведётся с 2026-08-06; более ранние изменения в журнал не переносились.

2026-08-31#

AI-ранжирование поиска отелей

  • POST /api/hotels/search, POST /api/hotels/hotel_pricingответ: у каждого предложения добавлено поле aiScore (01 при успешном AI-ранжировании, null — если выключено в пресете или ответ AI не получен). Выдача при включённом ранжировании упорядочивается по aiScore вместо встроенной сортировки.
  • POST /api/hotels/searchответ: поле offerId теперь присутствует и здесь (ранее было только в hotel_pricing/offer_pricing) — детерминированный хеш от неизменяемых атрибутов оффера, одинаков для одного и того же реального предложения между search и последующим hotel_pricing.

Уточнения по существующему поведению

  • POST /api/hotels/create_bookingгости: у поставщика Hotelbook поля citizenship и gender обязательны для каждого гостя — без них Hotelbook отклоняет создание бронирования, ошибка возвращается как отказ поставщика (SUPPLIER_ERROR, причина — текстом в message).
  • POST /api/hotels/searchпараметр timeout: уточнено, что значение передаётся поставщику как есть (бюджет ожидания именно его ответа, без внутреннего вычитания) — реальный ответ Travel API приходит на несколько секунд позже указанного значения за счёт последующей обработки (агрегация, сортировка/AI-ранжирование, формирование ответа).

2026-08-11#

Новые методы получения справочников

2026-08-06#

DR-7209 — детализация цен и новые поля view_booking

  • POST /api/hotels/view_bookingзапрос: добавлен объект details (includePriceDetails, includeResidenceDetails).
  • POST /api/hotels/view_bookingответ: добавлены checkinTime, checkoutTime, объект supplier (subProviderName, invoiceNumber, comment), hotel.room.rateName/roomId; полная детализация цен (total/discount/markup/serviceFee/commission.*/supplier.*/vat.*/deposit.*) при details.includePriceDetails = true — в т.ч. для каждого элемента upsells[].
  • POST /api/hotels/view_bookingответ: задокументированы ранее отсутствовавшие в описании поля bookingId, prices.searchPresetName, prices.pricingPresetName.

Статус бронирования — единый enum вместо разных строковых значений

  • POST /api/hotels/view_booking (bookingInfo.status), POST /api/hotels/create_booking (status), POST /api/hotels/search_bookings (bookings[].status) — значения статуса приведены к единому набору: unknown, inWork, completed, rejected, cancelled, failed. Было (по-разному в разных методах): Unknown, Inwork, Booked, Rejected, Cancelled, Error.
  • POST /api/hotels/create_bookingответ: поле status задокументировано впервые (в описании отсутствовало, хотя возвращалось).