OTA_HotelRateAmountNotifRQ

Requests

Syntax

The OTA_HotelRateAmountNotifRQ message uses the following syntax:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="message_ID"
                            TimeStamp="timestamp"
                            Version="3.0"
                            NotifType="[Overlay|Delta|Remove]"
                            NotifScopeType="[ProductRate]">
  <POS>
    <Source>
      <RequestorID ID="partner_key"/>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="float"
                            AmountAfterTax="float"
                            CurrencyCode="currency"
                            NumberOfGuests="integer"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Elements & Attributes

The OTA_HotelRateAmountNotifRQ message has the following elements and attributes:
Element / @Attribute Occurrences Type Description
OTA_HotelRateAmountNotifRQ 1 Complex element The root element for a rates message.
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 String (URI) The XML namespace.
OTA_HotelRateAmountNotifRQ / @EchoToken 1 String A unique identifier for this request message. This value is returned in the response message. Allowed characters are a-z, A-Z, 0-9, _ (underscore), and - (dash).
OTA_HotelRateAmountNotifRQ / @TimeStamp 1 DateTime The creation date and time of this message.
OTA_HotelRateAmountNotifRQ / @Version 1 Decimal The OpenTravel message version.
OTA_HotelRateAmountNotifRQ / @NotifType 0..1 Enum

The type of notification to apply to every <RateAmountMessage>.

