> ## Documentation Index
> Fetch the complete documentation index at: https://docs.axisdata.net/llms.txt
> Use this file to discover all available pages before exploring further.

# OTA_HotelResRS

The OTA\_HotelResRS (Hotel Reservation Response) confirms quote or commit processing for a hotel booking and returns room-level totals, linked guest profiles, partner references, cancellation policies, and optional TPA extensions. It is returned in reply to an `OTA_HotelResRQ` of type Quote or Commit.

## Purpose

* Confirm successful processing (`<Success/>`) or return error diagnostics (`<Errors/>`). [Error Scenarios](../glossary/errors).
* Return one `HotelReservation` with one or more `RoomStay` items, linked `ResGuests`, optional `Services`, and booking-level context under `ResGlobalInfo`.
* **Quote** (`ResStatus="Quote"` in the request): verify availability, totals, and cancellation policy without creating a reservation ID at Axis Data (the client reference is echoed).
* **Commit** (`ResStatus="Commit"` in the request): create a binding booking if accepted, with penalties per contract.

## Structure – Root Element

```xml theme={null}
<OTA_HotelResRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="2008.1">
  <Success/>
  ...
</OTA_HotelResRS>
```

<Tip>When `<Success/>` is absent, inspect `<Errors>` for diagnostics; multiple `<Error>` items may be returned. [Error Scenarios](../glossary/errors)</Tip>

## Structure – Core Elements

### HotelReservation

Envelope and item for the reservation response. Contains: `RoomStays`, optional `Services` (e.g., board), `ResGuests`, `ResGlobalInfo`, and `TPA_Extensions`.

### RoomStays

