Перейти к основному содержимому

Получение блока инвентаря по событию

Сценарий применяется при синхронизации блоков квот из внешней АСУ. При создании или изменении блока платформа TravelLine публикует событие pms_integration_storage:inventory_block_changed. По этому событию интегратор запрашивает полные данные блока через REST.

1. Уведомление о событии

На адрес интегратора приходит пакет вебхук-событий. Один элемент массива выглядит так:

{
"eventId": "e09a9f4b-e44e-46b7-a18a-0e977c0d442e",
"eventType": "pms_integration_storage:inventory_block_changed",
"creationTime": "2026-03-20T14:36:16.407Z",
"payload": {
"propertyId": "2490",
"inventoryBlockId": "12345"
}
}

Значение inventoryBlockId — это внутренний идентификатор блока в PMS Integration Storage API.


2. Получение деталей блока

Запрос:

GET /api/pms-integration-storage/v1/properties/{{ propertyId }}/inventories/blocks/{{ inventoryBlockId }} HTTP/1.1
Host: partner.tlintegration.com
Authorization: Bearer {{ access_token }}

Параметры:

ПараметрТипОбязательныйОписание
propertyIdstring (path)ДаID средства размещения из payload события.
inventoryBlockIdstring (path)ДаID блока из payload события.

Ответ:

{
"inventoryBlock": {
"id": "12345",
"propertyId": "2490",
"pmsSideId": "BLK-001",
"pmsSideCode": "QUOTA-2024",
"blockStatus": "Active",
"ratePlanCodes": ["BAR", "GROUP"],
"pmsSideCreateDateTime": "2026-02-15T10:00:00",
"pmsSideCancelDateTime": null,
"updateDateTime": "2026-03-15T14:30:00Z",
"dailyItems": [
{
"date": "2026-03-15",
"roomTypeCode": "DBL",
"blockedCount": 10,
"realizedCount": 3,
"cutoffDate": "2026-03-10",
"pricing": {
"oneAdultPrice": 5500,
"servicesPrice": 1200,
"currencyCode": "RUB"
}
},
{
"date": "2026-03-16",
"roomTypeCode": "DBL",
"blockedCount": 10,
"realizedCount": 2,
"cutoffDate": "2026-03-10",
"pricing": {
"oneAdultPrice": 5500,
"servicesPrice": 1200,
"currencyCode": "RUB"
}
},
{
"date": "2026-03-17",
"roomTypeCode": "DBL",
"blockedCount": 10,
"realizedCount": 0,
"cutoffDate": "2026-03-10",
"pricing": {
"oneAdultPrice": 5500,
"servicesPrice": 1200,
"currencyCode": "RUB"
}
}
]
}
}

Если блок отменён, blockStatus принимает значение Cancelled, а в pmsSideCancelDateTime указывается момент отмены на стороне АСУ. Поле realizedCount показывает, сколько номеров из квоты уже реализовано на указанную дату.