料金の変更

概要

この API を使用すると、条件が満たされるたびにアクションを料金に動的に適用する方法(価格の調整や払い戻しの有効化など)を定義できます。対象となるプロモーションの中で最も割引が大きいプロモーションのみを適用できる Promotions API とは異なり、この API は特定の条件が満たされた場合にすべてのアクションを適用します。これには、最終的に価格を上げる可能性のある価格調整も含まれます。

リクエスト

構文

RateModifications メッセージには次の構文が使用されます。

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <CheckinDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckoutDates>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

要素と属性

RateModifications メッセージには、次の要素と属性があります。

要素 / @Attribute 発生回数 タイプ 説明
RateModifications 1 Complex element レート変更メッセージのルート要素。
RateModifications / @partner 1 string このメッセージのパートナー アカウント。この文字列値は、Hotel Center の [アカウント設定] ページに表示される「パートナー キー」の値です。

注: 複数のアカウントにフィードを提供するバックエンドがある場合、この値は、同じアカウントの <OTA_HotelRateAmountNotifRQ> および <OTA_HotelAvailNotifRQ> メッセージの <RequestorID> 要素で指定された ID 属性値と一致する必要があります。

RateModifications / @id 1 string このリクエスト メッセージの一意の識別子。この値はレスポンス メッセージで返されます。使用できる文字は、a ~ z、A ~ Z、0 ~ 9、_(アンダースコア)、-(ダッシュ)です。
RateModifications / @timestamp 1 DateTime このメッセージの作成日時。
RateModifications / HotelRateModifications 0..n HotelRateModifications

プロパティのレート変更。各料金の変更は 1 つのプロパティに適用されます。

注: 同じレートに複数のレート変更を適用できる場合は、すべての変更が適用されます。順序は保証されません。

RateModifications / HotelRateModifications / @hotel_id 1 string 宿泊施設の一意の識別子。この値は、ホテルリスト フィードの <listing> 要素の <id> を使用して指定したホテル ID と一致する必要があります。ホテル ID は Hotel Center にも表示されます。
RateModifications / HotelRateModifications / @action 0..1 enum

action が指定されていない場合、この要素内の変更がこのホテルに対して追加または更新されます。action="overlay" を指定すると、このホテルに対してこれまでに定義されているすべての変更がまず削除されます。その後、ここで指定した変更が書き込まれます。action="overlay" が使用されていて、この要素内で変更が指定されていない場合、このホテルの変更がすべて削除されます。

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

1 つの宿泊施設に対する 1 回の料金変更。

注: レートの変更はデバッグが難しいため、慎重に使用することをおすすめします。200 件を超えるレート変更が必要なユースケースについては、テクニカル アカウント マネージャー(TAM)にお問い合わせください。

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string レート変更の一意の識別子。使用できる最大文字数は 40 文字です。使用できる文字は、a ~ z、A ~ Z、0 ~ 9、_(アンダースコア)、-(ダッシュ)、.(ピリオド)を使用します。
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

指定されず、同じ id を使用するレート変更が保存されない場合、このレート変更が保存されます。指定しない場合、同じ id のレート変更が保存されると、既存のレート変更が更新されます。

