Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

The purpose of this page is to inform you about upcoming changes within our OTA/HTNG implementation for both property management systems. Please note that the changes are divided into onPrem and pAir PMS changes. onPrem changes won't be rolled out globally at the date that is mentioned in the table below whilst pAir Updates will always be rolled out for all customers in one step. 
Please note that the XML of the examples are shortened for a clear arrangement. The full sample message can be found on the documentation page for the message.

Release dates pAIR LIVE Environment

VersionRelease date
21.342021-08-25
21.322021-08-11


Release dates PWS (onPrem) LIVE Environment

VersionRelease date
3.62022-02-02
3.52021-11-29
3.42021-09-15
3.32021-08-04



Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersion
TBA IDS








TBA PWS
HTNG_HotelChargePostingRQinboundOnPremHTNG_HotelChargePostingRQ | Posting | Transaction | RevenueDetails | RevenueDetail | @ReferenceID


Codeblock
languagexml
collapsetrue
<HTNG_ChargePostingRQ>
	<Posting ID="1">
		<Transaction TicketID="1">
			<RevenueDetails>
				<RevenueDetail Description="Upsell Article" PMSRevenueCode="1000" ReferenceID="1015" Amount="20.00" SubTypeID="Revenue">
					<ExtendedPrice AmountAfterTax="20.00" DecimalPlaces="2" Quantity="1"/>
					<Account ID="341977-2" Type="16" ID_Context="protelIO"/>
				</RevenueDetail>


With the Attribute @ReferenceID it will be possible to post as well articles. In the Attribute @ReferenceID the Article ID needs to be sent to Protel. In the Attribute @PMSRevenueCode the TAA from the article should be providedPWS-2996
IO_RatePackageNotifRQoutboundOnPremIO_RatePackageNotifRQ | Packages | Package | PackageItem | Calculation


Codeblock
languagexml
collapsetrue
<IO_RatePackageNotifRQ>
	<Packages>
		<Package>
			<PackageItems>
				<PackageItem>
					<Calculation AmountBeforeTax="40" AmountAfterTax="40" Currency="AED" InclusiveInd="true" Recurrence="Daily" Relation="Complex">
						<DaysOfWeek Mon="true" Tue="true" Wed="true" Thu="true" Fri="true" Sat="true" Sun="true"/>


Fix the values for the Recurrence Attribute

Possible Recurrence

  • OnArrival
  • OnDeparture
  • daily
  • DayOfWeek
  • floating
  • fixed
PWS-3001
OTA_HotelResNotifRQ outboundOnPrem

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | px:ReservationExtensions | px:FixedCharges | px:FixedCharge | px:ServiceDates | px:ServiceDate


Codeblock
languagexml
collapsetrue
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ReservationExtensions>
		<px:FixedCharges>
			<px:FixedCharge Code="KosmetikExtNoR" Recurrence="floating" From="2021-01-05" To="2021-01-12" Quantity="1" RequestedIndicator="true">
				<px:Price CurrencyCode="EUR" SingleAmountAfterTax="25.00"/>
				<px:UniqueID Type="FixedCharge" ID="103604" ID_Context="protelIO"/>
				<px:Item ItemID="75"/>
				<px:InvoiceText>Kosmetik täglich ab 5.1.</px:InvoiceText>
				<px:ServiceDates>
					<px:ServiceDate From="2021-01-05" To="2021-01-07"/>
					<px:ServiceDate From="2021-01-10" To="2021-01-12"/>
				</px:ServiceDates>
			</px:FixedCharge>
		</px:FixedCharges>
	</px:ReservationExtensions>
</TPA_Extensions>


Add the new Element "SerivceDates"

This Element will be displayed for the Recurrence= "floating" and "fixed"

Possible Recurrence

  • OnArrival
  • OnDeparture
  • daily
  • DayOfWeek
  • floating
  • fixed
PWS-2547
TBA IPA

PWS 3.6.X 

Anker
PWS 3.6.X
PWS 3.6.X








