Стаи и цени

Две крайни точки, които захранват резултатите от търсенето в резервационната система: списъкът със стаи, който връща наличните за продажба типове стаи, типове изхранване и цени за зададените дати и брой гости, и наличността, която връща наличност и цени по дни за календарни изгледи.

Списък със стаи и цени#

POST/external/online/roomType

Удостоверяване: Authorization: Bearer · Тяло: application/x-www-form-urlencoded или multipart/form-data

Връща типовете стаи на хотела, отворени за онлайн продажба за зададените дати и брой гости. За всеки тип стая се изчисляват наличният брой (roomCount), ограниченията (минимален престой, затворено за настаняване/напускане), типовете изхранване и ценовите опции. Ако пътуват деца, изпратете възрастта им в childAges[]; цената за деца зависи от възрастта.

Правила за валидация: настаняване днес или по-късно, напускане след настаняването, най-много 30 нощувки, 1–40 възрастни, 0–10 деца (на възраст 0–16 г.).

Полета на формата

hotelIDintegerзадължително
ID на хотела. Трябва да съвпада с хотела на токена.
startDatedateзадължително
Дата на настаняване, YYYY-MM-DD.
endDatedateзадължително
Дата на напускане, YYYY-MM-DD.
adultCountintegerзадължително
Брой възрастни (1–40).
childCountintegerпо подразбиране: 0
Брой деца (0–10). Ако не съвпада с childAges, с предимство е дължината на списъка с възрасти.
childAges[]integer[]
Възраст на всяко дете (0–16). Повтаря се като поле на формата: childAges[]=7&childAges[]=12.
languagestringпо подразбиране: tr
Език на отговора (имена на стаи, наименования на удобства, съобщения за грешки).
buildingIDinteger
Показва само стаите в тази сграда (блок).

Отговор

200 Списък с типове стаи. Цените са под всеки тип изхранване в обекта prices, с ключове "<persons>-<1|0>": -1 е стандартната (възстановима) цена, -0 — невъзстановимата ([NR]) цена. При цени на стая ключовете са 1-1 / 1-0.

items[].id / nameinteger / string
ID и име на типа стая. Изпраща се като roomTypeID в резервацията.
items[].capacityAdult / capacityChildren / capacityTotalinteger
Капацитет за възрастни, деца и общо.
items[].roomCountinteger
Брой стаи, налични за продажба за тези дати. 0 означава, че типът не може да се продава; причината е в roomRestrictionMessage.
items[].roomRestrictionMessagestring | null
Ограничение за продажба.
closed_to_checkinclosed_to_checkoutpassive_salesminimum_staymaximum_stayclosed_to_arrivalprice_not_found
items[].nonRefundable / refundableboolean
Дали типът стая предлага невъзстановими и/или възстановими цени.
items[].images[]string[]
Пътища до изображенията, относителни спрямо базовия URL на API.
items[].accommodationTypes[]object[]
Типове изхранване. id става ratePlanID в резервацията. priceType: 0 цена на човек, 1 цена на стая.
…accommodationTypes[].prices{}object
Ценови опции. Всяка опция: total брой нощувки, price обща сума, currency, nonRefundable ("[NR]" означава невъзстановима), id ID на избора, prices[] цени по нощувки (price, tarih във формат дд.мм.гггг).
items[].roomFeatures[]object[]
Удобства в стаята: title, icon.
countinteger
Брой върнати типове стаи.
errorMessage / errorCodestring | integer | null
Попълва се при неуспех. Списък с кодове: Кодове за грешки.

Отговори при грешка

  • 200 errorCode 10001 хотелът не е намерен · 10002 липсващ параметър · 10003 хотелът е затворен за онлайн продажби · 10004 няма тип стая, отворен за продажба · 10022 невалидни параметри за дати/брой гости · 20001–20004 няма достатъчна наличност.
Заявка
curl "https://test.hms.gen.tr/external/online/roomType" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -d "hotelID=1000" \
  -d "startDate=2026-08-18" \
  -d "endDate=2026-08-20" \
  -d "adultCount=2" \
  -d "childCount=1" \
  -d "childAges[]=7" \
  -d "language=tr"
