История изменений (Отели)#
Краткий журнал изменений контрактов операций с отелями — что и в каких методах менялось. Ведётся с 2026-08-06; более ранние изменения в журнал не переносились.
2026-08-31#
AI-ранжирование поиска отелей
POST /api/hotels/search,POST /api/hotels/hotel_pricing— ответ: у каждого предложения добавлено полеaiScore(0–1при успешном 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#
Новые методы получения справочников
GET /api/dictionary/countries— справочник стран.GET /api/dictionary/cities— справочник городов заданной страны (обязательный параметрcountryId).GET /api/dictionary/hotels/accommodation-types— справочник типов объектов размещения.GET /api/dictionary/hotels/amenities— справочник услуг (Amenities), с группировкой и уровнем предоставления.GET /api/dictionary/hotels/bed-types— справочник типов кроватей.GET /api/dictionary/hotels/meal-types— справочник типов питания.
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задокументировано впервые (в описании отсутствовало, хотя возвращалось).