Camere și tarife

Două endpointuri care alimentează rezultatele căutării din motorul de rezervări: lista de camere, care returnează tipurile de camere vandabile, tipurile de masă și prețurile pentru datele și numărul de persoane indicate, și disponibilitatea, care returnează disponibilitatea și tarifele zi cu zi pentru afișarea în calendar.

Lista de camere și tarife#

POST/external/online/roomType

Autentificare: Authorization: Bearer · Corp: application/x-www-form-urlencoded sau multipart/form-data

Returnează tipurile de camere ale hotelului deschise pentru vânzarea online, pentru datele și numărul de persoane indicate. Pentru fiecare tip de cameră se calculează numărul de camere disponibile (roomCount), restricțiile (sejur minim, închis pentru check-in/check-out), tipurile de masă și opțiunile de preț. Dacă sunt și copii, trimiteți vârstele lor în childAges[]; prețul pentru copii depinde de vârstă.

Reguli de validare: check-in astăzi sau mai târziu, check-out după check-in, cel mult 30 de nopți, între 1 și 40 de adulți, între 0 și 10 copii (vârste 0–16).

Câmpuri de formular

hotelIDintegerobligatoriu
ID-ul hotelului. Trebuie să corespundă hotelului tokenului.
startDatedateobligatoriu
Data de check-in, YYYY-MM-DD.
endDatedateobligatoriu
Data de check-out, YYYY-MM-DD.
adultCountintegerobligatoriu
Numărul de adulți (1–40).
childCountintegerimplicit: 0
Numărul de copii (0–10). Dacă nu corespunde cu childAges, prevalează lungimea listei de vârste.
childAges[]integer[]
Vârsta fiecărui copil (0–16). Se repetă ca câmp de formular: childAges[]=7&childAges[]=12.
languagestringimplicit: tr
Limba răspunsului (denumirile camerelor, titlurile facilităților, mesajele de eroare).
buildingIDinteger
Listează doar camerele din această clădire (bloc).

Răspuns

200 Lista tipurilor de camere. Prețurile se află sub fiecare tip de masă, în obiectul prices, cu chei de forma "<persons>-<1|0>": -1 este tariful standard (rambursabil), -0 tariful nerambursabil ([NR]). La tarifarea pe cameră, cheile sunt 1-1 / 1-0.

items[].id / nameinteger / string
ID-ul și denumirea tipului de cameră. Se trimite ca roomTypeID în rezervare.
items[].capacityAdult / capacityChildren / capacityTotalinteger
Capacitatea pentru adulți, pentru copii și totală.
items[].roomCountinteger
Camere vandabile pentru aceste date. 0 înseamnă că nu se pot vinde; motivul este în roomRestrictionMessage.
items[].roomRestrictionMessagestring | null
Restricție de vânzare.
closed_to_checkinclosed_to_checkoutpassive_salesminimum_staymaximum_stayclosed_to_arrivalprice_not_found
items[].nonRefundable / refundableboolean
Dacă tipul de cameră oferă tarife nerambursabile și/sau rambursabile.
items[].images[]string[]
Căile imaginilor, relative la URL-ul de bază al API-ului.
items[].accommodationTypes[]object[]
Tipurile de masă. id devine ratePlanID în rezervare. priceType: 0 preț pe persoană, 1 preț pe cameră.
…accommodationTypes[].prices{}object
Opțiunile de preț. Fiecare opțiune: total numărul de nopți, price suma totală, currency, nonRefundable ("[NR]" înseamnă nerambursabil), id ID-ul selecției, prices[] tarifele pe noapte (price, tarih în formatul zz.ll.aaaa).
items[].roomFeatures[]object[]
Facilitățile camerei: title, icon.
countinteger
Numărul de tipuri de camere returnate.
errorMessage / errorCodestring | integer | null
Setat în caz de eșec. Lista codurilor: Coduri de eroare.

Răspunsuri de eroare

  • 200 errorCode 10001 hotel negăsit · 10002 parametru lipsă · 10003 hotel închis pentru vânzarea online · 10004 niciun tip de cameră deschis pentru vânzare · 10022 parametri de dată/număr de persoane nevalizi · 20001–20004 disponibilitate insuficientă.
Cerere
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"
Răspuns · 200
{
    "success": true,
    "items": [
        {
            "id": 2,
            "name": "Cameră Standard",
            "capacityAdult": 2,
            "capacityTotal": 3,
            "totalBed": 1,
            "totalBathroom": 1,
            "roomSize": 24,
            "currency": "TRY",
            "detail": "<p>Cameră standard de 24 m², cu vedere spre grădină.</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": "Mic dejun inclus",
                    "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": "Aer condiționat",
                    "icon": "fa-snowflake"
                },
                {
                    "title": "Wi-Fi gratuit",
                    "icon": "fa-wifi"
                }
            ],
            "capacityChildren": 1
        }
    ],
    "count": 1,
    "errorMessage": null,
    "errorCode": null
}
Răspuns · 200 (fără disponibilitate)
{
    "success": false,
    "errorMessage": "Disponibilitate insuficientă pentru adulți.",
    "errorCode": 20001
}

Disponibilitate în calendar#

GET/external/room/type/hotel/availability

Autentificare: Authorization: Bearer

Returnează, pentru fiecare tip de cameră, numărul de camere disponibile și tariful de bază pe zi. Conceput pentru afișarea în calendar și pentru hărți termice ale tarifelor; pentru prețuri exacte și verificarea restricțiilor folosiți lista de camere.

Parametri de interogare

hotelIDintegerobligatoriu
ID-ul hotelului.
startDatedatetimeobligatoriu
Data de început, YYYY-MM-DD sau YYYY-MM-DDTHH:MM:SS.
endDatedatetimeobligatoriu
Data de sfârșit (inclusiv).

Răspuns

200 Listă zilnică pe tip de cameră. availability -1 înseamnă că nu există date de disponibilitate pentru ziua respectivă; price "-" înseamnă că nu este definit niciun tarif.

Răspunsuri de eroare

  • 200 hotel_id_is_not_found, start_date_is_not_found, end_date_is_not_found — parametru lipsă.
Cerere
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"
Răspuns · 200
{
    "success": true,
    "roomTypes": [
        {
            "name": "Cameră Standard",
            "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"
}
Ultima actualizare: 21 septembrie 2026Ați găsit o greșeală? Anunțați-ne