指定する場合、値は "delete" にする必要があります。"delete" を指定すると、同じ id を使用する保存済みレートの変更が削除されます。"delete" を使用する場合は、<ItineraryRateModification> に子要素を含めないでください。また、"delete"<HotelRateModifications action="overlay"/> と組み合わせて使用することはできません。

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates 料金の変更が適用されるために予約が行われる必要があるタイミングを定義する、1 つ以上の期間のコンテナ。
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange 料金の変更が適用されるために予約が行われる必要があるタイミングを指定する期間。
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date 期間の開始日(プロパティのタイムゾーンに基づく)。この日付は、end と同じかそれより前の日付にする必要があります。start が指定されていない場合、開始日に関する期間は実質的に無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date 期間の終了日(プロパティのタイムゾーンに基づく)。その日付を含む期間が含まれます。この日付は、start 以降の日付にする必要があります。end が指定されていない場合、終了日については、期間は事実上無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。指定しない場合、期間内のすべての日付が許可されます。文字列内の各文字は日付を示します。たとえば、「MTWHF」は、その日付範囲内で平日を許可することを指定します。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow チェックイン日を基準にして予約を行う必要がある期間を指定します(プロパティのタイムゾーンに基づきます)。たとえば、チェックイン日の 7 ~ 180 日前まで予約可能期間を設定できます。
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer チェックインまでの最低日数。この日数で料金変更が適用されます。指定しない場合、最小値はありません。
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer チェックインまでの最大日数。この日数が経過すると料金の修正が適用されます。指定しない場合、最大値はありません。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates 料金の変更が適用されるためにチェックインが行われる必要があるタイミングを定義する、1 つ以上の期間のコンテナ。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange 料金の変更が適用されるチェックインの時間を指定する期間。1 つ以上のレートの変更を削除する場合、この要素は必要ありません。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date 期間の開始日(プロパティのタイムゾーンに基づく)。この日付は、end と同じかそれより前の日付にする必要があります。start が指定されていない場合、開始日に関する期間は実質的に無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date 期間の終了日(プロパティのタイムゾーンに基づく)。その日付を含む期間が含まれます。この日付は、start 以降の日付にする必要があります。end が指定されていない場合、終了日については、期間は事実上無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。指定しない場合、期間内のすべての日が許可されます。文字列内の各文字は日付を示します。たとえば、「MTWHF」は、その日付範囲内で平日を許可することを指定します。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates 料金の変更が適用されるためにチェックアウトが行われるタイミングを定義する 1 つ以上の期間のコンテナ。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange 料金の変更が適用されるチェックアウトのタイミングを指定する期間。1 つ以上のレートの変更を削除する場合、この要素は必要ありません。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date 期間の開始日(プロパティのタイムゾーンに基づく)。この日付は、end と同じかそれより前の日付にする必要があります。start が指定されていない場合、開始日に関する期間は実質的に無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date 期間の終了日(プロパティのタイムゾーンに基づく)。その日付を含む期間が含まれます。この日付は、start 以降の日付にする必要があります。end が指定されていない場合、終了日については、期間は事実上無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。指定しない場合、期間内のすべての日が許可されます。文字列内の各文字は日付を示します。たとえば、「MTWHF」は、その日付範囲内で平日を許可することを指定します。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices レート変更の対象となるユーザー デバイスをリストするためのコンテナ。指定した場合、リストにあるデバイスのいずれかにユーザーが一致する場合にのみ、レートの変更が適用されます。指定しない場合、レート変更の適用は制限されません。
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device レート変更の対象となるユーザー デバイスの 1 つのタイプを定義します。
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum デバイスの種類。値は desktoptablet、または mobile にする必要があります。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

指定されたすべての条件が満たされた場合にレートに適用されるアクション。

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment 指定された乗数を AmountBeforeTaxAmountAfterTax の両方に乗算して、レートを変更します。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float AmountBeforeTaxAmountAfterTax の両方にこの値が乗算されます。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule 指定された料金ルール ID を適用して、料金を変更します。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string この ID は料金と料金ルール定義ファイルの定義を照合します。注:
  • このフィールドの文字数制限は 40 文字です。
  • 各料金は、1 つの料金ルールにのみ関連付けることができます。
  • 料金ルール ID を適用する変更が複数ある場合は、辞書順で最小の料金ルール ID が料金に割り当てられます。
  • この ID が料金ルール定義ファイルの料金ルールと一致しない場合、対象外とみなされます。
非公開レートのさまざまな UI 処理については、 こちらの記事をご覧ください。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable 料金の払い戻し可能性を、指定された値で上書きします。

