This page provides an overview of the message types that are most commonly used when connecting Upsell Systems.
Listed are as well the direction and the Use-Cases which are covered by these message types.

If you miss any Use-Cases you might discuss these during your Technical Requirements Call to check if/how these could be covered.

Message Type Overview

If you need more details about the content of the different message types please check each single documentation page.


Message typeDirectionUsecase
3rd party → protelRequesting a reservation from the PMS using first name,last name, reservation number 
protel → 3rd party

Message notifying a subscribing system that a reservation is

  • created
  • modified
  • cancelled
protel → 3rd party

Message notifying the 3rd party about

  • new
  • and modified room rate restrictions
3rd party → protel

Assigning parameters to an existing revervation in case of an upsell like

  • assigning packages (wellness etc.)
  • adding traces ( bring sparkling wine/ prepare the room/ flowers etc.
  • upgrade roomtype/roomnumber/change rate value
protel → 3rd party

Message advising the amount of inventory available

  • on property level
  • on room type level
Optional
3rd party → protel

Adding charges to a folio of a reservation (in case of upselling) e.g.

  • room upgrade charges
  • breakfast
  • half board
  • full board
Use caseWorkflow stepSample messages
1

UPS receives needed data by protel PMS

  • Getting an overview about the current booking situation of a hotel (past, current and future reservations) by message type OTA_HotelResNotifRQ (Vendors can decide which timespan they would like to receive).


OTA_HotelResNotifRQ
<?xml version='1.0' encoding='utf-8'?>
<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:p="http://protel.io/soap" xmlns:px="http://protel.io/htng/extensions" xmlns:htng="http://htng.org/2014B" CorrelationID="RES#2000044#UPDATE#000144#1558612714917#B2A6" EchoToken="RES#2000044#UPDATE#000144#1558612714917#B2A6" PrimaryLangID="en" ResStatus="Modify" TimeStamp="2019-05-23T11:58:34Z" Version="5.000">
    <POS>
        <Source>
            <RequestorID ID="2578" ID_Context="protelIO" Type="10"/>
            <BookingChannel Primary="true" Type="4"/>
            <TPA_Extensions>
                <px:POSExtensions>
                    <px:HotelInfo FiscalDate="2018-10-30"/>
                </px:POSExtensions>
            </TPA_Extensions>
        </Source>
    </POS>
    <HotelReservations>
        <HotelReservation CreateDateTime="2019-05-16T08:06:00+02:00" CreatorID="lj" LastModifierID="lj" LastModifyDateTime="2019-05-23T13:58:34+02:00" ResStatus="Reserved">
            <UniqueID ID="17225" ID_Context="protelIO" Type="14"/>
            <RoomStays>
                <RoomStay MarketCode="BUS" SourceOfBusiness="CO">
                    <RoomTypes>
                        <RoomType IsRoom="true" NumberOfUnits="1" RoomID="33 Los tejados templarios" RoomType="Standard Room(49)" RoomTypeCode="STD"/>
                    </RoomTypes>
                    <RatePlans>
                        <RatePlan EffectiveDate="2019-08-12" ExpireDate="2019-08-13" PriceViewableInd="true" RatePlanCode="BARBB" RatePlanID="150">
                            <Guarantee GuaranteeCode="CC" GuaranteeType="CC/DC/Voucher">
                                <GuaranteeDescription Name="Name">
                                    <Text TextFormat="PlainText">Credit Card</Text>
                                </GuaranteeDescription>
                                <GuaranteeDescription Name="Description">
                                    <Text TextFormat="PlainText">Need to pre-authorise for the first night</Text>
                                </GuaranteeDescription>
                            </Guarantee>
                            <CancelPenalties>
                                <CancelPenalty PolicyCode="48HRS">
                                    <PenaltyDescription Name="Name">
                                        <Text TextFormat="PlainText">Free cancellation 48 hrs</Text>
                                    </PenaltyDescription>
                                    <PenaltyDescription Name="Description">
                                        <Text TextFormat="PlainText">Cancelación y modificación sin gastos hasta 48 horas antes de la fecha de llegada. En caso de cancelar o modificar la reserva fuera de dicho plazo, el hotel cargará la primera noche. En caso de no presentarse, el hotel cargará el importe total de la reserva.**Para garantizar la reserva el hotel pre-autorizará la tarjeta de crédito o débito proporcionada por el importe correspondiente a la primera noche en el momento de efectuar la reserva.</Text>
                                    </PenaltyDescription>
                                </CancelPenalty>
                            </CancelPenalties>
                            <RatePlanInclusions TaxInclusive="true"/>
                        </RatePlan>
                    </RatePlans>
                    <RoomRates>
                        <RoomRate BookingCode="STD" EffectiveDate="2019-08-12" ExpireDate="2019-08-13" NumberOfUnits="1" RatePlanCategory="RG1" RatePlanCode="BARBB" RatePlanID="150" RoomID="33 Los tejados templarios" RoomTypeCode="STD">
                            <Rates>
                                <Rate AlternateCurrencyInd="false" EffectiveDate="2019-08-12" ExpireDate="2019-08-13" RateTimeUnit="Day" UnitMultiplier="1">
                                    <Base AmountAfterTax="187.00" AmountBeforeTax="170.00" CurrencyCode="EUR"/>
                                    <TPA_Extensions>
                                        <px:RateAmountExtensions End="2019-08-13" Start="2019-08-12">
                                            <px:RateAmount AmountAfterTax="22.00" AmountBeforeTax="20.00" CurrencyCode="EUR" RevenueCategoryCode="6"/>
                                            <px:RateAmount AmountAfterTax="209.00" AmountBeforeTax="190.00" CurrencyCode="EUR" RevenueCategoryCode="17"/>
                                            <px:RateAmount AmountAfterTax="187.00" AmountBeforeTax="170.00" CurrencyCode="EUR" RevenueCategoryCode="9"/>
                                        </px:RateAmountExtensions>
                                    </TPA_Extensions>
                                </Rate>
                            </Rates>
                            <RoomRateDescription Name="MarketCode">
                                <Text TextFormat="PlainText">BUS</Text>
                            </RoomRateDescription>
                            <RoomRateDescription Name="SourceOfBusiness">
                                <Text TextFormat="PlainText">CO</Text>
                            </RoomRateDescription>
                        </RoomRate>
                    </RoomRates>
                    <GuestCounts IsPerRoom="true">
                        <GuestCount AgeQualifyingCode="10" Count="1"/>
                    </GuestCounts>
                    <TimeSpan End="2019-08-13" Start="2019-08-12"/>
                    <Guarantee GuaranteeCode="CC" GuaranteeType="CC/DC/Voucher">
                        <GuaranteeDescription Name="Name">
                            <Text TextFormat="PlainText">Credit Card</Text>
                        </GuaranteeDescription>
                        <GuaranteeDescription Name="Description">
                            <Text TextFormat="PlainText">Need to pre-authorise for the first night</Text>
                        </GuaranteeDescription>
                    </Guarantee>
                    <DepositPayments/>
                    <CancelPenalties>
                        <CancelPenalty PolicyCode="48HRS">
                            <PenaltyDescription Name="Name">
                                <Text TextFormat="PlainText">Free cancellation 48 hrs</Text>
                            </PenaltyDescription>
                            <PenaltyDescription Name="Description">
                                <Text TextFormat="PlainText">Cancelación y modificación sin gastos hasta 48 horas antes de la fecha de llegada. En caso de cancelar o modificar la reserva fuera de dicho plazo, el hotel cargará la primera noche. En caso de no presentarse, el hotel cargará el importe total de la reserva.**Para garantizar la reserva el hotel pre-autorizará la tarjeta de crédito o débito proporcionada por el importe correspondiente a la primera noche en el momento de efectuar la reserva.</Text>
                            </PenaltyDescription>
                        </CancelPenalty>
                    </CancelPenalties>
                    <Total AmountAfterTax="187.00" AmountBeforeTax="170.00" CurrencyCode="EUR"/>
                    <BasicPropertyInfo ChainCode="n/a" HotelCode="2578" HotelCodeContext="protelIO" HotelName="Demo protel Hotel"/>
                    <TPA_Extensions>
                        <px:RateAmountExtensions AlternateCurrencyInd="false" End="2019-08-13" Start="2019-08-12">
                            <px:RateAmount AmountAfterTax="22.00" AmountBeforeTax="20.00" CurrencyCode="EUR" RevenueCategoryCode="6"/>
                            <px:RateAmount AmountAfterTax="209.00" AmountBeforeTax="190.00" CurrencyCode="EUR" RevenueCategoryCode="17"/>
                            <px:RateAmount AmountAfterTax="187.00" AmountBeforeTax="170.00" CurrencyCode="EUR" RevenueCategoryCode="9"/>
                        </px:RateAmountExtensions>
                    </TPA_Extensions>
                    <ResGuestRPHs>
                        <ResGuestRPH RPH="94881"/>
                        <ResGuestRPH RPH="94872"/>
                    </ResGuestRPHs>
                    <Comments>
                        <Comment GuestViewable="false">
                            <Text TextFormat="PlainText">Comment - Test
Laureen</Text>
                        </Comment>
                    </Comments>
                </RoomStay>
            </RoomStays>
            <ResGuests>
                <ResGuest PrimaryIndicator="false" ResGuestRPH="94881">
                    <Profiles>
                        <ProfileInfo>
                            <UniqueID ID="94881" ID_Context="protelIO" Type="4"/>
                            <Profile CreateDateTime="2019-05-16T08:52:05Z" CreatorID="lj" LastModifierID="lj" LastModifyDateTime="2019-05-23T11:49:56Z" ProfileType="3" RPH="94881" ShareAllOptOutInd="Yes" StatusCode="4">
                                <CompanyInfo>
                                    <CompanyName Department="Test">Company_test</CompanyName>
                                    <AddressInfo DefaultInd="true" FormattedInd="false" Type="2" UseType="3">
                                        <AddressLine>Company_Street 5</AddressLine>
                                        <CityName>Testorf-Steinfort</CityName>
                                        <PostalCode>23936</PostalCode>
                                        <CountryName Code="DE">Deutschland</CountryName>
                                    </AddressInfo>
                                    <AddressInfo DefaultInd="false" FormattedInd="false" Type="1" UseType="3">
                                        <CityName>Test</CityName>
                                        <PostalCode>12345</PostalCode>
                                        <StateProv StateCode="6">Steiermark</StateProv>
                                        <CountryName Code="AT">Österreich</CountryName>
                                    </AddressInfo>
                                    <AddressInfo DefaultInd="false" FormattedInd="false" Type="3" UseType="3">
                                        <AddressLine>post-Street 77</AddressLine>
                                        <CityName>Test</CityName>
                                        <PostalCode>12345</PostalCode>
                                        <StateProv StateCode="4">Oberösterreich</StateProv>
                                        <CountryName Code="AT">Österreich</CountryName>
                                    </AddressInfo>
                                    <TelephoneInfo DefaultInd="true" FormattedInd="false" PhoneLocationType="7" PhoneNumber="0123-1455648" PhoneTechType="1"/>
                                    <TelephoneInfo DefaultInd="true" FormattedInd="false" PhoneLocationType="7" PhoneNumber="0125-125478" PhoneTechType="3"/>
                                    <TelephoneInfo DefaultInd="false" FormattedInd="false" PhoneLocationType="7" PhoneNumber="0176-54158742" PhoneTechType="5"/>
                                    <TelephoneInfo DefaultInd="false" FormattedInd="false" PhoneLocationType="7" PhoneNumber="01765-55412574" PhoneTechType="5"/>
                                    <TelephoneInfo DefaultInd="false" FormattedInd="false" PhoneLocationType="7" PhoneNumber="01542-21557" PhoneTechType="3"/>
                                    <TelephoneInfo DefaultInd="false" FormattedInd="false" PhoneLocationType="7" PhoneNumber="01254-125478" PhoneTechType="1"/>
                                    <Email DefaultInd="true" EmailType="2">company@email.com</Email>
                                    <Email DefaultInd="false" EmailType="2">company@2email.com</Email>
                                    <ContactPerson>
                                        <PersonName>
                                            <NamePrefix>Firma</NamePrefix>
                                            <GivenName>Test_Firstname</GivenName>
                                            <Surname>Test_Surname</Surname>
                                        </PersonName>
                                    </ContactPerson>
                                </CompanyInfo>
                                <TPA_Extensions>
                                    <px:ProfileInfoExtensions>
                                        <px:AddressTypes>
                                            <px:AddressType DefaultInd="false" DisplaySequence="0" ID="7" ID_Context="protelIO" Type="ADDRESSTYPE">Bus.</px:AddressType>
                                            <px:AddressType DefaultInd="false" DisplaySequence="0" ID="9" ID_Context="protelIO" Type="ADDRESSTYPE">PV</px:AddressType>
                                            <px:AddressType DefaultInd="false" DisplaySequence="0" ID="8" ID_Context="protelIO" Type="ADDRESSTYPE">P.O. Box</px:AddressType>
                                        </px:AddressTypes>
                                        <px:ContactDetails>
                                            <px:AdditionalInfo>
                                                <px:Entry DefaultInd="false" DisplaySequence="0" ID="143" ID_Context="protelIO" Type="CONTACTTYPE">Phone</px:Entry>
                                                <px:Entry DefaultInd="false" DisplaySequence="0" ID="145" ID_Context="protelIO" Type="CONTACTTYPE">Fax</px:Entry>
                                                <px:Entry DefaultInd="false" DisplaySequence="0" ID="315" ID_Context="protelIO" Type="CONTACTTYPE">Mobile</px:Entry>
                                                <px:Entry DefaultInd="false" DisplaySequence="0" ID="315" ID_Context="protelIO" Type="CONTACTTYPE">Mobile</px:Entry>
                                                <px:Entry DefaultInd="false" DisplaySequence="0" ID="145" ID_Context="protelIO" Type="CONTACTTYPE">Fax</px:Entry>
                                                <px:Entry DefaultInd="false" DisplaySequence="0" ID="143" ID_Context="protelIO" Type="CONTACTTYPE">Phone</px:Entry>
                                            </px:AdditionalInfo>
                                        </px:ContactDetails>
                                        <px:PersonInfos>
                                            <px:Language DefaultInd="true">de-de</px:Language>
                                        </px:PersonInfos>
                                        <px:StatisticalInfos/>
                                        <px:AccountingInfos/>
                                        <px:LogEntries/>
                                        <px:Memberships/>
                                    </px:ProfileInfoExtensions>
                                </TPA_Extensions>
                            </Profile>
                        </ProfileInfo>
                    </Profiles>
                    <TPA_Extensions>
                        <px:GuestStayExtensions>
                            <px:StayInfo Role="Booker"/>
                            <px:TelephoneSetting ClassOfService="3"/>
                        </px:GuestStayExtensions>
                    </TPA_Extensions>
                </ResGuest>
                <ResGuest ArrivalTime="12:00:00+02:00" DepartureTime="12:00:00+02:00" PrimaryIndicator="true" ResGuestRPH="94872">
                    <Profiles>
                        <ProfileInfo>
                            <UniqueID ID="94872" ID_Context="protelIO" Type="1"/>
                            <Profile CreateDateTime="2019-02-08T13:05:45Z" CreatorID="lj" LastModifierID="lj" LastModifyDateTime="2019-05-21T09:20:37Z" ProfileType="1" RPH="94872" ShareAllOptOutInd="Yes" StatusCode="4">
                                <Customer BirthDate="2000-01-01" CustomerValue="GOLD" Gender="Male" Language="de" VIP_Indicator="true">
                                    <PersonName ShareMarketInd="No">
                                        <NamePrefix>Herr</NamePrefix>
                                        <GivenName>Test_Firstname</GivenName>
                                        <MiddleName>Test_2Firsrname</MiddleName>
                                        <Surname>Test_Surname</Surname>
                                    </PersonName>
                                    <Telephone DefaultInd="true" FormattedInd="false" PhoneLocationType="6" PhoneNumber="0231-123456" PhoneTechType="1" ShareMarketInd="No"/>
                                    <Telephone DefaultInd="true" FormattedInd="false" PhoneLocationType="6" PhoneNumber="0176-123456" PhoneTechType="5" ShareMarketInd="No"/>
                                    <Telephone DefaultInd="false" FormattedInd="false" PhoneLocationType="6" PhoneNumber="0176-258741" PhoneTechType="5" ShareMarketInd="No"/>
                                    <Telephone DefaultInd="true" FormattedInd="false" PhoneLocationType="6" PhoneNumber="0231-159874" PhoneTechType="3" ShareMarketInd="No"/>
                                    <Email DefaultInd="true" EmailType="1" ShareMarketInd="No">Test@email.com</Email>
                                    <Email DefaultInd="false" EmailType="1" ShareMarketInd="No">test2@email.com</Email>
                                    <Address DefaultInd="true" FormattedInd="false" ShareMarketInd="No" Type="1" UseType="7">
                                        <AddressLine>TestStraße 5</AddressLine>
                                        <CityName>Testorf-Steinfort</CityName>
                                        <PostalCode>12345</PostalCode>
                                        <StateProv StateCode="3">Niederösterreich</StateProv>
                                        <CountryName Code="AT">Österreich</CountryName>
                                    </Address>
                                    <Address DefaultInd="false" FormattedInd="false" ShareMarketInd="No" Type="2" UseType="7">
                                        <AddressLine>Test-Business</AddressLine>
                                        <CityName>Test</CityName>
                                        <PostalCode>12345</PostalCode>
                                        <StateProv StateCode="2">Kärnten</StateProv>
                                        <CountryName Code="AT">Österreich</CountryName>
                                    </Address>
                                    <Address DefaultInd="false" FormattedInd="false" ShareMarketInd="No" Type="3" UseType="7">
                                        <AddressLine>Test_post</AddressLine>
                                        <CityName>Test</CityName>
                                        <PostalCode>12345</PostalCode>
                                        <CountryName Code="ES">Spanien</CountryName>
                                    </Address>
                                    <URL DefaultInd="true" ShareMarketInd="No">Url@test.com</URL>
                                    <CitizenCountryName Code="ES" DefaultInd="true"/>
                                    <Document DocID="Passport-123456" DocIssueCountry="DE" DocIssueLocation="Dortmund" EffectiveDate="2018-12-16" ExpireDate="2024-05-16"/>
                                    <Document DocID="123456789" DocIssueCountry="DE" DocIssueLocation="Dortmund" EffectiveDate="2018-08-16" ExpireDate="2019-11-30"/>
                                    <Document DocID="PassNR123456" DocType="2"/>
                                    <Document DocID="Passport-123456" DocIssueCountry="DE" DocIssueLocation="Dortmund" EffectiveDate="2018-12-16" ExpireDate="2024-05-16"/>
                                    <Document DocID="123456789" DocIssueCountry="DE" DocIssueLocation="Dortmund" EffectiveDate="2018-08-16" ExpireDate="2019-11-30"/>
                                    <CustLoyalty LoyalLevel="" MembershipID="1234587" ProgramID="Test_MemberCard" RPH="09c82465-e37e-4a4a-8540-5085afac319a" Remark="Test_MemberCard" VendorCode="Test_MemberCard"/>
                                    <CustLoyalty LoyalLevel="" MembershipID="1234587" ProgramID="Test_MemberCard" RPH="2833e858-b0ea-48df-bdff-659d0c3911ac" Remark="Test_MemberCard" VendorCode="Test_MemberCard"/>
                                    <TPA_Extensions>
                                        <px:ProfileInfoExtensions>
                                            <px:AddressTypes>
                                                <px:AddressType DefaultInd="false" DisplaySequence="0" ID="9" ID_Context="protelIO" Type="ADDRESSTYPE">PV</px:AddressType>
                                                <px:AddressType DefaultInd="false" DisplaySequence="0" ID="7" ID_Context="protelIO" Type="ADDRESSTYPE">Bus.</px:AddressType>
                                                <px:AddressType DefaultInd="false" DisplaySequence="0" ID="8" ID_Context="protelIO" Type="ADDRESSTYPE">P.O. Box</px:AddressType>
                                            </px:AddressTypes>
                                            <px:ContactDetails>
                                                <px:AdditionalInfo>
                                                    <px:Entry DefaultInd="false" DisplaySequence="0" ID="143" ID_Context="protelIO" Type="CONTACTTYPE">Phone</px:Entry>
                                                    <px:Entry DefaultInd="false" DisplaySequence="0" ID="315" ID_Context="protelIO" Type="CONTACTTYPE">Mobile</px:Entry>
                                                    <px:Entry DefaultInd="false" DisplaySequence="0" ID="315" ID_Context="protelIO" Type="CONTACTTYPE">Mobile</px:Entry>
                                                    <px:Entry DefaultInd="false" DisplaySequence="0" ID="145" ID_Context="protelIO" Type="CONTACTTYPE">Fax</px:Entry>
                                                    <px:Entry DefaultInd="false" DisplaySequence="0" ID="147" ID_Context="protelIO" Type="CONTACTTYPE">E-Mail</px:Entry>
                                                    <px:Entry DefaultInd="false" DisplaySequence="0" ID="147" ID_Context="protelIO" Type="CONTACTTYPE">E-Mail</px:Entry>
                                                </px:AdditionalInfo>
                                            </px:ContactDetails>
                                            <px:PersonInfos>
                                                <px:Language DefaultInd="true">de-de</px:Language>
                                                <px:Codes>
                                                    <px:Code DefaultInd="false" DisplaySequence="0" ID="165" ID_Context="protelIO" Type="KEYWORD">Business</px:Code>
                                                    <px:Code DefaultInd="false" DisplaySequence="0" ID="316" ID_Context="protelIO" Type="VIPCODE">GOLD</px:Code>
                                                    <px:Code DefaultInd="false" DisplaySequence="0" ID="171" ID_Context="protelIO" Type="MARKETINGCODE">FAL</px:Code>
                                                </px:Codes>
                                            </px:PersonInfos>
                                            <px:Salutation ID="11" ID_Context="protelIO" Type="SALUTATION">Sehr geehrter Herr</px:Salutation>
                                            <px:StatisticalInfos/>
                                            <px:AccountingInfos/>
                                            <px:LogEntries/>
                                            <px:Memberships/>
                                        </px:ProfileInfoExtensions>
                                    </TPA_Extensions>
                                </Customer>
                                <Comments>
                                    <Comment Name="Preferences">
                                        <Text TextFormat="PlainText">Test_Preference
test_lh</Text>
                                    </Comment>
                                </Comments>
                            </Profile>
                        </ProfileInfo>
                    </Profiles>
                    <TPA_Extensions>
                        <px:GuestStayExtensions>
                            <px:StayInfo Arrival="2019-08-12T12:00:00+02:00" Departure="2019-08-13T12:00:00+02:00" Role="ArrivingGuest"/>
                            <px:TelephoneSetting ClassOfService="3"/>
                        </px:GuestStayExtensions>
                    </TPA_Extensions>
                </ResGuest>
            </ResGuests>
            <ResGlobalInfo>
                <HotelReservationIDs>
                    <HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="14" ResID_Value="17225"/>
                </HotelReservationIDs>
            </ResGlobalInfo>
            <TPA_Extensions>
                <px:ReservationExtensions>
                    <px:ReservationStatus Code="Def" ID="4" ID_Context="protelIO" Name="Definite" RPH="17225"/>
                    <px:ReservationCode Code="E-Mail" ID="47" ID_Context="protelIO" Language="en_US" Name="E-Mail" RPH="17225" Type="CommunicationChannel"/>
                    <px:ReservationCode Code="CEV" ID="197" ID_Context="protelIO" Language="en_US" Name="City Event" RPH="17225" Type="TravelReason"/>
                </px:ReservationExtensions>
            </TPA_Extensions>
        </HotelReservation>
    </HotelReservations>
</OTA_HotelResNotifRQ>
2

Getting the hotel´s availability
PMS sends OTA_HotelInvCountNotifRQ to UPS

OTA_HotelInvCountNotifRQ
<OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:p="http://protel.io/soap" xmlns:px="http://protel.io/htng/extensions" xmlns:htng="http://htng.org/2014B" CorrelationID="CID_String" EchoToken="EchoToken_String" PrimaryLangID="en" TimeStamp="2018-10-25T11:15:14Z" Version="3.000">
  <POS>
    <Source>
      <RequestorID ID="2578" ID_Context="protelIO" Type="10"/>
      <BookingChannel Primary="true" Type="4"/>
      <TPA_Extensions>
        <px:POSExtensions>
          <px:HotelInfo FiscalDate="2015-01-08"/>
        </px:POSExtensions>
      </TPA_Extensions>
    </Source>
  </POS>
  <UniqueID ID="2578" ID_Context="protelIO" Type="10"/>
  <Inventories ChainCode="n/a" HotelCode="2578" HotelName="l'Arrivée HOTEL & SPA">
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="49" InvTypeCode="SUITE" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="2" CountType="1"/>
        <InvCount Count="1" CountType="2"/>
        <InvCount Count="1" CountType="3"/>
        <InvCount Count="1" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="49#2015-01-09#5699" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="51" InvTypeCode="COMSGL" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="8" CountType="1"/>
        <InvCount Count="3" CountType="2"/>
        <InvCount Count="3" CountType="3"/>
        <InvCount Count="5" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="51#2015-01-09#3D05" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="55" InvTypeCode="FAM" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="1" CountType="1"/>
        <InvCount Count="1" CountType="2"/>
        <InvCount Count="1" CountType="3"/>
        <InvCount Count="0" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="55#2015-01-09#5203" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="57" InvTypeCode="JUNS" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="3" CountType="1"/>
        <InvCount Count="1" CountType="2"/>
        <InvCount Count="1" CountType="3"/>
        <InvCount Count="2" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="57#2015-01-09#09A9" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="58" InvTypeCode="QN" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="1" CountType="1"/>
        <InvCount Count="1" CountType="2"/>
        <InvCount Count="1" CountType="3"/>
        <InvCount Count="0" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="58#2015-01-09#9CA9" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="43" InvTypeCode="SUPDBL" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="9" CountType="1"/>
        <InvCount Count="2" CountType="2"/>
        <InvCount Count="2" CountType="3"/>
        <InvCount Count="6" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="1" CountType="6"/>
      </InvCounts>
      <UniqueID ID="43#2015-01-09#0343" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="59" InvTypeCode="KNG" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="1" CountType="1"/>
        <InvCount Count="1" CountType="2"/>
        <InvCount Count="1" CountType="3"/>
        <InvCount Count="0" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="59#2015-01-09#AB5B" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="45" InvTypeCode="COMDBL" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="5" CountType="1"/>
        <InvCount Count="1" CountType="2"/>
        <InvCount Count="1" CountType="3"/>
        <InvCount Count="4" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="45#2015-01-09#FF2C" ID_Context="protelIO" Type="16"/>
    </Inventory>
    <Inventory>
      <StatusApplicationControl AllInvCode="false" End="2015-01-09" InvCode="47" InvTypeCode="STDSGL" IsRoom="true" Start="2015-01-09"/>
      <InvCounts>
        <InvCount Count="4" CountType="1"/>
        <InvCount Count="2" CountType="2"/>
        <InvCount Count="2" CountType="3"/>
        <InvCount Count="2" CountType="4"/>
        <InvCount Count="0" CountType="5"/>
        <InvCount Count="0" CountType="6"/>
      </InvCounts>
      <UniqueID ID="47#2015-01-09#D9F5" ID_Context="protelIO" Type="16"/>
    </Inventory>
  </Inventories>
</OTA_HotelInvCountNotifRQ>
3

Creating/changing/removing rate restrictions in PMS

PMS sends OTA_HotelAvailNotifRQ to the UPS

  • NOTE: This can also get triggered by external systems.
OTA_HotelAvailNotifRQ
<OTA_HotelAvailNotifRQ MessageContentCode="2" TimeStamp="2018-12-03T00:00:00.000Z" Version="2" CorrelationID="NSD_02/20_04">
    <AvailStatusMessages HotelCode="2811">
        <AvailStatusMessage>
            <StatusApplicationControl Start="2018-12-25" End="2018-12-26" InvTypeCode="Typ 2a" RatePlanCode="AK"/>
            <LengthsOfStay>
                <LengthOfStay MinMaxMessageType="SetMinLOS" Time="6" TimeUnit="Day"/>
            </LengthsOfStay>
            <UniqueID ID="1" Type="16"/>
        </AvailStatusMessage>
        <AvailStatusMessage>
            <StatusApplicationControl Start="2018-12-25" End="2018-12-26" InvTypeCode="Typ 2a"/>
            <UniqueID ID="2" Type="16"/>
            <RestrictionStatus Restriction="Arrival" Status="Open"/>
        </AvailStatusMessage>
    </AvailStatusMessages>
</OTA_HotelAvailNotifRQ>
4

In order to assign upsellings to existing reservations, a Reservation Look Up is necessary.

UPS fetches a particular reservation.
Done via message type OTA_ReadRQ/OTA ResRetrieveRS.


OTA_ReadRQ
<OTA_ReadRQ CorrelationID="READ#TEST#1" EchoToken="READ#TEST#1" TimeStamp="2019-06-10T19:10:00Z" xmlns="http://www.opentravel.org/OTA/2003/05">
    <POS>
        <Source>
            <RequestorID ID="2879" Type="10" ID_Context="protelIO"/>
        </Source>
    </POS>
    <ReadRequests>
        <ReadRequest>
            <UniqueID ID="1089" ID_Context="protelIO" Type="14"/>
        </ReadRequest>
    </ReadRequests>
</OTA_ReadRQ>
OTA_ResRetrieveRS
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:p="http://protel.io/soap" xmlns:px="http://protel.io/htng/extensions" xmlns:htng="http://htng.org/2014B" CorrelationID="READ#TEST#1" EchoToken="52151515151" PrimaryLangID="en" TimeStamp="2019-06-10T17:15:51Z" Version="6.002">
    <Success/>
    <ReservationsList>
        <HotelReservation CreateDateTime="2019-02-25T16:19:11+01:00" CreatorID="bra" LastModifierID="mirel.balc" LastModifyDateTime="2019-05-28T15:52:27+02:00" ResStatus="Reserved">
            <UniqueID ID="1089" ID_Context="protelIO" Type="14"/>
            <UniqueID ID="Test123" ID_Context="CRS" Instance="2019-06-10T17:00:28Z" Type="14"/>
            <RoomStays>
                <RoomStay MarketCode="BSI" SourceOfBusiness="GDS">
                    <RoomTypes>
                        <RoomType IsRoom="true" NumberOfUnits="1" RoomID="109" RoomType="Standard Twin(56)" RoomTypeCode="STT"/>
                    </RoomTypes>
                    <RatePlans>
                        <RatePlan EffectiveDate="2019-05-28" ExpireDate="2019-05-29" PriceViewableInd="true" RatePlanCode="BAR" RatePlanID="1">
                            <CancelPenalties/>
                            <RatePlanInclusions TaxInclusive="true"/>
                        </RatePlan>
                    </RatePlans>
                    <RoomRates>
                        <RoomRate BookingCode="STT" EffectiveDate="2019-05-28" ExpireDate="2019-05-29" NumberOfUnits="1" RatePlanCategory="BAR" RatePlanCode="BAR" RatePlanID="1" RoomID="109" RoomTypeCode="STT">
                            <Rates>
                                <Rate AlternateCurrencyInd="false" EffectiveDate="2019-05-28" ExpireDate="2019-05-29" RateTimeUnit="Day" UnitMultiplier="1">
                                    <Base AmountAfterTax="-109.00" AmountBeforeTax="-101.87" CurrencyCode="EUR"/>
                                    <TPA_Extensions>
                                        <px:RateAmountExtensions End="2019-05-29" Start="2019-05-28">
                                            <px:RateAmount AmountAfterTax="34.00" AmountBeforeTax="31.77" CurrencyCode="EUR" RevenueCategoryCode="9"/>
                                            <px:RateAmount AmountAfterTax="34.00" AmountBeforeTax="31.77" CurrencyCode="EUR" RevenueCategoryCode="17"/>
                                        </px:RateAmountExtensions>
                                    </TPA_Extensions>
                                </Rate>
                            </Rates>
                            <RoomRateDescription Name="MarketCode">
                                <Text TextFormat="PlainText">BSI</Text>
                            </RoomRateDescription>
                            <RoomRateDescription Name="SourceOfBusiness">
                                <Text TextFormat="PlainText">GDS</Text>
                            </RoomRateDescription>
                        </RoomRate>
                    </RoomRates>
                    <GuestCounts IsPerRoom="true">
                        <GuestCount AgeQualifyingCode="10" Count="1"/>
                    </GuestCounts>
                    <TimeSpan End="2019-05-29" Start="2019-05-28"/>
                    <DepositPayments/>
                    <CancelPenalties/>
                    <Total AmountAfterTax="-109.00" AmountBeforeTax="-101.87" CurrencyCode="EUR"/>
                    <BasicPropertyInfo ChainCode="n/a" HotelCode="2879" HotelCodeContext="protelIO" HotelName="protel_IO_Testhotel_pAir_2100173"/>
                    <TPA_Extensions>
                        <px:RateAmountExtensions AlternateCurrencyInd="false" End="2019-05-29" Start="2019-05-28">
                            <px:RateAmount AmountAfterTax="34.00" AmountBeforeTax="31.77" CurrencyCode="EUR" RevenueCategoryCode="9"/>
                            <px:RateAmount AmountAfterTax="34.00" AmountBeforeTax="31.77" CurrencyCode="EUR" RevenueCategoryCode="17"/>
                        </px:RateAmountExtensions>
                    </TPA_Extensions>
                    <ResGuestRPHs>
                        <ResGuestRPH RPH="1055"/>
                    </ResGuestRPHs>
                    <Comments>
                        <Comment GuestViewable="false">
                            <Text TextFormat="PlainText"/>
                        </Comment>
                    </Comments>
                </RoomStay>
            </RoomStays>
            <ResGuests>
                <ResGuest ArrivalTime="12:00:00+02:00" DepartureTime="12:00:00+02:00" PrimaryIndicator="true" ResGuestRPH="1055">
                    <Profiles>
                        <ProfileInfo>
                            <UniqueID ID="1055" ID_Context="protelIO" Type="1"/>
                            <Profile CreateDateTime="2019-06-10T17:15:51Z" CreatorID="Unknown" LastModifierID="Unknown" LastModifyDateTime="2019-06-10T17:15:51Z" ProfileType="1" RPH="1055" ShareAllOptOutInd="Yes" StatusCode="4">
                                <Customer BirthDate="0001-01-01" Gender="Unknown">
                                    <PersonName ShareMarketInd="No">
                                        <NamePrefix/>
                                        <GivenName>Tes2</GivenName>
                                        <Surname>Testing2</Surname>
                                    </PersonName>
                                    <Email DefaultInd="true" EmailType="1" ShareMarketInd="No">doruk@gmail.com</Email>
                                    <Address DefaultInd="true" FormattedInd="false" ShareMarketInd="No" Type="3" UseType="7">
                                        <AddressLine>teststr</AddressLine>
                                        <CityName>London</CityName>
                                        <PostalCode>44799</PostalCode>
                                    </Address>
                                    <TPA_Extensions>
                                        <px:ProfileInfoExtensions>
                                            <px:AddressTypes/>
                                            <px:ContactDetails>
                                                <px:AdditionalInfo>
                                                    <px:Entry DefaultInd="false" DisplaySequence="0" ID="147" ID_Context="protelIO" Type="CONTACTTYPE">E-Mail</px:Entry>
                                                </px:AdditionalInfo>
                                            </px:ContactDetails>
                                            <px:PersonInfos>
                                                <px:Codes/>
                                            </px:PersonInfos>
                                            <px:StatisticalInfos/>
                                            <px:AccountingInfos/>
                                            <px:LogEntries/>
                                            <px:Memberships/>
                                        </px:ProfileInfoExtensions>
                                    </TPA_Extensions>
                                </Customer>
                            </Profile>
                        </ProfileInfo>
                    </Profiles>
                    <TPA_Extensions>
                        <px:GuestStayExtensions>
                            <px:StayInfo Arrival="2019-05-28T12:00:00+02:00" Departure="2019-05-29T12:00:00+02:00" Role="Booker"/>
                            <px:TelephoneSetting ClassOfService="3"/>
                        </px:GuestStayExtensions>
                    </TPA_Extensions>
                </ResGuest>
            </ResGuests>
            <ResGlobalInfo>
                <HotelReservationIDs>
                    <HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="14" ResID_Value="1089"/>
                    <HotelReservationID ForGuest="true" ResID_Source="CRS" ResID_Type="14" ResID_Value="Test123"/>
                </HotelReservationIDs>
            </ResGlobalInfo>
            <TPA_Extensions>
                <px:ReservationExtensions>
                    <px:ReservationStatus Code="DEF" ID="4" ID_Context="protelIO" Name="Definite" RPH="1089"/>
                    <px:ReservationCode Code="CHM" ID="215" ID_Context="protelIO" Language="en_US" Name="Channel Manager" RPH="1089" Type="CommunicationChannel"/>
                    <px:ReservationCode Code="BUS" ID="62" ID_Context="protelIO" Language="en_US" Name="Business" RPH="1089" Type="TravelReason"/>
                </px:ReservationExtensions>
            </TPA_Extensions>
        </HotelReservation>
    </ReservationsList>
</OTA_ResRetrieveRS>
5

UPS influences existing reservation by 

  • assigning packages (wellness etc.),
  • adding traces ( bring sparkling wine/ prepare the room/ flowers etc. and/or
  • upgrading roomtype/roomnumber/change rate value.

Done via IO_ResModifyNotifRQ.

See the following page for further Use Cases / Sample messages:

IO_ResModifyNotifRQ/RS _ Old#Samplemessages

IO_ResModify
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="UseCase2a" TimeStamp="2020-01-30T10:58:51Z" Version="1.00">
    <p:Reservations HotelCode="2572">
        <p:Reservation>
            <p:UniqueID Type="Reservation" ID="11338" ID_Context="protelIO"/>
            <p:Slices>
                <p:Slice>
                    <p:Room RoomType="DBL-SUP"/>
                </p:Slice>
            </p:Slices>
            <FixedCharges>
                <p:FixedCharge Action="CREATE" Quantity="1">
                    <p:Price SingleAmountAfterTax="20.00" CurrencyCode="EUR"/>
                    <p:Item Code="99999"/>
                </p:FixedCharge>
            </FixedCharges>
        </p:Reservation>
    </p:Reservations>
</p:IO_ResModifyNotifRQ>
6

UPS sending in upsellings via direct revenue charges like room upgrade charges, breakfast, half board and/or full board.

Done via HTNG_ChargePostingRQ.

HTNG_ChargePostingRQ
<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="EchoToken_String" Version="0" CorrelationID="CID_string">
    <POS>
        <Source xmlns="http://www.opentravel.org/OTA/2003/05">
            <RequestorID ID="2811" Type="10" ID_Context="protelIO"/>
            <BookingChannel Type="4" Primary="true"/>
        </Source>
    </POS>
    <Posting ID="7">
        <Transaction TicketID="13">
            <RevenueDetails>
                <RevenueDetail Description="Breakfast" PMSRevenueCode="301" CurrencyCode="EUR" Amount="100.00" SubTypeID="Revenue">
                    <ExtendedPrice Quantity="12"/>
                    <Account ID="23889" Type="14" ID_Context="protelIO"/>
                </RevenueDetail>
            </RevenueDetails>
        </Transaction>
    </Posting>
</HTNG_ChargePostingRQ>
  • Keine Stichwörter