Предложение#

Типы для описания предложений (номеров) отеля.


OfferBase#

Базовое предложение, используемое в результатах поиска.

ПолеТипОбязательноОписание
supplierstringНетПоставщик предложения. Возможные значения: ostrovok, acase. В рамках одного отеля предложения могут приходить от разных поставщиков.
contractIdstringНетИдентификатор контракта (офиса) поставщика, по которому пришло предложение
searchPresetIdstringНетИдентификатор пресета поиска, который был применён при формировании предложения. Пресеты настраиваются в личном кабинете платформы.
pricingPresetIdstringНетИдентификатор пресета ценообразования, который был применён при расчёте цены. Пресеты настраиваются в личном кабинете платформы.
amountExchangeobjectНетКурс обмена валюты на момент создания предложения
roomIdstringДаИдентификатор номера
roomNamestringДаНазвание номера
allotmentintegerДаДоступное количество номеров
featuresRoomFeature[]НетХарактеристики номера
paymentTypestringДаТип оплаты (hotel, online)
isRefundablebooleanНетВозможность возврата без штрафа сразу после бронирования. false не означает полную невозвратность — условия отмены с возможными штрафами описаны в prices.cancellationRules.
roomAmenitiesRoomAmenity[]НетУдобства номера
roomImagesRoomImagesНетФотографии номера
pricesPricesДаЦеновая информация
roomGroupIdstringНетИдентификатор группы физически эквивалентных номеров. null, если номер не был сведён. Несколько офферов с одинаковым roomGroupId означают один и тот же физический номер. Передаётся, если в пресете поиска включена настройка «Объединять одинаковые номера»
offerTypestring, enumНетТип мастер-оффера: good, better, best. Передаётся только если в пресете поиска выбран тип формирования мастер-оффера «Три варианта», иначе всегда null
depositDepositНетДепозит
isPetAvailablebooleanНетРазрешено размещение с питомцами
checkinRulesCheckinRule[]НетПравила заселения
bedVariantsBedItem[][]НетВарианты конфигурации кроватей в номере. Заполняется в зависимости от поставщика

RoomImages#

Фотографии номера.

ПолеТипОписание
mainstringГлавное фото (URL)
gallerystring[]Галерея фотографий (URL)

Deposit#

Информация о депозите.

ПолеТипОписание
valueMoneyСумма депозита
isRefundablebooleanВозвратный депозит

CheckinRule#

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

ПолеТипОписание
frontDeskTimeStartstringНачало работы ресепшн (HH:mm)
frontDeskTimeEndstringКонец работы ресепшн (HH:mm)
keysPickupstringСпособ получения ключей
phonestringТелефон для связи
emailstringEmail для связи
addressstringАдрес заселения
isContactlessbooleanБесконтактное заселение
commentstringДополнительный комментарий

Offer#

Полное предложение с идентификатором. Наследует все поля OfferBase, включая bedVariants.

ПолеТипОбязательноОписание
offerIdstringДаИдентификатор предложения для бронирования. Возвращается методами hotel pricing и offer pricing — в результатах search отсутствует
offerExpirationstring (datetime)НетДата и время до которого действует оффер (UTC+0, ISO 8601). Используйте для определения актуальности предложения перед бронированием
additionalServicesAdditionalServicesНетДополнительные услуги, доступные для номера. Присутствует только в ответах hotel_pricing и offer_pricing
…все поля OfferBase

Примеры#

 1{
 2  "offerId": "abc123-offer-id",
 3  "roomId": "room-101",
 4  "roomName": "Стандартный двухместный номер",
 5  "allotment": 5,
 6  "paymentType": "online",
 7  "isRefundable": true,
 8  "features": [
 9    { "type": "bedding", "value": "3" }
10  ],
11  "roomImages": {
12    "main": "https://url/photo.JPEG",
13    "gallery": [
14      "https://url/photo.JPEG",
15      "https://url/photo_2.JPEG"
16    ]
17  },
18  "prices": {
19    "totalPrice": {
20      "total": {
21        "amount": 15000.00,
22        "currency": "RUB"
23      }
24    },
25    "meals": [
26      {
27        "mealId": "breakfast",
28        "mealName": "Завтрак",
29        "included": true
30      }
31    ]
32  },
33  "roomGroupId": "room-group-101",
34  "offerType": "best",
35  "bedVariants": [
36    [
37      { "bedType": "double", "count": 1, "isExtraBed": false }
38    ],
39    [
40      { "bedType": "single", "count": 2, "isExtraBed": false }
41    ]
42  ]
43}

BedItem#

Вариант кровати в номере. Вложенность: Offer → bedVariants[][] → BedItem.

ПолеТипОбязательноОписание
bedTypestringНетТип кровати от поставщика (например: single, twin, double)
countintegerНетКоличество кроватей данного типа в номере
isExtraBedbooleanНетПризнак дополнительной кровати