HTNG_HotelFolioRSoutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevnueDetail | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<HTNG_HotelFolioRS>
	<Folios>
		<Folio>
			<RevenueDetails>
				<RevenueDetail>
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>SDate|2017-08-23</FolioID>
                                                <FolioID>InvID|122345</FolioID>
					</FolioIDs>
					<RevenueDetailItems>
						<RevenueDetailItem>
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>SDate|2017-08-23</FolioID>
							</FolioIDs>


Add a short in front of the FolioID Element, to describe what is displayed

Possible values

  • InvID
  • InvNo
  • GstID
  • Code
  • TAAGrp
  • PkgID
  • SDate
PWS-2961PWS 3.5.X
HTNG_HotelFolioNotifRQoutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevnueDetail | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<HTNG_HotelFolioNotifRQ>
	<Folios>
		<Folio>
			<RevenueDetails>
				<RevenueDetail>
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>SDate|2017-08-23</FolioID>
                                                <FolioID>InvID|122345</FolioID>
					</FolioIDs>
					<RevenueDetailItems>
						<RevenueDetailItem>
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>SDate|2017-08-23</FolioID>
							</FolioIDs>


Add a short in front of the FolioID Element, to describe what is displayed

Possible values

  • InvID
  • InvNo
  • GstID
  • Code
  • TAAGrp
  • PkgID
  • SDate
PWS-2961PWS 3.5.X
IO_StatsNotifRQoutboundOnPremIO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSet | RevenueCategorySummaries


Codeblock
languagexml
collapsetrue
    <IO_StatsNotifRQ/>
      <Statistics>
        <Statistic>
          <StatisticApplicationSets>
            <StatisticApplicationSet Start="2021-10-28" End="2021-10-28">
              <StatisticCodes>
                <StatisticCode StatCode="Group" StatCategoryCode="3" />
                <StatisticCode StatCode="1" StatCategoryCode="Pseudo" />
              </StatisticCodes>
              <RevenueCategorySummaries>
                <RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="123" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="126" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="129" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="1217" CurrencyCode="EUR" Amount="0.00" />
              </RevenueCategorySummaries>


If the all value for the RevenueCategorySummaries is zero, we will not display the ElementPWS-2998PWS 3.5.X








PWS 3.5.X 

Anker
PWS 3.5.X
PWS 3.5.X








OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
OutboundOnPremOTA_ProfileModifyRQ | ProfileModify | StatusCode


Codeblock
languagexml
collapsetrue
<ProfileModify RPH="155474" LastModifyDateTime="2021-08-11T15:08:20.1833472+02:00" StatusCode="3" />


Extend the StatusCode for Profiles

1= Marked for deletion

2= anonymized profile 

3=deleted profile

4 = active

PWS-2955PWS 3.5.X
OTA_HotelResNotifRQOutboundOnPrem
  1. OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | px:UserDefinedFieldExtensions
  2. OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | px:TPA_Extensions | px:UserDefinedFieldExtensions
  3. OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | TPA_Extensions | px:UserDefinedFieldExtensions


Codeblock
languagexml
collapsetrue
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:UserDefinedFieldExtensions>
		<px:UserDefinedField Name="BWI Group" Type="Integer">local</px:UserDefinedField>
		<px:UserDefinedField Name="BWI Cancellation Date" Type="Date"/>
		<px:UserDefinedField Name="BWI Cancellation Time" Type="DateTime"/>
		<px:UserDefinedField Name="BWI Groupratecode" Type="String">GRP Test</px:UserDefinedField>
	</px:UserDefinedFieldExtensions>
</TPA_Extensions>


Added UDF information on reservation level (1.), on private profile level (2.) and on company/source/travel agent profile level (3.).PWS-2907PWS 3.5.X
OTA_ProfileModifyoutboundonPrem

OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | px:ProfileInfoExtensions | PersonInfos | Registration | @LicensePlate


