Skip to main content
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).
This feature is only supported for hotel bookings.
Already know OTA messages? Jump straight into TST1ing.

OTA_HotelResModify API call

Skip & Hit the Playground.

Purpose

This message is used to:
  • Apply minor changes (e.g., add booking comments, update a non-lead passenger name, change contact details) without recalculating prices.
  • Initiate major changes (e.g., room/board upgrades, occupancy/date 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.

Structure – Root Element

<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”.

Structure – Core Elements

POS (Point of Sale)

Identifies the requesting party and includes credentials.
<POS>
  <Source>
    <RequestorID ID_Context="AxisData" Type="22" ID="TST1"/>
  </Source>
  <Source>
    <RequestorID Type="88" ID="TST1" MessagePassword="TST1password?"/>
  </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.
<RoomStays>
  <RoomStay RPH="1">
    <RoomTypes>
      <RoomType RoomTypeCode="RMSD000000;0P000"/>
    </RoomTypes>
    <TimeSpan End="2026-07-24" Start="2026-07-17"/>
    <BasicPropertyInfo HotelCode="AMTSES08UI"/>
    <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).
<Services>
  <Service ServiceInventoryCode="BB" ServiceRPH="1"/>
</Services>

ResGuest

Passenger details linked by ResGuestRPH.
<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.
<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="TST1_AXIS"/>
    <HotelReservationID Item_RPH="1" ResID_SourceContext="Client" ResID_Type="37" ResID_Value="TST1_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

<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="TST1"/>
    </Source>
    <Source>
      <RequestorID Type="88" ID="TST1" MessagePassword="TST1password?"/>
    </Source>
  </POS>
  <HotelResModifies>
    <HotelResModify>
      <RoomStays>
        <RoomStay RPH="1">
          <RoomTypes>
            <RoomType RoomTypeCode="RMSD000000;0P000"/>
          </RoomTypes>
          <TimeSpan End="2026-07-24" Start="2026-07-17"/>
          <BasicPropertyInfo HotelCode="AMTSES08UI"/>
          <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="TST1_AXIS"/>
          <HotelReservationID Item_RPH="1" ResID_SourceContext="Client" ResID_Type="37" ResID_Value="TST1_AXIS_ac1"/>
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelResModify>
  </HotelResModifies>
</OTA_HotelResModifyRQ>

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

OTA_HotelResModify API call

Skip & Hit the Playground.
Use the examples to hit the TST1 environment;