OTA_HotelResModifyNotifRQ/RS

OTA_HotelResModifyNotifRQ

This is a request message for modifying a reservation. It is used for a full overlay of the reservation. When changing data that requires an availability check, this message assumes the availability is known (if availability is not known an availability check containing the reservation ID may be useful).

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResModifyNotifRQ PrimaryLangID="eng" Target="Production" TimeStamp="2018-07-29T07:38:54.729Z" Version="1.0">
  <POS>
    <Source AgentDutyCode="OTA">
      <RequestorID ID="APIKEY" MessagePassword="APIPASSWORD"/>
    </Source>
  </POS>
  <HotelResModifies>
    <HotelResModify ResStatus="Modify" CreateDateTime="2018-09-22T08:26:21" LastModifyDateTime="2018-09-22T08:27:06">
      <RoomStays>
        <RoomStay IndexNumber="401">
          <RoomTypes>
            <RoomType RoomTypeCode="23456" NumberOfUnits="1" />
          </RoomTypes>
          <RoomRates>
            <RoomRate RatePlanCode="1">
              <Rates>
                <Rate EffectiveDate="2018-10-11">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-12">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-13">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
              </Rates>
            </RoomRate>
          </RoomRates>
          <RatePlans>
            <RatePlan>
              <MealsIncluded MealPlanCodes="12" />
              <Commission>
                <CommissionPayableAmount Amount="5355" DecimalPlaces="3" CurrencyCode="EUR"/>
              </Commission>
            </RatePlan>
          </RatePlans>
          <GuestCounts>
            <GuestCount AgeQualifyingCode="10" Count="2" isPerRoom="true" />
          </GuestCounts>
          <TimeSpan Start="2018-10-11" End="2018-10-13" />
          <Comments>
            <Comment>
              <Text>
                <![CDATA[Fictional comment]]>
              </Text>
            </Comment>
            <Comment>
              <Text>
                <![CDATA[Another fictional comment]]>
              </Text>
            </Comment>
          </Comments>
          <SpecialRequests>
            <SpecialRequest>
              <Text>
                <![CDATA[Smoking preference : Non-Smoking]]>
              </Text>
            </SpecialRequest>
          </SpecialRequests>
          <Total AmountAfterTax="28500" AmountBeforeTax="33000" CurrencyCode="EUR" DecimalPlaces="2" />
          <ResGuestRPHs>
            <ResGuestRPH RPH="1" />
          </ResGuestRPHs>
        </RoomStay>
        <RoomStay IndexNumber="402">
          <RoomTypes>
            <RoomType RoomTypeCode="23457" NumberOfUnits="1" />
          </RoomTypes>
          <RoomRates>
            <RoomRate RatePlanCode="1">
              <Rates>
                <Rate EffectiveDate="2018-10-11">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-12">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
                <Rate EffectiveDate="2018-10-13">
                  <Base AmountAfterTax="9500" AmountBeforeTax="9000" CurrencyCode="EUR" DecimalPlaces="2" />
                </Rate>
              </Rates>
            </RoomRate>
          </RoomRates>
          <RatePlans>
            <RatePlan>
              <MealsIncluded MealPlanCodes="12" />
              <Commission>
                <CommissionPayableAmount Amount="5355" DecimalPlaces="3" CurrencyCode="EUR"/>
              </Commission>
            </RatePlan>
          </RatePlans>
          <GuestCounts>
            <GuestCount AgeQualifyingCode="10" Count="2" isPerRoom="true" />
          </GuestCounts>
          <TimeSpan Start="2018-10-11" End="2018-10-13" />
          <Comments>
            <Comment>
              <Text>
                <![CDATA[Fictional comment]]>
              </Text>
            </Comment>
            <Comment>
              <Text>
                <![CDATA[Another fictional comment ]]>
              </Text>
            </Comment>
          </Comments>
          <SpecialRequests>
            <SpecialRequest>
              <Text>
                <![CDATA[Smoking preference : Non-Smoking]]>
              </Text>
            </SpecialRequest>
          </SpecialRequests>
          <Total AmountAfterTax="28500" AmountBeforeTax="33000" CurrencyCode="EUR" DecimalPlaces="2">
            <Taxes>
              <Tax Amount="2030" CurrencyCode="EUR" DecimalPlaces="2" />
            </Taxes>
          </Total>
          <ResGuestRPHs>
            <ResGuestRPH RPH="2" />
          </ResGuestRPHs>
        </RoomStay>
      </RoomStays>
      <ResGuests>
        <ResGuest ResGuestRPH="1">
          <Profiles>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[John]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Smith]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jane]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Smith]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
          </Profiles>
        </ResGuest>
        <ResGuest ResGuestRPH="2">
          <Profiles>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[John]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jane]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
            <ProfileInfo>
              <Profile>
                <Customer>
                  <PersonName>
                    <GivenName>
                      <![CDATA[Jake]]>
                    </GivenName>
                    <Surname>
                      <![CDATA[Doe]]>
                    </Surname>
                  </PersonName>
                </Customer>
              </Profile>
            </ProfileInfo>
          </Profiles>
        </ResGuest>
      </ResGuests>
      <ResGlobalInfo>
        <Profiles>
          <ProfileInfo>
            <Profile ProfileType="1">
              <Customer Gender="Male" BirthDate="1955-08-01">
                <PersonName>
                  <GivenName>
                    <![CDATA[John]]>
                  </GivenName>
                  <Surname>
                    <![CDATA[Doe]]>
                  </Surname>
                </PersonName>
                <Telephone PhoneNumber="+31307820590" />
                <Email>j.doe@gmail.com</Email>
                <Address>
                  <StreetNmbr>Orteliuslaan 19</StreetNmbr>
                  <CityName>Utrecht</CityName>
                  <PostalCode>3528 BA</PostalCode>
                  <CountryName>NL</CountryName>
                  <CompanyName>Smarthotel</CompanyName>
                </Address>
              </Customer>
            </Profile>
          </ProfileInfo>
        </Profiles>
        <Comments>
          <Comment>
            <Text>
              <![CDATA[Comment that will be displayed on the reservation.]]>
            </Text>
          </Comment>
        </Comments>
        <Guarantee>
          <GuaranteesAccepted>
            <GuaranteeAccepted>
              <PaymentCard CardCode="VI" CardNumber="4444444444444444" SeriesCode="333" ExpireDate="0919" CurrentBalance="28500" DecimalPlaces="2" EffectiveDate="2018-10-11" VCCExpirationDate="2019-01-14">
                <CardHolderName>John Smith</CardHolderName>
              </PaymentCard>
            </GuaranteeAccepted>
          </GuaranteesAccepted>
        </Guarantee>
        <Total AmountAfterTax="28500" CurrencyCode="EUR" DecimalPlaces="2" />
        <BasicPropertyInfo HotelCode="12345" />
        <HotelReservationIDs>
          <HotelReservationID ResID_Value="your-unique-reference" ResID_Type="14" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelResModify>
  </HotelResModifies>
