การจอง

ห้องพัก แผนอาหาร และราคาที่ผู้เข้าพักเลือกจะถูกส่งไปยัง 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จำเป็น
ID ของโรงแรม
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 (MMYY), cardCode, 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 และ ID การจองใน 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."
                    }
                ]
            }
        ]
    }
}