Бронювання

Номер, тип харчування й тариф, які обрав гість, передаються в HMS у структурі BookingPushRQ. Той самий ендпоінт обробляє скасування та зміни, якщо в полі type передати Cancel або Modify. Наскрізний процес описано в посібнику Процес бронювання.

Передати бронювання (BookingPushRQ)#

POST/external/online/channel/booking

Автентифікація: Authorization: Bearer · Тіло: application/json

Записує одне або кілька бронювань у HMS. ID — унікальний код бронювання, згенерований на вашому боці; якщо надіслати Modify з тим самим ID, запис буде оновлено, якщо Cancel — скасовано. Якщо продано кілька номерів одного типу з тим самим типом харчування, кожен номер є окремим елементом RoomStays з NumberOfUnits 1, 2, 3…

Для типу оплати кредитна картка (9) дані картки передаються в PaymentCard; для інших типів оплати це поле не надсилайте. Оскільки ви обробляєте дані карток, на вас поширюються вимоги PCI DSS.

Тіло запиту

BookingPushRQ.Bookings[]object[]обов’язковий
Список бронювань. Зазвичай один елемент.
hotelIDstringобов’язковий
Ідентифікатор готелю.
IDstringобов’язковий
Унікальний код бронювання у вашій системі. Також зберігається як номер ваучера.
typestringобов’язковий
Тип операції.
BookModifyCancel
createDateTimedatetime
Час створення бронювання (ISO 8601).
checkinDate / checkoutDatedateобов’язковий
Дати заїзду й виїзду, YYYY-MM-DD.
RoomStays[]object[]обов’язковий
Продані номери.
roomTypeIDstringобов’язковий
items[].id зі списку номерів.
roomNamestring
Назва типу номера (довідково).
ratePlanIDstringобов’язковий
accommodationTypes[].id зі списку номерів.
ratePlanNamestring
Назва типу харчування (довідково).
typestring
Тип операції для номера.
BookModifyCancel
NumberOfUnitsstringобов’язковий
Порядок номерів з однаковим типом номера й харчування: 1, 2, 3…
checkinDate / checkoutDatedateобов’язковий
Дати заїзду й виїзду для номера.
GuestCountobjectобов’язковий
Кількість adult і child.
PerDayRatesobject
currency і PerDayRate[]: stayDate, baseRate, hotelServiceFees.
Totalobjectобов’язковий
Сума за номер: amountAfterTaxes, amountOfTaxes, currency.
PaymentCardobject
Лише для типу оплати 9 (кредитна картка). CardHolder{fullname, address, country, city}, cardNumber, expireDate (MMYY), cardCode, seriesCode (CVV).
PrimaryGuests[]object[]обов’язковий
Основні гості: name, surname, PhoneNumber, email, CountryCode.
ChildGuests[]object[]
Діти. age — обов’язкове поле; name, surname, year, date, detail — необов’язкові.
SpecialRequest[]object[]
Побажання гостя та умови скасування: text. Об’єднуються в примітки до бронювання.
extras[]object[]
Продані додаткові послуги/пакети: name, note, person, piece, price, priceMode, priceTotal, stockID (id зі списку пакетів).
Totalobjectобов’язковий
Загальна сума: amountAfterTaxes, amountOfTaxes, extraTotal, currency.

Відповідь

200 Об’єкт BookingPushRS. У разі успіху — Success: true та ідентифікатор бронювання в HMS (HMS_ID); у разі помилки — повідомлення Error і BookingConfirmNumbers[].Error[].

Відповіді з помилками

  • 200 Error: No available data could be found. (01, тіло порожнє або його не вдалося розібрати) · Hotel registration not found on HMS. (02, готель не підключено до онлайн-каналу) · Could not register. · Failed to parse information.
Запит
curl -X POST "https://test.hms.gen.tr/external/online/channel/booking" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BookingPushRQ": {
        "Bookings": [
            {
                "hotelID": "1000",
                "ID": "4811174883",
                "type": "Book",
                "createDateTime": "2026-08-01T08:32:11:293Z",
                "checkinDate": "2026-08-18",
                "checkoutDate": "2026-08-20",
                "RoomStays": [
                    {
                        "roomTypeID": "2",
                        "roomName": "Стандартний номер",
                        "ratePlanID": "2",
                        "ratePlanName": "Сніданок включено",
                        "type": "Book",
                        "NumberOfUnits": "1",
                        "checkinDate": "2026-08-18",
                        "checkoutDate": "2026-08-20",
                        "GuestCount": {
                            "adult": 2,
                            "child": 1
                        },
                        "PerDayRates": {
                            "currency": "TRY",
                            "PerDayRate": [
                                {
                                    "stayDate": "2026-08-18",
                                    "baseRate": "965.00",
                                    "hotelServiceFees": "0"
                                },
                                {
                                    "stayDate": "2026-08-19",
                                    "baseRate": "965.00",
                                    "hotelServiceFees": "0"
                                }
                            ]
                        },
                        "Total": {
                            "amountAfterTaxes": "1930.00",
                            "amountOfTaxes": "175.45",
                            "currency": "TRY"
                        }
                    }
                ],
                "PrimaryGuests": [
                    {
                        "name": "Ayşe",
                        "surname": "Demir",
                        "PhoneNumber": "+905551112233",
                        "email": "[email protected]",
                        "CountryCode": "TR"
                    }
                ],
                "ChildGuests": [
                    {
                        "age": 7
                    }
                ],
                "SpecialRequest": [
                    {
                        "text": "Пізній заїзд, близько 23:00."
                    }
                ],
                "extras": [
                    {
                        "name": "Вечеря",
                        "note": "",
                        "person": 2,
                        "piece": 1,
                        "price": "400.00",
                        "priceMode": null,
                        "priceTotal": "400.00",
                        "stockID": 12
                    }
                ],
                "Total": {
                    "amountAfterTaxes": "2330.00",
                    "amountOfTaxes": "211.82",
                    "extraTotal": "400.00",
                    "currency": "TRY"
                }
            }
        ]
    }
}'
Відповідь · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
Відповідь · 200 (помилка)
{
    "BookingPushRS": {
        "Error": "Hotel registration not found on HMS.",
        "BookingConfirmNumbers": [
            {
                "bookingID": null,
                "bookingType": null,
                "confirmTime": 1755500000,
                "Error": [
                    {
                        "code": "02",
                        "text": "Hotel registration not found on HMS."
                    }
                ]
            }
        ]
    }
}
Останнє оновлення: 21 вересня 2026 р.Знайшли помилку? Повідомте нам