</OTA_HotelResModifyNotifRQ>
Element / @Attribute Parent Info Values Occurrence
HotelResModifies OTA_HotelResModifyNotifRQ 1
HotelResModify HotelResModifies 1..n
@ResStatus HotelResModify Modify 1
@CreateDateTime HotelResModify [yyyy-MM-ddTHH:mm:ss] 1
@LastModifyDateTime HotelResModify [yyyy-MM-ddTHH:mm:ss] 1
RoomStays HotelResModify 1
RoomStay RoomStays 1..n
@IndexNumber RoomStay Please find the description on how to use the IndexNumber under this table 1..65535 0..1
RoomTypes RoomStays 1
RoomType RoomTypes 1..n
@RoomTypeCode RoomType 1
@NumberOfUnits RoomType 1..n 1
RoomRates RoomStay 1
RoomRate RoomRates 1..n
@RatePlanCode RoomRate 1
Rates RoomRate 1
Rate Rates 1
@EffectiveDate Rate [yyyy-MM-dd] 1
Base Rate 1
@AmountAfterTax Base No decimal point: 120.50 becomes 12050 1
@AmountBeforeTax Base No decimal point: 120.50 becomes 12050 1
@CurrencyCode Base EUR, GBP, USD, ... Refer to ISO 4217 1
@DecimalPlaces Base 2 1
RatePlans RoomStay 1
RatePlan RatePlans 0..1
MealsIncluded MealsIncluded 0..1
@MealPlanCodes MealsIncluded Refer to OpenTravel Code List Meal Plan Type (MPT) 1
Commission RatePlan 1
CommissionPayableAmount Commission 1
@Amount CommissionPayableAmount 1
@DecimalPlaces CommissionPayableAmount 1
@CurrencyCode CommissionPayableAmount 1
GuestCounts RoomStay 1
GuestCount GuestCounts 1..n
@AgeQualifyingCode GuestCount Refer to OpenTravel Code List Age Qualifying Code (AQC) 1
@Count GuestCount 1..n 1
TimeSpan RoomStay 1
@Start TimeSpan [yyyy-MM-dd] 1
@End TimeSpan [yyyy-MM-dd] 1
Comments RoomStay 0..1
Comment Comments 1..n
Text Comment Comment included as CDATA, to prevent invalid characters from breaking the XML. 1
SpecialRequests RoomStay 0..n
SpecialRequest SpecialRequests 1..n
Text SpecialRequest Request included as CDATA, to prevent invalid characters from breaking the XML. 1
Total RoomStay Total of the RoomStay 1
@AmountAfterTax Total No decimal point: 120.50 becomes 12050 1
@AmountBeforeTax Total No decimal point: 120.50 becomes 12050 1
@CurrencyCode Total EUR, GBP, USD, ... Refer to ISO 4217 1
@DecimalPlaces Total 2 1
Taxes Total 0..1
Tax Tax 1
@Amount Tax No decimal point: 120.50 becomes 12050 1
@DecimalPlaces Tax 2 1
@CurrencyCode Tax EUR, GBP, USD, ... Refer to ISO 4217 1
ResGuestRPHs RoomStay Reference which ResGuest is in which RoomStay 1
@RPH ResGuestRPH The reference number of the guest. Must stay consistent with the RPH values defined in ResGuest. 1
ResGuests HotelResModify 1
ResGuest Resguests 1..n
@ResguestRPH ResGuest 1
Profiles ResGuest 1
ProfileInfo Profiles 1..n
Profile ProfileInfo 1
Customer Profile 1
PersonName Customer 1
GivenName PersonName GivenName included as CDATA, to prevent invalid characters from breaking the XML. 1
SurName PersonName Surname included as CDATA, to prevent invalid characters from breaking the XML. 1
ResGlobalInfo HotelResModify 1
Profiles ResGlobalInfo Contains the data of the booker 1
Profile Profiles 1..n
@ProfileType Profile Refer to OpenTravel Code List Profile Types (PRT) 1
Customer Profile 1
@Gender Customer Male
Female
0..1
@BirthDate Customer [yyyy-MM-dd] 0..1
PersonName Customer 0..1
GivenName PersonName GivenName included as CDATA, to prevent invalid characters from breaking the XML. 1
SurName PersonName SurName included as CDATA, to prevent invalid characters from breaking the XML. 1
Telephone Customer 0..1
@PhoneNumber Telephone 1
Email Customer 0..1
Address Customer 0..1
StreetNmbr Address 1
CityName Address 1
PostalCode Address 1
CountryName Address The code of a country (e.g. NL). Refer to ISO 3166-1 alpha-2 1
CompanyName Address 0..1
Comments ResGlobalInfo 1
Comment Comments Comment included as CDATA, to prevent invalid characters from breaking the XML. 1..n
Text Comment 1
Guarantee ResGlobalInfo Credit card details related to the reservation 0..1
GuaranteesAccepted Guarantee 1
PaymentCard GuaranteesAccepted 1
@CardCode PaymentCard VI, MC , ... Refer to Code List Card Code 1
@CardNumber PaymentCard 1
@ExpireDate PaymentCard [MMyy] 1
@CurrentBalance PaymentCard Virtual credit card amount. No decimal point: 120.50 becomes 12050. 0..1
@DecimalPlaces PaymentCard Virtual credit card decimal places for CurrentBalance. 0..1
@EffectiveDate PaymentCard The date the virtual credit card can be charged. [yyyy-MM-dd] 0..1
@VCCExpirationDate PaymentCard The date until when the virtual credit card can be charged. [yyyy-MM-dd] 0..1
CardHolderName PaymentCard The credit card holder name [string] 1
Total ResGlobalInfo Reservation total 1
@AmountAfterTax Total No decimal point: 120.50 becomes 12050 1
@AmountBeforeTax Total No decimal point: 120.50 becomes 12050 1
@CurrencyCode Total EUR, GBP, USD, ... Refer to ISO 4217 1
@DecimalPlaces Total 2 1
BasicPropertyInfo ResGlobalInfo 1
@HotelCode BasicPropertyInfo The hotel code that identifies this hotel (PIN code). 1
HotelreservationIDs ResGlobalInfo 1
HotelReservationID HotelReservationIDs 1
ResID_Value HotelReservationID The reservation number supplied by the OTA. The same reservation number must be used for the lifespan of the reservation through all its possible mutations (modifications and cancellation). 1
ResID_Type HotelReservationID 14 1

