## Requests

### Syntax

The `OTA_HotelInvCountNotifRQ` message uses the following syntax:

    <?xml version="1.0" encoding="UTF-8"?>
    <OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                              EchoToken="message_ID"
                              TimeStamp="timestamp"
                              Version="3.0">
      <POS>
        <Source>
          <RequestorID ID="partner_key"/>
        </Source>
      </POS>
      <Inventories HotelCode="HotelID">
        <Inventory>
          <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"/>
          <InvCounts>
            <InvCount Count="integer" CountType="2"/>
          </InvCounts>
        </Inventory>
      </Inventories>
    </OTA_HotelInvCountNotifRQ>

> [!IMPORTANT]
> **Key Point:** Each `<OTA_HotelInvCountNotifRQ>` message is treated as an overlay update. For each property, date, and room specified in `<StatusApplicationControl>`, any previously defined inventory count is replaced with the new value.

### Elements and attributes

The `OTA_HotelInvCountNotifRQ` message has the following elements and
attributes:

| Element / @Attribute | Occurrences | Type | Description |
|---|---|---|---|
| OTA_HotelInvCountNotifRQ | 1 | Complex element | The root element for a message that defines room rate availability. |
| OTA_HotelInvCountNotifRQ / @xmlns | 0..1 | string (URI) | The XML namespace. |
| OTA_HotelInvCountNotifRQ / @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_HotelInvCountNotifRQ / @TimeStamp | 1 | [DateTime](https://developers.google.com/hotels/hotel-prices/xml-reference/datetime#DateTime) | The creation date and time of this message. |
| OTA_HotelInvCountNotifRQ / @Version | 1 | decimal | The OpenTravel message version. |
| OTA_HotelInvCountNotifRQ / 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_HotelInvCountNotifRQ / POS/ Source | 1 | Source | Required if `<POS>` is present. A container for the `<RequestorID>`. |
| OTA_HotelInvCountNotifRQ / POS / RequestorID | 1 | RequestorID | Required if `<POS>` is present. Defines the partner account. |
| OTA_HotelInvCountNotifRQ / 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](https://hotelcenter.google.com/accountsettings/basicsettings?a) 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_HotelRateAmountNotifRQ>` message for the same account. |
| OTA_HotelInvCountNotifRQ / Inventories | 1 | Inventories | A container for one or more `<Inventory>` elements. |
| OTA_HotelInvCountNotifRQ / Inventories / @HotelCode | 1 | string | The unique identifier for the property. This value must match the Hotel ID specified using [\<id\> in the \<listing\> element of the Hotel List feed](https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed#listing). The Hotel ID is also listed in [Hotel Center](https://hotelcenter.google.com). |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory | 1..n | Inventory | Defines available room counts for different time ranges for a single property. |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory / StatusApplicationControl | 1 | StatusApplicationControl | Defines the date range, as well as the identifier for the room type (`InvTypeCode`). |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory / StatusApplicationControl / @Start | 1 | [Date](https://developers.google.com/hotels/hotel-prices/xml-reference/datetime#Date) | The starting date (based on the property's time zone), inclusive, of the date range. |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory / StatusApplicationControl / @End | 1 | [Date](https://developers.google.com/hotels/hotel-prices/xml-reference/datetime#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_HotelInvCountNotifRQ / Inventories / Inventory / 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_HotelInvCountNotifRQ / Inventories / Inventory / 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_HotelInvCountNotifRQ / Inventories / Inventory / 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_HotelInvCountNotifRQ / Inventories / Inventory / 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_HotelInvCountNotifRQ / Inventories / Inventory / 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_HotelInvCountNotifRQ / Inventories / Inventory / 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_HotelInvCountNotifRQ / Inventories / Inventory / 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_HotelInvCountNotifRQ / Inventories / Inventory / StatusApplicationControl / @InvTypeCode | 1 | string | The unique identifier for the inventory (room type). This value maps to `<RoomID>` in a [Transactions (Property Data)](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-property) message. |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory / InvCounts | 1 | InvCounts | A container for defining a single inventory count. |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory / InvCounts / InvCount | 1 | InvCount | Defines the number of available rooms that can be booked. |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory / InvCounts / InvCount / @Count | 1 | integer | The number of available rooms that can be booked for the room type. A value of zero indicates that the room type is sold out. A negative value is treated as zero. |
| OTA_HotelInvCountNotifRQ / Inventories / Inventory / InvCounts / InvCount / @CountType | 1 | enum | The type of inventory count being specified. Valid value is: - `2`: Definite availability. |

### Examples

### Remaining inventory

Sets 5 rooms left for `RoomID_1` on the given dates.

    <OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                              EchoToken="12345678"
                              TimeStamp="2023-07-13T20:50:37-05:00"
                              Version="3.0">
      <Inventories HotelCode="Property_1">
        <Inventory>
          <StatusApplicationControl Start="2023-07-18"
                                    End="2023-07-23"
                                    InvTypeCode="RoomID_1"/>
          <InvCounts>
            <InvCount Count="5" CountType="2"/>
          </InvCounts>
        </Inventory>
      </Inventories>
    </OTA_HotelInvCountNotifRQ>

### Sold out inventory

Mark `RoomID_1` sold out on the given dates.

    <OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                              EchoToken="12345678"
                              TimeStamp="2023-07-13T20:50:37-05:00"
                              Version="3.0">
      <Inventories HotelCode="Property_1">
        <Inventory>
          <StatusApplicationControl Start="2023-07-18"
                                    End="2023-07-23"
                                    InvTypeCode="RoomID_1"/>
          <InvCounts>
            <InvCount Count="0" CountType="2"/>
          </InvCounts>
        </Inventory>
      </Inventories>
    </OTA_HotelInvCountNotifRQ>

## Responses

### Syntax

The `OTA_HotelInvCountNotifRS` message uses the following syntax:

    <?xml version="1.0" encoding="UTF-8"?>
    <OTA_HotelInvCountNotifRS 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_HotelInvCountNotifRS>

### Elements and attributes

The `OTA_HotelInvCountNotifRS` message has the following elements and
attributes:

| Element / @Attribute | Occurrences | Type | Description |
|---|---|---|---|
|   | 1 | Complex element | The root element for a response to an availability message. |
| OTA_HotelInvCountNotifRS / @TimeStamp | 1 | [DateTime](https://developers.google.com/hotels/hotel-prices/xml-reference/datetime#DateTime) | The creation date and time of this message. |
| OTA_HotelInvCountNotifRS / @EchoToken | 1 | string | The unique identifier from the associated `OTA_HotelInvCountNotifRQ` message. |
| OTA_HotelInvCountNotifRS / Success | 0..1 | Success | Indicates that the `OTA_HotelInvCountNotifRQ` message was processed successfully. Either `<Success>` or `<Errors>` is present in each message. |
| OTA_HotelInvCountNotifRS / Errors | 0..1 | Errors | A container for one or more issues encountered while processing the `OTA_HotelInvCountNotifRQ` message. Either `<Success>` or `<Errors>` is present in each message. |
| OTA_HotelInvCountNotifRS / Errors / Error | 1..n | Error | The description of an error encountered while processing the `OTA_HotelInvCountNotifRQ` message. Details on these errors can be found in [Feed Status Error Messages](https://developers.google.com/hotels/hotel-prices/dev-guide/feed-status-errors). |
| OTA_HotelInvCountNotifRS / 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_HotelInvCountNotifRS / 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_HotelInvCountNotifRS / Errors / Error / @Code | 1 | enum | The status of the original request. Only the value `NotProcessed` is used. |
| OTA_HotelInvCountNotifRS / Errors / Error / @ShortText | 1 | string | The Google identifier for the issue. Details on these errors can be found in [Feed Status Error Messages](https://developers.google.com/hotels/hotel-prices/dev-guide/feed-status-errors). |

### Examples

### Success

The following is a response to a successfully processed
`OTA_HotelInvCountNotifRQ` message.

    <?xml version="1.0" encoding="UTF-8"?>
    <OTA_HotelInvCountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                              TimeStamp="2023-07-23T20:50:37-05:00"
                              Version="3.0">
      <Success/>
    </OTA_HotelInvCountNotifRS>

### Errors

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

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