# Technical Overview

### Service

The ARI Update Service provides four primary operations:

1. **List of Properties**:
   * **Request**: `HotelPropertyListGetRQ`
   * **Response**: `HotelPropertyListGetRS`
2. **List of Products**:
   * **Request**: `HotelProductListGetRQ`
   * **Response**: `HotelProductListGetRS`
3. **Fetch ARI Information**:
   * **Request**: `HotelARIGetRQ`
   * **Response**: `HotelARIGetRS`
4. **Update ARI Information**:
   * **Request**: `HotelARIUpdateRQ`
   * **Response**: `HotelARIUpdateRS`

#### Communication Protocols

* **Method**: HTTP POST is used for the requested operations.
* **Request and Response Format**: Each operation involves posting the appropriate request XML data, and the OTA returns the desired response XML data.
* **HTTP Content Type**: `text/xml`
  * Example HTTP header:

Content-Type: text/xml; charset=utf-8&#x20;

#### Authentication

* **Implementation**: Authentication and authorization are both implemented using common credentials. See Hotel Authorization below for details.

#### Reliability Mechanisms and Constraints

* **Property List Message**: Only one hotel can be specified in a request or response message, except for the Property List message.
* **Volume of Messages**: Due to the high volume of messages exchanged between DirectConnect and the OTA, the mechanisms and constraints described in Table B must be implemented.

| **Type**                   | **Mechanism/Constraint**                                                                         | **Description**                                                                                                                                 |
| -------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Retry                      | Retry strategy for communication failure and in case of specific errors returned in XML response | The DirectConnect and OTA will have a retry mechanism in place for communication errors and business error.                                     |
| Concurrency                | Simultaneous connections per property Can be multithread                                         | DirectConnect interface will establish multiple connections per Property for different room type at any given time for updating the ARI events. |
| Timeout                    | Time out after 60,000 milliseconds (1 minute)                                                    | Idle connections (no packets sent by either side) for more than 1 minute should be closed.                                                      |
| Character Set              | Support for UTF-8                                                                                | All messages exchanged must have UTF-8 encoding                                                                                                 |
| Date Range                 | 366 days                                                                                         | Maximum number of days that a single request message could update must not exceed 366 days.                                                     |
| <p>Message</p><p>Size </p> | 2 MB                                                                                             | Maximum size for a single message must not exceed 2 MB.                                                                                         |

### Supported Restrictions and Occupancies