How to use IndexNumber

Explanation on how to use IndexNumber, as these numbers always need to be unique throughout the booking process, to modify and cancel per RoomStay.

Example:

  • Reservation with 2 room stays, one has IndexNumber 123 and the other has 456.
  • Then a modification is created with 3 room stays, IndexNumbers 123, 456 and 789. This means the first 2 were modified and 789 is a new room stay.
  • Following a new modification with 4 room stays IndexNumbers 789, 145, 658, 987. 789 was modified, 123 and 456 were canceled and 145, 658 and 987 were booked.

OTA_HotelResModifyNotifRS

This is the response message for a full overlay modification to a reservation. The response could be as simple as indicating the modification was made or as complex as echoing back all reservation information.

Success:

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResModifyNotifRS>
  <Success />
  <HotelReservations>
    <HotelReservation>
      <UniqueID Type="14" ID="your-unique-reference" />
      <ResGlobalInfo>
        <HotelReservationIDs>
          <HotelReservationID ResID_Type="14" ResID_Value="1160" />
        </HotelReservationIDs>
      </ResGlobalInfo>
    </HotelReservation>
  </HotelReservations>
</OTA_HotelResmodifyNotifRS>

Error:

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelResModifyNotifRS>
  <Errors>
    <Error Code="11">
      <Text>No ID was found for hotel with code 12345.</Text>
    </Error>
  </Errors>
</OTA_HotelResModifyNotifRS>
Element / @Attribute Parent Info Values Occurrence
Success OTA_HotelResModifyNotifRS Only there if reservation was added successfully 0..1
Errors OTA_HotelResModifyNotifRS Only if the reservation was not added 0..1
Error Errors 1..n
@Code Error 1
Text Error
HotelReservations OTA_HotelResModifyNotifRS 0..1
HotelReservation HotelReservations 1..n
UniqueID HotelReservation 1
@Type UniqueID 14 1
@ID UniqueID Reservation number supplied by the OTA 1
ResGlobalInfo HotelReservation 1
HotelReservationIDs ResGlobalInfo 1
HotelReservationID HotelReservationIDs 1..n
@ResID_Type HotelReservationID 14 1
@ResID_Value HotelReservationID Reservation ID from the Channel manager 1