Поиск по минимальной цене списка объектов → поиск по конкретному объекту → verify → booking.
Checksum — берется из поиска по конкретному объекту в DetailedRoomStay. Это контрольная hash-сумма стоимости проживания, даты начала и суммы штрафа. Checksum не уникальна для каждого конкретного варианта проживания .
CreateBookingToken — из api/reservation/v1/bookings/verify в VerifyBookingRs. При создании брони указывается уникальный токен createBookingToken, позволяющий создать только 1 бронь. Время жизни createBookingToken — 24 часа.
Уведомления о бронировании или его отмене
Канал продаж не получает уведомлений, так как сам создает бронирование через API и, соответственно, знает, что оно создано. Гость также не получает уведомлений, так как это логика канала. Уведомления отправляются только отельеру.
Подтверждение бронирования
Partner API работает по системе «моментального подтверждения». Если бронь создалась — это гарантия доступности.
Изменение бронирования
Данные в полях, которые не влияют на стоимость проживания, можно изменить. Например:
Данные гостей (за исключением возраста детей) — booking.roomStays.guests, booking.roomStays.guestCount.
Данные заказчика — booking.customer.
Комментарии агента — booking.bookingComments.
Информация по предоплате — booking.prepayment.
Количество изменений не ограничено. При изменении данных необходимо ориентироваться на структуру метода modify.
Оплата броней
TravelLine не участвует во взаиморасчетах между гостем, каналом и отелем. Бронирование номера отеля в канале полностью регулируется договорными отношениями между каналом продаж и отелем в рамках прямого договора.
Мы также не предоставляем эквайринг для каналов продаж. Эквайринг — это технология безналичного приема платежей с использованием банковских карт и систем бесконтактной оплаты.
Канал продаж может принимать как частичную, так и полную оплату, перечисляя потом эти деньги в отель. TravelLine передает условия отмены в канал в соответствии с тарифом. Если бронь при отмене будет попадать под штрафные правила, то эта информация также будет передана через API.
При активации канала отель выбирает сам, какие тарифы передать в канал. Это могут быть как возвратные, так и невозвратные тарифы. По общепринятым правилам, все бронирования становятся невозвратными, если бронь делается меньше, чем за 24 часа до заезда.
Фактический размер оплаты брони гостем
При создании бронирования можно указать фактический размер оплаты, полученной от гостя в канале — booking.prepayment.prepaidSum.
Информация будет отображаться в подтверждении брони:
И на шахматке в TL: WebPMS:
Дополнительно можно также указать:
Комментарий к оплате — booking.prepayment.remark;
Тип оплаты — booking.prepayment.paymentType. «PrePay» — оплата произведена в канале, «Cash» — оплата осуществляется в отеле.
Комментарий гостя и агента к бронированию
При создании бронирования можно указать комментарий гостя к бронированию — booking.customer.comment. (максимум 250 символов) и комментарий агента к бронированию — booking.bookingComment. (максимальное количество комментариев — 5 по 250).
Информация будет отображаться в подтверждении брони:
И на шахматке в TL: WebPMS:
Минимальное и максимальное значение параметра childAges
Информации о гостях
Важно заполнить информацию по всем гостям, так как эти данные сразу отправляются в АСУ отеля:
Модификация бронирования до заезда
Отель не может редактировать канальное бронирование. Модификацию с изменением стоимости бронирования необходимо производить через отмену.
Модификация после наступления даты заезда
В случае незаезда или изменений условий проживания, средство размещения самостоятельно сообщает каналу эту информацию, например, по email. Далее канал на этапе сверки «Канал — TL» меняет сумму по бронированию в зависимости от размера оплаты и штрафа.
Отмена брони
Отель не может отменить канальное бронирование в личном кабинете TravelLine. Отмена происходит на стороне канала через API.
Штраф при отмене брони
Есть метод API — api/reservation/v1/bookings//calculate-cancellation-penalty, который позволяет рассчитать сумму штрафу за отмену бронирования.
Расторжение договора на бронирование со стороны отельера
Как правило, если отельер расторгает договор, то в этом случае он все равно должен заселить гостей по броням на будущие даты и провести сверку. Обычно это фиксируется в договоре.
Источник
Агентский API Отели
Внимание! В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по ссылке
Агентский API Отели — система, которая предоставляет возможность поиска и бронирования отелей а так же получение информации о времени и размерах штрафов, уникальной информации об отеле, получение статической информации.
Содержание
Динамические данные
Поиск
Сервис предназначен для получения списка отелей, удовлетворяющих условиям запроса. В условия запроса входят: идентификатор города, где будет вестись поиск; дата заезда и дата выезда; информация о количестве людей и способе их размещения в комнатах. Так же указываются дополнительные необязательные поля фильтров.
Для получения списка доступных городов, воспользуйтесь запросом на выгрузку статики (см. ССЫЛКА). Список допустимых отелей для фильтра также доступен через сервис (см. ССЫЛКА). Рекомендуется выгрузить все данные по отелям, городам и странам в локальную базу, для экономии времени и запросов.
Запрос
Элемент
Описание
Допустимые значения
CityId
Обязательный. Идентификатор города в системе Nemo.
Целое число
DateBegin
Обязательный. Дата заселения.
Формат гггг-мм-дд.
DateEnd
Обязательный. Дата выезда.
Формат гггг-мм-дд.
Rooms
Обязательный. Содержит массив запрашиваемых номеров/апартаментов.
Элемент Room. Максимум 4 элемента Room.
Filters
Необязательный. Содержит различные фильтры поиска отелей.
Элемент Hotels.
Элемент
Описание
Допустимые значения
Persons
Обязательный. Содержит данные о клиентах в номерах.
Элемент Person
DoubleBed
Необязательный. Может быть использован только если сумма количества детей и взрослых равна 2-м, а также
Если в запросе сумма детей и взрослых не равна 2, то данный элемент будет проигнорирован.
true означает, что номер должен иметь двуспальную кровать
Элемент
Описание
Допустимые значения
Атрибут Id
Уникальный идентификатор. См. результаты бронирования.
Целое число
Атрибут Type
Тип клиента.
Если не указан, будет определен по возрасту Age.
ADT — взрослый CLD — ребенок 2-12 лет INF — младенец до 2х лет
Атрибут Age
Возраст. Обязателен для детей (CLD).
Целое число. Количество лет.
Элемент
Описание
Допустимые значения
Hotels
Необязательный. Набор идентификаторов отелей в системе Nemo.
Результаты поиска будут ограничены только этими отелями. Данная опция может существенно ускорить поиск — рекомендуется всегда устанавливать при поиске конкретных отелей.
Элемент
Описание
Допустимые значения
ClientID
Обязательный. ID клиента в системе Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Целое число.
APIKey
Обязательный. APIKey — секретный ключ доступа к API Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Латинские буквы и цифры. Всего 32 символа.
Ответ
Система по заданным параметрам ищет отели и возвращает результаты поиска. Все результаты поиска хранятся в базе Nemo определенный срок и доступны для бронирования по идентификатору CacheId.
Структура ответа — это набор уникальных отелей. У каждого указан Id — это идентификатор из базы Nemo. По нему можно получить дополнительную статичную информацию из путеводителя Nemo.
Набор номеров . Типы номеров (одноместный, двухместный и т.д.) : устанавливается автоматически по количеству клиентов из запроса.
Сервисы . Каждый отель предлагает различные типы обслуживания в номерах. Цена и доступность может различаться.
Категория . Это допустимые комбинации номер + обслуживание. Для бронирования отеля пользователь должен выбрать одну из предлагаемых ему категорий.
Элемент
Описание
Допустимые значения
Атрибут Id
Обязательный. Идентификатор отеля как одного из результатов поиска в системе Nemo.
Целое число.
Supplier
Обязательный. Тип поставщика, в котором найден отель.
Обязательный. Идентификатор города в системе Nemo.
Целое число.
CacheId
Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
Целое число.
Name
Обязательный. Название отеля.
Строка в произвольном формате.
Services
Обязательный. Услуги в отеле.
Элемент Service
Rooms
Обязательный. Комнаты в отеле.
Элемент Room
Categories
Обязательный. Категории, доступные для бронирования в отеле.
Элемент Category
Элемент
Описание
Допустимые значения
Атрибут Id
Обязательный. Идентификатор услуги.
Целое число
Атрибут Status
Обязательный. Доступность отеля. ОК означает доступен (мгновенное подтверждение).
RQ — недоступен (по запросу).
ОК/RQ
Desc
Необязательный. Описание отеля.
Строка в произвольном формате.
Meal
Обязательный. Питание для данного сервиса.
Строка в произвольном формате.
Price
Необязательный. Указывает на стоимость номера с данной услугой.
Вещественное число.
Атрибут Currency — код валюты.
Элемент
Описание
Допустимые значения
Атрибут Id
Обязательный. Идентификатор комнаты в отеле.
Целое число.
Type
Обязательный. Тип номера.
Строка. Возможные значения:
SNGL – одноместный DBL – двухместный с двухспальной кроватью TWIN – двухместный с двумя кроватями TRIP – трёхместный QUAD – четырёхместный
Элемент
Описание
Допустимые значения
Атрибут Id
Обязательный. Идентификатор категории.
Целое число.
Rooms
Обязательный. Массив комнат с соответствием услуг.
Целое число.
Room
Атрибут: Count
Обязательный. Количество комнат данного типа.
Обязательный. Идентификатор комнаты из атрибута Id в элементе Hotel-> Rooms-> Room.
— Идентификатор услуги из атрибута Id элемента Service.
TotalPrice
Обязательный. Суммарная стоимость бронируемого сочетания “Комнаты — услуги”.
Вещественное число.
Атрибут Currency — код валюты.
Ошибки
Расширенная информация по одному отелю
Сервис получения дополнительной информации об отеле требует указания идентификатора отеля в системе Nemo и категории.
Запрос
Элемент
Описание
Допустимые значения
CacheId
Обязательный. Идентификатор результата поиска.
Целое число
CategoryId
ID выбранной категории.
Целое число
Элемент
Описание
Допустимые значения
ClientID
Обязательный. ID клиента в системе Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Целое число.
APIKey
Обязательный. APIKey — секретный ключ доступа к API Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Латинские буквы и цифры. Всего 32 символа.
Ответ
Элемент
Описание
Допустимые значения
CategoryId
Обязательный. Идентификатор категории.
Целое число
PriceInfo
Обязательный. Элемент содержащий информацию о цене
см. Элемент PriceInfo
Элемент
Описание
Допустимые значения
Необязательный. Информация о ценах, расписанная по каждому дню.
Netto
Обязательный. Стоимость от поставщика.
Вещественное число.
Атрибут Currency — код валюты.
Gross
Обязательный. Общая стоимость.
Вещественное число.
Атрибут Currency — код валюты.
Элемент
Описание
Допустимые значения
From
Обязательный. Дата начала действия тарифа
Формат гггг-мм-дд
To
Обязательный. Дата окончания действия тарифа
Формат гггг-мм-дд
Price
Цена за одну ночь.
Вещественное число.
Атрибут Currency — код валюты.
Ошибки
Штрафы за аннуляцию
Всегда в явном виде нужно указывать пользователю информацию о штрафах за аннуляцию до бронирования.
Штрафы получаются по каждой услуге отдельным запросом. Нужно указать тип услуги, идентификатор результата поиска и выбранную категорию.
Внимание. Для отелей из Hotelbeds (Supplier=HOTELBEDS) штрафы до бронирования получить невозможно.
Запрос
Элемент
Описание
Допустимые значения
Type
Обязательный. Тип объекта.
HOTELS
CacheId
Обязательный. Идентификатор результата поиска в системе Nemo.
Целое число
CategoryId
Обязательный. Идентификатор категории.
Целое число
Элемент
Описание
Допустимые значения
ClientID
Обязательный. ID клиента в системе Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Целое число.
APIKey
Обязательный. APIKey — секретный ключ доступа к API Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Латинские буквы и цифры. Всего 32 символа.
Ответ
Элемент
Описание
Допустимые значения
ItemDateBegin
Обязательный. Дата начала услуги (дата заселения в отель).
Формат гггг-мм-дд чч:мм:сс
CancelCharges
Необязательный. Содержит информацию о штрафах за аннуляцию.
Элемент Charge
ModifyCharges
Необязательный. Содержит информацию о штрафах за модификацию.
Элемент Charge
Штрафы разбиваются по временным интервалам. На каждом интервале указывается значение штрафа.
Элемент
Описание
Допустимые значения
DateFrom
Обязательный. Дата/время начала интервала.
Формат гггг-мм-дд чч:мм:сс
DateTo
Необязательный. Дата/время окончания интервала.
Формат гггг-мм-дд чч:мм:сс
Money
Обязательный. Сумма штрафа.
Вещественное число.
Атрибут: Currency — код валюты.
Ошибки
Бронирование
Запрос
Схема запроса позволяет указывать несколько услуг для бронирования сразу. Это было сделано с заделом на возможность расширения функциональности в будущем при сохранении совместимости.
Сейчас же необходимо указывать только 1 услугу-отель (элемент Item) в запросе на бронирование.
Для успешного запроса нужно указать:
Услугу. В запросе не требуется перечислять все параметры из результатов поиска, достаточно указать уникальный ID результата.
Информация о клиентах. Все клиенты перечисляются в отдельной ветке и нумеруются по порядку. Указатели (элементы с номером клиента), также добавляются в описание услуги.
Заказчик. Указатель на одну персону.
Элемент
Описание
Допустимые значения
Items
Обязательный. Массив элементов Item.
Элемент Item
Customer
Обязательный. Элемент установки заказчика.
Persons
Обязательный. Массив клиентов.
Данные об услугах записываются в элементы .
Элемент
Описание
Допустимые значения
HotelBookData
Обязательный. В зависимости от типа объекта бронирования. В данный момент возможно указать только данные для отеля.
Persons
Необязательный. Привязка клиентов к услуге. Если не указаны, будут привязаны все из указанных в главном элементе Booking.
[
Бронирование отеля. Для бронирования отеля необходимы следующие параметры:
ID результата поиска — один отель
ID выбранной категории этого отеля
Распределение клиентов по комнатам.
Элемент
Описание
Допустимые значения
CacheId
Обязательный. Идентификатор результата поиска для данного отеля в системе Nemo.
Целое число
CategoryId
Обязательный. Идентификатор категории.
Целое число
Rooms
Обязательный. Распределение клиентов по комнатам.
Список элементов Room
Room
Атрибут Id
Ид комнаты из результата поиска
Целое число
Persons
Обязательный.
Список элементов Person
Person
Обязательный.
Атрибут Number Номер пассажира из Booking ->Persons->Person->Number
Информация о клиентах. Для успешного завершения бронирования нужно указать как минимум одного клиента. Максимальное число клиентов в текущей версии не ограничено.
Набор обязательных данных может меняться в зависимости от типов услуг в бронировании. Рекомендуемый набор обязательных параметров: Lastname, Name, DateOfBirth. Остальные обязательные параметры будут устанавливаться индивидуально при подключении к сервису.
Элемент
Описание
Допустимые значения
Атрибут Number
Обязательный. Номер клиента, необходим для правильной привязки к услугам.
Целое число
Type
Обязательный.
Возможные значения: ADT CLD INF
Lastname
Фамилия.
Строка в произвольном формате.
Name
Имя.
Строка в произвольном формате.
Middlename
Отчество.
Строка в произвольном формате.
DateOfBirth
Дата рождения.
Формат гггг-мм-дд.
Phone
Телефон.
Рекомендуемый формат: +79871234567
Строка
Email
Электронный адрес.
Строка
Gender
Пол.
MR — мужчина,
Document
Документ
Элемент Document
Для некоторых услуг может потребоваться информация о документах.
Элемент
Описание
Допустимые значения
Атрибут Type
Обязательный. Тип документа.
P — загранпаспорт
C — внутренний гражданский паспорт B — свидетельство о рождении
Series
Необязательный. Серия документа. Можно указать слитно с номером в Number.
Строка в произвольном формате
Number
Обязательный. Номер документа.
Строка в произвольном формате
IssueDate
Необязательный. Дата выдачи документа.
Формат гггг-мм-дд
ExpiryDate
Необязательный. Дата истечения срока действия документа.
Формат гггг-мм-дд
Элемент
Описание
Допустимые значения
ClientID
Обязательный. ID клиента в системе Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Целое число.
APIKey
Обязательный. APIKey — секретный ключ доступа к API Nemo.
Можно посмотреть/добавить в «Администрирование» ⇨ «Веб-служба. Авторизация».
Латинские буквы и цифры. Всего 32 символа.
Ответ
После выполнения запроса сразу поступит информация о бронировании. В первую очередь нужно внимательно проверить статусы всех услуг в бронировании. Если бронировалась услуга со статусом в результатах поиска RQ (по запросу), то статус скорее всего будет не равен «booked». Через некоторое время проверять реальный статус бука отправляя запрос на чтение данных о бронировании.
Структура ответа очень похожа на запрос. Выделяются те же основные элементы.
Элемент
Описание
Допустимые значения
Items
Обязательный. Содержит элемент(ы) Item.
Элемент Item
Persons
Обязательный. Здесь перечислены все клиенты заказа.
Элемент Person
В элементах Item раскрывается подробнейшая информация об одной услуге в бронировании.
Элемент
Описание
Допустимые значения
Атрибут Id
Обязательный.
Номер заказа в системе Nemo.
Целое число
Type
Обязательный.
HOTELS
Status
Обязательный. Статус объекта бронирования .
booked — забронирован
cancelled — аннулирован pending confirmation — в процессе подтверждения pending – произошла попытка бронирования, которое не было завершено waiting – ожидается результат запроса на бронирование
Prices
Обязательный. Данные о ценах.
см. Элемент Prices
Dates
Обязательный. Данные о датах.
см. Элемент Dates
Statuses
Обязательный. Различные дополнительные статусы заказанной услуги.
см. Элемент Statuses
Persons
Обязательный. Содержит клиентов привязанных к услуге.
элементы Person
Hotel
Необязательный. Элемент с данными об отеле.
см. элемент Hotel (результат поиска отеля)
Информация о цене услуги вынесена в отдельную ветку:
Элемент
Описание
Допустимые значения
Price
Обязательный. Базовая цена услуги.
Вещественное число.
Атрибут Currency — код валюты.
Charges
Необязательный. Сумма дополнительных сборов.
Вещественное число.
Атрибут Currency — код валюты.
Commission
Необязательный. Сумма комиссий (вычитается из общей стоимости).
Вещественное число.
Атрибут Currency — код валюты.
Penalty
Необязательный. Сумма штрафов.
Вещественное число.
Атрибут Currency — код валюты.
TotalPrice
Обязательный. Итоговая стоимость.
= Price + Charges + Commission
Атрибут Currency — код валюты.
Информация о датах услуги также вынесена в отдельную ветку:
Элемент
Описание
Допустимые значения
BookingDate
Обязательный. Дата бронирования.
Формат гггг-мм-дд чч:мм:сс
UpdateDate
Необязательный. Дата обновления.
Формат гггг-мм-дд чч:мм:сс
CancelDate
Необязательный. Дата аннуляции.
Формат гггг-мм-дд чч:мм:сс
PenaltyDate
Необязательный. Дата наступления штрафов.
Формат гггг-мм-дд чч:мм:сс
AutoCancelDate
Необязательный. Дата автоаннулирования.
Формат гггг-мм-дд чч:мм:сс
Элемент
Описание
Допустимые значения
PaymentStatus
Необязательный.
1 — неоплачено 2 — частично оплачено 3 — оплачено
DocumentStatus
Необязательный.
1 — документ не сформирован 2 — документ сформирован
DeliveryStatus
Необязательный.
1 — не доставлен 2 — доставлен
InvoiceStatus
Необязательный.
1 — счет выставлен. 2 — счет не выставлен.
Информация о клиентах заказа полностью повторяет структуру запроса.