Each `RoomStay` represents one reserved room (or quoted room) for the booking. It is very similar as the `RoomStay` returned in the [avail response](/searchRS#roomstays).

* `RoomStay@RPH` is the room key used across the response; `IndexNumber` is a 1‑based display index.
* Includes room identification (`RoomTypes/RoomType@RoomTypeCode`), `RoomDescription`, pricing at room level (`Total`), stay dates (`TimeSpan@Start/End`), and links to guests/services via `ResGuestRPHs` / `ServiceRPHs`.
* Property context can be repeated under `RoomStay/BasicPropertyInfo` when needed.
* Under `Features`, the booked board and a short description can be found.
* `ResGuestRPH` and `ServiceRPH` link the Services and ResGuests to this RoomStay.
* `Total@AmountAfterTax` returns the rate for this RoomStay.

**Example**

```xml theme={null}
<RoomStay RPH="1" IndexNumber="1">
    <RoomTypes>
        <RoomType RoomTypeCode="RM00CRMV00">
            <RoomDescription>
                <Text Language="EN">Standard Room</Text>
            </RoomDescription>
        </RoomType>
    </RoomTypes>
    <RoomRates>
        <RoomRate RoomTypeCode="RM00CRMV00">
            <Features>
                <Feature>
                    <Description>
                        <Text>BB</Text>
                        <Text Language="EN">Breakfast</Text>
                    </Description>
                </Feature>
            </Features>
        </RoomRate>
    </RoomRates>
    <BasicPropertyInfo HotelCode="AESPMI5L46" HotelName="Caserio de Lanzarote"/>
    <TimeSpan End="2026-07-24" Start="2026-07-17"/>
    <ResGuestRPHs>
        <ResGuestRPH RPH="1"/>
        <ResGuestRPH RPH="2"/>
        <ResGuestRPH RPH="3"/>
    </ResGuestRPHs>
    <ServiceRPHs>
        <ServiceRPH RPH="1"/>
    </ServiceRPHs>
    <Total CurrencyCode="EUR" AmountAfterTax="1050.00"/>
</RoomStay>
```

### Services

Non-room services (e.g., board) appear under `Services/Service` and can be linked to a `RoomStay` via `ServiceRPHs`.

```xml theme={null}
<Services>
    <Service ServiceInventoryCode="BB" ServiceRPH="1"/>
</Services>
```

### ResGuests

Passenger/guest profiles for the booking, referenced from rooms and services via `ResGuestRPH`.

* Adults `AgeQualifyingCode="10"`; Children `"8"`; Infants `"7"`.

```xml theme={null}
<ResGuests>
    <ResGuest AgeQualifyingCode="10" ResGuestRPH="1">
        <Profiles>
            <ProfileInfo>
                <Profile>
                    <Customer BirthDate="1996-09-04">
                        <PersonName>
                            <NamePrefix>Mr</NamePrefix>
                            <GivenName>Bender</GivenName>
                            <Surname>Bending</Surname>
                        </PersonName>
                    </Customer>
                </Profile>
            </ProfileInfo>
        </Profiles>
        <GuestCounts>
            <GuestCount Age="27"/>
        </GuestCounts>
    </ResGuest>
```

### ResGlobalInfo

Holds booking totals, comments, partner/child references, cancellation penalties, handling office, and optional property/vendormessages context.

#### Totals

Booking-level roll‑up amount for all rooms and services.

```xml theme={null}
<ResGlobalInfo>
  <Total CurrencyCode="EUR" AmountAfterTax="1050.00"/>
  ...
</ResGlobalInfo>
```

#### Comments

Returns the specified comments at the RQ.

```xml theme={null}
<Comments>
  <Comment Name="Applicant Notice" CommentOriginatorCode="DISTRIBUTOR">
    <Text>late arrival - flight lands at 22:55 local time</Text>
  </Comment>
</Comments>
```

#### HotelReservationIDs

* `ResID_Type="36"` — partner (distributor) reference (must be unique; prevents duplicates; print on voucher).
* `ResID_Type="37"` — child references per item; associate with rooms/services via `Item_RPH`.

```xml theme={null}
<HotelReservationIDs>
  <HotelReservationID ResID_Type="36" ResID_SourceContext="Client" ResID_Value="TEST_XXX"/>
  <HotelReservationID Item_RPH="1" ResID_Type="37" ResID_SourceContext="Client" ResID_Value="test_xxx_ac1"/>
</HotelReservationIDs>
```

#### CancelPenalties

Cancellation policy is linked to the room using `CancelPenalty@Item_RPH` (matching the room `RPH`). Deadlines can be expressed relative to arrival or booking.

```xml theme={null}
<CancelPenalties>
  <CancelPenalty Item_RPH="1">
    <Deadline OffsetUnitMultiplier="0" OffsetTimeUnit="Hour" OffsetDropTime="AfterBooking" AbsoluteDeadline="2025-09-23T18:54:31"/>
    <AmountPercent Amount="1050.00" CurrencyCode="EUR" BasisType="WholeStay" Percent="100"/>
  </CancelPenalty>
</CancelPenalties>
```

#### BasicPropertyInfo

Optional property context at booking level; [Vendor Messages](../general/messaging#vendor-messages) can include local taxes or operational notices.

```xml theme={null}
<BasicPropertyInfo HotelCodeContext="11111" AreaID="927" HotelName="Hostal Cuba" HotelCode="AESPMI5L46">
  <VendorMessages>
    <VendorMessage Title="IncidentsAndErrata" InfoType="5">
      <SubSection>
        <Paragraph>
          <Text>Tax Payable Locally, Currency: EUR, type: city tax</Text>
        </Paragraph>
      </SubSection>
    </VendorMessage>
    <VendorMessage Title="IncidentsAndErrata" InfoType="5">
      <SubSection>
        <Paragraph>
          <Text>Due to the local logistics infrastructure, there is a possibility that your meeting point for arrival and departure transfer may not be direct at the hotel door, Approx. Distance: > 600 m</Text>
        </Paragraph>
      </SubSection>
    </VendorMessage>
  </VendorMessages>
</BasicPropertyInfo>
```

#### Handling Office

Handling office details are provided under `Profiles/ProfileInfo/Profile/CompanyInfo/CompanyName`.

```xml theme={null}
<Profiles>
  <ProfileInfo>
    <Profile>
      <CompanyInfo>
        <CompanyName CompanyShortName="OTS Headquarter Office" CountryCode="AT" Code="OTSHQ"/>
      </CompanyInfo>
    </Profile>
  </ProfileInfo>
</Profiles>
```

### TPA\_Extensions

Provider-specific details.

#### RateDetails

Breakdown by guest and stay day; includes per‑guest totals and booking‑level totals under `Totals`. Returned if `Instance=PriceBreakdown` is specified at the RQ.

```xml theme={null}
<TPA_Extensions>
  <RateDetails>
    <GuestDetails ResGuestRPH="1" TotalAmount="1050.00" CurrencyCode="EUR" RateCode="Price">
      <RateComponents StayDay="1" ResGuestRPH="1" Code="AMT9" Edition="0" Rate="150" CurrencyCode="EUR" CodeType="STDRATE"/>
      <RateComponents StayDay="1" ResGuestRPH="1" Code="SMS1" Edition="0" Rate="15" CurrencyCode="EUR" CodeType="EXTR"/>
      <!-- … additional days … -->
    </GuestDetails>
    <Totals>
      <Total TotalType="Price" CurrencyType="Price" CurrencyCode="EUR" AmountAfterTax="1050.00" Override="false"/>
    </Totals>
  </RateDetails>
```

#### BookingStatus

Reservation status echo (TPA namespace), typically `ReservationStatusType="Available"` for a successful Quote/Commit.

```xml theme={null}
  <ns1:BookingStatus xmlns:ns1="http://www.opentravel.org/OTA/2003/05/tpa" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:BookingStatusType" ReservationStatusType="Available"/>
```

#### Extras

Optional and included extras. Optional extras may be offered or booked; see `IncludedInRate`, `Applicability`, `Amount`, and `ResGuestRPH`.

## Complete Examples

<CodeGroup>
  ```xml Basic Expandable theme={null}
  <?xml version="1.0" encoding="UTF-8"?>
  <OTA_HotelResRS
      xmlns="http://www.opentravel.org/OTA/2003/05" Version="2008.1">
      <Success/>
      <HotelReservations>
          <HotelReservation>
              <RoomStays>
                  <RoomStay RPH="1" IndexNumber="1">
                      <RoomTypes>
                          <RoomType RoomTypeCode="RM00CRMV00">
                              <RoomDescription>
                                  <Text Language="EN">Standard Room</Text>
                              </RoomDescription>
                          </RoomType>
                      </RoomTypes>
                      <RoomRates>
                          <RoomRate RoomTypeCode="RM00CRMV00">
                              <Features>
                                  <Feature>
                                      <Description>
                                          <Text>BB</Text>
                                          <Text Language="EN">Breakfast</Text>
                                      </Description>
                                  </Feature>
                              </Features>
                          </RoomRate>
                      </RoomRates>
                      <BasicPropertyInfo HotelCode="AESPMI5L46" HotelName="Caserio de Lanzarote"/>
                      <TimeSpan End="2026-07-24" Start="2026-07-17"/>
                      <ResGuestRPHs>
                          <ResGuestRPH RPH="1"/>
                          <ResGuestRPH RPH="2"/>
                          <ResGuestRPH RPH="3"/>
                      </ResGuestRPHs>
                      <ServiceRPHs>
                          <ServiceRPH RPH="1"/>
                      </ServiceRPHs>
                      <Total CurrencyCode="EUR" AmountAfterTax="1050.00"/>
                  </RoomStay>
              </RoomStays>
              <Services>
                  <Service ServiceInventoryCode="BB" ServiceRPH="1"/>
              </Services>
              <ResGuests>
                  <ResGuest AgeQualifyingCode="10" ResGuestRPH="1">
                      <Profiles>
                          <ProfileInfo>
                              <Profile>
                                  <Customer BirthDate="1996-09-04">
                                      <PersonName>
                                          <NamePrefix>Mr</NamePrefix>
                                          <GivenName>Bender</GivenName>
                                          <Surname>Bending</Surname>
                                      </PersonName>
                                  </Customer>
                              </Profile>
                          </ProfileInfo>
                      </Profiles>
                      <GuestCounts>
                          <GuestCount Age="27"/>
                      </GuestCounts>
                  </ResGuest>
                  <ResGuest AgeQualifyingCode="10" ResGuestRPH="2">
                      <Profiles>
                          <ProfileInfo>
                              <Profile>
                                  <Customer BirthDate="1996-09-05">
                                      <PersonName>
                                          <NamePrefix>Mrs</NamePrefix>
                                          <GivenName>Angelina</GivenName>
                                          <Surname>Bending</Surname>
                                      </PersonName>
                                  </Customer>
                              </Profile>
                          </ProfileInfo>
                      </Profiles>
                      <GuestCounts>
                          <GuestCount Age="27"/>
                      </GuestCounts>
                  </ResGuest>
                  <ResGuest AgeQualifyingCode="8" ResGuestRPH="3">
                      <Profiles>
                          <ProfileInfo>
                              <Profile>
                                  <Customer BirthDate="2018-09-06">
                                      <PersonName>
                                          <NamePrefix>Jr</NamePrefix>
                                          <GivenName>Ben</GivenName>
                                          <Surname>Bending</Surname>
                                      </PersonName>
                                  </Customer>
                              </Profile>
                          </ProfileInfo>
                      </Profiles>
                      <GuestCounts>
                          <GuestCount Age="6"/>
                      </GuestCounts>
                  </ResGuest>
              </ResGuests>
              <ResGlobalInfo>
                  <Total CurrencyCode="EUR" AmountAfterTax="1050.00"/>
                  <Comments>
                      <Comment Name="Applicant Notice" CommentOriginatorCode="DISTRIBUTOR">
                          <Text>late arrival - flight lands at 22:55 local time</Text>
                      </Comment>
                  </Comments>
                  <HotelReservationIDs>
                      <HotelReservationID ResID_Type="36" ResID_SourceContext="Client" ResID_Value="TEST_XXX"/>
                      <HotelReservationID Item_RPH="1" ResID_Value="test_xxx_ac1" ResID_Type="37" ResID_SourceContext="Client"/>
                      <HotelReservationID Item_RPH="1" ResID_Value="1" ResID_Type="37" ResID_SourceContext="Internal"/>
                  </HotelReservationIDs>
                  <CancelPenalties>
                      <CancelPenalty Item_RPH="1">
                          <Deadline OffsetUnitMultiplier="6" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-11T00:00:00"/>
                          <AmountPercent Amount="367.50" CurrencyCode="EUR" BasisType="FullStay" Percent="35"/>
                      </CancelPenalty>
                      <CancelPenalty Item_RPH="1">
                          <Deadline OffsetUnitMultiplier="3" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-14T00:00:00"/>
                          <AmountPercent Amount="150.00" CurrencyCode="EUR" NmbrOfNights="1" Percent="100"/>
                      </CancelPenalty>
                      <CancelPenalty Item_RPH="1">
                          <Deadline OffsetUnitMultiplier="0" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-17T00:00:00"/>
                          <AmountPercent Amount="300.00" CurrencyCode="EUR" NmbrOfNights="2" Percent="100"/>
                      </CancelPenalty>
                  </CancelPenalties>
                  <BasicPropertyInfo HotelCodeContext="10121" AreaID="1012" HotelName="Caserio de Mozaga" HotelCode="AESPMI5L46">
                      <VendorMessages>
                          <VendorMessage Title="IncidentsAndErrata" InfoType="5">
                              <SubSection>
                                  <Paragraph>
                                      <Text>Due to the local logistics infrastructure, there is a possibility that your meeting point for arrival and departure  transfer may not be direct at the hotel door</Text>
                                  </Paragraph>
                              </SubSection>
                          </VendorMessage>
                      </VendorMessages>
                  </BasicPropertyInfo>
                  <Profiles>
                      <ProfileInfo>
                          <Profile>
                              <CompanyInfo>
                                  <CompanyName CompanyShortName="OTS Headquarter Office" CountryCode="AT" Code="OTSHQ"/>
                              </CompanyInfo>
                          </Profile>
                      </ProfileInfo>
                  </Profiles>
              </ResGlobalInfo>
              <TPA_Extensions>
                  <RateDetails>
                      <GuestDetails ResGuestRPH="1" TotalAmount="450.00" CurrencyCode="EUR" RateCode="Price">
                          <RateComponents StayDay="1" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="2" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="3" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="4" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="5" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="1" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                          <RateComponents StayDay="7" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="7" ResGuestRPH="1" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                      </GuestDetails>
                      <GuestDetails ResGuestRPH="2" TotalAmount="450.00" CurrencyCode="EUR" RateCode="Price">
                          <RateComponents StayDay="1" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="2" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="3" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="4" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="5" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="2" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                          <RateComponents StayDay="7" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="7" ResGuestRPH="2" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                      </GuestDetails>
                      <GuestDetails ResGuestRPH="3" TotalAmount="150.00" CurrencyCode="EUR" RateCode="Price">
                          <RateComponents StayDay="1" ResGuestRPH="3" Code="ACPR3" Edition="0" Rate="30.00" CurrencyCode="EUR" CodeType="PAX"/>
                          <RateComponents StayDay="2" ResGuestRPH="3" Code="ACPR3" Edition="0" Rate="30.00" CurrencyCode="EUR" CodeType="PAX"/>
                          <RateComponents StayDay="3" ResGuestRPH="3" Code="ACPR3" Edition="0" Rate="30.00" CurrencyCode="EUR" CodeType="PAX"/>
                          <RateComponents StayDay="4" ResGuestRPH="3" Code="ACPR3" Edition="0" Rate="30.00" CurrencyCode="EUR" CodeType="PAX"/>
                          <RateComponents StayDay="5" ResGuestRPH="3" Code="ACPR3" Edition="0" Rate="30.00" CurrencyCode="EUR" CodeType="PAX"/>
                          <RateComponents StayDay="6" ResGuestRPH="3" Code="ACPR3" Edition="0" Rate="30.00" CurrencyCode="EUR" CodeType="PAX"/>
                          <RateComponents StayDay="6" ResGuestRPH="3" Code="FSO1" Edition="0" Rate="-30.00" CurrencyCode="EUR" CodeType="OFF"/>
                          <RateComponents StayDay="7" ResGuestRPH="3" Code="ACPR3" Edition="0" Rate="30.00" CurrencyCode="EUR" CodeType="PAX"/>
                          <RateComponents StayDay="7" ResGuestRPH="3" Code="FSO1" Edition="0" Rate="-30.00" CurrencyCode="EUR" CodeType="OFF"/>
                      </GuestDetails>
                      <Totals>
                          <Total TotalType="Price" CurrencyType="Price" CurrencyCode="EUR" AmountAfterTax="1050.00" Override="false"/>
                      </Totals>
                  </RateDetails>
                  <ns1:BookingStatus
                      xmlns:ns1="http://www.opentravel.org/OTA/2003/05/tpa"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:BookingStatusType" ReservationStatusType="Available"/>
                      <Extras/>
                  </TPA_Extensions>
              </HotelReservation>
          </HotelReservations>
      </OTA_HotelResRS>
  ```

  ```xml Multiroom Expandable theme={null}
  <?xml version="1.0" encoding="UTF-8"?>
  <OTA_HotelResRS
      xmlns="http://www.opentravel.org/OTA/2003/05" Version="2008.1">
      <Success/>
      <HotelReservations>
          <HotelReservation>
              <RoomStays>
                  <RoomStay RPH="1" IndexNumber="1">
                      <RoomTypes>
                          <RoomType RoomTypeCode="RM00CRMV00">
                              <RoomDescription>
                                  <Text Language="EN">Standard Room</Text>
                              </RoomDescription>
                          </RoomType>
                      </RoomTypes>
                      <RoomRates>
                          <RoomRate RoomTypeCode="RM00CRMV00">
                              <Features>
                                  <Feature>
                                      <Description>
                                          <Text>BB</Text>
                                          <Text Language="EN">Breakfast</Text>
                                      </Description>
                                  </Feature>
                              </Features>
                          </RoomRate>
                      </RoomRates>
                      <BasicPropertyInfo HotelCode="AESPMI5L46" HotelName="Caserio de Lanzarote"/>
                      <TimeSpan End="2026-07-24" Start="2026-07-17"/>
                      <ResGuestRPHs>
                          <ResGuestRPH RPH="1"/>
                          <ResGuestRPH RPH="2"/>
                      </ResGuestRPHs>
                      <ServiceRPHs>
                          <ServiceRPH RPH="1"/>
                      </ServiceRPHs>
                      <Total CurrencyCode="EUR" AmountAfterTax="900.00"/>
                  </RoomStay>
                  <RoomStay RPH="2" IndexNumber="2">
                      <RoomTypes>
                          <RoomType RoomTypeCode="RMSDIN0000">
                              <RoomDescription>
                                  <Text Language="EN">SingleUse Standard Room</Text>
                              </RoomDescription>
                          </RoomType>
                      </RoomTypes>
                      <RoomRates>
                          <RoomRate RoomTypeCode="RMSDIN0000">
                              <Features>
                                  <Feature>
                                      <Description>
                                          <Text>BB</Text>
                                          <Text Language="EN">Breakfast</Text>
                                      </Description>
                                  </Feature>
                              </Features>
                          </RoomRate>
                      </RoomRates>
                      <BasicPropertyInfo HotelCode="AESPMI5L46" HotelName="Caserio de Lanzarote"/>
                      <TimeSpan End="2026-07-24" Start="2026-07-17"/>
                      <ResGuestRPHs>
                          <ResGuestRPH RPH="3"/>
                      </ResGuestRPHs>
                      <ServiceRPHs>
                          <ServiceRPH RPH="2"/>
                      </ServiceRPHs>
                      <Total CurrencyCode="EUR" AmountAfterTax="550.00"/>
                  </RoomStay>
              </RoomStays>
              <Services>
                  <Service ServiceInventoryCode="BB" ServiceRPH="1"/>
                  <Service ServiceInventoryCode="BB" ServiceRPH="2"/>
              </Services>
              <ResGuests>
                  <ResGuest AgeQualifyingCode="10" ResGuestRPH="1">
                      <Profiles>
                          <ProfileInfo>
                              <Profile>
                                  <Customer BirthDate="1996-09-04">
                                      <PersonName>
                                          <NamePrefix>Mr</NamePrefix>
                                          <GivenName>Bender</GivenName>
                                          <Surname>Bending</Surname>
                                      </PersonName>
                                  </Customer>
                              </Profile>
                          </ProfileInfo>
                      </Profiles>
                      <GuestCounts>
                          <GuestCount Age="27"/>
                      </GuestCounts>
                  </ResGuest>
                  <ResGuest AgeQualifyingCode="10" ResGuestRPH="2">
                      <Profiles>
                          <ProfileInfo>
                              <Profile>
                                  <Customer BirthDate="1996-09-05">
                                      <PersonName>
                                          <NamePrefix>Mrs</NamePrefix>
                                          <GivenName>Angelina</GivenName>
                                          <Surname>Bending</Surname>
                                      </PersonName>
                                  </Customer>
                              </Profile>
                          </ProfileInfo>
                      </Profiles>
                      <GuestCounts>
                          <GuestCount Age="27"/>
                      </GuestCounts>
                  </ResGuest>
                  <ResGuest AgeQualifyingCode="10" ResGuestRPH="3">
                      <Profiles>
                          <ProfileInfo>
                              <Profile>
                                  <Customer BirthDate="1986-09-06">
                                      <PersonName>
                                          <NamePrefix>Dr</NamePrefix>
                                          <GivenName>John</GivenName>
                                          <Surname>Zoidberg</Surname>
                                      </PersonName>
                                  </Customer>
                              </Profile>
                          </ProfileInfo>
                      </Profiles>
                      <GuestCounts>
                          <GuestCount Age="37"/>
                      </GuestCounts>
                  </ResGuest>
              </ResGuests>
              <ResGlobalInfo>
                  <Total CurrencyCode="EUR" AmountAfterTax="1450.00"/>
                  <Comments>
                      <Comment Name="Applicant Notice" CommentOriginatorCode="DISTRIBUTOR">
                          <Text>late arrival - flight lands at 22:55 local time</Text>
                      </Comment>
                  </Comments>
                  <HotelReservationIDs>
                      <HotelReservationID ResID_Type="36" ResID_SourceContext="Client" ResID_Value="TEST_XXX"/>
                      <HotelReservationID Item_RPH="1" ResID_Value="test_xxx_ac_1" ResID_Type="37" ResID_SourceContext="Client"/>
                      <HotelReservationID Item_RPH="1" ResID_Value="1" ResID_Type="37" ResID_SourceContext="Internal"/>
                      <HotelReservationID Item_RPH="2" ResID_Value="test_xxx_ac_2" ResID_Type="37" ResID_SourceContext="Client"/>
                      <HotelReservationID Item_RPH="2" ResID_Value="2" ResID_Type="37" ResID_SourceContext="Internal"/>
                  </HotelReservationIDs>
                  <CancelPenalties>
                      <CancelPenalty Item_RPH="1">
                          <Deadline OffsetUnitMultiplier="6" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-11T00:00:00"/>
                          <AmountPercent Amount="315.00" CurrencyCode="EUR" BasisType="FullStay" Percent="35"/>
                      </CancelPenalty>
                      <CancelPenalty Item_RPH="1">
                          <Deadline OffsetUnitMultiplier="3" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-14T00:00:00"/>
                          <AmountPercent Amount="128.57" CurrencyCode="EUR" NmbrOfNights="1" Percent="100"/>
                      </CancelPenalty>
                      <CancelPenalty Item_RPH="1">
                          <Deadline OffsetUnitMultiplier="0" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-17T00:00:00"/>
                          <AmountPercent Amount="257.14" CurrencyCode="EUR" NmbrOfNights="2" Percent="100"/>
                      </CancelPenalty>
                      <CancelPenalty Item_RPH="2">
                          <Deadline OffsetUnitMultiplier="6" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-11T00:00:00"/>
                          <AmountPercent Amount="192.50" CurrencyCode="EUR" BasisType="FullStay" Percent="35"/>
                      </CancelPenalty>
                      <CancelPenalty Item_RPH="2">
                          <Deadline OffsetUnitMultiplier="3" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-14T00:00:00"/>
                          <AmountPercent Amount="78.57" CurrencyCode="EUR" NmbrOfNights="1" Percent="100"/>
                      </CancelPenalty>
                      <CancelPenalty Item_RPH="2">
                          <Deadline OffsetUnitMultiplier="0" OffsetTimeUnit="Day" OffsetDropTime="BeforeArrival" AbsoluteDeadline="2026-07-17T00:00:00"/>
                          <AmountPercent Amount="157.14" CurrencyCode="EUR" NmbrOfNights="2" Percent="100"/>
                      </CancelPenalty>
                  </CancelPenalties>
                  <BasicPropertyInfo HotelCodeContext="10121" AreaID="1012" HotelName="Caserio de Mozaga" HotelCode="AESPMI5L46">
                      <VendorMessages>
                          <VendorMessage Title="IncidentsAndErrata" InfoType="5">
                              <SubSection>
                                  <Paragraph>
                                      <Text>Due to the local logistics infrastructure, there is a possibility that your meeting point for arrival and departure  transfer may not be direct at the hotel door</Text>
                                  </Paragraph>
                              </SubSection>
                          </VendorMessage>
                      </VendorMessages>
                  </BasicPropertyInfo>
                  <Profiles>
                      <ProfileInfo>
                          <Profile>
                              <CompanyInfo>
                                  <CompanyName CompanyShortName="OTS Headquarter Office" CountryCode="AT" Code="OTSHQ"/>
                              </CompanyInfo>
                          </Profile>
                      </ProfileInfo>
                  </Profiles>
              </ResGlobalInfo>
              <TPA_Extensions>
                  <RateDetails>
                      <GuestDetails ResGuestRPH="1" TotalAmount="450.00" CurrencyCode="EUR" RateCode="Price">
                          <RateComponents StayDay="1" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="2" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="3" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="4" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="5" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="1" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                          <RateComponents StayDay="7" ResGuestRPH="1" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="7" ResGuestRPH="1" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                      </GuestDetails>
                      <GuestDetails ResGuestRPH="2" TotalAmount="450.00" CurrencyCode="EUR" RateCode="Price">
                          <RateComponents StayDay="1" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="2" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="3" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="4" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="5" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="2" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                          <RateComponents StayDay="7" ResGuestRPH="2" Code="AMT1" Edition="0" Rate="90.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="7" ResGuestRPH="2" Code="FSO1" Edition="0" Rate="-90.00" CurrencyCode="EUR" CodeType="OFF"/>
                      </GuestDetails>
                      <GuestDetails ResGuestRPH="3" TotalAmount="550.00" CurrencyCode="EUR" RateCode="Price">
                          <RateComponents StayDay="1" ResGuestRPH="3" Code="AMT2" Edition="0" Rate="110.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="2" ResGuestRPH="3" Code="AMT2" Edition="0" Rate="110.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="3" ResGuestRPH="3" Code="AMT2" Edition="0" Rate="110.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="4" ResGuestRPH="3" Code="AMT2" Edition="0" Rate="110.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="5" ResGuestRPH="3" Code="AMT2" Edition="0" Rate="110.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="3" Code="AMT2" Edition="0" Rate="110.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="6" ResGuestRPH="3" Code="FSO1" Edition="0" Rate="-110.00" CurrencyCode="EUR" CodeType="OFF"/>
                          <RateComponents StayDay="7" ResGuestRPH="3" Code="AMT2" Edition="0" Rate="110.00" CurrencyCode="EUR" CodeType="STDRATE"/>
                          <RateComponents StayDay="7" ResGuestRPH="3" Code="FSO1" Edition="0" Rate="-110.00" CurrencyCode="EUR" CodeType="OFF"/>
                      </GuestDetails>
                      <Totals>
                          <Total TotalType="Price" CurrencyType="Price" CurrencyCode="EUR" AmountAfterTax="900.00" Override="false"/>
                          <Total TotalType="Price" CurrencyType="Price" CurrencyCode="EUR" AmountAfterTax="550.00" Override="false"/>
                      </Totals>
                  </RateDetails>
                  <ns1:BookingStatus
                      xmlns:ns1="http://www.opentravel.org/OTA/2003/05/tpa"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns1:BookingStatusType" ReservationStatusType="Available"/>
                      <Extras/>
                  </TPA_Extensions>
              </HotelReservation>
          </HotelReservations>
      </OTA_HotelResRS>
  ```
</CodeGroup>

## Best Practices

1. Always supply a unique partner reference (`ResID_Type="36"`) and reuse it for cancel/read operations.
2. Use `ResStatus="Quote"` before `Commit` to confirm pricing, availability, and penalties.
3. Provide `NamePrefix` for all adult guests and keep guest ordering consistent across rooms and services.
4. Link rooms, guests and services using `RPH` consistently; use `CancelPenalty@Item_RPH` to map policies to rooms.
5. For multi-room bookings, include each room as a separate `RoomStay` (up to 5 rooms) so combined availability is validated.
6. When booking optional extras, include them in the request and consume them from `TPA_Extensions/Extras` in the response.
