API виджета бронирования Shelter Cloud v2
Версия: v2 | Статус: Stable (основная версия) | Лицензия: Бронирование онлайн | Продукт: Shelter Cloud | Уровень: Дилерский
Оглавление
- Общее описание
- Аутентификация
- Типовой сценарий бронирования
- Методы API
- Коды ошибок
- Устранение неполадок
Общее описание
API предназначено для создания собственного модуля онлайн-бронирования на сайте отеля или сторонней платформе (версия v2).
Возможности API:
- Получение параметров отеля: настройки виджета, справочники категорий номеров, тарифов и их опций
- Поиск вариантов размещения по заданным параметрам (даты, количество номеров, состав гостей) с ценами
- Получение доступных способов оплаты
- Создание бронирования с данными гостей
- Получение данных заказа для страницы подтверждения
Базовый URL: https://cloud.shelter.ru/api/online/
Резервный URL: https://pms.frontdesk24.ru/api/online/
Протокол: HTTPS, все методы — POST, формат данных — JSON.
Требование: Для работы API необходима активная лицензия на модуль «Бронирование онлайн». Без этого модуля API не будет функционировать.
Content-Type: application/json; charset=utf-8
Методы: getHotelParams, getVariants, getPaymentOptions, putOrder, getOrder
Postman-коллекция: Готовые запросы ко всем методам — OnlineWidgetAPI_v2.postman_collection.7z
Аутентификация
Все методы требуют указания токена в теле запроса (поле token).
Получение токена
- Войти в личный кабинет Shelter Cloud
- Нажать на имя пользователя в правом верхнем углу
- Перейти на вкладку «Онлайн v2»
- Нажать «Добавить виджет»
- Скопировать токен из блока «Код вставки»