Valid values are:

  • Overlay: Delete all of the existing per-occupancy rates for the room type, rate plan, and dates specified in <StatusApplicationControl> and replace them with new rates.
  • Remove: Delete all of the existing per-occupancy rates for the room type, rate plan, and dates specified in <StatusApplicationControl>.
  • Delta: (the default if NotifType isn't specified) Add or update the existing per-occupancy rates for the room type, rate plan, and dates specified in <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 Enum

The scope of the NotifType to apply to every <RateAmountMessage>.

Valid values are:

  • ProductRate: (the default if NotifScopeType isn't specified) The NotifType applies to products—combinations of room type (InvTypeCode) and rate plan (RatePlanCode).
OTA_HotelRateAmountNotifRQ / POS 0..1 POS A container for specifying the partner account for this message (typically used if your backend provides price feeds for multiple partner accounts).
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Required if <POS> is present. A container for the <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Required if <POS> is present. Defines the partner account.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 String The partner account for this message. This string value is the "Partner key" value listed on the Account settings page in Hotel Center.

Note: If you have a backend that provides feeds for multiple accounts, this value needs to match the partner attribute value of your Transaction (Property Data) message and the ID attribute value in the <RequestorID> element of your <OTA_HotelAvailNotifRQ> message for the same account.

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages A collection of <RateAmountMessage> elements that define rates.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 String The unique identifier for the property. This value must match the Hotel ID specified using <id> in the <listing> element in the Hotel List Feed. The Hotel ID is also listed in Hotel Center.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage A container for setting prices for a room rate (a room type and rate plan combination across a date range).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl 1 StatusApplicationControl Defines the date range, as well as the identifiers for the room type (InvTypeCode) and rate plan (RatePlanCode).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start 1 Date The starting date (based on the property's time zone), inclusive, of the date range.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date The ending date (based on the property's time zone), inclusive, of the date range. Must be equal or greater than the start value. If start and end are equal, the update applies to that date.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 Boolean Set to true or 1 to explicitly include Mondays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 Boolean Set to true or 1 to explicitly include Tuesdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 Boolean Set to true or 1 to explicitly include Wednesdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 Boolean Set to true or 1 to explicitly include Thursdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 Boolean Set to true or 1 to explicitly include Fridays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 Boolean Set to true or 1 to explicitly include Saturdays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 Boolean Set to true or 1 to explicitly include Sundays.

If set to true, other days of the week that aren't explicitly set to true are excluded (in effect, they are filtered out from the dates within the Start and End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 1 String The unique identifier for the inventory (room type). This value maps to <RoomID> in a Transaction (Property Data) message.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 String A unique identifier for the rate plan. This identifier maps to the <PackageID> in a Transaction (Property Data) message. The rate plan is further defined and referred to in <StatusApplicationControl> in both <OTA_HotelRateAmountNotifRQ> and <OTA_HotelAvailNotifRQ> messages.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Container for a collection of <Rate> elements. If NotifType is “Remove”, this element must not be specified. Otherwise, this element must be specified exactly once.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Container for a collection of <BaseByGuestAmts> elements.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts 1 BaseByGuestAmts Container for a collection of base charges.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt 1..n BaseByGuestAmt Specifies room prices in a specified currency. The price can be per-occupancy by using multiple <BaseByGuestAmt> elements, each with a different value for NumberOfGuests. Otherwise, the price is applicable for a maximum number of occupants defined by NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 Float

The daily price of the room rate before taxes and fees.

If you are using promotions, the discount is applied to AmountBeforeTax; percentage discounts are also applied to AmountAfterTax. Since this does not work with some tax structures, we strongly recommend only specifying AmountBeforeTax here and using TaxFeeInfo to specify taxes and fees.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 Float The daily price of the room rate after including applicable taxes and fees. If AmountAfterTax is specified, separate per-property <TaxFeeInfo> messages do not need to be sent. This attribute can be used in combination with AmountBeforeTax to provide both base and total rates that can be shown to users in certain regions.

Warning: If you are using promotions, we strongly recommend against using AmountAfterTax amounts. If you want to use discounts, specify taxes and fees by using the TaxFeeInfo message. Your discounts will then be applied to AmountBeforeTax amounts.

Note: If AmountBeforeTax isn't specified, AmountAfterTax must be specified.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @CurrencyCode 1 Enum The ISO 4217 (3) alpha character code for a specific monetary unit.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 Integer Maximum number of guests for which a room is intended. Defaults to 2 if not provided.

Examples

This section provides code examples that highlight how to:

Set up base rates and total rates

Example 1

Base rate (without taxes or fees) for default occupancy (double). In this model, taxes and fees for the property must be defined using a TaxFeeInfo message. The base rate will be more prominent for users searching from certain regions.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Example 2

Base and total rate for default occupancy (double). In this model, taxes and fees shouldn't be defined separately using TaxFeeInfo messages. The base rate will be more prominent for users searching from certain regions.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Example 3

Total rate (with taxes and fees) for multiple occupancies. In this model, taxes and fees shouldn't be defined separately using TaxFeeInfo messages.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Example 4

Base and total rate for multiple room types and rate plans across different date ranges.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-01"
                                End="2020-05-31"
                                InvTypeCode="RoomID_2"
                                RatePlanCode="PackageID_2"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            AmountAfterTax="220.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Add, overlay, and remove rates

Add rates

Set NotifType to Delta to add per-occupancy rates for RoomID_1 and PackageID_1 between 2020-05-18 and 2020-05-23.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountBeforeTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Overlay rates

Set NotifType to Overlay to delete all per-occupancy rates for RoomID_1 and PackageID_1 between 2020-05-18 and 2020-05-23 and replace them with the newly specified per-occupancy rates.

For example, if this message was sent after the "Add rates" message, the occupancy 1, 2, and 3 rates would be deleted, and only the new occupancy 1 rate would be stored.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Remove rates

Set NotifType to Delete to delete all per-occupancy rates for RoomID_1 and PackageID_1 between 2020-05-18 and 2020-05-23.

For example, if this message was sent after either of the other example messages, no per-occupancy rates would be stored.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Responses

Syntax

The OTA_HotelRateAmountNotifRS message uses the following syntax:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                            TimeStamp="timestamp"
                            EchoToken="echo_token"
                            Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>

Elements & Attributes

The OTA_HotelRateAmountNotifRS message has the following elements and attributes:
Element / @Attribute Occurrences Type Description
OTA_HotelRateAmountNotifRS 1 Complex element The root element for a response to an availability message.
OTA_HotelRateAmountNotifRS / @TimeStamp 1 DateTime The creation date and time of this message.
OTA_HotelRateAmountNotifRS / @EchoToken 1 String The unique identifier from the associated OTA_HotelRateAmountNotifRQ message.
OTA_HotelRateAmountNotifRS / Success 0..1 Success Indicates that the OTA_HotelRateAmountNotifRQ message was processed successfully.

Either <Success> or <Errors> is present in each message.

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors A container for one or more issues encountered while processing the OTA_HotelRateAmountNotifRQ message.

Either <Success> or <Errors> is present in each message.

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error The description of an error encountered while processing the OTA_HotelRateAmountNotifRQ message. Details on these errors can be found in Feed Status Error Messages.
OTA_HotelRateAmountNotifRS / Errors / Error / @Type 1 Integer The OpenTravel Alliance EWT (Error Warning Type) associated with the error. Only the value 12 (Processing exception) is used.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 Integer The OpenTravel Alliance ERR (Error Code) associated with the error. Only the value 450 (Unable to process) is used.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 Enum The status of the original request. Only the value NotProcessed is used.
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText 1 String The Google identifier for the issue. Details on these errors can be found in Feed Status Error Messages.

Examples

Success

The following is a response to a successfully processed OTA_HotelRateAmountNotifRQ message.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelRateAmountNotifRS>

Errors

The following is a response to a OTA_HotelRateAmountNotifRQ message not processed due to errors.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2020-05-13T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>