الحجز

تُرسَل الغرفة ونوع الإقامة والسعر الذي اختاره النزيل إلى HMS في بنية BookingPushRQ. وتعالج نقطة النهاية نفسها الإلغاء والتعديل بإرسال type بالقيمة Cancel أو Modify. راجع دليل مسار الحجز للاطلاع على العملية كاملة.

إرسال حجز (BookingPushRQ)#

POST/external/online/channel/booking

المصادقة: Authorization: Bearer · المتن: application/json

تسجّل حجزًا واحدًا أو أكثر في HMS. ID هو رمز الحجز الفريد الذي تولّده في نظامك؛ إرسال Modify بقيمة ID نفسها يحدّث السجل، وإرسال Cancel يلغيه. عند بيع عدة غرف من نوع الغرفة ونوع الإقامة نفسيهما، تكون كل غرفة عنصرًا مستقلًا في RoomStays وتأخذ NumberOfUnits القيم 1، 2، 3…

في نوع الدفع بطاقة الائتمان (9) تُرسَل بيانات البطاقة ضمن PaymentCard؛ ولا تُرسل هذا الحقل مع أنواع الدفع الأخرى. التعامل مع بيانات البطاقات يُخضعك لمتطلبات PCI DSS.

متن الطلب

BookingPushRQ.Bookings[]object[]إلزامي
قائمة الحجوزات. عادةً عنصر واحد.
hotelIDstringإلزامي
معرّف الفندق.
IDstringإلزامي
رمز الحجز الفريد في نظامك. يُحفَظ أيضًا بوصفه رقم الفاوتشر.
typestringإلزامي
نوع العملية.
BookModifyCancel
createDateTimedatetime
وقت إنشاء الحجز (ISO 8601).
checkinDate / checkoutDatedateإلزامي
تاريخا الوصول والمغادرة، YYYY-MM-DD.
RoomStays[]object[]إلزامي
الغرف المبيعة.
roomTypeIDstringإلزامي
items[].id من قائمة الغرف.
roomNamestring
اسم نوع الغرفة (للعلم فقط).
ratePlanIDstringإلزامي
accommodationTypes[].id من قائمة الغرف.
ratePlanNamestring
اسم نوع الإقامة (للعلم فقط).
typestring
نوع العملية للغرفة.
BookModifyCancel
NumberOfUnitsstringإلزامي
تسلسل الغرف من نوع الغرفة/نوع الإقامة نفسه: 1، 2، 3…
checkinDate / checkoutDatedateإلزامي
تاريخا الوصول والمغادرة للغرفة.
GuestCountobjectإلزامي
عدد adult (البالغين) وchild (الأطفال).
PerDayRatesobject
currency وPerDayRate[]: stayDate، baseRate، hotelServiceFees.
Totalobjectإلزامي
إجمالي الغرفة: amountAfterTaxes، amountOfTaxes، currency.
PaymentCardobject
لنوع الدفع 9 (بطاقة الائتمان) فقط. CardHolder{fullname, address, country, city}، cardNumber، expireDate (MMYYcardCode، seriesCode (CVV).
PrimaryGuests[]object[]إلزامي
النزيل الرئيسي (أو النزلاء الرئيسيون): name، surname، PhoneNumber، email، CountryCode.
ChildGuests[]object[]
الأطفال. age إلزامي؛ وname وsurname وyear وdate وdetail اختيارية.
SpecialRequest[]object[]
ملاحظات النزيل ونص شروط الإلغاء: text. تُدمَج في ملاحظات الحجز.
extras[]object[]
الإضافات/الباقات المبيعة: name، note، person، piece، price، priceMode، priceTotal، stockID (قيمة id من قائمة الباقات).
Totalobjectإلزامي
الإجمالي الكلي: amountAfterTaxes، amountOfTaxes، extraTotal، currency.

الاستجابة

200 كائن BookingPushRS. عند النجاح يتضمن Success: true ومعرّف الحجز في HMS (HMS_ID)؛ وعند الفشل رسالة Error وBookingConfirmNumbers[].Error[].

استجابات الأخطاء

  • 200 Error: No available data could be found. (01، متن فارغ أو تعذّر تحليله) · Hotel registration not found on HMS. (02، الفندق غير مرتبط بقناة الحجز عبر الإنترنت) · Could not register. · Failed to parse information.
الطلب
curl -X POST "https://test.hms.gen.tr/external/online/channel/booking" \
  -H "Authorization: Bearer $HMS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BookingPushRQ": {
        "Bookings": [
            {
                "hotelID": "1000",
                "ID": "4811174883",
                "type": "Book",
                "createDateTime": "2026-08-01T08:32:11:293Z",
                "checkinDate": "2026-08-18",
                "checkoutDate": "2026-08-20",
                "RoomStays": [
                    {
                        "roomTypeID": "2",
                        "roomName": "غرفة قياسية",
                        "ratePlanID": "2",
                        "ratePlanName": "مبيت وإفطار",
                        "type": "Book",
                        "NumberOfUnits": "1",
                        "checkinDate": "2026-08-18",
                        "checkoutDate": "2026-08-20",
                        "GuestCount": {
                            "adult": 2,
                            "child": 1
                        },
                        "PerDayRates": {
                            "currency": "TRY",
                            "PerDayRate": [
                                {
                                    "stayDate": "2026-08-18",
                                    "baseRate": "965.00",
                                    "hotelServiceFees": "0"
                                },
                                {
                                    "stayDate": "2026-08-19",
                                    "baseRate": "965.00",
                                    "hotelServiceFees": "0"
                                }
                            ]
                        },
                        "Total": {
                            "amountAfterTaxes": "1930.00",
                            "amountOfTaxes": "175.45",
                            "currency": "TRY"
                        }
                    }
                ],
                "PrimaryGuests": [
                    {
                        "name": "Ayşe",
                        "surname": "Demir",
                        "PhoneNumber": "+905551112233",
                        "email": "[email protected]",
                        "CountryCode": "TR"
                    }
                ],
                "ChildGuests": [
                    {
                        "age": 7
                    }
                ],
                "SpecialRequest": [
                    {
                        "text": "وصول متأخر، نحو الساعة 23:00."
                    }
                ],
                "extras": [
                    {
                        "name": "عشاء",
                        "note": "",
                        "person": 2,
                        "piece": 1,
                        "price": "400.00",
                        "priceMode": null,
                        "priceTotal": "400.00",
                        "stockID": 12
                    }
                ],
                "Total": {
                    "amountAfterTaxes": "2330.00",
                    "amountOfTaxes": "211.82",
                    "extraTotal": "400.00",
                    "currency": "TRY"
                }
            }
        ]
    }
}'
الاستجابة · 200
{
    "BookingPushRS": {
        "Success": true,
        "BookingConfirmNumbers": [
            {
                "confirmTime": 1755500000,
                "bookingID": 48213,
                "bookingType": "Book",
                "HMS_ID": 48213
            }
        ]
    }
}
الاستجابة · 200 (خطأ)
{
    "BookingPushRS": {
        "Error": "Hotel registration not found on HMS.",
        "BookingConfirmNumbers": [
            {
                "bookingID": null,
                "bookingType": null,
                "confirmTime": 1755500000,
                "Error": [
                    {
                        "code": "02",
                        "text": "Hotel registration not found on HMS."
                    }
                ]
            }
        ]
    }
}
آخر تحديث: 21 سبتمبر 2026هل وجدت خطأً؟ أخبرنا