# Availability, Rates, and Inventory (ARI) XML Reference

This XML reference guide provides detailed reference content and code
examples for the different messages, elements, and attributes available for
Availability, Rates, and Inventory (ARI) feeds.

ARI is a pricing delivery mode that controls nightly rates, availability,
and inventory, and provides constraints on how these can be combined. ARI also
provides flexibility to include taxes, fees, and promotions.

ARI follows the standard protocols of OpenTravel Alliance (OTA) for some of
the main message types for defining availability and inventory.

### LOS-based pricing

`LOS-based` pricing lets you to specify rates per check-in date and length of
stay, rather than per stay date. When you specify a
`<StatusApplicationControl>` element for LOS-based pricing, the `@Start` and
`@End` attributes signifies a range of check-in dates for which the LOS rates
apply.

Although when using LOS-based pricing there are no longer nightly rates, all
other ARI features (inventory, availability, rules, promotions, etc.) can still
be applied to these rates and are specified at a nightly level. This means if
your systems more closely align with an LOS-based pricing system, you can still
take advantage of the rich ARI feature set, in addition to the bandwidth
efficiency that is granted by making use of the nightly availability and
restriction updates.

> [!IMPORTANT]
> **Key Point:** Each property in your account should use either LOS-based rates or per-date rates.

To enable LOS-based pricing on your account, contact your TAM or
[contact us](https://support.google.com/hotelprices/gethelp).

> [!IMPORTANT]
> **Key Point:** You must send the four message types (transaction, rate, inventory, and availability) before pricing is available. It is recommended that you limit the size of ARI messages specifically `<OTA_HotelRateAmountNotifRQ>` to 5MB with a limit of 400 files per second upload rate. Avoid sending multiple overlapping date-specific itinerary information within a 3-second interval of the last message.

ARI uses the following request messages:

- [`Transaction` (Property Data)](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-property). Defines the type and package
  (rate plan) information.

- [`OTA_HotelRateAmountNotifRQ`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-rate). Defines the per-date or LOS-based
  occupancy rate amounts per product (room type and rate plan combination) for
  specific date ranges.

- [`OTA_HotelAvailNotifRQ`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-avail). Defines availability and restrictions
  based on room type and rate plans. Inventory can also be updated using this
  message, but `OTA_HotelInvCountNotifRQ` is preferred.

- [`OTA_HotelInvCountNotifRQ`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-inv). Defines the physical room inventory or
  number of rooms available to be sold.

- [`TaxFeeInfo`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-tax). (Optional) Defines per-property taxes and fees. This
  message isn't required if `AmountAfterTax` is specified in the
  `OTA_HotelRateAmountNotifRQ` message.

- [`Promotions`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-promotions). (Optional) Defines promotional rates for
  certain bookings, stays, and users.

- [`RateModifications`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-rate-modifications). (Optional) Defines rate
  modification rules for certain bookings, stays, and users.

- [`ExtraGuestCharges`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-extra-guest-charges). (Optional) Defines how rates
  should be configured for children and additional adults.

Each message contains a subset of information that Google uses to compute the
prices and availability displayed to users when they search for your
properties with specific check-in and check-out dates and occupancy.

> [!IMPORTANT]
> **Key Point:** ARI features is limited to the messages and elements described within this Inventory \& Pricing (ARI) XML reference and the ARI guide. Any OTA message, element, or attribute not specifically documented here is not supported in our ARI implementation.
>
>
> Also, other [Transaction message](https://developers.google.com/hotels/hotel-prices/xml-reference/transaction-messages) elements not covered in
> this Inventory \& Pricing (ARI) XML reference are not supported when
> using the ARI feed type.
> Google continues to update and improve the API. If you use additional pricing features in your system, notify your `Technology Account Manager(TAM)` so that it can be prioritized with those features or they will let you know if those features are planned for a release.

## ARI XML Reference revision history

The following table lists documentation updates for feature changes only.

| Date | Changes |
|---|---|
| August 14, 2020 | Initial release. |
| October 21, 2020 | Added the Promotions message type. |
| November 17, 2020 | For Transaction (Property Data) messages, updated the [endpoint](https://developers.google.com/hotels/hotel-prices/dev-guide/ari-overview#pushing-messages) and added the `action` attribute to PropertyDataSet elements. |
| November 24, 2020 | For Transaction (Property Data) messages, added the `<AllowablePackageIDs>` and `<AllowableRoomIDs>` elements. |
| February 4, 2021 | Added response messages. |
| February 25, 2021 | Added `OTA_HotelInvCountNotifRQ`. |
| October 21, 2020 | Added the Rate Modifications message type. |