Токен имеет формат UUID: EE9217BE-2D5C-47AF-93D2-31B9EEFD3317
Типовой сценарий бронирования
1. Инициализация
└── getHotelParams → настройки виджета, справочники опций
2. Поиск
└── getVariants → категории, тарифы, фото, варианты с ценами
Пользователь указывает даты, кол-во номеров, состав гостей
3. Выбор и оплата
└── getPaymentOptions → доступные способы оплаты
Пользователь выбирает вариант и заполняет данные
4. Бронирование
└── putOrder → создание заказа, ссылка на оплату
5. Управление
└── getOrder → детали заказа (страница подтверждения)
Методы API
getHotelParams — Параметры отеля
URL: POST https://cloud.shelter.ru/api/online/getHotelParams
Назначение: Возвращает настройки виджета и справочные данные отеля. Вызывается один раз при инициализации виджета.
Пример: Полный запрос и ответ — GetHotelParams.7z
Запрос
{
"token": "EE9217BE-2D5C-47AF-93D2-31B9EEFD3317",
"language": "ru"
}
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
token |
string | Да | Токен виджета |
language |
string | Нет | Язык (ru, en и т.д.) |
Ответ
Ответ содержит массив data из 8 вложенных массивов. Порядок массивов фиксирован.
{
"data": [
[ /* Массив 1: Настройки виджета */ ],
[ /* Массив 2: Промокоды */ ],
[ /* Массив 3: Доступные языки */ ],
[ /* Массив 4: Опции категорий номеров (справочник) */ ],
[ /* Массив 5: Группы тарифов */ ],
[ /* Массив 6: Опции тарифов (справочник) */ ],
[ /* Массив 7: Категории номеров */ ],
[ /* Массив 8: Данные отеля */ ]
]
}
Массив 1 — Настройки виджета:
{
"allowBeds": 0,
"minDateFrom": "2024-09-18T00:00:00",
"defaultDateFrom": "2024-09-18T00:00:00",
"defaultDateTo": "2024-09-19T00:00:00",
"defaultNumberOfGuests": null,
"minAgeOfChild": null,
"maxAgeOfChild": null,
"maxRoomCapacity": null,
"allowRostourismProgram": false,
"allowUpsale": true,
"agreeText": null,
"agreeUrl": null,
"metrikaCounter": null,
"metrikaGoalCalendar": null,
"metrikaGoalSearch": null,
"metrikaGoalBasket": null,
"metrikaGoalBook": null,
"metrikaGoalConfirm": null,
"metrikaGoalOrder": null,
"metrikaGoalPaid": null,
"analyticsCounter": "123",
"analyticsGoalCalendar": "1",
"analyticsGoalSearch": "2",
"analyticsGoalBasket": "3",
"analyticsGoalBook": "4",
"analyticsGoalOrder": "5",
"analyticsGoalPaid": "6",
"disableAuth": "0",
"openPaymentInNewTab": true,
"fullPaymentIncludeExtra": false,
"askOnlyFirstGuest": false,
"defaultPhoneCode": "7",
"onlyBedPlaces": false
}
| Поле | Тип | Описание |
|---|---|---|
allowBeds |
int | Разрешены койко-места (0 = только номера) |
minDateFrom |
DateTime | Минимальная дата заезда |
defaultDateFrom |
DateTime | Дата заезда по умолчанию |
defaultDateTo |
DateTime | Дата выезда по умолчанию |
defaultNumberOfGuests |
int? | Число гостей по умолчанию |
minAgeOfChild |
int? | Минимальный возраст ребёнка |
maxAgeOfChild |
int? | Максимальный возраст ребёнка |
maxRoomCapacity |
int? | Макс. гостей в номере |
allowUpsale |
bool | Включена продажа доп. услуг |
agreeText |
string? | Текст пользовательского соглашения |
agreeUrl |
string? | Ссылка на полный текст соглашения |
metrikaCounter |
string? | ID счётчика Яндекс.Метрики |
metrikaGoal* |
string? | Цели Яндекс.Метрики |
analyticsCounter |
string? | ID счётчика Google Analytics |
analyticsGoal* |
string? | Цели Google Analytics |
disableAuth |
string | "0" = авторизация включена |
openPaymentInNewTab |
bool | Платёжные ссылки в новом окне |
askOnlyFirstGuest |
bool | Запрашивать данные только первого гостя |
defaultPhoneCode |
string | Код телефона по умолчанию |
onlyBedPlaces |
bool | Виджет только для койко-мест |
Массив 3 — Языки:
{ "id": "ru", "name": "Руccкий" }
Массив 4 — Опции категорий номеров:
{ "id": 2, "name": "Мини-бар", "url": "Content/Gallery/RoomOptions/bar.svg" }
Массив 5 — Группы тарифов:
{ "id": 23974, "name": "Базовый", "isPromotionGroup": false }
Массив 6 — Опции тарифов:
{
"id": 2,
"name": "Без предоплаты",
"url": "Content/Gallery/TariffOptions/prepayment.svg",
"isIncluded": false
}
Массив 7 — Категории номеров:
{ "id": 6930, "name": "Стандарт" }
Массив 8 — Данные отеля:
{ "hotelName": "Firefly hotel 2", "token": "EE9217BE-2D5C-47AF-93D2-31B9EEFD3317" }
getVariants — Поиск вариантов размещения
URL: POST https://cloud.shelter.ru/api/online/getVariants
Назначение: Основной метод поиска. Возвращает доступные варианты размещения с ценами для указанных дат и состава гостей.
Пример: Полный запрос и ответ — getVariants.7z
Запрос
{
"token": "EE9217BE-2D5C-47AF-93D2-31B9EEFD3317",
"dateFrom": "2024-09-18",
"dateTo": "2024-09-19",
"rooms": [
{
"adults": 2,
"kidsAges": "7"
}
]
}
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
token |
string | Да | Токен виджета |
dateFrom |
string | Да | Дата заезда (yyyy-MM-dd) |
dateTo |
string | Да | Дата выезда (yyyy-MM-dd) |
rooms |
array | Да | Список номеров для поиска |
rooms[].adults |
int | Да | Число взрослых в номере |
rooms[].kidsAges |
string | Нет | Возраста детей через запятую (напр. "7,3"). Не передавать если детей нет |
Логика подбора номеров
Система автоматически определяет подходящие номера и рассаживает гостей:
- Номер подходит, если основных мест + доп. мест >= запрошенное кол-во гостей
- Сначала занимаются основные места, затем дополнительные
- Гости рассаживаются начиная со взрослых
- Пример: номер (2 основных + 1 доп.) при поиске на 1 взрослого + 1 ребёнка + 1 младенца → взрослый и ребёнок на основные места, младенец на доп. место
Ответ
Массив data содержит 6 вложенных массивов. Порядок следования обязателен.
{
"data": [
[ /* Массив 1: Категории номеров */ ],
[ /* Массив 2: Опции категорий */ ],
[ /* Массив 3: Тарифы и акции */ ],
[ /* Массив 4: Опции тарифов */ ],
[ /* Массив 5: Фото и видео */ ],
[ /* Массив 6: Варианты бронирования */ ]
]
}
Массив 1 — Категории номеров:
{
"id": 6930,
"name": "Стандарт",
"description": null,
"availableRooms": 3,
"availableBeds": 0,
"roomArea": null,
"mainBeds": 4,
"extraBeds": 0,
"withoutBeds": null,
"allowConnectBeds": 0
}
| Поле | Тип | Описание |
|---|---|---|
id |
int | ID категории номера |
name |
string | Название |
description |
string? | Описание |
availableRooms |
int | Кол-во доступных номеров |
availableBeds |
int | Кол-во доступных койко-мест |
roomArea |
string? | Площадь номера |
mainBeds |
int | Основных мест |
extraBeds |
int | Дополнительных мест |
withoutBeds |
int? | Разрешено младенцев без места |
allowConnectBeds |
int | Кровати сдвигаются (1 = да) |
Массив 2 — Опции категорий:
{
"roomCategoryID": 6930,
"roomCategoryOptionID": 2
}
Связывает категорию номера с опцией из справочника getHotelParams (массив 4).
Массив 3 — Тарифы и акции:
{
"id": 23974,
"name": "Базовый",
"isPromotion": false,
"description": null,
"image": null
}
| Поле | Тип | Описание |
|---|---|---|
id |
int | ID тарифа или акции |
name |
string | Название |
isPromotion |
bool | true = акция, false = тариф |
description |
string? | Описание |
image |
string? | URL изображения |
Массив 4 — Опции тарифов:
{
"tariffID": 23974,
"isPromotion": false,
"tariffOptionID": 2
}
Связывает тариф с опцией из справочника getHotelParams (массив 6).
Массив 5 — Фото и видео:
{
"roomCategoryID": 6930,
"url": "Content/Gallery/RoomTypes/no-image-grey.jpg",
"urlLarge": "Content/Gallery/RoomTypes/no-image-grey.jpg",
"isVideo": false
}
| Поле | Тип | Описание |
|---|---|---|
roomCategoryID |
int | ID категории номера |
url |
string | Ссылка на фото/видео |
urlLarge |
string | Ссылка для Retina-дисплеев |
isVideo |
bool | true = видео, false = фото |
Массив 6 — Варианты бронирования (основной):
{
"roomCategoryID": 6930,
"tariffID": 23974,
"TariffOrder": null,
"isPromotion": false,
"bedPlace": false,
"accmdId": 25203,
"accmdName": "Основное",
"price": 5000,
"currency": null,
"priceRub": 5000,
"totalDiscountPercent": 0,
"promocodeDiscountPercent": 0,
"promotionDiscountPercent": 0,
"priceWithoutDiscount": 5000,
"prepaymentRub": 0,
"prepaymentCurrency": 0,
"amountOfAdults": 2,
"amountOfChildrenWithBeds": 1,
"KidAge": null,
"amountOfChildrenWithoutBeds": null,
"countGuestsOnMainAccmd": 3,
"countGuestsOnExtraAccmd": 0,
"countGuestsOnWithoutBed": 0,
"agesOfChildrenWithBeds": "7",
"agesOfChildrenWithoutBeds": null,
"cashbackRub": null
}
| Поле | Тип | Описание |
|---|---|---|
roomCategoryID |
int | ID категории номера |
tariffID |
int | ID тарифа |
TariffOrder |
int? | Порядок сортировки тарифа |
isPromotion |
bool | Признак акции |
bedPlace |
bool | true = вариант за койко-место |
accmdId |
int | ID размещения |
accmdName |
string | Название размещения |
price |
decimal | Цена варианта |
priceRub |
decimal | Цена в рублях |
totalDiscountPercent |
decimal | Общий % скидки |
promocodeDiscountPercent |
decimal | % скидки по промокоду |
promotionDiscountPercent |
decimal | % скидки по акции |
priceWithoutDiscount |
decimal | Цена до скидок |
prepaymentRub |
decimal | Размер требуемой предоплаты |
amountOfAdults |
int | Число взрослых |
amountOfChildrenWithBeds |
int | Число детей с местом |
KidAge |
int? | Возраст ребёнка (для койко-мест) |
amountOfChildrenWithoutBeds |
int? | Число детей без места |
countGuestsOnMainAccmd |
int | Гостей на основных местах |
countGuestsOnExtraAccmd |
int | Гостей на доп. местах |
countGuestsOnWithoutBed |
int | Гостей без места |
agesOfChildrenWithBeds |
string? | Возраста детей с местом (через запятую) |
agesOfChildrenWithoutBeds |
string? | Возраста детей без места |
Важно: Каждый вариант из
getVariantsиспользует свой уникальныйsignatureId(не показан в примере, но передаётся в ответе). ЭтотsignatureIdнеобходимо передать вputOrder.
getPaymentOptions — Способы оплаты
URL: POST https://cloud.shelter.ru/api/online/getPaymentOptions
Назначение: Возвращает доступные способы оплаты для выбранного варианта бронирования.
Пример: Полный запрос и ответ — GetPaymentOptions.7z
Запрос
{
"token": "EE9217BE-2D5C-47AF-93D2-31B9EEFD3317",
"extraServicesSum": 0,
"dateFrom": "2024-09-18",
"dateTo": "2024-09-19",
"amountOfAdults": 1,
"amountOfChildren": 1,
"ageOfChildren": "7",
"roomCategoriesIDs": "6930",
"numberOfRooms": 1,
"tariffsIDs": "23974",
"promotionsIDs": "",
"bedPlace": "0",
"onlyRostourismProgram": false
}
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
token |
string | Да | Токен виджета |
extraServicesSum |
decimal | Да | Стоимость выбранных доп. услуг (0 если нет) |
dateFrom |
string | Да | Дата заезда |
dateTo |
string | Да | Дата выезда |
amountOfAdults |
int | Да | Число взрослых |
amountOfChildren |
int | Да | Число детей |
ageOfChildren |
string | Нет | Возраста детей через запятую |
roomCategoriesIDs |
string | Да | ID категорий номеров через запятую |
numberOfRooms |
int | Да | Число номеров |
tariffsIDs |
string | Да | ID тарифов через запятую |
promotionsIDs |
string | Нет | ID акций через запятую |
bedPlace |
string | Да | "0" = номер, "1" = койко-место |
Ответ
{
"data": [
{
"id": 2,
"name": "Оплата в отеле",
"description": "Оплата при заезде наличными или картой",
"image": "Content/Gallery/PaymentTypes/hotel-payment.svg",
"paymentKind": null
}
]
}
| Поле | Тип | Описание |
|---|---|---|
id |
int | ID способа оплаты |
name |
string | Название |
description |
string | Описание |
image |
string | URL иконки |
paymentKind |
string? | Тип платёжной системы |
putOrder — Создание бронирования
URL: POST https://cloud.shelter.ru/api/online/putOrder
Назначение: Создаёт новое бронирование. Возвращает данные заказа, включая ссылку на оплату (при необходимости).
Пример: Полный запрос и ответ — putOrder.7z
Запрос
{
"data": {
"token": "EE9217BE-2D5C-47AF-93D2-31B9EEFD3317",
"source": "hotel-website.ru",
"paymentMethodID": 2,
"comment": "Комментарий от гостя",
"customer": {
"email": "guest@example.com",
"phone": "+79161234567",
"surname": "Иванов",
"name": "Иван",
"secondName": "Иванович"
},
"reservations": [
{
"dateFrom": "2024-09-18",
"dateTo": "2024-09-19",
"roomCategoryID": 6930,
"tariffID": 23974,
"isPromotion": 0,
"promocode": null,
"guestsCount": 2,
"bedPlace": 0,
"currency": "",
"price": 5000,
"totalDiscountPercent": 0,
"promocodeDiscountPercent": 0,
"promotionDiscountPercent": 0,
"priceWithoutDiscount": 5000,
"priceRub": 5000,
"prepaymentRub": 0,
"prepaymentCurrency": 0,
"guests": [
{
"surname": "Иванов",
"name": "Иван",
"secondName": "Иванович",
"email": "guest@example.com",
"phone": "+79161234567",
"withoutBed": false
},
{
"surname": "Иванова",
"name": "Мария",
"secondName": "",
"age": 7,
"withoutBed": false
}
]
}
],
"extraServices": []
}
}
Описание полей запроса
Корневой объект data:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
token |
string | Да | Токен виджета |
source |
string | Нет | Сайт, с которого бронирование |
paymentMethodID |
int | Да | ID способа оплаты (из getPaymentOptions) |
comment |
string | Нет | Примечание от гостя |
customer |
object | Да | Данные заказчика |
reservations |
array | Да | Массив бронирований (каждый номер — отдельное) |
extraServices |
array | Нет | Доп. услуги (передавать пустым массивом) |
Объект customer (заказчик):
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
email |
string | Да | |
phone |
string | Да | Телефон |
surname |
string | Да | Фамилия |
name |
string | Да | Имя |
secondName |
string | Нет | Отчество |
Объект бронирования (элемент reservations):
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
dateFrom |
string | Да | Дата заезда (yyyy-MM-dd) |
dateTo |
string | Да | Дата выезда (yyyy-MM-dd) |
roomCategoryID |
int | Да | ID категории номера |
tariffID |
int | Да | ID тарифа или акции |
isPromotion |
int | Да | 0 = тариф, 1 = акция |
promocode |
string? | Нет | Промокод |
guestsCount |
int | Да | Число гостей |
bedPlace |
int | Да | 0 = номер, 1 = койко-место |
currency |
string | Да | Передавать пустой строкой |
price |
decimal | Да | Стоимость проживания |
totalDiscountPercent |
decimal | Да | Итоговый % скидки |
promocodeDiscountPercent |
decimal | Да | % скидки по промокоду |
promotionDiscountPercent |
decimal | Да | % скидки по акции |
priceWithoutDiscount |
decimal | Да | Цена до скидок |
priceRub |
decimal | Да | Цена в рублях (= price) |
prepaymentRub |
decimal | Да | Размер требуемой предоплаты |
prepaymentCurrency |
decimal | Да | Передавать 0 |
guests |
array | Да | Список гостей |
Рекомендуется передавать сначала взрослых, потом детей. Количество гостей в массиве не обязано совпадать с
guestsCount.
Объект гостя (элемент guests):
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
surname |
string | Да | Фамилия |
name |
string | Да | Имя |
secondName |
string | Нет | Отчество |
email |
string | Нет | |
phone |
string | Нет | Телефон |
age |
int | Нет | Возраст (для детей) |
withoutBed |
bool | Нет | true = гость без места |
Ответ
Массив data содержит 4 вложенных массива:
{
"data": [
[ /* Массив 1: Информация о заказе */ ],
[ /* Массив 2: Бронирования */ ],
[ /* Массив 3: Гости */ ],
[ /* Массив 4: Доп. услуги */ ]
]
}
Массив 1 — Информация о заказе:
{
"hotelId": 2398,
"hotelName": "Firefly hotel 2",
"hotelAddress": "",
"hotelLocation": null,
"hotelEmail": "",
"hotelPhones": "",
"hotelImage": "Content/Images/2398_Hotels_638539579700390206_x450.jpg",
"hotelLocation1": null,
"bookingCode": 117,
"createDate": "2024-09-18T14:55:49.187",
"customerName": "Иванов Иван Иванович",
"customerPhone": "+79161234567",
"customerEmail": "guest@example.com",
"comment": "Комментарий от гостя",
"paymentMethodName": "Оплата в отеле",
"accommodationPrice": 5000.0,
"toPay": 5000.0,
"prepayment": 5000.0,
"paid": null,
"linkToPay": null,
"payBefore": null,
"allowBill": 0,
"orderCanceled": 0,
"qrCodeLink": "https://cloud.shelter.ru/qrcoder/getqrcode.aspx?...",
"reservationCurrency": null
}
| Поле | Тип | Описание |
|---|---|---|
hotelId |
int | ID отеля |
hotelName |
string | Название отеля |
hotelAddress |
string | Адрес |
hotelEmail |
string | Email отеля |
hotelPhones |
string | Телефоны отеля |
hotelImage |
string | URL изображения отеля |
bookingCode |
int | Номер бронирования |
createDate |
DateTime | Дата создания |
customerName |
string | ФИО заказчика |
customerPhone |
string | Телефон заказчика |
customerEmail |
string | Email заказчика |
comment |
string | Комментарий |
paymentMethodName |
string | Название способа оплаты |
accommodationPrice |
decimal | Стоимость проживания |
toPay |
decimal | К оплате |
prepayment |
decimal | Предоплата |
paid |
decimal? | Оплачено |
linkToPay |
string? | Ссылка на оплату (если есть) |
payBefore |
DateTime? | Оплатить до |
allowBill |
int | Доступен счёт (1 = да) |
orderCanceled |
int | Заказ отменён (1 = да) |
qrCodeLink |
string? | Ссылка на QR-код для оплаты |
Массив 2 — Бронирования:
{
"id": 10931732,
"arrivalDateTime": "2024-09-18T14:00:00",
"departureDateTime": "2024-09-19T12:00:00",
"roomTypeName": "Стандарт",
"tariffName": "Базовый",
"tariffDescription": null,
"mealsIncluded": 0,
"mealsType": null,
"bedPlace": null,
"numberOfGuests": 2,
"price": 5000.0,
"reservationCurrency": null
}
| Поле | Тип | Описание |
|---|---|---|
id |
int | ID бронирования |
arrivalDateTime |
DateTime | Дата и время заезда |
departureDateTime |
DateTime | Дата и время выезда |
roomTypeName |
string | Название категории |
tariffName |
string | Название тарифа |
tariffDescription |
string? | Описание тарифа |
mealsIncluded |
int | Питание включено (1 = да) |
mealsType |
string? | Тип питания |
bedPlace |
int? | Койко-место |
numberOfGuests |
int | Число гостей |
price |
decimal | Стоимость |
Массив 3 — Гости:
{
"id": 13399971,
"name": "Иванов Иван Иванович",
"reservationID": 10931732,
"age": null,
"withoutBed": 0
}
Массив 4 — Доп. услуги: (пустой массив если не заказаны)
getOrder — Получение данных заказа
URL: POST https://cloud.shelter.ru/api/online/getOrder
Назначение: Получает данные созданного заказа для отображения страницы подтверждения.
Запрос
{
"orderToken": "9bb11772-2843-4449-a766-84fa8c5c100b"
}
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
orderToken |
string | Да | GUID заказа (из ответа putOrder) |
Ответ
Формат ответа аналогичен putOrder (те же 4 массива).
Коды ошибок
Ошибка signatureId в putOrder
Код: 0400
Сообщение: "Не совпадают рассчитанная и входящая сигнатура"
Причина: Неверный или отсутствующий signatureId в запросе putOrder.
Решение: Каждый вариант из ответа getVariants содержит уникальный signatureId. Необходимо передать его в соответствующем бронировании putOrder.
Устранение неполадок
Пустой массив результатов в getVariants
Проверьте:
- Модуль онлайн-бронирования активен в тарифном плане Shelter Cloud
- Если модуль отсутствует, проверьте через авто-сгенерированный сайт:
- Перейдите: Shelter Cloud → Имя пользователя → Настройки → Онлайн для сайта v2.0 → Автосайты
- Заполните поле «Отель синоним для ссылки»
- Откройте сгенерированную ссылку
- Проверьте наличие номеров на запрошенные даты
- Категории номеров и тарифы настроены для онлайн-продаж
- Нет ограничений по тарифам/категориям
- Цены установлены на запрошенный период
Отладка через DevTools браузера
- Откройте авто-сгенерированный сайт с модулем бронирования
- Откройте DevTools (F12) → вкладка Network
- Установите фильтр «Fetch/XDR»
- Выполните поиск на виджете
- Найдите нужный запрос (getVariants и т.д.)

- Headers — URL и метод запроса
- Payload → View source — тело запроса

- Response — структура ответа

- Скопируйте данные в API-клиент (Postman/Bruno) для тестирования
Примеры запросов и коллекция Postman
Архивы с примерами запросов/ответов для всех методов и готовая Postman-коллекция:
| Метод | Пример |
|---|---|
| getHotelParams | GetHotelParams.7z |
| getVariants | getVariants.7z |
| getPaymentOptions | GetPaymentOptions.7z |
| putOrder | putOrder.7z |
| annulOrder (v3) | annulOrder.7z |
Полная коллекция: OnlineWidgetAPI_v2.postman_collection.7z — предварительно настроенные запросы для всех методов.
См. также:
- API виджета бронирования v1 — ExternalPrices API (
/externalPrices/*.aspx)- API виджета бронирования v3 — Cloud API v3 (
/OnlineWidget3/online/v3/)
Документация составлена на основе Postman-коллекции OnlineWidgetAPI_v2 и описания API на shelter.ru.