الغرف والأسعار

نقطتا نهاية تغذّيان نتائج البحث في محرك الحجز: قائمة الغرف، وتعيد أنواع الغرف القابلة للبيع وأنواع الإقامة والأسعار للتواريخ وعدد النزلاء المحددين، والتوافر، وتعيد التوافر والأسعار يومًا بيوم لعروض التقويم.

قائمة الغرف والأسعار#

POST/external/online/roomType

المصادقة: Authorization: Bearer · المتن: application/x-www-form-urlencoded أو multipart/form-data

تعيد أنواع غرف الفندق المتاحة للبيع عبر الإنترنت للتواريخ وعدد النزلاء المحددين. لكل نوع غرفة يُحسب عدد الغرف المتاحة (roomCount) والقيود (الحد الأدنى للإقامة، والأيام المغلقة أمام الوصول أو المغادرة) وأنواع الإقامة وخيارات الأسعار. إذا كان هناك أطفال، فأرسل أعمارهم في childAges[]؛ إذ يعتمد تسعير الأطفال على العمر.

قواعد التحقق: تاريخ الوصول اليوم أو بعده، وتاريخ المغادرة بعد تاريخ الوصول، و30 ليلة كحد أقصى، ومن 1 إلى 40 بالغًا، ومن 0 إلى 10 أطفال (بأعمار من 0 إلى 16).

حقول النموذج

hotelIDintegerإلزامي
معرّف الفندق. يجب أن يطابق الفندق المرتبط بالرمز المميز.
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
معرّف نوع الغرفة واسمه. يُرسَل في الحجز باسم 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.
items[].accommodationTypes[]object[]
أنواع الإقامة. تصبح id قيمة ratePlanID في الحجز. priceType: 0 تسعير حسب الشخص، 1 تسعير حسب الغرفة.
…accommodationTypes[].prices{}object
خيارات الأسعار. يتضمن كل خيار: total عدد الليالي، وprice المبلغ الإجمالي، وcurrency، وnonRefundable (القيمة "[NR]" تعني غير قابل للاسترداد)، و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 م² مطلة على الحديقة.</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إلزامي
معرّف الفندق.
startDatedatetimeإلزامي
البداية، YYYY-MM-DD أو YYYY-MM-DDTHH:MM:SS.
endDatedatetimeإلزامي
النهاية (ضمنًا).

الاستجابة

200 قائمة يومية لكل نوع غرفة. القيمة -1 في availability تعني عدم وجود بيانات توافر لذلك اليوم؛ والقيمة "-" في 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هل وجدت خطأً؟ أخبرنا