| **Channel Manager Attribute** | **Attribute Type**                             | **Data Type** | <p><strong>XML</strong> </p><p><strong>Attribute</strong> </p> | **Description**                                                                               |
| ----------------------------- | ---------------------------------------------- | ------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| Allocation                    | Settings                                       | Integer       | TransientAllotment                                             | Number of rooms available to sellable                                                         |
| Available                     | Settings                                       | Boolean       | Master                                                         | Also known as Stopsell, ClosedOut or Availability.  Denotes if Room is open or closed to sell |
| CTA                           | Restrictions                                   | Boolean       | Arrival                                                        | Closed to arrival. Room cannot booked if CTA is ON  for a checking date                       |
| CTD                           | Restrictions                                   | Boolean       | Departure                                                      | Closed to departure. Room cannot booked if CTD is ON for a checkout date                      |
| FreeSale                      | Settings                                       | Boolean       | FreeSale                                                       | Unlimited number of rooms. No restrictions for restrictive units                              |
| MinLOS                        | Restrictions                                   | Integer       | MinLoSOnArrival                                                | Minimum number of nights required to book a room w\.r.t. check-in date                        |
| MinLOSThrough                 | Restrictions                                   | Integer       | MinLoSThrough                                                  | Minimum number of nights required to book a room w\.r.t. complete stay dates                  |
| MaxLOS                        | Restrictions                                   | Integer       | MaxLoSOnArrival                                                | Maximum number of nights required to book a room w\.r.t. check-in date                        |
| MaxLOSThrough                 | Restrictions                                   | Integer       | MaxLoSThrough                                                  | Maximum number of nights required to book a room w\.r.t. complete stay dates                  |
| MinAdvancePurchase            | Restrictions                                   | Integer       | MinAdvancedBookingOffset                                       | Minimum no. of days in advance a room  can be  booked                                         |
| MaxAdvancePurchase            | Restrictions                                   | Integer       | MaxAdvancedBookingOffset                                       | Maximum no. of days in advance a room can be booked.                                          |
| 1Adult                        | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A1"  </p>                | Nightly rates of pax=\[1Adult] for given room-rate  combination                               |
| 2Adult                        | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A2"  </p>                | Nightly rates of pax=\[2Adult] for given room-rate  combination                               |
| 3Adult                        | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A3"  </p>                | Nightly rates of pax=\[3Adult] for given room-rate  combination                               |
| 4Adult                        | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A4"  </p>                | Nightly rates of pax=\[4Adult] for given room-rate  combination                               |
| 5Adult                        | <p>Occupancy based Pricing</p><p>(OPB)  </p>   | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A5"  </p>                | Nightly rates of pax=\[5Adult] for given room-rate                                            |
| 6Adult                        | <p>Occupancy based Pricing </p><p>(OPB)  </p>  | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A6"  </p>                | Nightly rates of pax=\[6Adult] for given room-rate  combination                               |
| 7Adult                        | <p>Occupancy based Pricing </p><p>(OPB)  </p>  | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A7"  </p>                | Nightly rates of pax=\[7Adult] for given room-rate  combination                               |
| 8Adult                        | <p>Occupancy based Pricing </p><p>(OPB)  </p>  | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A8"  </p>                | Nightly rates of pax=\[8Adult] for given room-rate  combination                               |
| 9Adult                        | <p>Occupancy based Pricing </p><p>(OPB)  </p>  | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A9"  </p>                | Nightly rates of pax=\[9Adult] for given room-rate  combination                               |
| 10Adult                       | <p>Occupancy based Pricing </p><p>(OPB)  </p>  | Decimal       | <p>Base Amount  </p><p>OccupancyCode="A10"  </p>               | Nightly rates of pax=\[10Adult] for given room-rate  combination                              |
| 1Child                        | <p>Occupancy based Pricing </p><p>(OPB)  </p>  | Decimal       | <p>Base Amount  </p><p>OccupancyCode="C1"  </p>                | Nightly rates of pax=\[1Child] for given room-rate  combination                               |
| 2Child                        | <p>Occupancy based Pricing </p><p>(OPB)  </p>  | Decimal       | <p>Base Amount  </p><p>OccupancyCode="C2"  </p>                | Nightly rates of pax=\[2Child] for given room-rate  combination                               |
| 3Child                        | Occupancy based Pricing  (OPB)                 | Decimal       | <p>Base Amount  </p><p>OccupancyCode="C3"  </p>                | Nightly rates of pax=\[3Child] for given  room-rate  combination                              |
| 4Child                        | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="C4"  </p>                | Nightly rates of pax=\[4Child] for given room-rate  combination                               |
| 5Child                        | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="C5"  </p>                | Nightly rates of pax=\[5Child] for given  room-rate  combination                              |
| AdditionalAdult / ExtraAdult  | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="AA"  </p>                | Nightly rates of pax=\[AdditionalAdult] for given room-rate combination                       |
| AdditionaChild / ExtraChild   | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="AC"  </p>                | Nightly rates of pax=\[AdditionalAdult] for given room-rate combination                       |
| RoomPrice                     | <p>Occupancy based Pricing  </p><p>(OPB)  </p> | Decimal       | <p>Base Amount  </p><p>OccupancyCode="SR"  </p>                | Nightly rates of complete room  for  given room-rate combination                              |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.rategain.com/our-products/channel-manager/direct-connect-demand-push/interface-specifications-ari-service/technical-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
