予約

ゲストが選択した客室、食事条件、料金は、BookingPushRQ 構造で HMS に送信されます。同じエンドポイントで typeCancel または Modify を指定すると、キャンセルや変更も行えます。全体の流れは予約フローガイドを参照してください。

予約を送信(BookingPushRQ)#

POST/external/online/channel/booking

認証: Authorization: Bearer · ボディ: application/json

1件以上の予約を HMS に登録します。ID は自社システムで生成する一意の予約コードです。同じ IDModify を送信するとレコードが更新され、Cancel を送信するとキャンセルされます。同じ客室タイプ・食事条件の客室を複数販売した場合は、客室ごとに個別の RoomStays 要素とし、NumberOfUnits を 1、2、3… とします。

支払い方法がクレジットカード(9)の場合、カード情報は PaymentCard に含めます。その他の支払い方法ではこのフィールドを省略してください。カードデータを扱うと PCI DSS の適用対象になります。

リクエストボディ

BookingPushRQ.Bookings[]object[]必須
予約の一覧。通常は1件です。
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必須
adultchild の人数。
PerDayRatesobject
currencyPerDayRate[]stayDatebaseRatehotelServiceFees
Totalobject必須
客室の合計:amountAfterTaxesamountOfTaxescurrency
PaymentCardobject
支払い方法 9(クレジットカード)の場合のみ。CardHolder{fullname, address, country, city}cardNumberexpireDateMMYY)、cardCodeseriesCode(CVV)。
PrimaryGuests[]object[]必須
代表ゲスト:namesurnamePhoneNumberemailCountryCode
ChildGuests[]object[]
子ども。age は必須、namesurnameyeardatedetail は任意。
SpecialRequest[]object[]
ゲストの要望とキャンセル規定:text。予約の備考に連結されます。
extras[]object[]
販売したオプション・パッケージ:namenotepersonpiecepricepriceModepriceTotalstockID(パッケージ一覧の id)。
Totalobject必須
総合計:amountAfterTaxesamountOfTaxesextraTotalcurrency

レスポンス

200 BookingPushRS オブジェクト。成功時は Success: true と HMS の予約 ID(HMS_ID)、失敗時は Error メッセージと BookingConfirmNumbers[].Error[] が返ります。

エラーレスポンス

  • 200 ErrorNo 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."
                    }
                ]
            }
        ]
    }
}