ოთახები და ტარიფები

ორი ენდპოინტი, რომლებზეც დაჯავშნის სისტემის ძიების შედეგებია აგებული: ოთახების სია, რომელიც მოცემული თარიღებისა და სტუმრების რაოდენობისთვის აბრუნებს გასაყიდად ხელმისაწვდომ ოთახის ტიპებს, კვების ტიპებსა და ფასებს, და ხელმისაწვდომობა, რომელიც კალენდრის ხედებისთვის დღეების მიხედვით აბრუნებს ხელმისაწვდომობასა და ტარიფებს.

ოთახების სია და ტარიფები#

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[]
სურათების ბილიკები, API-ის საბაზო URL-ის მიმართ.
items[].accommodationTypes[]object[]
კვების ტიპები. id ჯავშანში ratePlanID ხდება. priceType: 0 — ფასი ადამიანზე, 1 — ფასი ოთახზე.
…accommodationTypes[].prices{}object
ფასის ვარიანტები. თითოეული ვარიანტი: total ღამეების რაოდენობა, price ჯამური თანხა, currency, nonRefundable ("[NR]" ნიშნავს დაუბრუნებადს), id არჩევანის ID, prices[] ღამის ტარიფები (price, tarih ფორმატით dd.mm.yyyy).
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 m².</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

ყოველი ოთახის ტიპისთვის დღეების მიხედვით აბრუნებს ხელმისაწვდომი ოთახების რაოდენობასა და საბაზო ტარიფს. განკუთვნილია კალენდრისა და ტარიფების სითბური რუკის ხედებისთვის; ზუსტი ფასებისა და შეზღუდვების შესამოწმებლად გამოიყენეთ ოთახების სია.

მოთხოვნის სტრიქონის პარამეტრები

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იპოვეთ შეცდომა? შეგვატყობინეთ