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