属性を設定する際は、次の点に注意してください。

  • この変更アクションは、入力されたフィールドだけでなく、対象となる料金の [Refundable] 設定を完全に書き換えます。
  • available または refundable_until_days が設定されていない場合、料金は払い戻し可能として表示されません。
  • available0 または false の場合、他の属性は無視されます。他の属性のいずれかまたは両方が設定されていても、料金は払い戻し可能として表示されません。
  • refundable_until_time を設定することをおすすめします。設定しない場合は、最も早い時刻(午前 0 時)が使用されます。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (必須)料金で全額払い戻しを許可する場合は 1 または true に設定します。そうでない場合は 0 または false に設定します。
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer availabletrue の場合は必須)チェックイン日の何日前から全額払い戻しをリクエストできるかを指定します。refundable_until_days の値は 0 ~ 330 の整数にする必要があります。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time availabletrue の場合は推奨)全額払い戻しリクエストに対応する最も遅い時刻(ホテルの現地時間)を指定します。refundable_until_days と組み合わせて、「チェックインの 2 日前の午後 4 時まで払い戻しが可能です」と指定できます。refundable_until_time が設定されていない場合、値はデフォルトで午前 0 時に設定されます。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability 指定された値で料金の可用性を上書きします。レートの設定をサポートするのは unavailable のみです。
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum status="unavailable" の場合、有効な価格が存在するかどうかにかかわらず、その料金は情報がないものとして扱われます。
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay このレート制限を適用できる滞在日数の制限を定義します。滞在日数が最小値と最大値の範囲外の場合、レート修正は適用されません。
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer 料金変更が適用される滞在で許可される最小の宿泊日数。指定しない場合、最小値はありません。
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer 料金変更が適用される滞在で許可される最大宿泊日数。指定しない場合、最大値はありません。
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount 1 日の客室料金の最小合計額(AmountBeforeTax または AmountAfterTax のいずれか大きい方を使用)を指定します。この合計を超えると、料金の変更が適用されます。
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer レート変更を適用するために超過する必要がある値。
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans 料金修正が適用される料金プランのリストのコンテナ。<RatePlans> が指定されていない場合、料金の変更はすべての料金プランに適用されます。
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan 料金プランを指定します。料金プランは、パッケージ、料金、空室状況の組み合わせによって定義されます。この組み合わせは、トランザクション(宿泊施設データ)、OTA_HotelRateAmountNotifRQ、OTA_HotelAvailNotifRQ メッセージで定義され、PackageID で識別されます。
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string 料金プランの一意の識別子。この値は、Transaction(宿泊施設データ)メッセージの <PackageData> と、<OTA_HotelRateAmountNotifRQ> および <OTA_HotelAvailNotifRQ> メッセージの両方の <StatusApplicationControl>RatePlanCode 属性の PackageID 値にマッピングされます。 入力可能な最大文字数は 50 文字です。
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes 料金の変更が適用される客室タイプのリストのコンテナ。レートの変更は、指定された各 <RoomType> に適用されます。<RoomTypes> が指定されていない場合、料金の変更はすべての客室に適用されます。
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType 客室タイプを指定します。客室タイプは、Transaction(宿泊施設データ)メッセージの <RoomData> 要素で定義され、<RoomID> 値を使用して参照されます。(その <RoomID> 値は、OTA_HotelRateAmountNotifRQ メッセージの InvTypeCode 属性でも参照されます)。
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string インベントリの一意の識別子(客室タイプ)。この値は、Transaction(宿泊施設データ)メッセージの <RoomID> にマッピングされます。入力可能な最大文字数は 50 文字です。
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates 季節限定の価格に対応するためなど、レート変更の適用方法を決定する 1 つ以上の期間のコンテナ。
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

レート変更の適用方法を記述します。

指定できる値は次のとおりです。

  • all: 旅行プランのすべての日付が滞在日と重複する場合、旅行プランの各宿泊に料金の変更を適用します。
  • any: 旅行プランの日付が滞在日の範囲内の日付と重複する場合、旅行プラン内のすべての宿泊に料金の変更を適用します。

