Запити й відповіді
На цій сторінці описано формати тіла запиту, обгортку відповіді, пагінацію, формати дат і сум, а також те, як інтерпретувати коди стану HTTP.
Тіло запиту#
Ендпоінти використовують один із двох форматів тіла. Який саме, указано на сторінці кожного ендпоінта в довіднику.
| Формат | Content-Type | Де використовується |
|---|---|---|
| Поля форми | application/x-www-form-urlencoded або multipart/form-data | Вхід, список номерів, перевірка купона, країни |
| JSON | application/json | Передавання бронювання (BookingPushRQ), запуск оплати |
| Рядок запиту | — | Усі ендпоінти GET |
Поля-масиви в тілі форми повторюються з квадратними дужками: childAges[]=7&childAges[]=12. Тіло JSON має бути в кодуванні UTF-8.
Обгортка відповіді#
Відповіді надходять у форматі JSON. Більшість із них містить поле success; списки повертаються з count і items:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}Якщо перевірка бізнес-правил не пройдена, повертається success: false з описом помилки в одному з двох форматів:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}Винятки: ендпоінт контактних даних повертає простий об’єкт без обгортки, а передавання бронювання повертає об’єкт BookingPushRS. Обидва випадки показано в довіднику.
Коди стану HTTP#
| Код | Коли | Що робити |
|---|---|---|
| 200 | Запит оброблено (успіх або помилка бізнес-правил) | Перевірте success, message / errorCode. |
| 401 | Токен відсутній, має неправильний формат або невідомий | Виконайте вхід повторно; див. Автентифікація. |
| 404 | Параметр шляху не відповідає жодному запису (наприклад, /hotel/{hotelID}/…, /payment/type/{paymentType}) | Перевірте ідентифікатор. |
| 405 | Неправильний метод HTTP | Використовуйте метод, указаний у довіднику (для країн і списку номерів — POST). |
| 500 | Неочікувана помилка сервера | Повторіть спробу через деякий час; якщо помилка не зникає, створіть звернення до підтримки з цим запитом. |
Пагінація#
Ендпоінти зі списками (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) розбивають результати на сторінки за номером сторінки:
| Параметр | Опис | За замовчуванням |
|---|---|---|
limit | Кількість записів на сторінці. | 20 |
page | Номер сторінки, починаючи з 1. | 1 |
offset | Скільки записів пропустити. Якщо задано, page ігнорується. | — |
order | Поле сортування; для спадного порядку додайте префікс - (-id). Допустимі поля вказано для кожного ендпоінта. | — |
count — загальна кількість записів; список вичерпано, коли page × limit ≥ count.
Дати, час і суми#
| Тип | Формат | Приклад |
|---|---|---|
| Дата в запиті | YYYY-MM-DD | 2026-08-18 |
| Дата для наявності | YYYY-MM-DD або YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| Дата ціни за ніч (у відповіді) | DD.MM.YYYY (поле tarih) | 18.08.2026 |
| Діапазон доби для наявності (у відповіді) | YYYY-MM-DD HH:MM:SS, з 12:00 до 12:00 наступного дня | 2026-08-18 12:00:00 |
| Сума | Рядок із двома знаками після розділювача-крапки | "965.00" |
| Валюта | ISO 4217; з налаштувань онлайн-каналу готелю | TRY |
| Часовий пояс | Часовий пояс готелю | Europe/Istanbul |
Дата виїзду не входить до проживання: 18–20 серпня — це дві ночі. Не додавайте суми як float; використовуйте бібліотеку для десяткових чисел або цілі числа в дрібних одиницях валюти.
Мова#
Список номерів приймає поле language (ISO 639-1: tr, en, de…) і повертає назви номерів, назви зручностей і повідомлення про помилки цією мовою. Список пакетів очікує languageID; ідентифікатори надає ендпоінт Мови.