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

The OTA\_HotelResModifyRQ (Hotel Reservation **Modify** Request) is used to request changes to an existing booking. It supports lightweight updates (minor changes) as well as recalculation-triggering updates (major changes).

<Warning> This feature is only supported for hotel bookings. </Warning>

<Tip>Already know OTA messages? Jump straight into Testing.</Tip>

<Card title="OTA_HotelResModify API call" icon="comment" href="/api-reference/endpoint/bookingmgmt/modify" arrow="true" horizontal>
  Skip & Hit the Playground.
</Card>

## Purpose

This message is used to:

* Apply **minor changes** without recalculating prices.
* Initiate **major changes** that **recalculate** the booking and may change price and cancellation terms.
* Carry partner and child references that tie the modification to the original booking.
* Occupancy changes are not allowed via OTA Modify.

## Supported Changes

### Minor Changes

* Name change of a **non lead** pax (Change name, surname or prefix).
* Change minor details of any pax (email, telphone number, address, fax).
* Comments / Booking notes can be added. Existing ones can not be deleted nor modified.

### Major Changes

* Room can be changed if the conditions allow it.
* Board change.
* Dates change.

<Warning> All the Major Changes are subject to availability, conditions, and will trigger a recalculation based on the current status of the contract. </Warning>

## Non-Supported Changes

Changes that are not allowed via HotelResModify.

Cancel and rebook:

* Occupancy changes: add or remove passengers.
* Birthdate changes: change the birthdate of a pax, possibly changing its age group.
* Lead Pax name.
* Accomodation change.

Viable with other methods:

* Adding a room: Should be done using [Master and Child References](../general/messaging#master-and-child-references).
* Cancel a room: [Partial Cancelation](./bookCancelRQ) should be used.

## Structure – Root Element

```xml theme={null}
<OTA_HotelResModifyRQ>
```

**Key Attributes:**

* `ResStatus`: `Quote` (preview) or `Commit` (apply changes).
* `Version`: OTA message version (e.g., "2008.1").
* `PrimaryLangID`: ISO 639 language code (optional).
* `xmlns`: "[http://www.opentravel.org/OTA/2003/05](http://www.opentravel.org/OTA/2003/05)".

## Structure – Core Elements

### POS (Point of Sale)

Identifies the requesting party and includes credentials.

```xml theme={null}
<POS>
  <Source>
    <RequestorID ID_Context="AxisData" Type="22" ID="TEST"/>
  </Source>
  <Source>
    <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
  </Source>
</POS>
```

### HotelResModify

Container for one modification transaction and its content. Very similar to the OTA\_HotelResModifyRQ.

#### RoomStay

Defines the room(s) being modified and links them to guests and services.

```xml theme={null}
<RoomStays>
  <RoomStay RPH="1">
    <RoomTypes>
      <RoomType RoomTypeCode="RM00CRMV00;0P000"/>
    </RoomTypes>
    <TimeSpan End="2026-07-24" Start="2026-07-17"/>
    <BasicPropertyInfo HotelCode="AESPMI5L46"/>
    <ResGuestRPHs>
      <ResGuestRPH RPH="1"/>
      <ResGuestRPH RPH="2"/>
      <ResGuestRPH RPH="3"/>
    </ResGuestRPHs>
    <ServiceRPHs>
      <ServiceRPH RPH="1"/>
    </ServiceRPHs>
  </RoomStay>
</RoomStays>
```

#### Service

Non-room services linked to a room or guests (e.g., meal plan code at booking level).

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

#### ResGuest

Passenger details linked by `ResGuestRPH`.

```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 Count="1" Age="27"/>
    </GuestCounts>
  </ResGuest>
  <ResGuest AgeQualifyingCode="10" ResGuestRPH="2">
    <Profiles>
      <ProfileInfo>
        <Profile>
          <Customer BirthDate="1996-09-05">
            <PersonName>
              <NamePrefix>Dr</NamePrefix>
              <GivenName>John</GivenName>
              <Surname>Zoidberg</Surname>
            </PersonName>
          </Customer>
        </Profile>
      </ProfileInfo>
    </Profiles>
    <GuestCounts>
      <GuestCount Count="1" 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 Count="1" Age="6"/>
    </GuestCounts>
  </ResGuest>
</ResGuests>
```

#### ResGlobalInfo

Booking-level info such as comments and references.

```xml theme={null}
<ResGlobalInfo>
  <Comments>
    <Comment Name="Applicant Notice">
      <Text>late arrival - flight lands at 22:55 local time</Text>
    </Comment>
    <Comment Name="Applicant Notice">
      <Text>Silent top floor non-smoking room please</Text>
    </Comment>
  </Comments>
  <HotelReservationIDs>
    <HotelReservationID ResID_SourceContext="Client" ResID_Type="36" ResID_Value="TEST_AXIS"/>
    <HotelReservationID Item_RPH="1" ResID_SourceContext="Client" ResID_Type="37" ResID_Value="TEST_AXIS_ac1"/>
  </HotelReservationIDs>
</ResGlobalInfo>
```

## Process & Rules

* **Always start with an OTA\_ReadRQ** to fetch the current state before modifying.
* Validate that immutable identifiers **match the original booking**: distributor reference, lead pax first/last name, ClientID, and HotelCode.
* Use `ResStatus="Quote"` first to preview recalculation and upgrade offers; send `ResStatus="Commit"` to apply.
* If the connected supplier **does not support modifications**, expect an error (e.g., *modification not possible*) and perform cancel + rebook under the same distributor reference with a new child reference.
* **Minor changes** (e.g., comments, non-lead pax name, contact details) do **not** trigger recalculation.
* **Major changes** (e.g., room/board change, dates, optional extras) **do** trigger recalculation; pricing and cancel penalties may change.

## Complete Example

<CodeGroup>
  ```xml Modify expandable highlight={57-59, 93-95} theme={null}
  <OTA_HotelResModifyRQ xmlns="http://www.opentravel.org/OTA/2003/05" ResStatus="Quote" Version="2008.1" PrimaryLangID="EN">
    <POS>
      <Source>
        <RequestorID ID_Context="AxisData" Type="22" ID="TEST"/>
      </Source>
      <Source>
        <RequestorID Type="88" ID="TEST" MessagePassword="testpass"/>
      </Source>
    </POS>
    <HotelResModifies>
      <HotelResModify>
        <RoomStays>
          <RoomStay RPH="1">
            <RoomTypes>
              <RoomType RoomTypeCode="RM00CRMV00;0P000"/>
            </RoomTypes>
            <TimeSpan End="2026-07-24" Start="2026-07-17"/>
            <BasicPropertyInfo HotelCode="AESPMI5L46"/>
            <ResGuestRPHs>
              <ResGuestRPH RPH="1"/>
              <ResGuestRPH RPH="2"/>
              <ResGuestRPH RPH="3"/>
            </ResGuestRPHs>
            <ServiceRPHs>
              <ServiceRPH RPH="1"/>
            </ServiceRPHs>
          </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 Count="1" Age="27"/>
            </GuestCounts>
          </ResGuest>
          <ResGuest AgeQualifyingCode="10" ResGuestRPH="2">
            <Profiles>
              <ProfileInfo>
                <Profile>
                  <Customer BirthDate="1996-09-05">
                    <PersonName>
                      <NamePrefix>Dr</NamePrefix>
                      <GivenName>John</GivenName>
                      <Surname>Zoidberg</Surname>
                    </PersonName>
                  </Customer>
                </Profile>
              </ProfileInfo>
            </Profiles>
            <GuestCounts>
              <GuestCount Count="1" 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 Count="1" Age="6"/>
            </GuestCounts>
          </ResGuest>
        </ResGuests>
        <ResGlobalInfo>
          <Comments>
            <Comment Name="Applicant Notice">
              <Text>late arrival - flight lands at 22:55 local time</Text>
            </Comment>
            <Comment Name="Applicant Notice">
              <Text>Silent top floor non-smoking room please</Text>
            </Comment>
          </Comments>
          <HotelReservationIDs>
            <HotelReservationID ResID_SourceContext="Client" ResID_Type="36" ResID_Value="TEST_AXIS"/>
            <HotelReservationID Item_RPH="1" ResID_SourceContext="Client" ResID_Type="37" ResID_Value="TEST_AXIS_ac1"/>
          </HotelReservationIDs>
        </ResGlobalInfo>
      </HotelResModify>
    </HotelResModifies>
  </OTA_HotelResModifyRQ>
  ```
</CodeGroup>

## Best Practices

1. Send `Quote` first; only `Commit` after user confirmation.
2. Keep **references stable**: do not change distributor/child references when not required.
3. Maintain **consistent guest ordering** and RPH linking between `RoomStay`, `Services`, and `ResGuests`.
4. Limit comments to operationally relevant notes; use `Name="Applicant Notice"` when adding comments.

## Playground

<Card title="OTA_HotelResModify API call" icon="comment" href="/api-reference/endpoint/bookingmgmt/modify" arrow="true" horizontal>
  Skip & Hit the Playground.
</Card>

<Tip>Use the examples to hit the TEST environment;     </Tip>
