Skip to content

OTA_ReadRQ

The read request allows to periodically pull bookings or reservations from the system. Once a reservation is retrieved, it will no longer be returned in the future. The only request parameter required for the read request is the property id known as the hotel code.

<?xml version="1.0"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
        <AccessHeader>
            <UserName>MyUserName</UserName>
            <Password>MyPassword</Password>
        </AccessHeader>
    </soap:Header>
    <soap:Body>
        <OTA_ReadRQ Version="0" 
            xmlns="http://www.opentravel.org/OTA/2003/05/beta">
            <ReadRequests>
                <HotelReadRequest HotelCode="my-hotel-code" />
            </ReadRequests>
        </OTA_ReadRQ>
    </soap:Body>
</soap:Envelope>

Reservation response

The reservation retrieval response OTA_ResRetrieveRS will always contain a ReservationsList XML node. If there aren't any new reservations that node will not have any child nodes other than a <Succes /> node. If there are new reservations, the node will contain a single or multiple HotelReservation XML nodes.

Different output formats for different systems

There are different implementations, codes and nodes depending on which channel manager or system is connected. This documentation describes the default codes and format for a standard OpenTravel.org connectivity. If your system uses different formats, contact the partner support to walk through the different options.

<HotelReservation CreateDateTime="2021-09-15T07:06:41.000Z" 
    LastModifyDateTime="2021-09-15T07:18:12.213Z" ResStatus="Commit">
    <UniqueID Type="14" ID="77o9tqQ6BgsHgmO0mRF423" />
    <ResGlobalInfo>
        <HotelReservationIDs>
            <HotelReservationID ResID_Type="CRS" 
                ResID_Value="77o9tqQ6BgsHgmO0mRF423" />
        </HotelReservationIDs>
        <BasicPropertyInfo HotelCode="my-hotel-code" />
        <Total AmountAfterTax="1716" CurrencyCode="EUR" />
        <Guarantee GuaranteeCode="CC">
            <GuaranteesAccepted>
                <GuaranteeAccepted GuaranteeID="CC">
                    <PaymentCard CardCode="VI" 
                        CardNumber="4444333322221111" 
                        SeriesCode="999" ExpireDate="0224">
                        <CardNumber>
                            <PlainText>
                                <![CDATA[4444333322221111]]>
                            </PlainText>
                        </CardNumber>
                        <CardHolderName>
                            <![CDATA[Jan Kammerath]]>
                        </CardHolderName>
                    </PaymentCard>
                </GuaranteeAccepted>
            </GuaranteesAccepted>
        </Guarantee>
        <Profiles>
            <ProfileInfo>
                <Profile ProfileType="1">
                    <Customer>
                        <PersonName>
                            <GivenName>
                                <![CDATA[Jan]]>
                            </GivenName>
                            <Surname>
                                <![CDATA[Kammerath]]>
                            </Surname>
                        </PersonName>
                        <Telephone PhoneNumber="004989244199410" 
                            FormattedInd="false" />
                        <Email>support@lodgea.com</Email>
                        <Address>
                            <AddressLine>
                                <![CDATA[Landwehrstr. 61]]>
                            </AddressLine>
                            <CityName>
                                <![CDATA[Munich]]>
                            </CityName>
                            <PostalCode>
                                <![CDATA[80336]]>
                            </PostalCode>
                            <CountryName Code="DE">DE</CountryName>
                        </Address>
                    </Customer>
                </Profile>
            </ProfileInfo>
        </Profiles>
    </ResGlobalInfo>
    <RoomStays>
        <RoomStay>
            <RoomRates>
                <RoomRate RoomTypeCode="suite" 
                    NumberOfUnits="1" 
                    RatePlanCode="standard-2568">
                    <Rates>
                        <Rate EffectiveDate="2022-02-16" 
                            ExpireDate="2022-02-20" RateTimeUnit="Day" 
                            UnitMultiplier="1">
                            <Base AmountAfterTax="429" 
                                CurrencyCode="EUR" />
                        </Rate>
                    </Rates>
                </RoomRate>
            </RoomRates>
            <GuestCounts IsPerRoom="true">
                <GuestCount AgeQualifyingCode="10" Count="2" />
            </GuestCounts>
            <ResGuestRPHs>
                <ResGuestRPH RPH="0" />
                <ResGuestRPH RPH="1" />
            </ResGuestRPHs>
            <Guarantee GuaranteeCode="CC">
                <GuaranteesAccepted>
                    <GuaranteeAccepted GuaranteeID="CC">
                        <PaymentCard CardCode="VI" 
                            CardNumber="4444333322221111" 
                            SeriesCode="999" ExpireDate="0224">
                            <CardNumber>
                                <PlainText>
                                    <![CDATA[4444333322221111]]>
                                </PlainText>
                            </CardNumber>
                            <CardHolderName>
                                <![CDATA[Jan Kammerath]]>
                            </CardHolderName>
                        </PaymentCard>
                    </GuaranteeAccepted>
                </GuaranteesAccepted>
            </Guarantee>
            <Total AmountAfterTax="1716" CurrencyCode="EUR" />
            <TimeSpan Start="2022-02-16" End="2022-02-20" />
            <BasicPropertyInfo HotelCode="my-hotel-code" />
        </RoomStay>
    </RoomStays>
    <ResGuests>
        <ResGuest PrimaryIndicator="true">
            <Profiles>
                <ProfileInfo>
                    <Profile ProfileType="1">
                        <Customer>
                            <PersonName>
                                <GivenName>
                                    <![CDATA[Jan]]>
                                </GivenName>
                                <Surname>
                                    <![CDATA[Kammerath]]>
                                </Surname>
                            </PersonName>
                            <Telephone PhoneNumber="0049089244199410" 
                                FormattedInd="false" />
                            <Email>support@lodgea.com</Email>
                            <Address>
                                <AddressLine>
                                    <![CDATA[Landwehrstr. 61]]>
                                </AddressLine>
                                <CityName>
                                    <![CDATA[Munich]]>
                                </CityName>
                                <PostalCode>
                                    <![CDATA[80336]]>
                                </PostalCode>
                                <CountryName Code="DE">DE</CountryName>
                            </Address>
                        </Customer>
                    </Profile>
                </ProfileInfo>
            </Profiles>
        </ResGuest>
        <ResGuest ResGuestRPH="0" PrimaryIndicator="false">
            <Profiles>
                <ProfileInfo>
                    <Profile ProfileType="1">
                        <Customer>
                            <PersonName>
                                <GivenName>
                                    <![CDATA[Jan]]>
                                </GivenName>
                                <Surname>
                                    <![CDATA[Kammerath]]>
                                </Surname>
                            </PersonName>
                        </Customer>
                    </Profile>
                </ProfileInfo>
            </Profiles>
        </ResGuest>
        <ResGuest ResGuestRPH="1" PrimaryIndicator="false">
            <Profiles>
                <ProfileInfo>
                    <Profile ProfileType="1">
                        <Customer>
                            <PersonName>
                                <GivenName>
                                    <![CDATA[Nicole]]>
                                </GivenName>
                                <Surname>
                                    <![CDATA[Kammerath]]>
                                </Surname>
                            </PersonName>
                        </Customer>
                    </Profile>
                </ProfileInfo>
            </Profiles>
        </ResGuest>
    </ResGuests>
</HotelReservation>

ResGuestRPH attributes

Import to note is that the ResGuestRPH attribute links the guest profiles to the RoomStay elements and thus linking them to the room the guests are allocated to.

Important notes, configuration differences and compatibility

Payment information

The payment and guest information will only be present if the property was configured to collect these information.

Missing guest information

If guest information are not collected, the guest first and last name will be set to TBA.

Duplicated information in the response

Duplication of contents in the HotelReservation node are to be compatible with the various different implementations in channel managers and property management systems.

The above example shows a complete example of a reservation. The remainder of the information should be self-explanatory and further details can be found in the official OpenTravel.org documentation and specification.