RateModifications

概要

この API を使用すると、価格の調整や払い戻し可能にするなど、条件が満たされたときに料金にアクションを動的に適用する方法を定義できます。Promotions API とは異なり、この API では、最終的に価格が上がる可能性のある価格調整を含め、特定の条件が満たされた場合にアクションが適用されます。Promotions 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 メッセージには、次の要素と属性があります。

要素 / @属性 発生回数 タイプ 説明
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> を使用して指定した HotelID と一致する必要があります。HotelID は Hotel Center にも表示されます。
RateModifications / HotelRateModifications / @action 0..1 enum

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

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

宿泊施設の 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 料金の払い戻し可能性を指定された値で上書きします。

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

  • この変更アクションでは、入力されたフィールドだけでなく、対象となる料金の払い戻し可能設定が完全に書き換えられます。
  • 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 日の客室料金(AmountBeforeTaxAmountAfterTax の大きい方を使用)の最小合計を指定します。料金の変更を適用するにはこの額を上回る必要があります。
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer 料金の変更を適用するために上回る必要がある値。
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans 料金の変更が適用される料金プランのリストのコンテナ。<RatePlans> を指定しない場合、すべての料金プランに料金の変更が適用されます。
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan 料金プランを指定します。料金プランは、パッケージ、料金、空室状況の組み合わせで定義されます。また、Transaction(宿泊施設データ)、OTA_HotelRateAmountNotifRQ、OTA_HotelAvailNotifRQ の各メッセージにより定義され、PackageID により識別されます。
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string 料金プランの一意の識別子。この値は PackageID の値に対応します。PackageID の値は、Transaction(宿泊施設データ)メッセージの <PackageData> と、<OTA_HotelRateAmountNotifRQ> メッセージと <OTA_HotelAvailNotifRQ> メッセージ両方の <StatusApplicationControl>RatePlanCode 属性にあります。最大 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: 宿泊プランのすべての日付が滞在日と重複している場合、宿泊プランの 1 泊ごとに料金の修正を適用します。
  • 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 UserCountries 仕様のタイプ。

有効な値は includeexclude です。

UserCountries typeinclude に設定されている場合、料金の変更はリストに記載されている国のユーザーに適用されます。

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

UserCountries 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>


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

次の例に、1 つ以上の新しい料金変更が含まれる宿泊施設の <HotelRateModifications> をオーバーレイする方法を示します。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 メッセージには、次の要素と属性があります。

要素 / @属性 発生回数 タイプ 説明
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>