Codeblock
languagexml
collapsetrue
<px:TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:PersonInfos>
			<px:Registration LicensePlate="AB-12345" />
		</px:PersonInfos>
		<px:Salutation ID="1" ID_Context="protelIO" Type="Salutation">Dear Mrs. memari21</px:Salutation>
	</px:ProfileInfoExtensions>
	<px:UserDefinedFieldExtensions>
		<px:UserDefinedField Name="Pet Name" Type="String">pepelolo</px:UserDefinedField>
	</px:UserDefinedFieldExtensions>
</px:TPA_Extensions>


Add the license plate to the outbound profile MessagePWS-2916PWS 3.5.X
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
inboundOnPrem
OTA_ProfileCreateRQ | Profile | CompanyInfo | CompanyName 


Codeblock
languagexml
collapsetrue
<OTA_ProfileCreateRQ>
	<UniqueID Type="4" ID="615" ID_Context="External"/>
	<Profile>
		<CompanyInfo>
			<CompanyName CompanyShortName="CKO" Department="DEP">Protel Hotelsoftware GmbH</CompanyName>


with an inboud Profile you can create / change the Department Attribute Information, the Information in the Database where the Department name is stored is "Kunden.abteil" CompanyName | @DepartmentPWS-2855PWS 3.5.X
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
InboundOnPrem

OTA_ProfileModifyRQ | ProfileModify | Comments | Comment
OTA_ProfileCreateRQ | ProfileModify | Comments | Comment


Codeblock
languagexml
collapsetrue
<ProfileModify ShareAllOptOutInd="Yes" ProfileType="1" CreateDateTime="2021-01-20T14:42:00" CreatorID="protelIO" RPH="155522" LastModifyDateTime="2021-09-29T12:34:49" LastModifierID="protel 37" StatusCode="4">
	<Customer Gender="Unknown" Language="ENG">
		<PersonName>
			<GivenName>ali</GivenName>
			<Surname>memari13</Surname>
		</PersonName>
		<Telephone ShareMarketInd="No" PhoneNumber="123456" PhoneLocationType="6" PhoneTechType="1" FormattedInd="false" DefaultInd="true" />
		<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true" UseType="6">
			<AddressLine>str01</AddressLine>
			<StateProv/>
			<CountryName Code="DE">Germany</CountryName>
		</Address>
		<CitizenCountryName DefaultInd="true" Code="DE" />
		<Document />
		<EmployerInfo CompanyShortName="" Department=""/>                    
	</Customer>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions" />
	<Comments>
		<Comment Name="Customer_Comment">
			<Text TextFormat="PlainText">Remark visible to all Hotels</Text>
		</Comment>
		<Comment Name="Restaurant_Comment">
			<Text TextFormat="PlainText">Notes to restaurant</Text>
		</Comment>
	</Comments>
</ProfileModify>


Importing Restuarant and Customer notes is possible for OnPrem. There is an extra Xsetup to active/deactive override notes in OnPrem.
pws | override_profile_notes
PWS-2890PWS 3.5.X
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
inboundOnPrem

OTA_ProfileModifyRQ | ProfileModify | Customer | Address


Codeblock
languagexml
collapsetrue
<OTA_ProfileModifyRQ>
	<UniqueID Type="4" ID="615" ID_Context="External"/>
		<ProfileModify ShareAllOptOutInd="Yes" ProfileType="1" CreateDateTime="2021-08-11T12:42:00" 	CreatorID="protel 1" RPH="12" LastModifyDateTime="2021-08-31T09:05:24" LastModifierID="protel 1" StatusCode="4">
			<Customer Gender="Male" BirthDate="1980-10-20" VIP_Indicator="true" Language="de" CustomerValue="V6 – Previous Feedback Guest|0;V7 – Long Stay Guest |2;V8 – Black Listed Guest|2">
				<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true" UseType="6">
					<AddressLine>Main Address 110</AddressLine>
					<CityName>Osterode</CityName>
					<PostalCode>37520</PostalCode>
					<StateProv>Niedersachsen</StateProv>
					<CountryName Code="DE">Germany</CountryName>
				</Address>


It is possible to send inbound Customer profile modify request with AddressLine , CityName and PostCodePWS-2864PWS 3.5.X

PWS 3.4.X 

Anker
PWS 3.4.X
PWS 3.4.X






OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
OutboundOnPremProfile | Outbound | Document element | remove @BirthDate Attribute


Codeblock
languagexml
collapsetrue
<OTA_ProfileModifyRQ>
	<ProfileModify>
		<Customer BirthDate="1980-09-21T00:00:00">
			<Document DocID="M1544474" DocType="2" ExpireDate="2025-10-10"/>
			<Document DocID="M1544474" ExpireDate="2025-10-10"/>
			<Document DocID="M1544474" ExpireDate="2025-10-10"/>
			<Document DocID="M1544474" ExpireDate="2025-10-10"/>


@BirthDate attribute will be removed from this element.PWS-2823PWS 3.4.X
OTA_HotelInvCountNotifRQoutboundOnPremno changes in XML
Send Delta inventory changesPWS-112PWS 3.4.X
HTNG_HotelFolioRS/HTNG_HotelFolioNotifRQoutboundOnPrem

HTNG_HotelFolioNotifRQ | Folios | Folio | @FolioID

HTNG_HotelFolioNotifRQ | Folios | Folio | @InvoiceID


Codeblock
languagexml
collapsetrue
    <HTNG_HotelFolioNotifRQ>
      <UniqueID Type="14" ID="341806" ID_Context="protelIO" />
      <Folios>
        <Folio FolioID="341806-0" FolioGroupingID="Closed" FolioType="Room" InvoiceID="340" GuestPayable="true"/>
        <Folio FolioID="341806-1" FolioGroupingID="Open" FolioType="Room" InvoiceID="0" GuestPayable="true">


@FolioID will always display the ReservationID+Folio

@InvoiceID will always display the InvoiceID as soon as it is created

PWS-2774PWS 3.4.X
OTA_ProfileModifyRQoutboundOnPremOTA_ProfileModifyRQ | ProfileModify | StatusCode


Codeblock
languagexml
collapsetrue
<ProfileModify RPH="155474" LastModifyDateTime="2021-08-11T15:08:20.1833472+02:00" StatusCode="2" />


Extend the StatusCode for Profiles

1= Marked for deletion

2= Lapsed

PWS-1168PWS 3.4.X
IO_StatsNotifRQoutboundOnPremIO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary


Codeblock
languagexml
collapsetrue
<StatisticApplicationSet Start="2018-09-12" End="2018-09-12">
	<StatisticCodes/>
	<RevenueCategorySummaries>
		<RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="EUR" Amount="0.00"/>
		<RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="EUR" Amount="160.00"/>
		<RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="EUR" Amount="1000.00"/>
		<RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="EUR" Amount="1160.00"/>
		<RevenueCategorySummary RevenueCategoryCode="123" CurrencyCode="EUR" Amount="0.00"/>
		<RevenueCategorySummary RevenueCategoryCode="126" CurrencyCode="EUR" Amount="160.00"/>
		<RevenueCategorySummary RevenueCategoryCode="129" CurrencyCode="EUR" Amount="1000.00"/>
		<RevenueCategorySummary RevenueCategoryCode="1217" CurrencyCode="EUR" Amount="1160.00"/>
	</RevenueCategorySummaries>
	<CountCategorySummaries>
		<CountCategorySummary SummaryCount="86" CountCategoryCode="8"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="9"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="10"/>
		<CountCategorySummary SummaryCount="4" CountCategoryCode="11"/>
		<CountCategorySummary SummaryCount="4" CountCategoryCode="12"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="13"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="14"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="15"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="19"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="22"/>
	</CountCategorySummaries>
</StatisticApplicationSet>


Add the CountCategorySummary to the property levelPWS-2746PWS 3.4.X

IPA 21.34 

Anker
IPA 21.34
IPA 21.34






HTNG_ChargePostingRQinboundpAirno changes in XML
Only negative amounts are allowed, positive amounts will not be processed.IPA-943IPA 21.34

IPA 21.32 

Anker
IPA 21.32
IPA 21.32






OTA_HotelResNotifRQ InboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate


