Разделы и статьи

Как каналу продаж создать групповое бронирование через TL: Partner API


Групповое бронирование — это резервирование двух и более номеров в рамках одного заказа.


Ценность групповых бронирований

  • Средний чек группового бронирования в 2,5 раза выше одиночного.
  • Доля групповых бронирований составляет 3% гостиничного рынка с потенциалом роста за счет интеграции туроператоров.
  • 97–98% всех бронирований составляют групповые от 2 до 5 номеров.

Создание групповых бронирований через TL: Partner API для партнеров (туроператоры, OTA (онлайн-турагентство, далее — OTA)):

  • Упрощает процесс бронирования и ручную обработку.
  • Повышает лояльность за счёт удобного инструмента работы с группами.
  • Снижает нагрузку на API (прикладной программный интерфейс, далее — API) и риск ошибок синхронизации.

Для средств размещения:

  • Автоматизирует управление групповыми бронированиями.
  • Сокращает время на операции и снижает издержки.


Как создать групповое бронирование

Групповые бронирования создаются с помощью существующих API методов платформы TravelLine.

Чтобы начать работу, необходимо получить дополнительные права доступа. Они выдаются после успешного тестирования и сертификации. Отправьте запрос для получение прав на электронную почту connectivity@travelline.ru. 


Поиск бронирования

Методы:

POST /v1/properties/room-stays/search — агрегационный поиск.

GET /v1/properties/{propertyId}/room-stays — поиск по одному средству размещения.

Как работать с методами, читайте в статье «Search API — поиск доступных размещений».

Канал продаж самостоятельно комбинирует проживания на своей стороне и отображает их клиенту. 

Логика работы:

Канал направляет несколько запросов на агрегационный поиск или поиск по одному средству размещения в зависимости от состава группового бронирования. Например, первый запрос на 2 взрослых, второй запрос на 1 взрослого + 1 ребенка, и самостоятельно объединяет их в своем интерфейсе. Если состав гостей во всех номерах идентичен, направляется только один запрос.

Каналу продаж необходимо учитывать остаток номеров. Если доступность категории номера равна 1, этот номер нельзя предлагать другой группе гостей в рамках одного заказа.


Проверка возможности создания бронирования

Метод POST /v1/bookings/verify  — проверка возможности создания бронирования

Как работать с методами, читайте в статье «Reservation API — бронирование».

Логика работы:

Платформа TravelLine поддерживает выбор нескольких проживаний (room-stay) с разными тарифами и категориями номеров в одном заказе.

В ответе на запрос верификации будет выдан уникальный токен (createBookingToken), который объединит все номера. Платформа  TravelLine позволяет указать одного заказчика для одного бронирования и разных гостей для каждого конкретного номера. Также возможно добавление раннего заезда и позднего выезда и дополнительных услуг индивидуально для каждого номера.

Если на этом этапе один из вариантов проживания станет недоступен, платформа TravelLine в ответе на верификацию вернет альтернативное предложение (alternative Booking).


Создание бронирования

Метод POST /v1/bookings — создание бронирования.

Как работать с методами, читайте в статье «Reservation API — бронирование».

Логика работы:

Применяется принцип «все или ничего». Если хотя бы один номер из группы не удалось забронировать на стороне средства размещения, групповое бронирование будет недоступно.


Отмена бронирования

Методы:

●     GET /v1/bookings/{number}/calculate-cancellation-penalty — расчет текущего размера штрафа.

●     POST /v1/bookings/{number}/cancel — отмена бронирования.

Как работать с методами, читайте в статье «Reservation API — бронирование».

Логика работы:

Платформа TravelLine позволяет аннулировать все номера в группе одним действием. 

Если в номерах используются разные тарифы, метод GET/v1/bookings/{number}/calculate-cancellation-penalty рассчитает суммарный штраф по всем номерам. 

Отмена выполняется методом POST /v1/bookings/{number}/cancel с указанием общего полученного штрафа.


Модификация бронирования

Методы:

  • POST /v1/bookings/{number}/verify — проверка возможности модификации.
  • POST /v1/bookings/{number}/modify — модификация бронирования.

Как работать с методами, читайте в статье «Reservation API — бронирование».

Доступные модификации в групповом бронировании:

  • редактирование ФИО гостей в отдельных номерах без изменения условий проживания.
  • изменение дат заезда и выезда  для каждого проживания.

