رزرو

اتاق، نوع پذیرایی و نرخی که مهمان انتخاب کرده است در ساختار BookingPushRQ به HMS ارسال می‌شود. همین اندپوینت با ارسال 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اشتباهی دیدید؟ به ما اطلاع دهید