Codeblock
languagexml
collapsetrue
<RoomRate BookingCode="JST" EffectiveDate="2020-08-31" ExpireDate="2020-09-01" InvBlockCode="" NumberOfUnits="1" RatePlanCategory="BAR" RatePlanCode="Alireza" RatePlanID="28" RoomID="10-2L" RoomTypeCode="JST">


Receiving an inbound reservation with @InvBlockCode = "" will delete and remove the assigned allotment.IPA-823IPA 21.32

PWS 3.3.X 

Anker
PWS 3.3.X
PWS 3.3.X






HTNG_HotelCheckInNotifRQOutboundOnPremwhole message
HTNG_HotelCheckInNotifRQ implemented for OnPrem and it generates as soon as the room gets check in.PWS-2737PWS 3.3.X
HTNG_HotelCheckOutNotifRQOutboundOnPremwhole message
HTNG_HotelCheckOutNotifRQ implemented for OnPrem and it generates as soon as the room gets check out.PWS-2735PWS 3.3.X

HTNG_HotelFolioNotifRQ

HNTG_HotelFolioRS

outboundonPrem

no changes in XML


GuestPayable = false should be used for all types of payments that have the type DEBITOR assigned.

GuestPayable = true should be used for all types of payments that have the type CC assigned.

PWS-2677PWS 3.3.X
HTNG_HotelCheckOutNotifRQ outboundOnPrem

no changes in XML

HTNG_HotelCheckOutNotifRQ/RSImplement the HTNG_HotelCheckOutNotifRQ outboundPWS-2735PWS 3.3.X
HTNG_HotelCheckInNotifRQ outboundOnPremno changes in XMLHTNG_HotelCheckInNotifRQ/RSImplement the HTNG_HotelCheckInNotifRQ outboundPWS-2737PWS 3.3.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

outboundOnPremOTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:UserDefinedFieldExtensions


Codeblock
languagexml
collapsetrue
<OTA_ProfileCreateRQ>
	<Profile>
		<Customer>
			<TPA_Extensions>
				<px:UserDefinedFieldExtensions>
					<px:UserDefinedField Name="Test" Type="Integer">1</px:UserDefinedField>
					<px:UserDefinedField Name="Test_2" Type="String">222</px:UserDefinedField>
				</px:UserDefinedFieldExtensions>
			</TPA_Extensions>


Add the Element px:UserDefinedFieldExtensions to the outbound Profile messagePWS-2704PWS 3.3.X
OTA_HotelResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | TPA_Extension | StayInfo | @RegistrationCode


Codeblock
languagexml
collapsetrue
<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation>
			<ResGuests>
				<ResGuest>
					<TPA_Extensions>
						<px:GuestStayExtensions>
							<px:StayInfo Arrival="2021-07-15T14:19:00" Departure="2021-07-18T08:24:00" RegistrationCode="10006"/>
						</px:GuestStayExtensions>


Add the new Attribute @RegistrationCode to display the Registration NumberPWS-2733PWS 3.3.X
OTA_HotelResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | Services


Codeblock
languagexml
collapsetrue
<Service ID="1" ID_Context="protelIO" Type="18" ServicePricingType="Per stay" ServiceInventoryCode="Notebook" InventoryBlockCode="Technik" Quantity="1" RequestedIndicator="true">
	<ServiceDetails>
		<TimeSpan Start="pobjres.d1" End="pobjres.d2"/>
		<Comments>
			<Comment Name="RentableObject" >
				<Text TextFormat="PlainText">Notebook</Text>
			</Comment>
		</Comments>
	</ServiceDetails>
</Service>


OTA_HotelResNotifRQ | HotelReservations | HotelReservation | Services | ServiceServiceDetails | Comments | Comment | @Name="RentableObject"PWS-11463.3.X
HTNG_HotelCheckInNotifRQinboundOnPremno changes in XML
In case of receiving a Check-in for a reservation without assigned room. The PWS takes the first available clean/checked room when choosing a RoomID in order to assign it to the reservation. 
In OnPrem it is possible to assign preferred rooms in a Profile
PWS-26563.3.X


...