この属性は常に指定する必要があります。

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange 料金の変更が適用される日付を指定する期間。
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date 期間の開始日(プロパティのタイムゾーンに基づく)。この日付は、end と同じかそれより前の日付にする必要があります。start が指定されていない場合、開始日に関する期間は実質的に無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date 期間の終了日(プロパティのタイムゾーンに基づく)。その日付を含む期間が含まれます。この日付は、start 以降の日付にする必要があります。end が指定されていない場合、終了日については、期間は事実上無制限になります。
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。指定しない場合、期間内のすべての日付が許可されます。文字列内の各文字は日付を示します。たとえば、「MTWHF」は、その日付範囲内で平日を許可することを指定します。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries 指定した場合、ユーザーが指定した国のいずれかに居住している場合にのみ、レートの修正が適用されます。指定しない場合、ユーザーの所在地に関係なく、料金の変更が適用されます。
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum UserCountry 仕様のタイプ。

有効な値は includeexclude です。

UserCountry の typeinclude に設定されている場合、リストに記載されている国のユーザーに適用されます。

UserCountry typeexclude の場合、リストに記載されている国以外のユーザーに料金の変更が適用されます。

UserCountry type が設定されていない場合は、include として扱われ、リストに記載されている国のユーザーに適用されます。

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country レート変更で許可されるユーザーの国を指定します。
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string CLDR 国コードDEFR など)。国によっては、CLDR 国コードが 2 文字の ISO 国コードと異なる場合があります。また、CLDR 地域コードもサポートされていません。

基本的なメッセージ

次の例は、基本的な RateModifications メッセージを示しています。

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


1 つのレート変更を削除する

次の例は、プロパティに対する 1 つのレート変更を削除する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

すべてのレートの変更を削除

次の例は、プロパティのすべてのレート変更を削除する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


すべてのレート変更をオーバーレイする

次の例は、プロパティの <HotelRateModifications> を 1 つ以上の新しいレートの変更でオーバーレイする方法を示しています。action="overlay" の場合、現在のメッセージで指定されたレートの変更が保存される前に、保存されているすべてのレートの変更が削除されます。

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

複数の変更アクション

次の例は、複数の変更アクションを一度に実行する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


ユーザーの国の料金プランを無効にする

次の例は、料金プランを日本語(JP)のユーザーのみに制限する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


レスポンス

構文

RateModificationsResponse メッセージには次の構文が使用されます。

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
  </Issues>
</RateModificationsResponse>

要素と属性

RateModificationsResponse メッセージには、次の要素と属性があります。

要素 / @Attribute 発生回数 タイプ 説明
RateModifications 1 Complex element 受信した RateModifications リクエスト メッセージの成功または問題を示すルート要素。
RateModificationsResponse / @timestamp 1 DateTime このメッセージの作成日時。
RateModificationsResponse / @id 1 string 関連する RateModifications メッセージからの一意の識別子。
RateModificationsResponse / @partner 1 string このメッセージのパートナー アカウント。
RateModificationsResponse / Success 0..1 Success 警告、エラー、失敗なしで、RateModifications メッセージが正常に処理されたことを示します。

各メッセージには、<Success> または <Issues> のいずれかが存在します。

RateModificationsResponse / Issues 0..1 Issues RateModifications メッセージの処理中に発生した 1 つ以上の問題のコンテナ。

各メッセージには、<Success> または <Issues> のいずれかが存在します。

RateModificationsResponse / Issues / Issue 1..n Issue RateModifications メッセージの処理中に発生した警告、エラー、失敗の説明。これらの問題について詳しくは、フィード ステータスのエラー メッセージをご覧ください。
RateModificationsResponse / Issues / Issue / @code 1 integer 問題の識別子。
RateModificationsResponse / Issues / Issue / @status 1 enum

発生した問題の種類。

有効な値は warningerrorfailure です。

完了

以下は、正常に処理された RateModifications メッセージに対するレスポンスです。

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</RateModificationsResponse>

問題

エラーのため処理されなかった RateModifications メッセージに対するレスポンスは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</RateModificationsResponse>