Отговор · 200
{
    "success": true,
    "items": [
        {
            "id": 2,
            "name": "Стандартна стая",
            "capacityAdult": 2,
            "capacityTotal": 3,
            "totalBed": 1,
            "totalBathroom": 1,
            "roomSize": 24,
            "currency": "TRY",
            "detail": "<p>Стандартна стая 24 м² с изглед към градината.</p>",
            "roomCount": 5,
            "roomRestrictionMessage": null,
            "nonRefundable": false,
            "refundable": true,
            "images": [
                "images/1000/odatipi/standart-1.jpg",
                "images/1000/odatipi/standart-2.jpg"
            ],
            "accommodationTypes": [
                {
                    "id": 2,
                    "title": "Нощувка със закуска",
                    "priceType": 0,
                    "roomRestriction": 1,
                    "roomRestrictionMessage": null,
                    "roomRestrictionValue": null,
                    "prices": {
                        "2-1": {
                            "total": 2,
                            "title": 2,
                            "nonRefundable": "",
                            "price": "1930.00",
                            "currency": "TRY",
                            "id": "2/2",
                            "prices": [
                                {
                                    "price": "965.00",
                                    "tarih": "18.08.2026"
                                },
                                {
                                    "price": "965.00",
                                    "tarih": "19.08.2026"
                                }
                            ]
                        },
                        "2-0": {
                            "total": 2,
                            "title": 2,
                            "nonRefundable": "[NR]",
                            "price": "1737.00",
                            "currency": "TRY",
                            "id": "2-0/2",
                            "prices": [
                                {
                                    "price": "868.50",
                                    "tarih": "18.08.2026"
                                },
                                {
                                    "price": "868.50",
                                    "tarih": "19.08.2026"
                                }
                            ]
                        }
                    }
                }
            ],
            "roomFeatures": [
                {
                    "title": "Климатик",
                    "icon": "fa-snowflake"
                },
                {
                    "title": "Безплатен Wi-Fi",
                    "icon": "fa-wifi"
                }
            ],
            "capacityChildren": 1
        }
    ],
    "count": 1,
    "errorMessage": null,
    "errorCode": null
}
Отговор · 200 (няма наличност)
{
    "success": false,
    "errorMessage": "Няма достатъчна наличност за възрастни.",
    "errorCode": 20001
}

Наличност в календара#

GET/external/room/type/hotel/availability

Удостоверяване: Authorization: Bearer

Връща броя на наличните стаи и базовата цена по дни за всеки тип стая. Предназначена е за календарни изгледи и ценови топлинни карти; за точни цени и проверка на ограниченията използвайте списъка със стаи.

Query параметри

hotelIDintegerзадължително
ID на хотела.
startDatedatetimeзадължително
Начало, YYYY-MM-DD или YYYY-MM-DDTHH:MM:SS.
endDatedatetimeзадължително
Край (включително).

Отговор

200 Дневен списък по типове стаи. availability -1 означава, че за този ден няма данни за наличност; price "-" означава, че няма зададена цена.

Отговори при грешка

  • 200 hotel_id_is_not_found, start_date_is_not_found, end_date_is_not_found — липсващ параметър.
Заявка
curl "https://test.hms.gen.tr/external/room/type/hotel/availability?hotelID=1000&startDate=2026-08-18&endDate=2026-08-21" \
  -H "Authorization: Bearer $HMS_TOKEN"
Отговор · 200
{
    "success": true,
    "roomTypes": [
        {
            "name": "Стандартна стая",
            "id": 2,
            "rate": 2,
            "availability": [
                {
                    "id": 20260818,
                    "start": "2026-08-18 12:00:00",
                    "end": "2026-08-19 12:00:00",
                    "availability": 5,
                    "price": "965.00"
                },
                {
                    "id": 20260819,
                    "start": "2026-08-19 12:00:00",
                    "end": "2026-08-20 12:00:00",
                    "availability": 3,
                    "price": "965.00"
                },
                {
                    "id": 20260820,
                    "start": "2026-08-20 12:00:00",
                    "end": "2026-08-21 12:00:00",
                    "availability": 0,
                    "price": "1,100.00"
                },
                {
                    "id": 20260821,
                    "start": "2026-08-21 12:00:00",
                    "end": "2026-08-22 12:00:00",
                    "availability": -1,
                    "price": "-"
                }
            ]
        }
    ],
    "currency": "TRY"
}
Последна актуализация: 21 септември 2026 г.Открихте грешка? Пишете ни