Особенности:

  • Изменить дату заезда на более поздний срок можно только для номеров с бесплатной отменой.
  • Модификация раннего заезда и позднего выезда и дополнительных услуг доступна в стандартном режиме.
  • Допускается отмена отдельных номеров в групповом бронировании, если по ним действует правило бесплатной отмены. Если необходимо отменить номер, по которому предусмотрен штраф, необходимо аннулировать все групповое бронирование целиком.


Схема создания группового бронирования


Пример запроса для проверки возможности создания бронирования, с указанием нескольких проживаний (room-stay):

{
"booking": {
"propertyId": "7291",
"roomStays": [
{
"stayDates": { "arrivalDateTime": "2026-04-09T13:00", "departureDateTime": "2026-04-11T11:00" },
"ratePlan": { "id": "526233" },
"roomType": { "id": "340935" },
"guests": [{ "firstName": "Иван", "lastName": "Иванов" }],
"guestCount": { "adultCount": 2 },
"checksum": "base64_hash_1..."
},
{
"stayDates": { "arrivalDateTime": "2026-04-09T13:00", "departureDateTime": "2026-04-11T10:00" },
"ratePlan": { "id": "457584" },
"roomType": { "id": "340936" },
"guests": [{ "firstName": "Мария", "lastName": "Иванова" }],
"guestCount": { "adultCount": 1, "childAges": [7] },
"checksum": "base64_hash_2..."
}
],
"customer": {
"firstName": "Иван",
"lastName": "Иванов",
"contacts": {
"phones": [{ "phoneNumber": "+7 900 000 0000" }],
"emails": [{ "emailAddress": "test@example.com" }]
}
}
}
}


Логика изменения группового бронирования

При чтении данных группового бронирования каждому объекту в массиве roomStays присваивается уникальный параметр roomStayIndex. Этот индекс является ключевым идентификатором для редактирования конкретного проживания в рамках группового бронирования.

Пример ответа на запрос чтения бронирования (GET /v1/bookings/{number}):

{
"booking": {
"number": "20260409-7291-23379645",
"status": "Confirmed",
"total": { "priceBeforeTax": 2120, "currencyCode": "RUB" },
"cancellationPolicy": {
"freeCancellationPossible": false,
"penaltyAmount": 1010},
"roomStays": [
{"roomStayIndex": 1,
"stayDates": { "arrivalDateTime": "2026-04-09T13:00", "departureDateTime": "2026-04-11T11:00" },
"total": { "priceBeforeTax": 100 },
"ratePlan": { "id": "526233", "name": "Тест с НДС 0%" },
"roomType": { "id": "407809", "name": "люкс" },
"guests": [{ "firstName": "Иван", "lastName": "Иванов" }],
"checksum": "eyJDaGVja3..."
},
{
"roomStayIndex": 2,
"stayDates": { "arrivalDateTime": "2026-04-09T13:00", "departureDateTime": "2026-04-11T11:00" },
"total": { "priceBeforeTax": 2020 },
"ratePlan": { "id": "429622", "name": "Тариф Платёжки" },
"roomType": { "id": "407809", "name": "люкс" },
"guestCount": { "adultCount": 1, "childAges": [7] },
"checksum": "eyJDaGVja3..."}],
"customer": {
"firstName": "Иван",
"lastName": "Иванов",
"contacts": {
"phones": [{"phoneNumber": "+7 900 000 0000"}],
"emails": [{"emailAddress": "test@example.com"}]
}
},
"prepayment": { "paymentType": "PrePay", "prepaidSum": 2120 }
}
}


Как изменить групповое бронирование 

1. С помощью метода GET /v1/bookings/{number} получите актуальное состояние бронирования.

2. Выполните запрос к методу POST /v1/bookings/{number}/verify:

  • В тело запроса передайте всю структуру бронирования, включая roomStays, которые не меняются.
  • Внесите необходимые изменения (даты проживания, дополнительные услуги, данные гостей) в соответствующие объекты roomStays  по roomStayIndex.

3. Выполните финальный запрос POST /v1/bookings/{number}/modify. Используйте данные из верифицированного ответа из пункта 2.

Обратите внимание. Обязательно передайте новый параметр checksum, полученный на этапе проверки возможности создания бронирования, чтобы подтвердить согласие с изменением стоимости или условий. 


Как сделать частичную отмену в групповом бронировании 

При выполнении запросов на проверку возможности создания бронирования и модификацию исключите соответствующий объект roomStay из массива roomStays.

Система автоматически пересчитает общую стоимость бронирования без учета удаленного номера.

Обратите внимание. Частичная отмена возможна только для номеров с бесплатной аннуляцией.