Oda ve fiyatlar

Rezervasyon motorunun arama sonucu ekranını besleyen iki uç nokta: verilen tarih ve kişi sayısı için satılabilir oda tiplerini, konaklama tiplerini ve fiyatları döndüren oda listesi; takvim görünümü için gün gün müsaitlik ve fiyat veren müsaitlik.

Oda listesi ve fiyatlar#

POST/external/online/roomType

Kimlik doğrulama: Authorization: Bearer · Gövde: application/x-www-form-urlencoded veya multipart/form-data

Tarih aralığı ve kişi sayısına göre otelin online satışa açık oda tiplerini döner. Her oda tipi için müsait oda adedi (roomCount), kısıtlar (minimum konaklama, girişe/çıkışa kapalı günler), konaklama tipleri ve fiyat seçenekleri hesaplanır. Çocuk varsa childAges[] ile yaşları gönderin; çocuk fiyat politikası yaşa göre uygulanır.

Doğrulama kuralları: giriş tarihi bugün veya sonrası, çıkış tarihi girişten sonra, en fazla 30 gece, 1–40 yetişkin, 0–10 çocuk (0–16 yaş).

Form alanları

hotelIDintegerzorunlu
Otel kimliği. Token’ın oteliyle aynı olmalıdır.
startDatedatezorunlu
Giriş tarihi, YYYY-MM-DD.
endDatedatezorunlu
Çıkış tarihi, YYYY-MM-DD.
adultCountintegerzorunlu
Yetişkin sayısı (1–40).
childCountintegervarsayılan: 0
Çocuk sayısı (0–10). childAges ile uyumsuzsa yaş listesinin uzunluğu esas alınır.
childAges[]integer[]
Her çocuğun yaşı (0–16). Form alanı olarak tekrarlanır: childAges[]=7&childAges[]=12.
languagestringvarsayılan: tr
Yanıt dili (oda adı, özellik başlıkları, hata mesajları).
buildingIDinteger
Yalnızca bu binadaki (blok) odaları listeler.

Yanıt

200 Oda tipi listesi. Fiyatlar konaklama tipi altında prices nesnesinde, "<kişi>-<1|0>" anahtarlarıyla döner: -1 standart (iade edilebilir), -0 iade edilemez ([NR]) fiyat. Oda bazlı fiyatlamada anahtarlar 1-1 / 1-0 olur.

items[].id / nameinteger / string
Oda tipi kimliği ve adı. Rezervasyonda roomTypeID olarak kullanılır.
items[].capacityAdult / capacityChildren / capacityTotalinteger
Yetişkin, çocuk ve toplam kapasite.
items[].roomCountinteger
Bu tarihlerde satılabilir oda adedi. 0 ise satılamaz; nedeni roomRestrictionMessage alanında.
items[].roomRestrictionMessagestring | null
Satış kısıtı.
closed_to_checkinclosed_to_checkoutpassive_salesminimum_staymaximum_stayclosed_to_arrivalprice_not_found
items[].nonRefundable / refundableboolean
Oda tipinde iade edilemez ve/veya iade edilebilir fiyat sunuluyor mu.
items[].images[]string[]
Görsel yolları; API köküne eklenerek kullanılır.
items[].accommodationTypes[]object[]
Konaklama tipleri (pansiyon). id rezervasyonda ratePlanID olur. priceType: 0 kişi bazlı, 1 oda bazlı fiyat.
…accommodationTypes[].prices{}object
Fiyat seçenekleri. Her seçenek: total gece sayısı, price toplam tutar, currency, nonRefundable ("[NR]" ise iade edilemez), id seçim kimliği, prices[] günlük fiyat (price, tarih gün.ay.yıl).
items[].roomFeatures[]object[]
Oda özellikleri: title, icon.
countinteger
Dönen oda tipi sayısı.
errorMessage / errorCodestring | integer | null
Başarısız yanıtlarda dolu. Kod listesi: Hata kodları.

Hata yanıtları

  • 200 errorCode 10001 otel bulunamadı · 10002 eksik parametre · 10003 otel online satışa kapalı · 10004 satışa açık oda tipi yok · 10022 tarih/kişi parametreleri geçersiz · 20001–20004 yeterli müsaitlik yok.
İstek
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"
Yanıt · 200
{
    "success": true,
    "items": [
        {
            "id": 2,
            "name": "Standart Oda",
            "capacityAdult": 2,
            "capacityTotal": 3,
            "totalBed": 1,
            "totalBathroom": 1,
            "roomSize": 24,
            "currency": "TRY",
            "detail": "<p>Bahçe manzaralı, 24 m² standart oda.</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": "Kahvaltı Dahil",
                    "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": "Klima",
                    "icon": "fa-snowflake"
                },
                {
                    "title": "Ücretsiz Wi-Fi",
                    "icon": "fa-wifi"
                }
            ],
            "capacityChildren": 1
        }
    ],
    "count": 1,
    "errorMessage": null,
    "errorCode": null
}
Yanıt · 200 (müsaitlik yok)
{
    "success": false,
    "errorMessage": "Yeterli yetişkin müsaitliği bulunamadı.",
    "errorCode": 20001
}

Takvim müsaitliği#

GET/external/room/type/hotel/availability

Kimlik doğrulama: Authorization: Bearer

Her oda tipi için gün gün müsait oda adedi ve ana fiyatı döner. Takvim ve fiyat ısı haritası görünümleri için tasarlanmıştır; kesin fiyat ve kısıt kontrolü için oda listesini kullanın.

Sorgu parametreleri

hotelIDintegerzorunlu
Otel kimliği.
startDatedatetimezorunlu
Başlangıç, YYYY-MM-DD veya YYYY-MM-DDTHH:MM:SS.
endDatedatetimezorunlu
Bitiş (dahil).

Yanıt

200 Oda tiplerine göre günlük liste. availability -1 ise o gün için müsaitlik verisi yok; price "-" ise fiyat tanımlı değil.

Hata yanıtları

  • 200 hotel_id_is_not_found, start_date_is_not_found, end_date_is_not_found — parametre eksik.
İstek
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"
Yanıt · 200
{
    "success": true,
    "roomTypes": [
        {
            "name": "Standart Oda",
            "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"
}
Son güncelleme: 8 Eylül 2026Bu sayfada bir hata mı var? Bize yazın