Multi-Room Reservations
This article provides the finer details of sending multi-reservation requests through the OTA_HotelResNotifRQ.
Sending a Multi-Room Reservation
To make a new single/multi-room reservation the following rules apply:
- The value for ResStatus attribute should be set to BOOK (Legacy clients, can continue to send COMMIT).
- The payload must contain a RoomStay node corresponding to each room that is booked in a single reservation request.
- Each RoomStay node will now contain an attribute RoomStatus. For the initial Booking Request, it must be set to BOOK. Please refer to the table below for the various scenarios for bookings/modifications/cancellations and the expected values.
- Multiple rooms in a single reservation can be booked against different Rateplans; however, they are ALL limited to picking either refundable or nonrefundable Rateplans. Violation of this rule will reject the entire reservation and no rooms will be booked.
- The NumberofUnits attribute has been deprecated and need not be sent. (Legacy clients can continue to send this value as 1)
Refer to Example 1 in the Examples section below for an XML sample for sending a multi-room reservation request.
Canceling a Multi-Room Reservation
To send a request to cancel ALL currently active rooms in a multi-room reservation or a single room reservation, the OTA_HotelResNotifRQ.ResStatus should be sent as CANCEL. In this case, individual RoomStay nodes are not required and will be ignored if sent (in case the client mistakenly sends a room to be added or modified). Similar to the prior API specifications, the HotelReservation/UniqueID provided by the Client at the time of making the reservation must be sent in the same node.
Refer to Example 5 in the Examples section below for an XML sample for sending a request to cancel reservations containing multiple rooms.
Modifying a Single/Multi-Room Reservation
This section outlines the various actions that can be taken on each room in the Reservation. Actions allowed for each Room are:
- Add a Room to the reservation
- Cancel an existing Room(s)
- Modify an existing Room(s)
The Client system is required to send only the RoomStay nodes that are to be modified. Any unmodified RoomStay nodes need not be sent. Each RoomStay that is being actioned in the payload must have its own RoomStay node. Each RoomStay must then contain a RoomStatus attribute. To make these modifications, the OTA_HotelResNotifRQ.ResStatus must be set to MODIFY and RoomStay.RoomStatus attribute will have one of the following values:
- RoomStay.RoomStatus=CANCEL, for any room that is to be canceled from the existing reservation. Note, if a RoomStay canceled is the last active room in the reservation then the entire reservation will be marked canceled.
- RoomStay.RoomStatus=BOOK, for any room that is to be added to an existing reservation
- RoomStay.RoomStatus=MODIFY, for any room that is to be modified from its previously booked state
The following table explains the values that need to be set for the ResStatus and RoomStatus attributes at the OTA_HotelResNotifRQ and RoomStay level for the cancellation/modification request.
Scenario | OTA_HotelResNotifRQ | RoomStay | Samples |
---|---|---|---|
Cancelling a room in a reservation | ResStatus=”MODIFY" | RoomStatus=”CANCEL” | Example 2 |
Adding a room to a reservation | ResStatus=”MODIFY” | RoomStatus=”COMMIT” | Example 3 |
Changing the guest name for a reservation or adding comments to a reservation | ResStatus=”MODIFY” | RoomStatus=”MODIFY | Example 4 |
Cancelling all rooms in a multi-room reservation | ResStatus=”CANCEL” | NA | Example 5 |
Conditions for Room Level Modifications
Room-level modifications are subject to the following rules:
- Certain modifications that result in a change in pricing (Critical Modifications) will be handled as a cancel and rebook. This implies that the client will be required to send current rates and the modification itself is subject to the restrictions in place at the current time (and not the ones that the reservation was originally booked under). The reason for this is that the Promotional Rates (one of the key features of our Promotional Rates distribution strategy) are limited-time offerings, and we cannot guarantee the availability of the promotions at the time the modification is sent. The modifications included here are:
- Change of Check-in Date
- Change of Checkout Date
- Adding guests will add the extra guest pricing applicable at the time when the modification request is sent. For example, if the extra adult pricing goes up from $10 to $15 from the time the booking was made to when the modification was requested, then the $15 will be payable (plus any applicable taxes). Therefore in this case the underlying per-night room charges will remain the same as booked earlier, while the total cost for the night goes up based on the added guests.
- Removing guests will remove the extra guest pricing applicable at the time when the original booking was made.
- Non-critical modifications require the original RoomStay Node to be sent with the pricing and any acceptable changes under the relevant nodes. The modifications acceptable here are:
- Changing the names of one or more guests in the RoomStay
- Adding Special Requests for the Property. Comments provided under this section will replace the previously sent comments. Please note that the comments can be sent at the reservation or room level as specified in the original API specification.
Examples of multi-room use cases
Additional information on Error Codes to handle any exceptions encountered while using the multi-room bookings can be found here.
Example 1: Book multiple rooms
Sample Request
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="<http://schemas.xmlsoap.org/soap/envelope/>">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>" xmlns:soap="<http://schemas.xmlsoap.org/soap/envelope/>" soap:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username></wsse:Username>
<wsse:Password Type="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText>"></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_HotelResNotifRQ xmlns="<http://www.opentravel.org/OTA/2003/05>" EchoToken="4cb3ad4a-aefa-4a55-baf1-e1dd84513b04" ResStatus="Book" Version="1">
<HotelReservations>
<HotelReservation RoomStayReservation="true">
<UniqueID ID="" Type="14" />
<RoomStays>
<RoomStay RoomStatus="Book">
<RoomRates>
<RoomRate RatePlanCode="HTRET" RoomTypeCode="R1FN">
<Rates>
<Rate EffectiveDate="2021-10-10" ExpireDate="2021-10-11" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD" />
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts IsPerRoom="true">
<GuestCount AgeQualifyingCode="10" Count="2" />
</GuestCounts>
<TimeSpan Start="2021-10-10" End="2021-10-11"/>
<Total AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD" />
<BasicPropertyInfo HotelCode="NYCMIL" />
<RoomStayUniqueId></RoomStayUniqueId>
<ResGuestRPHs>
<ResGuestRPH RPH="1" />
</ResGuestRPHs>
<Comments>
<Comment>
<Text>Non-smoking room prefered</Text>
</Comment>
</Comments>
</RoomStay>
<RoomStay RoomStatus="Book">
<RoomRates>
<RoomRate RatePlanCode="HTPKG" RoomTypeCode="STD">
<Rates>
<Rate EffectiveDate="2021-10-15" ExpireDate="2021-10-16" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD" />
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts IsPerRoom="true">
<GuestCount AgeQualifyingCode="10" Count="2" />
</GuestCounts>
<TimeSpan Start="2021-10-15" End="2021-10-16" />
<Total AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD" />
<BasicPropertyInfo HotelCode="NYCMIL" />
<RoomStayUniqueId></RoomStayUniqueId>
<ResGuestRPHs>
<ResGuestRPH RPH="2" />
</ResGuestRPHs>
<Comments>
<Comment>
<Text>Smoking room prefered</Text>
</Comment>
</Comments>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest PrimaryIndicator="true" ResGuestRPH="1">
<Profiles>
<ProfileInfo>
<Profile ProfileType="1">
<Customer>
<PersonName>
<GivenName>John</GivenName>
<Surname>Doe</Surname>
</PersonName>
<Age>27</Age>
<Email>test@hoteltrader.com</Email>
<Address />
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest PrimaryIndicator="false" ResGuestRPH="2">
<Profiles>
<ProfileInfo>
<Profile ProfileType="1">
<Customer>
<PersonName>
<GivenName>Jon</GivenName>
<Surname>Snow</Surname>
</PersonName>
<Age>25</Age>
<Email>test@hoteltrader.com</Email>
<Address />
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Source="" ResID_Type="14" ResID_Value="" />
<HotelReservationID ResID_Type="16" ResID_Value="CONF CODE FROM OTA" otaClientName="OTA CLIENT NAME" />
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Success Response
<soapenv:Envelope xmlns:soapenv="<http://schemas.xmlsoap.org/soap/envelope/>">
<soapenv:Header/>
<soapenv:Body>
<ns2:OTA_HotelResNotifRS xmlns:ns2="<http://www.opentravel.org/OTA/2003/05>" ResResponseType="Committed" EchoToken="1133" TimeStamp="2021-03-10T11:29:57.718Z" Version="0" PrimaryLangID="en">
<ns2:Success/>
<ns2:HotelReservations>
<ns2:HotelReservation>
<ns2:UniqueID Type="14" ID="clientCode123"/>
<ns2:ResGlobalInfo>
<ns2:HotelReservationIDs>
<ns2:HotelReservationID ResID_Type="22" ResID_Value="HT-ABCDEF" ResID_Source="HT" ResID_SourceContext="HTConfirmNumber"/>
</ns2:HotelReservationIDs>
</ns2:ResGlobalInfo>
</ns2:HotelReservation>
</ns2:HotelReservations>
</ns2:OTA_HotelResNotifRS>
</soapenv:Body>
</soapenv:Envelope
Error Response
<soapenv:Envelope xmlns:soapenv="<http://schemas.xmlsoap.org/soap/envelope/>">
<soapenv:Header/>
<soapenv:Body>
<ns2:OTA_HotelResNotifRS xmlns:ns2="<http://www.opentravel.org/OTA/2003/05>" EchoToken="123" TimeStamp="2021-03-09T15:29:24.141Z" Version="1.001">
<ns2:Errors>
<ns2:Error Type="The date is closed, for date = 2021-04-21" ShortText="The date is closed, for date = 2021-04-21" Code="1122"/>
</ns2:Errors>
</ns2:OTA_HotelResNotifRS>
</soapenv:Body>
</soapenv:Envelope>
Example 2: Cancelling a room in a reservation
<SOAP-ENV:Envelope xmlns:SOAP-ENV="<http://schemas.xmlsoap.org/soap/envelope/>">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>"
xmlns:soap="<http://schemas.xmlsoap.org/soap/envelope/>"
soap:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username></wsse:Username>
<wsse:Password Type="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText>"></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_HotelResNotifRQ EchoToken="4cb3ad4a-aefa-4a55-baf1-e1dd84513b04" Version="1" ResStatus="Modify" xmlns="<http://www.opentravel.org/OTA/2003/05>">
<HotelReservations>
<HotelReservation RoomStayReservation="true">
<UniqueID ID="" Type="14"></UniqueID>
<RoomStays>
<RoomStay RoomStatus="Cancel">
<RoomStayUniqueId></RoomStayUniqueId>
</RoomStay>
</RoomStays>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="" ResID_Source=""/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Example 3: Adding a room to a reservation
<SOAP-ENV:Envelope xmlns:SOAP-ENV="<http://schemas.xmlsoap.org/soap/envelope/>">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>"
xmlns:soap="<http://schemas.xmlsoap.org/soap/envelope/>"
soap:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username></wsse:Username>
<wsse:Password Type="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText>"></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_HotelResNotifRQ EchoToken="4cb3ad4a-aefa-4a55-baf1-e1dd84513b04" Version="1" ResStatus="Modify" xmlns="<http://www.opentravel.org/OTA/2003/05>">
<HotelReservations>
<HotelReservation RoomStayReservation="true">
<UniqueID ID="" Type="14"></UniqueID>
<RoomStays>
<RoomStay RoomStatus="Book">
<RoomRates>
<RoomRate RatePlanCode="HTRET" RoomTypeCode="R1FN">
<Rates>
<Rate EffectiveDate="2021-10-10" ExpireDate="2021-10-11" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Base>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="2"></GuestCount>
</GuestCounts>
<TimeSpan Start="2021-10-10" End="2021-10-11"/>
<Total AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Total>
<BasicPropertyInfo HotelCode="NYCMIL"></BasicPropertyInfo>
<RoomStayUniqueId></RoomStayUniqueId>
<ResGuestRPHs>
<ResGuestRPH RPH="3"/>
</ResGuestRPHs>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest PrimaryIndicator="false" ResGuestRPH="3">
<Profiles>
<ProfileInfo>
<Profile ProfileType="1">
<Customer>
<PersonName>
<GivenName>Jon</GivenName>
<Surname>Snow</Surname>
</PersonName>
<Age>35</Age>
<Email>test@hoteltrader.com</Email>
<Address></Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="" ResID_Source=""/>
<HotelReservationID ResID_Type="16" ResID_Value="CONF CODE FROM OTA" otaClientName="OTA CLIENT NAME"/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Example 4: Changing the guest name for a room in a multi-booking reservation
<SOAP-ENV:Envelope xmlns:SOAP-ENV="<http://schemas.xmlsoap.org/soap/envelope/>">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>"
xmlns:soap="<http://schemas.xmlsoap.org/soap/envelope/>"
soap:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username></wsse:Username>
<wsse:Password Type="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText>"></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_HotelResNotifRQ EchoToken="4cb3ad4a-aefa-4a55-baf1-e1dd84513b04" Version="1" ResStatus="Modify" xmlns="<http://www.opentravel.org/OTA/2003/05>">
<HotelReservations>
<HotelReservation RoomStayReservation="true">
<UniqueID ID="" Type="14"></UniqueID>
<RoomStays>
<RoomStay RoomStatus="Modify">
<RoomRates>
<RoomRate RatePlanCode="HTRET" RoomTypeCode="R1FN">
<Rates>
<Rate EffectiveDate="2021-10-10" ExpireDate="2021-10-11" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Base>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="2"></GuestCount>
</GuestCounts>
<TimeSpan Start="2021-10-10" End="2021-10-11"/>
<Total AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Total>
<BasicPropertyInfo HotelCode="NYCMIL"></BasicPropertyInfo>
<RoomStayUniqueId></RoomStayUniqueId>
<ResGuestRPHs>
<ResGuestRPH RPH="2"/>
</ResGuestRPHs>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest PrimaryIndicator="true" ResGuestRPH="2">
<Profiles>
<ProfileInfo>
<Profile ProfileType="1">
<Customer>
<PersonName>
<GivenName>Name Change</GivenName>
<Surname>Bond</Surname>
</PersonName>
<Age>55</Age>
<Email>test@hoteltrader.com</Email>
<Address></Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="" ResID_Source=""/>
<HotelReservationID ResID_Type="16" ResID_Value="CONF CODE FROM OTA" otaClientName="OTA CLIENT NAME"/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Example 5: Cancelling a multi-room reservation
This example shows how to send a cancellation request for all rooms in a multi-room booking.
Note: The individual RoomStay nodes are not required here, and if sent they will be ignored.
Sample Request
<SOAP-ENV:Envelope xmlns:SOAP-ENV="<http://schemas.xmlsoap.org/soap/envelope/>">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>"
xmlns:soap="<http://schemas.xmlsoap.org/soap/envelope/>"
soap:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username></wsse:Username>
<wsse:Password Type="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText>"></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_HotelResNotifRQ EchoToken="4cb3ad4a-aefa-4a55-baf1-e1dd84513b04" Version="1" ResStatus="Cancel" xmlns="<http://www.opentravel.org/OTA/2003/05>">
<HotelReservations>
<HotelReservation RoomStayReservation="true">
<UniqueID ID="" Type="14"></UniqueID>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="" ResID_Source=""/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Sample Success Response
<soapenv:Envelope xmlns:soapenv="<http://schemas.xmlsoap.org/soap/envelope/>">
<soapenv:Header/>
<soapenv:Body>
<ns2:OTA_HotelResNotifRS xmlns:ns2="<http://www.opentravel.org/OTA/2003/05>" ResResponseType="Cancelled" EchoToken="1123" TimeStamp="2021-03-10T11:29:57.718Z" Version="0" PrimaryLangID="en">
<ns2:Success/>
<ns2:HotelReservations>
<ns2:HotelReservation>
<ns2:UniqueID Type="14" ID="clientCode123"/>
<ns2:ResGlobalInfo>
<ns2:HotelReservationIDs>
<ns2:HotelReservationID ResID_Type="22" ResID_Value="HT-ABCDE-X" ResID_Source="HT" ResID_SourceContext="HTConfirmNumber"/>
</ns2:HotelReservationIDs>
</ns2:ResGlobalInfo>
</ns2:HotelReservation>
</ns2:HotelReservations>
</ns2:OTA_HotelResNotifRS>
</soapenv:Body>
</soapenv:Envelope>
Sample Error Response
<soapenv:Envelope xmlns:soapenv="<http://schemas.xmlsoap.org/soap/envelope/>">
<soapenv:Header/>
<soapenv:Body>
<ns2:OTA_HotelResNotifRS xmlns:ns2="<http://www.opentravel.org/OTA/2003/05>" EchoToken="123" TimeStamp="2021-03-10T12:15:08.311Z" Version="1.001">
<ns2:Errors>
<ns2:Error Type="Reservation Not found" ShortText="Reservation Not found" Code="1011"/>
</ns2:Errors>
</ns2:OTA_HotelResNotifRS>
</soapenv:Body>
</soapenv:Envelope>
Example 6: Cancel / Add / Modify all in one request
<SOAP-ENV:Envelope xmlns:SOAP-ENV="<http://schemas.xmlsoap.org/soap/envelope/>">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd>"
xmlns:soap="<http://schemas.xmlsoap.org/soap/envelope/>"
soap:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username></wsse:Username>
<wsse:Password Type="<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText>"></wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OTA_HotelResNotifRQ EchoToken="4cb3ad4a-aefa-4a55-baf1-e1dd84513b04" Version="1" ResStatus="Modify" xmlns="<http://www.opentravel.org/OTA/2003/05>">
<HotelReservations>
<HotelReservation RoomStayReservation="true">
<UniqueID ID="" Type="14"></UniqueID>
<RoomStays>
<RoomStay RoomStatus="Cancel">
<RoomStayUniqueId></RoomStayUniqueId>
</RoomStay>
<RoomStay RoomStatus="Modify">
<RoomRates>
<RoomRate RatePlanCode="HTRET" RoomTypeCode="R1FN">
<Rates>
<Rate EffectiveDate="2021-10-10" ExpireDate="2021-10-11" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Base>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts IsPerRoom="true">
<GuestCount AgeQualifyingCode="10" Count="2"></GuestCount>
</GuestCounts>
<TimeSpan Start="2021-10-10" End="2021-10-11"/>
<Total AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Total>
<BasicPropertyInfo HotelCode="NYCMIL"></BasicPropertyInfo>
<RoomStayUniqueId></RoomStayUniqueId>
<ResGuestRPHs>
<ResGuestRPH RPH="2"/>
</ResGuestRPHs>
</RoomStay>
<RoomStay RoomStatus="Book">
<RoomRates>
<RoomRate RatePlanCode="HTRET" RoomTypeCode="R1FN">
<Rates>
<Rate EffectiveDate="2021-10-10" ExpireDate="2021-10-11" RateTimeUnit="Day" UnitMultiplier="1">
<Base AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Base>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="2"></GuestCount>
</GuestCounts>
<TimeSpan Start="2021-10-10" End="2021-10-11"/>
<Total AmountBeforeTax="300" AmountAfterTax="350" CurrencyCode="USD"></Total>
<BasicPropertyInfo HotelCode="NYCMIL"></BasicPropertyInfo>
<RoomStayUniqueId></RoomStayUniqueId>
<ResGuestRPHs>
<ResGuestRPH RPH="3"/>
</ResGuestRPHs>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest PrimaryIndicator="true" ResGuestRPH="2">
<Profiles>
<ProfileInfo>
<Profile ProfileType="1">
<Customer>
<PersonName>
<GivenName>Name Change</GivenName>
<Surname>Bond</Surname>
</PersonName>
<Age>55</Age>
<Email>test@hoteltrader.com</Email>
<Address></Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest PrimaryIndicator="false" ResGuestRPH="3">
<Profiles>
<ProfileInfo>
<Profile ProfileType="1">
<Customer>
<PersonName>
<GivenName>Jon</GivenName>
<Surname>Snow</Surname>
</PersonName>
<Age>35</Age>
<Email>test@hoteltrader.com</Email>
<Address></Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ResID_Type="14" ResID_Value="" ResID_Source=""/>
<HotelReservationID ResID_Type="16" ResID_Value="CONF CODE FROM OTA" otaClientName="OTA CLIENT NAME"/>
</HotelReservationIDs>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>