Примеры#

1{ "bedType": "double", "count": 1, "isExtraBed": false }

AdditionalServices#

Дополнительные услуги, доступные для номера.

ПолеТипОбязательноОписание
mealAdditionalMeal[]НетПитание
childrenMealAdditionalChildrenMeal[]НетДетское питание
extraBedAdditionalExtraBed[]НетДополнительная кровать
childrenExtraBedAdditionalChildrenExtraBed[]НетДополнительная детская кровать
cotAdditionalCot[]НетДетская кроватка
earlyLateCheckoutAdditionalEarlyLateCheckout[]НетРанний заезд / поздний выезд

AdditionalMeal#

ПолеТипОбязательноОписание
typestringНетТип питания. Пример: allInclusive, breakfast, breakfastBuffet
inclusionstring, enumНетПлатно/бесплатно: unspecified, included, notIncluded
priceintegerНетЦена
currencystringНетВалюта
priceUnitstring, enumНетЕдиница тарификации: unspecified, perGuestPerNight, perGuestPerStay, perRoomPerNight, perRoomPerStay, perHour, perWeek
canBeBookedbooleanДаМожно ли забронировать услугу онлайн
paymentPlacestringДаМесто расчёта

Примеры#

1{
2  "type": "breakfast",
3  "inclusion": "notIncluded",
4  "price": 1500,
5  "currency": "RUB",
6  "priceUnit": "perGuestPerNight",
7  "canBeBooked": false,
8  "paymentPlace": "hotel"
9}

AdditionalChildrenMeal#

ПолеТипОбязательноОписание
typestringНетТип питания. Пример: allInclusive, breakfast, breakfastBuffet
inclusionstring, enumНетПлатно/бесплатно: unspecified, included, notIncluded
ageStartintegerНетВозраст от
ageEndintegerНетВозраст до
priceintegerНетЦена
currencystringНетВалюта
priceUnitstring, enumНетЕдиница тарификации: unspecified, perGuestPerNight, perGuestPerStay, perRoomPerNight, perRoomPerStay, perHour, perWeek
canBeBookedbooleanДаМожно ли забронировать услугу онлайн
paymentPlacestringДаМесто расчёта

AdditionalExtraBed#

ПолеТипОбязательноОписание
amountintegerНетКоличество доступных мест
inclusionstring, enumНетПлатно/бесплатно: unspecified, included, notIncluded
priceintegerНетЦена
currencystringНетВалюта
priceUnitstring, enumНетЕдиница тарификации: unspecified, perGuestPerNight, perGuestPerStay, perRoomPerNight, perRoomPerStay, perHour, perWeek
canBeBookedbooleanДаМожно ли забронировать услугу онлайн
paymentPlacestringДаМесто расчёта

AdditionalChildrenExtraBed#

ПолеТипОбязательноОписание
amountintegerНетКоличество доступных мест
allowedstring, enumНетДополнительная детская кровать доступна: unspecified, availabile, unavailabile
ageStartintegerНетВозраст от
ageEndintegerНетВозраст до
priceintegerНетЦена
currencystringНетВалюта
priceUnitstring, enumНетЕдиница тарификации: unspecified, perGuestPerNight, perGuestPerStay, perRoomPerNight, perRoomPerStay, perHour, perWeek
canBeBookedbooleanДаМожно ли забронировать услугу онлайн
paymentPlacestringДаМесто расчёта

AdditionalCot#

ПолеТипОбязательноОписание
amountintegerНетКоличество доступных мест
inclusionstring, enumНетПлатно/бесплатно: unspecified, included, notIncluded
priceintegerНетЦена
currencystringНетВалюта
priceUnitstring, enumНетЕдиница тарификации: unspecified, perGuestPerNight, perGuestPerStay, perRoomPerNight, perRoomPerStay, perHour, perWeek
canBeBookedbooleanДаМожно ли забронировать услугу онлайн
paymentPlacestringДаМесто расчёта

AdditionalEarlyLateCheckout#

Структура аналогична CheckinCheckoutOption, дополненная canBeBooked/paymentPlace.

ПолеТипОбязательноОписание
timetimeДаВремя заезда/выезда (формат HH:mm)
availableStatusAvailabilityStatusДаСтатус доступности
priceServicePriceДаСтоимость услуги
canBeBookedbooleanДаtrue, если availableStatus = "available", иначе false
paymentPlacestringДаБерётся из Offer.paymentType

Примеры#

 1{
 2  "time": "18:00",
 3  "availableStatus": "available",
 4  "price": {
 5    "total": {
 6      "amount": 2000.00,
 7      "currency": "RUB"
 8    }
 9  },
10  "canBeBooked": true,
11  "paymentPlace": "online"
12}