Коди помилок
Помилки надходять у трьох формах: помилки автентифікації — як HTTP 401, помилки бізнес-правил — у відповіді HTTP 200 із success: false, а помилки передавання бронювання — у BookingPushRS.Error. На цій сторінці наведено всі коди.
Помилки автентифікації#
| HTTP | Відповідь | Причина |
|---|---|---|
| 401 | {"success": false, "error": "Authentication required"} | Токен відсутній, невідомий або формат Bearer неправильний. |
| 200 | message: partner_is_not_found | Вхід: пара ключів не збіглася. |
| 200 | message: hotel_is_not_found | Вхід: немає готелю з таким hotelSeoUrl. |
| 200 | message: hotel_permission_is_not_found | Вхід: партнер не має доступу до готелю. |
Коди message#
Текстові коди у форматі snake_case, які повертаються разом із success: false.
| message | Ендпоінт | Опис |
|---|---|---|
hotel_id_is_not_found | Більшість | Не передано hotelID. |
start_date_is_not_found / end_date_is_not_found | Наявність | Відсутній параметр дати. |
online_cupon_is_not_found | Купон | Код невідомий, неактивний, прострочений або недоступний. |
mail_host_is_not_found | Налаштування пошти | Для онлайн-каналу не налаштовано SMTP. |
hotel_company_info_could_not_found | Дані віртуального POS-термінала | Для готелю не налаштовано платіжного провайдера. |
bank_info_is_not_found | Оплата (тип 3) | Немає банківського рахунку, увімкненого для онлайн-продажу. |
required_input_info_not_submitted | Оплата (тип 10) | Бракує обов’язкового поля; errors[] перелічує, яких саме. |
country_info_sent_incorrectly | Оплата (тип 10) | countryID немає в списку країн. |
there_is_missing_info_in_the_shopping_cart | Оплата (тип 10) | В елементі кошика бракує id, name, piece або price; errors[] вказує на нього. |
Коди помилок списку номерів#
Список номерів (POST /external/online/roomType) повертає числовий errorCode і зрозумілий людині errorMessage. Повідомлення перекладається відповідно до параметра language, тому в коді орієнтуйтеся на errorCode.
| errorCode | Значення | Що робити |
|---|---|---|
10001 | Готель не знайдено | Перевірте hotelID. |
10002 | Відсутній параметр (hotelID, startDate, endDate, adultCount) | Надішліть обов’язкові поля. |
10003 | Готель закритий для онлайн-продажу | Готель має увімкнути онлайн-канал у панелі. |
10004 | Немає типів номерів, відкритих для каналів | Готель має відкрити типи номерів для онлайн-продажу. |
10022 | Неприпустимі параметри | Заїзд — сьогодні або пізніше, виїзд — після заїзду, не більше 30 ночей, 1–40 дорослих, 0–10 дітей. |
20001 | Недостатньо вільних місць для дорослих | Запропонуйте інші дати або кількість гостей. |
20002 | Недостатньо вільних місць для дітей | Не залишилося номерів із місцями для дітей. |
20003 / 20004 | Недостатньо вільних місць для дорослих і дітей | Загальна місткість не покриває запит. |
Якщо вільні номери є, але певний тип номера продати не можна, його roomCount дорівнює 0, а причину вказано в roomRestrictionMessage: closed_to_checkin, closed_to_checkout, passive_sales, minimum_stay, maximum_stay, closed_to_arrival, price_not_found.
Помилки передавання бронювання#
Замість Success: true об’єкт BookingPushRS містить поле Error:
{
"BookingPushRS": {
"Error": "Could not register.",
"BookingConfirmNumbers": [
{
"confirmTime": 1755500000,
"bookingID": 0,
"bookingType": "Book",
"HMS_ID": null
}
]
}
}| Error | Код | Причина |
|---|---|---|
| No available data could be found. | 01 | Тіло порожнє або JSON не вдалося розібрати; відсутній Bookings[0].hotelID. |
| Hotel registration not found on HMS. | 02 | Готель не підключено до онлайн-каналу або канал неактивний. |
| Could not register. | — | Помилка під час збереження (неприпустимий ідентифікатор типу номера чи харчування, неузгоджені дати). |
| Failed to parse information. | — | У структурі бракує очікуваних полів. |
Рекомендації щодо повторних спроб#
- 401: виконайте вхід ще раз і повторіть запит.
- 500 і мережеві помилки: до 3 спроб з інтервалами 1 с, 2 с, 4 с. Повторюючи передавання бронювання, використовуйте той самий
ID:Bookз уже наявним кодом оновлює запис, а не створює дублікат. - success: false: не повторюйте запит; виправте параметр або запропонуйте гостеві альтернативу.
- У зверненнях до підтримки додавайте повний запит (із прихованими секретами й даними карток), відповідь і час.