Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 180 Nächste Version anzeigen »




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
20.532020-12-30
20.512020-12-16
20.492020-12-02
20.472020-11-18
20.452020-11-04
20.432020-10-21
20.412020-10-07
20.392020-09-23

Release dates PWS (onPrem) LIVE Environment

VersionRelease date
PWS 3.1TBA
PWS 3.0TBA

Planned Changes#PWS 2.20

2020-11-23
Planned Changes#PWS 2.192020-10-05


Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersion
TBA IDS
OTA_HotelRatePlanNotifRQOutboundIDSRates / Rate / BaseByGuestAmts / BaseByGuestAmt
<Rates>
    <Rate RateTier="Active" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" Start="2021-11-23" End="2021-11-23" CurrencyCode="EUR" InvTypeCode="50">
        <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="90.48" AmountAfterTax="95.00" NumberOfGuests="1" AgeQualifyingCode="10"/>
        </BaseByGuestAmts>
    </Rate>

Extend the cnfiguration to enable sending both Amount Before and After tax per adult calculation

OTA_HotelRatePlanNotifRQ/ .. /BaseByGuestAmt1..nDescription
/@AmountBeforeTax0..1The total amount excluding all associated taxes (e.g., sales tax, VAT, GST or any associated tax). 
/@AmountAfterTax0..1The total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax). 
IDS-331TBA
TBA PWS
OTA_HotelResNotifRQOutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGlobalInfo | DepositPayments | GuaranteePayment | AcceptedPayments | AcceptedPayment | @PaymentTransactionTypeCode

Modify the Value for the Attribute @PaymentTransactionTypeCode

  • Charge → charge
  • Reserve → reserve
  • Refund → refund
PWS-2401
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | TPA_Extensions | FolioExtensions | FolioExtension
Add TPA_ExtensionPWS-949
HTNG_HotelFolioNotifRQOutboundOnPrem

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | @CurrencyCode

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | Taxes | Tax | @CurrencyCode

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | ExtendedPrice | @CurrencyCode

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | ExtendedPrice | Taxes | Tax | @CurrencyCode


Add the Attribute 

  • CurrencyCode
PWS-1162
OTA_HotelResNotifRQOutboundOnPrem

HotelReservations | HotelReservation


We will adjust the TPA_Extensions according to the XSD:

  • TPA_Extensions/Nationality will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / CitizienCountryName
  • TPA_Extensions/Optinout : we are using ShareMarketInd attributes in PersonName, Telephone, Email, URL,...
  • TPA_Extensions/CustomerPreferences will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / PrefCollections
  • TPA_Extensions/RoomPreferences will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / PrefCollections
  • TPA_Extensions/Salutation will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / TPA_Extensions / ProfileInfoExtensions / Salutation
  • TPA_Extensions/Traces will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / TPA_Extensions / ProfileInfoExtensions / Traces
  • TPA_Extensions/SearchName will be deleted with PWS version 3.1.x

(Warnung) Until release of PWS 3.1 (planned for Q1/2021) we will send the information in both places. Beginning with PWS 3.1 we will send the information in the new places ONLY!

PWS-2372
IO_RatePackageNotifRQOutboundOnPremAction on PackageItem level implementedno change in XMLWe corrected the Action attribute on PackageItem level to display "CREATE", "UPDATE", DELETED" and "NONE" as expected.PWS-2236
IO_ResModifyNotifRQInbound OnPremAdding private guest as attached profile implementedno change in XMLWhen sending only one <ProfileReference> element with @Action="CREATE", an additional guest will be added to the attached profiles. This will fail, if the new guest count would exceed the guest count of the reservation.PWS-2343
OTA_HotelResNotifRQOutboundOnPremHotelReservations | HotelReservation | Services | Service | @RequestedIndicator
<Services>
	<Service ID="29" ID_Context="protelIO" Type="16" ServiceInventoryCode="29" ServicePricingType="Per stay" Quantity="1" Inclusive="true" RequestedIndicator="false">
		<Price RateTimeUnit="Day" EffectiveDate="2019-05-21" ExpireDate="2019-05-24">
			<Total AmountBeforeTax="13.64" AmountAfterTax="15.00" CurrencyCode="EUR"/>
		</Price>
		<ServiceDetails>
			<TimeSpan Start="2019-05-21" End="2019-05-24"/>
			<Comments>
				<Comment>
					<Text TextFormat="PlainText">INCLUSIVE</Text>
				</Comment>
			</Comments>
			<Total AmountBeforeTax="13.64" AmountAfterTax="15.00" CurrencyCode="EUR"/>
		</ServiceDetails>
	</Service>
	<Service ID="26" ID_Context="protelIO" Type="16" ServiceInventoryCode="26" ServicePricingType="Per stay" Quantity="1" Inclusive="true" RequestedIndicator="true">
		<Price RateTimeUnit="Day" EffectiveDate="2019-05-21" ExpireDate="2019-05-24">
			<Total AmountBeforeTax="25.00" AmountAfterTax="30.00" CurrencyCode="EUR"/>
		</Price>
		<ServiceDetails>
			<TimeSpan Start="2019-05-21" End="2019-05-24"/>
			<Comments>
				<Comment>
					<Text TextFormat="PlainText">ADDONLY</Text>
				</Comment>
			</Comments>
			<Total AmountBeforeTax="25.00" AmountAfterTax="30.00" CurrencyCode="EUR"/>
		</ServiceDetails>
	</Service>
</Services>
For inclusive packages the RequestedIndicator will be "false", for booked bookable packages the RequestedIndicator will be "true".PWS-853
TBA IPA
OTA_ReadRQInboundpAirOTA_ReadRQ | @ReturnListIndicator no change in XML

The behaviour will be changed to 

  • @ReturnListIndicator="true" then all the search filters will be applied as "like" search criteria (wildcard search).
  • @ReturnListIndicator="false" then all search criterias are checked (strict search)
  • @ReturnListIndicator is missing then all search criterias are checked (strict search)


IPA-761
OTA_ReadRQ / OTA_ProfileReadRSInboundpAirOTA_ReadRQ | @ReturnListIndicator no change in XMLOTA_ProfileReadRS will hold
  • an error element in case no profiles could be found (strict search)
  • success plus warning element in case profiles only found when ignoring certain search criterias
IPA-762
IDS 5.418
OTA_HotelResNotifRQInboundIDSOTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | Profiles |ProfileInfo | Profile | Customer | CustLoyalty
<CustLoyalty ProgramID="GHA" MembershipID="" RPH="3678116" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="ALS" Remark="" LoyalLevel="GOLD" SignupDate="2017-06-21" EffectiveDate="2017-06-21" ExpireDate="2017-08-21" ShareMarketInd="No" ShareSyncInd="No">
	<SubAccountBalance Balance="0" />
</CustLoyalty>
The value of ProgramID for an incoming reservation should be stored in the proper field in the PMS as Program ID in the guest Loyalty Program window. 

The following xSetup is needed:
profiles - enable_loyalty_cards = 1

IDS-274IDS 5.418
PWS 3.0
HTNG_HotelFolioNotifRQOutboundOnPrem

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | GrossAmount | @CurrencyCode


HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | TaxItems | @CurrencyCode


HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | BalanceDueAmount| @CurrencyCode


HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | AmountReceived | @CurrencyCode

<HTNG_HotelFolioNotifRQ>
	<Folios>
		<Folio FolioID="33797-0" FolioType="Room" InvoiceID="0" GuestPayable="true">
			<RevenueSummary>
				<GrossAmount Amount="5582.00" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
				<TaxItems Amount="534.73" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
				<BalanceDueAmount Amount="0" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
				<AmountReceived Amount="0" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
			</RevenueSummary>

Add the Attribute 

  • CurrencyCode
PWS-942PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | BasicPropertyInfo | @HotelCodeContext 
<HTNG_HotelFolioNotifRQ>
	<Folios>
		<Folio FolioID="33797-0" FolioType="Room" InvoiceID="0" GuestPayable="true">
			<BasicPropertyInfo HotelCode="3236" HotelCodeContext="protelIO" HotelName="ART SKI - IN Hotel Hinterhag, A-5753 Saalbach" ChainCode="1" />

Add the Attribute 

  • HotelCodeContext="protelIO"
PWS-941PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPrem

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | @Type


HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail |

<RevenueDetail ReferenceID="1328" TransactionDate="2019-05-27" Description="Weihnachtsmenü Kind" PMSRevenueCode="207" CurrencyCode="EUR" Amount="25.00" SubTypeID="RevenueForecast" RevenueCategoryCode="3">
	<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
		<FolioID>33797-0</FolioID>
	</FolioIDs>
	<UnitPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31">
		<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
			<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
		</Taxes>
	</UnitPrice>
	<ExtendedPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31" Quantity="1">
		<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
			<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
		</Taxes>
	</ExtendedPrice>
</RevenueDetail>

Add the Attribute

  • Type
PWS-945PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | @DecimalPlaces
<RevenueDetail ReferenceID="1328" TransactionDate="2019-05-27" Description="Weihnachtsmenü Kind" PMSRevenueCode="207" CurrencyCode="EUR" Amount="25.00" SubTypeID="RevenueForecast" RevenueCategoryCode="3">
	<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
		<FolioID>33797-0</FolioID>
	</FolioIDs>
	<UnitPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31">
		<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
			<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
		</Taxes>
	</UnitPrice>
	<ExtendedPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31" Quantity="1">
		<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
			<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
		</Taxes>
	</ExtendedPrice>
</RevenueDetail>

Remove the Attribute

  • DecimalPlaces 
PWS-1017PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPremroot Element
<HTNG_HotelFolioNotifRQ EchoToken="cb364dd1-5d3b-4c1b-91d6-f8bf9f00e911" TimeStamp="2020-12-11T13:46:12Z" Version="1.002" CorrelationID="cb364dd1-5d3b-4c1b-91d6-f8bf9f00e911" PrimaryLangID="en" xmlns="http://htng.org/2014B">

Fix the Value of the following Attributes

  • Version="1.002"
  • PrimaryLangID="de"
PWS-1119PWS 3.0.X
OTA_HotelInvCountNotifRQOutboundOnPremOTA_HotelInvCountNotifRQ | UniqueID
<OTA_HotelInvCountNotifRQ>
	<UniqueID Type="10" ID="3236" ID_Context="protelIO" />

Add the UniqueID Element

  • OTA_HotelInvCountNotifRQ | UniqueID | @ID="HotelID"
  • OTA_HotelInvCountNotifRQ | UniqueID | @ID_Context="protelIO"
  • OTA_HotelInvCountNotifRQ | UniqueID | @Type="10"


PWS-787PWS 3.0.X
OTA_HotelInvCountNotifRQOutboundOnPremroot Element
<OTA_HotelInvCountNotifRQ EchoToken="10bf9470-b920-4dd9-9045-8f8ca8176d31" TimeStamp="2020-12-11T14:16:49Z" Version="2.000" CorrelationID="10bf9470-b920-4dd9-9045-8f8ca8176d31" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">

Fix the Value of the following Attributes

  • Version="2.000"
  • PrimaryLangID="de"
PWS-786PWS 3.0.X
OTA_ReadRQOutboundOnPremRoot Element
...
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="0EF52770-2E30-46FA-AAF5-499E5F5EB98F" TimeStamp="2020-12-09T14:27:17Z" Version="4.000" CorrelationID="0EF52770-2E30-46FA-AAF5-499E5F5EB98F" PrimaryLangID="en" MaxResponses="30">
...

Fix the Value of the following Attributes

  • Version="4.000"
  • PrimaryLangID="en"
PWS-1116PWS 3.0
OTA_HotelStayInfoNotifRQOutboundOnPremOTA_HotelStayInfoNotifRQ | StayInfos
...
<StayInfos ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" HotelCodeContext="protelIO">
...

Add the Attribute

  • HotelCodeContext="protelIO"
PWS-630PWS 3.0
OTA_HotelStayInfoNotifRQOutboundOnPremRoot Element
<OTA_HotelStayInfoNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="36288982-2783-451b-8fa4-64a56981290f" TimeStamp="2020-12-09T13:41:07Z" Version="5.000" CorrelationID="36288982-2783-451b-8fa4-64a56981290f" PrimaryLangID="en">
...

Fix the Value of the following Attributes

  • Version="5.000"
  • PrimaryLangID="en"
PWS-627PWS 3.0
OTA_HotelStatsNotifRQOutboundOnPremOTA_HotelStatsNotifRQ | UniqueID
<OTA_HotelStatsNotifRQ EchoToken="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" TimeStamp="2020-12-09T11:12:59Z" Version="3.000" CorrelationID="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">
      <POS>
        <Source>
          <RequestorID Type="10" ID="3153" ID_Context="protelIO" />
          <BookingChannel Type="4" Primary="true" />
          <TPA_Extensions>
            <px:POSExtensions xmlns:px="http://protel.io/htng/extensions">
              <px:HotelInfo FiscalDate="2017-06-24" />
            </px:POSExtensions>
          </TPA_Extensions>
        </Source>
      </POS>
      <UniqueID Type="10" ID="3153" ID_Context="protelIO" />
      ...

Add the UniqueID Element

  • OTA_HotelInvCountNotifRQ | UniqueID | @ID="HotelID"
  • OTA_HotelInvCountNotifRQ | UniqueID | @ID_Context="protelIO"
  • OTA_HotelInvCountNotifRQ | UniqueID | @Type="10"
PWS-901PWS 3.0
OTA_HotelStatsNotifRQOutboundOnPremRoot Element
<OTA_HotelStatsNotifRQ EchoToken="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" TimeStamp="2020-12-09T11:12:59Z" Version="3.000" CorrelationID="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">

Fix the Value of the following Attributes

  • Version="3.000"
  • PrimaryLangID="de"
PWS-1147PWS 3.0
OTA_HotelStatsNotifRQOutboundOnPremOTA_HotelStatsNotifRQ | Statistics | Statistic
<Statistic ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" FiscalDate="2017-06-23" ReportCode="HTNG_PastDailySegmentRoomTypeStatistics_v1">

Add the Attribute 

  • HotelName
PWS-1148PWS 3.0
IO_StatsNotifRQ OutboundOnPrem

IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | RevenueCategorySummaries RevenueCategorySummary | @RevenueCategoryCode

<StatisticApplicationSet End="2018-02-08" Start="2018-02-08">
	<StatisticCodes/>
	<RevenueCategorySummaries>
		<RevenueCategorySummary Amount="104.20" CurrencyCode="EUR" RevenueCategoryCode="3"/>
		<RevenueCategorySummary Amount="124.00" CurrencyCode="EUR" RevenueCategoryCode="123"/>
		<RevenueCategorySummary Amount="0.00" CurrencyCode="EUR" RevenueCategoryCode="6"/>
		<RevenueCategorySummary Amount="0.00" CurrencyCode="EUR" RevenueCategoryCode="126"/>
		<RevenueCategorySummary Amount="10000.00" CurrencyCode="EUR" RevenueCategoryCode="9"/>
		<RevenueCategorySummary Amount="10700.00" CurrencyCode="EUR" RevenueCategoryCode="129"/>
		<RevenueCategorySummary Amount="10104.20" CurrencyCode="EUR" RevenueCategoryCode="17"/>
		<RevenueCategorySummary Amount="10824.00" CurrencyCode="EUR" RevenueCategoryCode="1217"/>
	</RevenueCategorySummaries>
</StatisticApplicationSet>

Extend the IO_StatsNotifRQ, add the @RevenueCategoryCode

  • 123 = Food & Beverage (gross)
  • 126 =  Other Revenue (gross)
  • 129 = Room Revenue (gross)
  • 1217 = Total Revenue (gross)


PWS-1163PWS 3.0
OTA_ReadRQInboundOnPremOTA_ReadRQ | ReadRequests | ProfileReadRequest | Company | Address
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<env:Body>
		<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="2602_PWS-2188_6" Version="0" EchoToken="PWS-2188_6" MaxResponses="10">
			<POS>
				<Source>
					<RequestorID ID="2602" Type="10" ID_Context="protelIO"/>
				</Source>
			</POS>
			<ReadRequests>
				<ProfileReadRequest ProfileTypeCode="3">
					<Company>
						<CompanyName>protel</CompanyName>
						<Address>
							<AddressLine>Europaplatz 8</AddressLine>
							<CityName>Dortmund</CityName>
							<PostalCode>44236</PostalCode>
							<CountryName Code="DE">Deutschland</CountryName>
						</Address>
					</Company>
				</ProfileReadRequest>
			</ReadRequests>
		</OTA_ReadRQ>
	</env:Body>
</env:Envelope>
Profile lookup by OTA_ReadRQ can be search be combination of Company/TA/Source/Group profile name and PostalCode/CityName/CountryName.PWS-2358PWS 3.0
IPA 20.51
HTNG_HotelCheckInNotifRQInboundpAirHTNG_HotelCheckInNotifRQ | Room
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<env:Body>
		<htng:HTNG_HotelCheckInNotifRQ xmlns:htng="http://htng.org/2014B" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:px="http://protel.io/htng/extensions" CorrelationID="IPA_755_18" EchoToken="IPA_755_18" Version="1" Timestamp="2020-07-23T14:58:16Z">
			<POS>
				<Source>
					<RequestorID ID="2787" Type="10" ID_Context="protelIO"/>
					<BookingChannel Type="4" Primary="true"/>
				</Source>
			</POS>
			<htng:Room RoomID=""/>
			<htng:HotelReservations>
				<HotelReservation>
					<UniqueID ID="1740" ID_Context="protelIO" Type="14"/>
				</HotelReservation>
			</htng:HotelReservations>
		</htng:HTNG_HotelCheckInNotifRQ>
	</env:Body>
</env:Envelope>
pAir will CI the non-room assigned reservation which has no room number to the first available clean or checked room.IPA-75520.51

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ 

outboundpAirOTA_ProfileCreateRQ | Profile | Customer | Address | @ShareMarketInd
<OTA_ProfileModifyRQ>
	<UniqueID ID="3846" ID_Context="protelIO" Type="1"/>
	<UniqueID ID="2983" ID_Context="protelIO" Type="10"/>
	<ProfileModify CreateDateTime="2020-09-18T09:55:44Z" CreatorID="lj" LastModifierID="lj" LastModifyDateTime="2020-12-11T15:59:35Z" ProfileType="1" RPH="3846" ShareAllOptOutInd="Yes" StatusCode="4">
		<Customer BirthDate="1989-08-12" Gender="Unknown" Language="de">
			<PersonName>
				<NamePrefix>Familie</NamePrefix>
				<GivenName>Test</GivenName>
				<Surname>Test</Surname>
			</PersonName>
			<Telephone DefaultInd="true" FormattedInd="false" PhoneNumber="0231-915930" PhoneTechType="1"/>
			<Email DefaultInd="true" EmailType="1">test@protel.net</Email>
			<Address DefaultInd="true" FormattedInd="false" Type="1">
				<AddressLine>Europaplatz 8</AddressLine>
				<CityName>Dortmund</CityName>
				<PostalCode>44269</PostalCode>
				<StateProv StateCode="NW">Nordrhein-Westfalen</StateProv>
				<CountryName Code="DE">Deutschland</CountryName>
			</Address>
Omit the @ShareMarketInd Attribute, because currently we cannot save it correctly in pAirIPA-75620.51
OTA_ReadRQInboundpAirOTA_ReadRQ | ReadRequests | ProfileReadRequest | Company
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<env:Body>
		<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="2602_PWS-2188_6" Version="0" EchoToken="PWS-2188_6" MaxResponses="10">
			<POS>
				<Source>
					<RequestorID ID="2602" Type="10" ID_Context="protelIO"/>
				</Source>
			</POS>
			<ReadRequests>
				<ProfileReadRequest ProfileTypeCode="3">
					<Company>
						<CompanyName>protel</CompanyName>
						<Address>
							<AddressLine>Europaplatz 8</AddressLine>
							<CityName>Dortmund</CityName>
							<PostalCode>44236</PostalCode>
						</Address>
					</Company>
				</ProfileReadRequest>
			</ReadRequests>
		</OTA_ReadRQ>
	</env:Body>
</env:Envelope>

Extend the Profile LookUp for Company/TA/Source/Group Profiles

  • Profile Search by CompanyName & ZIP
  • Profile Search by CompanyName & City
  • Profile Search by CompanyName & Country
IPA-73520.51

IPA 20.49 

OTA_ReadRQ

InboundpAirOTA_ReadRQ  | ReturnListIndicator
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="2986_IO_CorrId_22_129" ReturnListIndicator="true">
			<POS>
				<Source>
					<RequestorID ID="2986" Type="10" ID_Context="protelIO"/>
				</Source>
			</POS>

If the Attribute @ReturnListIndicator is set to FALSE then all the search filters will be applied as "like" search criteria.

If the Attribute @ReturnListIndicator is set to TRUE then all search criteria are checked

If the Attribute @ReturnListIndicator is missing then all search criteria are checked

IPA-74420.49
OTA_HotelResNotifRQOutboundpairOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RatePlans | RatePlan
<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation CreateDateTime="2020-11-26T10:45:07+01:00" CreatorID="laureen.jacke@protel.net" LastModifierID="lj" LastModifyDateTime="2020-11-30T10:59:10+01:00" ResStatus="Reserved">
			<UniqueID ID="3814" ID_Context="protelIO" Type="14"/>
			<RoomStays>
				<RoomStay MarketCode="DU" SourceOfBusiness="Fa">
					<RatePlans>
						<RatePlan EffectiveDate="2020-09-22" ExpireDate="2020-09-23" MarketCode="DU" PriceViewableInd="true" RatePlanCode="STA1" RatePlanID="5">
							<Guarantee GuaranteeCode="GAR">
								<GuaranteeDescription Name="Name">
									<Text TextFormat="PlainText">Garantiert</Text>
								</GuaranteeDescription>
							</Guarantee>
							<CancelPenalties>
								<CancelPenalty PolicyCode="STD">
									<PenaltyDescription Name="Name">
										<Text TextFormat="PlainText">Standard</Text>
									</PenaltyDescription>
									<PenaltyDescription Name="Description">
										<Text TextFormat="PlainText">Bis zu 2 Tage vor der Anreise können Sie kostenfrei stornieren. Sie zahlen im Falle einer Stornierung in den 2 Tagen vor der Anreise einen Betrag in Höhe des Gesamtpreises. Keine Vorauszahlung erforderlich.</Text>
									</PenaltyDescription>
								</CancelPenalty>
							</CancelPenalties>
							<RatePlanInclusions TaxInclusive="true"/>
						</RatePlan>
						<RatePlan EffectiveDate="2020-09-23" ExpireDate="2020-09-24" MarketCode="Individual" PriceViewableInd="true" RatePlanCode="Laureen" RatePlanID="253">
							<CancelPenalties/>
							<RatePlanInclusions TaxInclusive="true"/>
						</RatePlan>
						<RatePlan EffectiveDate="2020-09-24" ExpireDate="2020-09-25" MarketCode="DU" PriceViewableInd="true" RatePlanCode="STA1" RatePlanID="5">
							<Guarantee GuaranteeCode="GAR">
								<GuaranteeDescription Name="Name">
									<Text TextFormat="PlainText">Garantiert</Text>
								</GuaranteeDescription>
							</Guarantee>
							<CancelPenalties>
								<CancelPenalty PolicyCode="STD">
									<PenaltyDescription Name="Name">
										<Text TextFormat="PlainText">Standard</Text>
									</PenaltyDescription>
									<PenaltyDescription Name="Description">
										<Text TextFormat="PlainText">Bis zu 2 Tage vor der Anreise können Sie kostenfrei stornieren. Sie zahlen im Falle einer Stornierung in den 2 Tagen vor der Anreise einen Betrag in Höhe des Gesamtpreises. Keine Vorauszahlung erforderlich.</Text>
									</PenaltyDescription>
								</CancelPenalty>
							</CancelPenalties>
							<RatePlanInclusions TaxInclusive="true"/>
						</RatePlan>
The RatePlan is displayed now per day, to display the correct RateCode and MarketCode per dayIPA-74320.49

HTNG_HotelFolioNotifRQ

HTNG_FolioNotifRS

Outbound

Inbound

pAir

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | SubTypeID="Batch"/"BatchForecast" | UnitPrice | Taxes

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | SubTypeID="Batch"/"BatchForecast" | ExtendedPrice | Taxes

<htng:RevenueDetails>
	<htng:RevenueDetail Amount="61.20" CurrencyCode="EUR" Description="Logis" ReferenceID="0" SubTypeID="Batch" TransactionDate="2020-09-18">
		<FolioIDs>
			<FolioID>393927</FolioID>
		</FolioIDs>
		<htng:UnitPrice AmountAfterTax="61.20" AmountBeforeTax="0.00" CurrencyCode="EUR" Type="31"/>
		<htng:ExtendedPrice AmountAfterTax="61.20" AmountBeforeTax="0.00" CurrencyCode="EUR" Quantity="1" Type="31"/>

For the SubType ="Batch"/"BatchForecast" will the Elements

  • UnitPrice | Taxes
  • ExtendedPrice | Taxes

will no longer be part of the message, because it is not possible to calculate it correctly

IPA-74620.49
OTA_HotelAvailNotifRSOutboundpAirOTA_HotelAvailNotifRS | Warnings | Warning
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:p="http://protel.io/soap" xmlns:px="http://protel.io/htng/extensions" xmlns:ns5="http://www.w3.org/2011/03/ws-evt" xmlns:htng="http://htng.org/2014B" xmlns:ns4="http://www.w3.org/2005/08/addressing" CorrelationID="IPA-734-01" EchoToken="IPA-734-01" TimeStamp="2020-11-20T14:17:13Z" Version="2.000">
	<Success/>
	<Warnings>
		<Warning Code="320" ShortText="RateGroups not found by RatePlanCategory code BAR2" Type="12">RateGroups not found by RatePlanCategory code BAR2</Warning>
		<Warning Code="450" ShortText="No matches for 2 AvailStatusMessage elements" Type="13">0</Warning>
	</Warnings>
	<UniqueID ID="2585" ID_Context="protelIO" Type="10"/>
</OTA_HotelAvailNotifRS>
The OTA_HotelAvailNotifRS displaying the Code="320" and Type="12" in case of Warning.IPA-73420.49

IPA 20.47

OTA_HotelResNotifRQ

IO_StatsNotifRQ

HTNG_HotelFolioNotifRQ

OTA_StayInfoNotifRQ

OutboundpAir

OTA_HotelResNotifRQ |  HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate | Rates | Rate | TPA_Extensions | RateAmountExtensions | RateAmount | @RevenueCategoryCode


OTA_HotelResNotifRQ |  HotelReservations | HotelReservation | RoomStays | TPA_Extensions | RateAmountExtensions | RateAmount | @RevenueCategoryCode


IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | RevenueCategorySummaries | RevenueCategorySummary | @RevenueCategoryCode



HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetail | @RevenueCategoryCode


OTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | RevenueCategories | RevenueCategory | @RevenueCategoryCode

<StatisticApplicationSet Start="2020-09-17" End="2020-09-17">
	<RevenueCategorySummaries>
		<RevenueCategorySummary RevenueCategoryCode="3" Amount="0.00" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="123" Amount="0.00" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="6" Amount="0.00" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="126" Amount="0.00" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="9" Amount="361.72" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="129" Amount="379.81" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="0" Amount="18.09" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="120" Amount="18.99" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="17" Amount="379.81" CurrencyCode="EUR"/>
		<RevenueCategorySummary RevenueCategoryCode="1217" Amount="398.80" CurrencyCode="EUR"/>
	</RevenueCategorySummaries>
</StatisticApplicationSet>
The messages will be extend with the @RevenueCategoryCode = 0 / @RevenueCategoryCode = 120 to display the Revenue for Article which are marked in pAir as  "non revenue item" IPA-73620.47
OTA_HotelResNotifRQInboundpAirno changes in the XML
The cancelled reservation, now can be reinstated by sending an inbound reservation with following attributes:
OTA_HotelResNotifRQ>ResStatus="Modify"
and
OTA_HotelResNotifRQ / HotelReservations / HotelReservation >ResStatus="Reserved"
IPA-71720.47
IO_ResModifyNotifRQInboundpAirIO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="IPA-721-SR6" TimeStamp="2020-05-18T14:00:00.000Z" Version="1.00">
	<p:Reservations HotelCode="2575">
		<p:Reservation>
			<p:UniqueID Type="14" ID="17569" ID_Context="protelIO"/>
			<p:InvoiceItemRoutings>
				<p:InvoiceItemRouting Action="CREATE" Name="RI_Template" Type="InvoiceRoutingTemplate" ID="" ID_Context="protelIO"/>
			</p:InvoiceItemRoutings>
		</p:Reservation>
	</p:Reservations>
</p:IO_ResModifyNotifRQ>
We will add the use case to create a routing instruction using a predefined template. For this use case the type needs to be "InvoiceRoutingTemplate" instead of "PaymentInstruction".IPA-72120.47
OTA_HotelResNotifRQOutboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate
<RoomRate BookingCode="JST" RoomTypeCode="JST" NumberOfUnits="1" RoomID="10-2L" EffectiveDate="2020-08-09" ExpireDate="2020-08-10" RatePlanCode="Alireza" RatePlanID="28" RatePlanCategory="FLEX">
	<Rates>
		<Rate RateTimeUnit="Day" UnitMultiplier="1" AlternateCurrencyInd="false" EffectiveDate="2020-08-09" ExpireDate="2020-08-10">
			<Base AmountBeforeTax="90.91" AmountAfterTax="100.00" CurrencyCode="EUR"/>
			<Total AmountBeforeTax="90.91" AmountAfterTax="100.00" CurrencyCode="EUR"/>
			<TPA_Extensions>
				<px:RateAmountExtensions AlternateCurrencyInd="false" End="2020-08-09" Start="2020-08-09">
					<px:RateAmount AmountAfterTax="100.00" AmountBeforeTax="90.91" CurrencyCode="EUR" RevenueCategoryCode="17"/>
					<px:RateAmount AmountAfterTax="100.00" AmountBeforeTax="90.91" CurrencyCode="EUR" RevenueCategoryCode="9"/>
				</px:RateAmountExtensions>
				<px:FixedChargesAmountsExtensions AlternateCurrencyInd="false" End="2020-08-09" Start="2020-08-09">
					<px:RateAmount AmountAfterTax="100.00" AmountBeforeTax="90.91" CurrencyCode="EUR" RevenueCategoryCode="17"/>
					<px:RateAmount AmountAfterTax="100.00" AmountBeforeTax="90.91" CurrencyCode="EUR" RevenueCategoryCode="9"/>
				</px:FixedChargesAmountsExtensions>
			</TPA_Extensions>
		</Rate>
	</Rates>
	<RoomRateDescription Name="MarketCode">
		<Text TextFormat="PlainText">COU</Text>
	</RoomRateDescription>
	<RoomRateDescription Name="SourceOfBusiness">
		<Text TextFormat="PlainText">WEB</Text>
	</RoomRateDescription>
	<GuestCounts>
		<GuestCount AgeQualifyingCode="10" Count="1"/>
	</GuestCounts>
</RoomRate>
The GuestCounts element in RoomRate level is displaying for the canceled reservations as well.IPA-72820.47
IO_ResModifyNotifRQInboundpAirno changes in the XML
We will add a new use case to add additional arriving guests up to the guest count of the reservation IPA-73220.47
OTA_HotelInvBlockNotifRQInboundpAirOTA_HotelInvBlockNotifRQ | TPA_Extensions | ReservationExtensions | ReservationStatus
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ReservationExtensions>
		<px:ReservationStatus Code="Conf" ID="1" ID_Context="protelIO" Name="FIX- inkl.ANZA" RPH="33523"/>
	</px:ReservationExtensions>
</TPA_Extensions>
Extend the TPA_Extentions for the Reservation Status for inbound message.IPA-73020.47
OTA_HotelInvBlockNotifRQOutboundpAirOTA_HotelInvBlockNotifRQ | TPA_Extensions | ReservationExtensions | ReservationStatus
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ReservationExtensions>
		<px:ReservationStatus Code="Conf" ID="1" ID_Context="protelIO" Name="FIX- inkl.ANZA" RPH="33523"/>
	</px:ReservationExtensions>
</TPA_Extensions>
Extend the TPA_Extentions for the Reservation StatusIPA-69920.47

IPA 20.45

IO_SystemDataRQOutboundpAir

Implementation of the new message IO_SystemDataRQIPA-68020.45
HTNG_HotelFolioNotifRQ
HTNG_HotelFolioRS
OutboundpAirHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail 

HTNG_HotelFolioRS | Folios | Folio | RevenueDetails | RevenueDetail
<htng:RevenueDetails>
	<htng:RevenueDetail SubTypeID="Revenue" RevenueCategoryCode="9" ReferenceID="66" TransactionDate="2019-10-10" Description="City Tax" PMSRevenueCode="3405" Amount="2.50" CurrencyCode="CHF">
		<FolioIDs>
			<FolioID>468056</FolioID>
		</FolioIDs>
		<htng:UnitPrice AmountBeforeTax="2.41" AmountAfterTax="2.50" Type="31" CurrencyCode="CHF">
			<Taxes CurrencyCode="CHF">
				<Tax Type="Inclusive" Percent="3.70" Amount="0.09" CurrencyCode="CHF"/>
			</Taxes>
		</htng:UnitPrice>
		<htng:ExtendedPrice Quantity="1" AmountBeforeTax="2.41" AmountAfterTax="2.50" Type="31" CurrencyCode="CHF">
			<Taxes CurrencyCode="CHF">
				<Tax Type="Inclusive" Percent="3.70" Amount="0.09" CurrencyCode="CHF"/>
			</Taxes>
		</htng:ExtendedPrice>
		<htng:Account Type="14" ID_Context="protelIO" ID="15702"/>
	</htng:RevenueDetail>

The Attribute @Percent  is not long rounded up

IPA-73720.46
HTNG_HotelCheckOutNotifRSInboundpAirHTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentExtensions
<htng:HTNG_HotelCheckOutNotifRS xmlns:htng="http://htng.org/2014B" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:p="http://protel.io/soap" xmlns:px="http://protel.io/htng/extensions" xmlns:ns5="http://www.w3.org/2011/03/ws-evt" xmlns:ns4="http://www.w3.org/2005/08/addressing" CorrelationID="Test_BRA_779" PrimaryLangID="de" TimeStamp="2020-11-06T09:42:30Z" Version="1">
	<htng:Success/>
	<TPA_Extensions>
		<px:DocumentExtensions>
			<px:DocumentData ID="5896" ID_Context="protelIO" Type="Invoice">j4KPDM2RDY5MEEyNjZCQzNBOEI1MTNFQkMxMjQ0NEZDRUU2Pg==</px:DocumentData>
		</px:DocumentExtensions>
	</TPA_Extensions>
</htng:HTNG_HotelCheckOutNotifRS>

Added the Element px:DocumentData → needs to be decoded by the Integration with the help of base64.

IPA-71420.46
OTA_HotelResNotifRQInboundpAirOTA_HotelResNotifRS | Errors | Error
<Errors>
	<Error Code="446" RecordID="IPA-698-SR1" ShortText="Could not modify Reservation ID 17414, null" Type="12">CHECKED_OUT_DEPARTURE_DATE_CHANGE</Error>
</Errors>
Clearer error message if a to be modified reservation is already checked-out.IPA-69820.45
IO_SystemDataRQ
IO_SystemDataRS
Inbound
Outbound
pAirIO_SystemDataRQ
IO_SystemDataRS
see full message examples under MessageDocumentation/Message dictionary/System dataAdded new message to export system data.IPA-68020.45
HTNG_HotelFolioNotifRQ
HTNG_HotelFolioRS
OutboundpAirHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail 

HTNG_HotelFolioRS | Folios | Folio | RevenueDetails | RevenueDetail
<ns2:RevenueDetails>
	<ns2:RevenueDetail Amount="26.00" CurrencyCode="CHF" Description="Alkohol" ReferenceID="0" SubTypeID="Batch" TransactionDate="2020-10-22">
		<ns4:FolioIDs>
			<ns4:FolioID>606568</ns4:FolioID>
		</ns4:FolioIDs>
		<ns2:UnitPrice AmountAfterTax="26.00" AmountBeforeTax="24.14" CurrencyCode="CHF" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="1.86" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:UnitPrice>
		<ns2:ExtendedPrice AmountAfterTax="26.00" AmountBeforeTax="24.14" CurrencyCode="CHF" Quantity="1" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="1.86" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:ExtendedPrice>
		<ns2:RevenueDetailItems>
			<ns2:RevenueDetailItem Amount="11.00" CurrencyCode="CHF" Description="Wine" GuestViewable="false" PMSRevenueCode="3010" ReferenceID="44" RevenueCategoryCode="3" TransactionDate="2020-10-27">
				<ns4:FolioIDs>
					<ns4:FolioID>606565</ns4:FolioID>
				</ns4:FolioIDs>
				<ns2:UnitPrice AmountAfterTax="11.00" AmountBeforeTax="10.21" CurrencyCode="CHF" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="0.79" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:UnitPrice>
				<ns2:ExtendedPrice AmountAfterTax="11.00" AmountBeforeTax="10.21" CurrencyCode="CHF" Quantity="1" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="0.79" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:ExtendedPrice>
			</ns2:RevenueDetailItem>
			<ns2:RevenueDetailItem Amount="15.00" CurrencyCode="CHF" Description="Beer" GuestViewable="false" PMSRevenueCode="3020" ReferenceID="45" RevenueCategoryCode="3" TransactionDate="2020-10-27">
				<ns4:FolioIDs>
					<ns4:FolioID>606566</ns4:FolioID>
				</ns4:FolioIDs>
				<ns2:UnitPrice AmountAfterTax="15.00" AmountBeforeTax="13.93" CurrencyCode="CHF" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="1.07" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:UnitPrice>
				<ns2:ExtendedPrice AmountAfterTax="15.00" AmountBeforeTax="13.93" CurrencyCode="CHF" Quantity="1" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="1.07" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:ExtendedPrice>
			</ns2:RevenueDetailItem>
		</ns2:RevenueDetailItems>
		<ns2:Account ID="19551" ID_Context="protelIO" Type="14"/>
	</ns2:RevenueDetail>
	<ns2:RevenueDetail Amount="2.50" CurrencyCode="CHF" Description="City Tax" PMSRevenueCode="3405" ReferenceID="66" RevenueCategoryCode="9" SubTypeID="RevenueForecast" TransactionDate="2020-10-27">
		<ns4:FolioIDs>
			<ns4:FolioID>606561</ns4:FolioID>
		</ns4:FolioIDs>
		<ns2:UnitPrice AmountAfterTax="2.50" AmountBeforeTax="2.41" CurrencyCode="CHF" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="0.09" CurrencyCode="CHF" Percent="4.00" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:UnitPrice>
		<ns2:ExtendedPrice AmountAfterTax="2.50" AmountBeforeTax="2.41" CurrencyCode="CHF" Quantity="1" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="0.09" CurrencyCode="CHF" Percent="4.00" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:ExtendedPrice>
		<ns2:Account ID="19551" ID_Context="protelIO" Type="14"/>
	</ns2:RevenueDetail>
	<ns2:RevenueDetail Amount="0.00" CurrencyCode="CHF" Description="Accommodation incl. breakfast" ReferenceID="0" SubTypeID="BatchForecast" TransactionDate="2020-10-27">
		<ns4:FolioIDs>
			<ns4:FolioID>606564</ns4:FolioID>
		</ns4:FolioIDs>
		<ns2:UnitPrice AmountAfterTax="0.00" AmountBeforeTax="0.00" CurrencyCode="CHF" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="0.00" CurrencyCode="CHF" Percent="0" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:UnitPrice>
		<ns2:ExtendedPrice AmountAfterTax="0.00" AmountBeforeTax="0.00" CurrencyCode="CHF" Quantity="1" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="0.00" CurrencyCode="CHF" Percent="0" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:ExtendedPrice>
		<ns2:RevenueDetailItems>
			<ns2:RevenueDetailItem Amount="0.00" CurrencyCode="CHF" Description="Accommodation" GuestViewable="false" PMSRevenueCode="3400" ReferenceID="26" RevenueCategoryCode="9" TransactionDate="2020-10-27">
				<ns4:FolioIDs>
					<ns4:FolioID>606560</ns4:FolioID>
				</ns4:FolioIDs>
				<ns2:UnitPrice AmountAfterTax="0.00" AmountBeforeTax="0.00" CurrencyCode="CHF" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="0.00" CurrencyCode="CHF" Percent="0" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:UnitPrice>
				<ns2:ExtendedPrice AmountAfterTax="0.00" AmountBeforeTax="0.00" CurrencyCode="CHF" Quantity="1" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="0.00" CurrencyCode="CHF" Percent="0" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:ExtendedPrice>
			</ns2:RevenueDetailItem>
			<ns2:RevenueDetailItem Amount="22.00" CurrencyCode="CHF" Description="Breakfast" GuestViewable="false" PMSRevenueCode="3070" ReferenceID="50" RevenueCategoryCode="3" TransactionDate="2020-10-27">
				<ns4:FolioIDs>
					<ns4:FolioID>606562</ns4:FolioID>
				</ns4:FolioIDs>
				<ns2:UnitPrice AmountAfterTax="22.00" AmountBeforeTax="21.22" CurrencyCode="CHF" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="0.78" CurrencyCode="CHF" Percent="4.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:UnitPrice>
				<ns2:ExtendedPrice AmountAfterTax="22.00" AmountBeforeTax="21.22" CurrencyCode="CHF" Quantity="1" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="0.78" CurrencyCode="CHF" Percent="4.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:ExtendedPrice>
			</ns2:RevenueDetailItem>
			<ns2:RevenueDetailItem Amount="-22.00" CurrencyCode="CHF" Description="Accommodation" GuestViewable="false" PMSRevenueCode="3400" ReferenceID="26" RevenueCategoryCode="9" TransactionDate="2020-10-27">
				<ns4:FolioIDs>
					<ns4:FolioID>606563</ns4:FolioID>
				</ns4:FolioIDs>
				<ns2:UnitPrice AmountAfterTax="-22.00" AmountBeforeTax="-21.22" CurrencyCode="CHF" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="-0.78" CurrencyCode="CHF" Percent="4.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:UnitPrice>
				<ns2:ExtendedPrice AmountAfterTax="-22.00" AmountBeforeTax="-21.22" CurrencyCode="CHF" Quantity="1" Type="31">
					<ns4:Taxes CurrencyCode="CHF">
						<ns4:Tax Amount="-0.78" CurrencyCode="CHF" Percent="4.00" Type="Inclusive"/>
					</ns4:Taxes>
				</ns2:ExtendedPrice>
			</ns2:RevenueDetailItem>
		</ns2:RevenueDetailItems>
		<ns2:Account ID="19551" ID_Context="protelIO" Type="14"/>
	</ns2:RevenueDetail>
	<ns2:RevenueDetail Amount="4.00" CurrencyCode="CHF" Description="Chips" PMSRevenueCode="3090" ReferenceID="94" RevenueCategoryCode="3" SubTypeID="RevenueForecast" TransactionDate="2020-10-27">
		<ns4:FolioIDs>
			<ns4:FolioID>606567</ns4:FolioID>
		</ns4:FolioIDs>
		<ns2:UnitPrice AmountAfterTax="4.00" AmountBeforeTax="3.71" CurrencyCode="CHF" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="0.29" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:UnitPrice>
		<ns2:ExtendedPrice AmountAfterTax="4.00" AmountBeforeTax="3.71" CurrencyCode="CHF" Quantity="1" Type="31">
			<ns4:Taxes CurrencyCode="CHF">
				<ns4:Tax Amount="0.29" CurrencyCode="CHF" Percent="8.00" Type="Inclusive"/>
			</ns4:Taxes>
		</ns2:ExtendedPrice>
		<ns2:Account ID="19551" ID_Context="protelIO" Type="14"/>
	</ns2:RevenueDetail>
</ns2:RevenueDetails>
Sending RevenueDetail with the Batch identifier (Package Identifier) to display the package information in RevenueDetailItems element.IPA-72320.45
OTA_HotelResNotifRQ InboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | GuestCounts
		<GuestCounts>
			<GuestCount AgeQualifyingCode="10" Count="1"/>
			<GuestCount AgeQualifyingCode="8" Count="1"/>
			<GuestCount AgeQualifyingCode="7" Count="1"/>
		</GuestCounts>
	</RoomRate>
</RoomRates>
<GuestCounts IsPerRoom="true">
	<GuestCount AgeQualifyingCode="10" Count="1"/>
	<GuestCount AgeQualifyingCode="8" Count="1"/>
	<GuestCount AgeQualifyingCode="7" Count="1"/>
</GuestCounts>

Extend the functionality for import Child with a Reservation

  1. If a AQC is part of the message pAir will evalute against the AQC
  2. If the AQC is missing pAir will evalute against the Age
  3. If both are missing, pAir treats GuestCounts as Adult
IPA-71620.45
OTA_HotelResNotifRQOutboundpAir

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate | GuestCounts | GuestCount

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | GuestCounts | GuestCount

<GuestCounts>
	<GuestCount AgeQualifyingCode="10" Count="1"/>
	<GuestCount AgeBucket="Teenage" AgeQualifyingCode="9" Count="1"/>
	<GuestCount AgeBucket="Child" AgeQualifyingCode="8" Count="1"/>
	<GuestCount AgeBucket="Infant" AgeQualifyingCode="7" Count="1"/>
</GuestCounts>
</RoomRate>
</RoomRates>
<GuestCounts IsPerRoom="true">
	<GuestCount AgeQualifyingCode="10" Count="1"/>
	<GuestCount AgeBucket="Teenage" AgeQualifyingCode="9" Count="1"/>
	<GuestCount AgeBucket="Child" AgeQualifyingCode="8" Count="1"/>
	<GuestCount AgeBucket="Infant" AgeQualifyingCode="7" Count="1"/>
</GuestCounts>

The AgeQualifyingCode set according to the Type set up in the Discount Group and display in the outbound reservations.

IPA-68220.45
OTA_ProfileCreateRQInboundpAirOTA_ProfileCreateRQ | Profiles | @ShareAllOptOutInd
...
<Profile CreateDateTime="2020-10-29T07:55:51Z" CreatorID="alireza.memarifard@protel.net" LastModifierID="Unknown" LastModifyDateTime="2020-10-29T07:55:52Z" ProfileType="1" ShareAllOptOutInd="No" StatusCode="4">
				<Customer Gender="Unknown" Language="fr">
					<PersonName>
						<GivenName>tst5</GivenName>
						<Surname>test5</Surname>
					</PersonName>
...
Marketing allowed value changed and set to "Allowed" with ShareAllOptOutInd = No for a profile create inbound.IPA-71020.45
OTA_HotelInvBlockNotifRQOutboundpAirOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | RoomTypes | RoomType | RatePlans | BaseByGuestAmts | BaseByGuestAmt
...
<RatePlans>
	<RatePlan CurrencyCode="EUR" End="2020-10-27" MaxGuestApplicable="4" RatePlanCode="Alireza" Start="2020-10-27">
		<BaseByGuestAmts>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="100.00" AmountBeforeTax="90.91" CurrencyCode="EUR" NumberOfGuests="1"/>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="150.00" AmountBeforeTax="136.36" CurrencyCode="EUR" NumberOfGuests="2"/>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="180.00" AmountBeforeTax="163.64" CurrencyCode="EUR" NumberOfGuests="3"/>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="200.00" AmountBeforeTax="181.82" CurrencyCode="EUR" NumberOfGuests="4"/>
		</BaseByGuestAmts>
		<AdditionalGuestAmounts>
			<AdditionalGuestAmount AgeQualifyingCode="8" Amount="25.00" MaxAdditionalGuests="1" MaxAge="2" MinAge="0"/>
			<AdditionalGuestAmount AgeQualifyingCode="8" Amount="35.00" MaxAdditionalGuests="1" MaxAge="8" MinAge="3"/>
			<AdditionalGuestAmount AgeQualifyingCode="8" Amount="45.00" MaxAdditionalGuests="1" MaxAge="18" MinAge="9"/>
			<AdditionalGuestAmount AgeQualifyingCode="8" Amount="25.00" MaxAdditionalGuests="2" MaxAge="2" MinAge="0"/>
			<AdditionalGuestAmount AgeQualifyingCode="8" Amount="35.00" MaxAdditionalGuests="2" MaxAge="8" MinAge="3"/>
			<AdditionalGuestAmount AgeQualifyingCode="8" Amount="45.00" MaxAdditionalGuests="2" MaxAge="18" MinAge="9"/>
		</AdditionalGuestAmounts>
		<RateDescription Name="RateGroup">
			<Text TextFormat="PlainText">FLEX</Text>
		</RateDescription>
		<MarketCode MarketCode="COU" MarketCodeName="Couple"/>
	</RatePlan>
</RatePlans>
</RoomType>
...
To extend the amount for the @BaseByGuestAmt Attribute to show the detail for the rates with more than 1 adult.IPA-71120.45
HTNG_HotelCheckOutNotifRSOutboundpAirHTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentData
<HTNG_HotelCheckOutNotifRS xmlns="http://htng.org/2014B" TimeStamp="2020-09-28T11:28:12.2502538Z" Version="3.000" CorrelationID="Test_AKO_6">
	<Success/>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		<px:DocumentExtensions>
			<px:DocumentData Type="Invoice" ID="419" ID_Context="protelIO">JVBERi0xLjYKJcOkw7zDtsOfCjIgM...</px:DocumentData>
With the HTNG_HotelCheckOutNotifRS we will provide in the DocumentData element the base64 encoded PDF invoice.IPA-67020.45
HTNG_ChargePostingRQInboundpAirHTNG_ChargePostingRQ | Posting | Transaction | RevenueDetails | RevenueDetail | Account
<htng:HTNG_ChargePostingRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:htng="http://htng.org/2014B" xmlns:p="http://protel.io/soap" xmlns:px="http://protel.io/htng/extensions" EchoToken="IPA_704_13" TimeStamp="2020-06-09T18:03:07Z" Version="1" CorrelationID="IPA_704_13" PrimaryLangID="en_US">
	<htng:UniqueID Type="10" ID_Context="protelIO" ID="2787"/>
	<htng:Posting ID="12345">
		<htng:Transaction>
			<htng:RevenueDetails>
				<htng:RevenueDetail Amount="-7.00" CurrencyCode="EUR" Description="Logis" ReferenceID="98" SubTypeID="Payment" TransactionDate="2020-08-09">
					<htng:Account ID="2255" ID_Context="protelIO" Type="16"/>
				</htng:RevenueDetail>
			</htng:RevenueDetails>
		</htng:Transaction>
	</htng:Posting>
</htng:HTNG_ChargePostingRQ>
Posting to a specific invoice by Type="16" IPA-70420.45

IPA 20.43 

OTA_HotelAvailNotifRS

OutboundpAirOTA_HotelAvailNotifRS | Warnings | Warning
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<env:Header>
		<p:Action xmlns:p="http://protel.io/soap">OTA_HotelAvailNotifRS</p:Action>
		<p:CorrelationID xmlns:p="http://protel.io/soap">uuid::1111-1111::1111::11</p:CorrelationID>
		<p:CausedBy xmlns:p="http://protel.io/soap">uuid::1111-1111::1111::11</p:CausedBy>
		<p:Source xmlns:p="http://protel.io/soap" Module="backline" ModuleVersion="2020-10-12T10:50:32 (QA)" Product="protelAir" ProductVersion="2043.0.59498-RC" Service="io.protel.air"/>
		<htnga:RelatesToCorrelationID xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders">uuid::1111-1111::1111::11</htnga:RelatesToCorrelationID>
	</env:Header>
	<env:Body>
		<OTA_HotelAvailNotifRS 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="uuid::1111-1111::1111::11" EchoToken="89970240-068e-438b-ba11-1da35da19144" TimeStamp="2020-10-12T12:09:58Z" Version="2.000">
			<Success/>
			<Warnings>
				<Warning Code="0" ShortText="AvailStatus (95) excluded : No RoomType found with inventory code [PMKG1] and inventory ID [null] " Type="12">AvailStatus(95) has inccorect data</Warning>
				<Warning Code="0" ShortText="RateGroups not found by RatePlanCategory code BAR1" Type="12">RateGroups not found by RatePlanCategory code BAR1</Warning>
				<Warning Code="0" ShortText="RoomTypes not found with inventory code PMKG1" Type="12">RoomTypes not found with inventory code PMKG1</Warning>
				<Warning Code="0" ShortText="No matches for 1 AvailStatusMessage elements" Type="13">0</Warning>
			</Warnings>
			<UniqueID ID="2585" ID_Context="protelIO" Type="10"/>
		</OTA_HotelAvailNotifRS>
	</env:Body>
</env:Envelope>

pAir will send back a warning in the OTA_HotelAvailNotifRS message if the RateGroup (RatePlanCategory) received is not existing.IPA-68920.43
OTA_ProfileReadRSOutboundpAirOTA_ProfileReadRS | Warnings

no change in XML structure

Misleading warnings for OTA_ProfileReadRS regarding not applied search criterias will not be send any more.IPA-71320.43

PWS 2.20.X 

OTA_HotelInvBlockNotifRQInboundOnPremOTA_HotelInvBlockNotifRQ | TPA_Extensions | ReservationExtensions | ReservationExtension
...
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:ContactDetails>
			<px:AdditionalInfo />
		</px:ContactDetails>
	</px:ProfileInfoExtensions>
	<InvBlockExtensions>
		<InvBlockID ID="114411" ID_Context="SUI" Type="18" />
	</InvBlockExtensions>
	<ReservationExtensions xmlns="http://protel.io/htng/extensions">
		<ReservationStatus ID="17" ID_Context="protelIO"/>
	</ReservationExtensions>
</TPA_Extensions>
...
The reservation status can be set with new allotment (Commit) in an inboud RQ.PWS-2437PWS 2.20.X
OTA_ProfileCreateRQ / OTA_ProfileModifyRQOutboundOnPrem

OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:VipCodes

OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:MarketingCodes

<px:ProfileInfoExtensions>
	<px:PersonInfos>
		<px:VipCodes>
			<px:Code DefaultInd="true" DisplaySequence="0" ID="3" ID_Context="protelIO" Type="VIPCODE" Value="Black List"/>
			<px:Code DefaultInd="false" DisplaySequence="0" ID="1" ID_Context="protelIO" Type="VIPCODE" Value="Stammgast"/>
		</px:VipCodes>
		<px:MarketingCodes>
			<px:Code DefaultInd="true" DisplaySequence="0" ID="8" ID_Context="protelIO" Type="MARKETINGCODE" Value="Urlauber"/>
			<px:Code DefaultInd="false" DisplaySequence="0" ID="16" ID_Context="protelIO" Type="MARKETINGCODE" Value="Wellness / Beauty"/>
		</px:MarketingCodes>
	</px:PersonInfos>
</px:ProfileInfoExtensions>
Add the TPA_Extensions for <VipCodes> and <MarketingCodes>to both messagesPWS-707PWS 2.20.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

OTA_ProfileCreateRQ | Profile | Customer | URL

OTA_ProfileModifyRQ | ProfileModify | Customer | URL

<Profile ShareAllOptOutInd="Yes" ProfileType="1" CreateDateTime="2020-10-08T09:52:00" CreatorID="protel 37" RPH="" LastModifyDateTime="2020-10-08T09:52:48" LastModifierID="protel 37" StatusCode="4">
	<Customer Gender="Unknown" Language="de">
		<PersonName>
			<GivenName>Max</GivenName>
			<Surname>Mustermann</Surname>
		</PersonName>
		<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true">
			<StateProv/>
			<CountryName Code="NO">Norwegen</CountryName>
		</Address>
		<CitizenCountryName DefaultInd="true" Code="NO"/>
		<Document BirthDate="1900-01-01" EffectiveDate="1900-01-01" ExpireDate="2050-12-31"/>
		<EmployerInfo CompanyShortName="Company2" Department="Department">Company1</EmployerInfo>
		<URL DefaultInd="true" ShareMarketInd="No">Url@test.com</URL>
	</Customer>
</Profile>
The URL send by third parties in OTA_ProfileCreateRQ and OTA_ProfileModifyRQ will be imported to the profile.PWS-295PWS 2.20.X
OTA_HotelAvailNotifRSOutboundOnPremOTA_HotelAvailNotifRS | Warning
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-11-11T12:42:52Z" Version="3.000" CorrelationID="PWS-2275-TestRound3-SR1">
	<Success/>
	<Warnings>
		<Warning ShortText="RateGroups not found by RatePlanCategory code SRBAR" Code="320" Type="12">RateGroups not found by RatePlanCategory code SRBAR</Warning>
		<Warning ShortText="No matches for 1 AvailStatusMessage elements" Code="320" Type="13">No matches for 1 AvailStatusMessage elements</Warning>
	</Warnings>
</OTA_HotelAvailNotifRS>

Currently when receiving an inbound AvailNotif with multiple restrictions, some of them are successfully but some fail, the PWS is replying with an Error

We will change this behaviour, the PWS should return a warning element for every failed restriction and process the correct ones, so that RS message holds Success and Warnings. Additionally there will be one warning element with the overall number of failed AvailStatusMessages.

PWS-2275PWS 2.20.X
IO_ResModifyNotifRQinboundOnPremIO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | Item | @ItemID
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="PWS-2286-SR3" TimeStamp="2018-12-29T15:20:35.985Z" Version="1.00">
	<p:Reservations HotelCode="3153">
		<p:Reservation ArrivalDate="2018-01-10">
			<p:UniqueID ID="341561" Type="14" ID_Context="Protel_IO"/>
			<p:FixedCharges>
				<p:FixedCharge Action="CREATE" Code="TAA using article" UpsellInd="false" Recurrence="Daily" Quantity="1">
					<p:InvoiceText>TAA upsell using an article</p:InvoiceText>
					<p:Price SingleAmountAfterTax="22.22" CurrencyCode="EUR"/>
					<p:Item ItemID="1234" Code="1080"/>
				</p:FixedCharge>
			</p:FixedCharges>
		</p:Reservation>
	</p:Reservations>
</p:IO_ResModifyNotifRQ>
We will import the ItemID value with the IO_ResModifyNotifRQ for the use case "Create/Update a fixed charge using an article".
If UpsellInd="false" and no Item/@Code but Item/@ItemID provided, the fixed charge will be processed.
If  UpsellInd="false" and no Item/@ItemID provided, the PWS will send an error back.
PWS-2286PWS 2.20.x
OTA_ProfileModifyRQInboundOnPremOTA_ProfileCreateRQ | Profile | CompanyInfo | AddressInfo | @ShareMarketIndno change in XML structure

Modifying the ShareMarketInd for Company profiles without <Customer> Element is not possible, we will fix this. 

For Company Profiles only a <CompanyInfo> Element is needed to modify the ShareMarketInd.

PWS-2283PWS 2.20.X
OTA_HotelResNotifRQOuboundOnPrem

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @CreateDateTime

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @LastModifyDateTime

no change in XML structure

Timestamps corrected to use UTC time (equal to other messages).PWS-2310PWS 2.20.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | SubAccountBalance | Type

OTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty | SubAccountBalance | Type

<CustLoyalty ProgramID="5566" MembershipID="5566" RPH="9" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="GHA" Remark="" LoyalLevel="PLATINUM" SignupDate="2019-05-18" EffectiveDate="2019-05-18" ExpireDate="2019-05-18" ShareMarketInd="No" ShareSyncInd="No">
	<SubAccountBalance Type="Type1" Balance="60" />
</CustLoyalty>

To import the @Type correctly and set it in the guest's loyalty Program as Loyalty Type.

Extend the error handling for not existing Type, no change in the XML Message.

PWS-594PWS 2.20.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | @LoyalLevel

OTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty | @LoyalLevel

<CustLoyalty ProgramID="5566" MembershipID="5566" RPH="9" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="GHA" Remark="" LoyalLevel="PLATINUM" SignupDate="2019-05-18" EffectiveDate="2019-05-18" ExpireDate="2019-05-18" ShareMarketInd="No" ShareSyncInd="No">
	<SubAccountBalance Balance="0" />
</CustLoyalty>

To import the @LoyalLevel correctly and set it in the guest's loyalty Program as Loyalty level.

Extend the error handling for not existing LoyalLevel, no change in the XML Message.

PWS-593PWS 2.20.X
HTNG_HotelFolioNotifRSOutboundOnPremHTNG_HotelFolioNotifRS | Folios | Folio | CustomerProfileno change in XML structureThe <CustomerProfile> element will always hold the main guest information for all folios.PWS-2276PWS 2.20.X
HTNG_HotelFolioNotifRSOutboundOnPremHTNG_HotelFolioNotifRS | Folios | Folio | @GuestViewable
<HTNG_HotelFolioRS xmlns="http://htng.org/2014B" TimeStamp="2020-10-27T11:03:40.5921104Z" Version="3.000" CorrelationID="PWS_2252_01" EchoToken="PWS_2252_01" Target="Test" TransactionStatusCode="Start" RetransmissionIndicator="false">
			<Success/>
			<Folios>
				<Folio FolioID="341558-0" FolioType="Room" InvoiceID="0" GuestPayable="true">
					...
				</Folio>
				<Folio FolioID="341558-1" FolioType="Room" InvoiceID="0" GuestPayable="false">
					....
				</Folio>
			</Folios>
		</HTNG_HotelFolioRS>
	</env:Body>
</env:Envelope>
Remove the <GuestViewable> attribute, as there is no possibility in PMS to set it.PWS-2252PWS 2.20.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

OTA_ProfileModifyRQ | Customer / EmployerInfo

OTA_ProfileCreateRQ | Customer | EmployerInfo

<Customer Gender="Male" Language="de">
	<PersonName>
		<GivenName>tst</GivenName>
		<Surname>Test593_02</Surname>
	</PersonName>
	<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true">
		<StateProv/>
		<CountryName Code="NO">Norwegen</CountryName>
	</Address>
	<CitizenCountryName DefaultInd="true" Code="NO" />
	<Document BirthDate="1900-01-01" EffectiveDate="1900-01-01" ExpireDate="1900-01-01" />
	<EmployerInfo CompanyShortName="Company2" Department="Dep">Company</EmployerInfo>
</Customer>
The EmployerInfo will be implemented in the ProfilePWS-623PWS 2.20.X
OTA_ResRestrieveRS OutboundOnPremOTA_ResResRetrieve | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | 
  • Customer | @Gender
  • Customer | @BirthDate
  • Customer | @Language
  • Customer | PersonName | NamePrefix
  • Customer | CitizenCountryName (element)
  • Customer | RelatedTraveler (element)
  • Customer | Document (element)

OTA_ResResRetrieve | RoomStays | BasicPropertyInfo

OTA_ResResRetrieve | RoomStays | RoomStay | ResGuestRPH 


Root element

  • Version to 6.002
  • add PrimaryLangID="de"
  • add the attribute EchoToken
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-10-15T07:45:33.7529995Z" Version="6.002" CorrelationID="READ#TEST#1" EchoToken="52151515151" PrimaryLangID="de">
	<Success/>
	<ReservationsList>
		<HotelReservation ResStatus="Reserved">
			<UniqueID Type="14" ID="33526" ID_Context="protelIO"/>
			<RoomStays>
				<RoomStay>
					<BasicPropertyInfo HotelCode="3236" HotelCodeContext="protelIO" HotelName="ART SKI - IN Hotel Hinterhag, A-5753 Saalbach" ChainCode="HC1"/>
					<ResGuestRPHs>
						<ResGuestRPH RPH="36842"/>
					</ResGuestRPHs>
					...
				</RoomStay>
			</RoomStays>
			<ResGuests>
				<ResGuest xmlns:px="http://protel.io/htng/extensions" PrimaryIndicator="false">
					<Profiles>
						<ProfileInfo>
							<UniqueID Type="1" ID="36842" ID_Context="protelIO"/>
							<Profile ProfileType="1">
								<Customer Gender="Female" BirthDate="1989-08-12" Language="de">
									<PersonName>
										<NamePrefix>Frau</NamePrefix>
										<GivenName>Test_GivenName</GivenName>
										<MiddleName/>
										<Surname>Test_SurName</Surname>
									</PersonName>
									<Telephone ShareMarketInd="Null" PhoneNumber="0231-915930" PhoneLocationType="6" PhoneTechType="1" DefaultInd="true"/>
									<Email DefaultInd="true" EmailType="1">support@protel.net</Email>
									<Address FormattedInd="false" Type="1" DefaultInd="true" UseType="6">
										<AddressLine>Europaplatz 9a</AddressLine>
										<CityName>Dortmund</CityName>
										<PostalCode>44269</PostalCode>
										<StateProv StateCode="DE-NW">Nordrhein-Westfalen</StateProv>
										<CountryName Code="DE">Deutschland</CountryName>
									</Address>
									<CitizenCountryName DefaultInd="true" Code="DE"/>
									<RelatedTraveler BirthDate="1985-10-17">
										<UniqueID Type="1" ID="36255"/>
										<PersonName Language="en">
											<NamePrefix>Mr.</NamePrefix>
											<GivenName>Jacob</GivenName>
											<Surname>Aliker</Surname>
											<Document/>
										</PersonName>
									</RelatedTraveler>
									<Document DocIssueLocation="Dormtund" DocID="12345" BirthDate="1989-08-12" EffectiveDate="2000-12-12" ExpireDate="2050-12-31"/>
...
Add several attributes/elements to the OTA_ResRetrieveRSPWS-2166 | PWS-1210PWS 2.20.X

HTNG_HotelFolioNotifRQ

OutboundOnPremHTNG_HotelFolioNotifRQ | TPA_Extensions | FiscalExtensions
<HTNG_HotelFolioNotifRQ>
	<TPA_Extensions>
		<px:FiscalExtensions xmlns:px="http://protel.io/htng/extensions">
			<px:FiscalExtension InvoiceID="2:130" FiscalCode="2"/>
		</px:FiscalExtensions>
	</TPA_Extensions>
For fiscalizing PMS the used FiscalCode will be exported with the new TPA_Extension, for non-fiscalizing PMS nothing will change.PWS-2265PWS 2.20.X

HTNG_HotelFolioRS

OutboundOnPremHTNG_HotelFolioRS | TPA_Extensions | FiscalExtensions
<HTNG_HotelFolioRS>
	<TPA_Extensions>
		<px:FiscalExtensions xmlns:px="http://protel.io/htng/extensions">
			<px:FiscalExtension InvoiceID="2:130" FiscalCode="2"/>
		</px:FiscalExtensions>
	</TPA_Extensions>
For fiscalizing PMS the used FiscalCode will be exported with the new TPA_Extension, for non-fiscalizing PMS nothing will change.PWS-2265PWS 2.20.X
OTA_HotelAvailRSOutboundOnPremOTA_HotelAvailRS

no change in XML structure

Available rooms should be listed in the OTA_HotelAvailRS based on the following XSetup:

  1. if yield.enable = 0, normal rate calculation
  2. if yield.enable = 1, BAR rate calculation (query in yieldbar table) as current behavior
  3. if yield.enabledhurdle = 1, normal rate calculation compare to the valid hurdle rates. //for instance if normal rate is 100 and hurdle is 120, then No availability.
PWS-2070PWS 2.20.X
OTA_HotelInvBlockNotifRSoutboundOnPremOTA_HotelInvBlockNotifRS | TPA_Extensions | ProfileInfoExtensions | ContactDetails | AdditionalInfo
<OTA_HotelInvBlockNotifRS>
	<Success/>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		<px:ProfileInfoExtensions>
			<px:ContactDetails>
				<px:AdditionalInfo>
					<px:Entry ID="155498" ID_Context="protelIO" RPH="1"/>
					<px:Entry ID="00000013" ID_Context="USI" RPH="1"/>
In OTA_HotelInvBlockNotifRS we will display the ProfileID with ID_Context = "protelIO"PWS-2271PWS 2.20.X
IO_StatsNotifRQoutboundOnPremTrigger in EOD procedureno change in XML structure

OnPrem will trigger now as described in our documentation the correct number of days


  • FiscalDate is always the Current Business Date of the PMS.
  • ALL CurrentDaily Reports do contain future data including FiscalDate (as a default for 30 days)
  • ALL PastDaily Reports do contain the data from FiscalDate -1 on (as a default for 1 day back)
PWS-2218PWS 2.20.X
IO_StatsNotifRQoutboundOnPrem

IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode = 14


IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode = 19

<IO_StatsNotifRQ EchoToken="092f259e-bcf8-4739-8ecb-7b7cf2383c9f" TimeStamp="2020-10-07T15:28:39Z" Version="1.002" CorrelationID="092f259e-bcf8-4739-8ecb-7b7cf2383c9f" xmlns="http://protel.io/soap">
	<Statistics xmlns="http://www.opentravel.org/OTA/2003/05">
		<Statistic ChainCode="HC1" HotelCode="3153" FiscalDate="2017-06-21" ReportCode="Genius_CurrentDailyRoomTypeStatistics_v1">
			<StatisticApplicationSets>
				<StatisticApplicationSet Start="2017-06-21" End="2017-06-21">
					<StatisticCodes>
						<StatisticCode StatCode="ACCT" StatCategoryCode="3"/>
						<StatisticCode StatCode="1" StatCategoryCode="Pseudo"/>
					</StatisticCodes>
					<RevenueCategorySummaries>
						<RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="AED" Amount="0.00"/>
						<RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="AED" Amount="0.00"/>
						<RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="AED" Amount="0.00"/>
						<RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="AED" Amount="0.00"/>
					</RevenueCategorySummaries>
					<CountCategorySummaries>
						<CountCategorySummary SummaryCount="1" CountCategoryCode="8"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="9"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="10"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="11"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="12"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="13"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="22"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="14"/>
						<CountCategorySummary SummaryCount="3" CountCategoryCode="19"/>
					</CountCategorySummaries>
				</StatisticApplicationSet>
				<StatisticApplicationSet Start="2017-06-22" End="2017-06-22">
					<StatisticCodes>
						<StatisticCode StatCode="CBRT" StatCategoryCode="3"/>
						<StatisticCode StatCode="0" StatCategoryCode="Pseudo"/>
					</StatisticCodes>
					<RevenueCategorySummaries>
						<RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="AED" Amount="0.00"/>
						<RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="AED" Amount="0.00"/>
						<RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="AED" Amount="0.00"/>
						<RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="AED" Amount="0.00"/>
					</RevenueCategorySummaries>
					<CountCategorySummaries>
						<CountCategorySummary SummaryCount="2" CountCategoryCode="8"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="9"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="10"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="11"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="12"/>
						<CountCategorySummary SummaryCount="1" CountCategoryCode="13"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="22"/>
						<CountCategorySummary SummaryCount="1" CountCategoryCode="14"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="19"/>
					</CountCategorySummaries>
				</StatisticApplicationSet>

Added the CountCategoryCode to the future Report


14 = Room cancelled
19 = Day-use rooms

PWS-2213PWS 2.20.X
HTNG_HotelCheckOutNotifRSOutboundOnPrem

HTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentData

<HTNG_HotelCheckOutNotifRS xmlns="http://htng.org/2014B" TimeStamp="2020-09-28T11:28:12.2502538Z" Version="3.000" CorrelationID="Test_AKO_6">
	<Success/>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		<px:DocumentExtensions>
			<px:DocumentData Type="Invoice" ID="419" ID_Context="protelIO">JVBERi0xLjYKJcOkw7zDtsOfCjIgM...</px:DocumentData>
We will provide in HTNG_HotelCheckOutNotifRS / DocumentData element the base64 encoded PDF invoice.PWS-2187PWS 2.20.X

IPA 20.39 

IO_StatsNotifRQOutboundpAirIO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode
<IO_StatsNotifRQ>
	<Statistics>
		<Statistic>
			<StatisticApplicationSets>
				<StatisticApplicationSet>
					<CountCategorySummaries>
						<CountCategorySummary CountCategoryCode="8" SummaryCount="2"/>
						<CountCategorySummary CountCategoryCode="9" SummaryCount="0"/>
						<CountCategorySummary CountCategoryCode="10" SummaryCount="0"/>
						<CountCategorySummary CountCategoryCode="11" SummaryCount="0"/>
						<CountCategorySummary CountCategoryCode="12" SummaryCount="0"/>
						<CountCategorySummary CountCategoryCode="13" SummaryCount="2"/>
						<CountCategorySummary CountCategoryCode="22" SummaryCount="0"/>
					</CountCategorySummaries>

enable the CountCategoryCode

  • 22 = Complimentary and House use rooms
IPA-69120.39

PWS 2.19.x  

OTA_HotelResNotifRSInboundOnPremOTA_HotelResNotifRS | UniqueID
<OTA_HotelResNotifRS ResResponseType="Commited">
    <Success/>
    <HotelReservations>
        <HotelReservation>
            <UniqueID ID="33749" Type="14" ID_Context="protelIO"/>
            <UniqueID ID="WIRJOWARIabc1321" Type="14" ID_Context="PartnerCRS"/>
        </HotelReservation>
    </HotelReservations>
</OTA_HotelResNotifRS>

For "Commit" reservations which originated in the PMS it is now possible to store the external reservation confirmation number. 

The UniqueID/@ID and /@ID_Context will be then included in further OTA_HotelResNotifRQ messages from the PMS. 

PWS-2333PWS 2.19.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary
<HTNG_HotelFolioNotifRQ>
	<Folios>
		<Folio FolioID="33389-0" FolioType="Room" InvoiceID="0" GuestViewable="false" GuestPayable="true">
			<RevenueSummary>
				<GrossAmount Amount="0" xmlns="http://www.opentravel.org/OTA/2003/05"/>
				<TaxItems Amount="0" xmlns="http://www.opentravel.org/OTA/2003/05"/>
				<BalanceDueAmount Amount="0" xmlns="http://www.opentravel.org/OTA/2003/05"/>
				<AmountReceived Amount="0" xmlns="http://www.opentravel.org/OTA/2003/05"/>
			</RevenueSummary>
			<RevenueDetails/>
For Cancelled and No-Show Reservation the RevenueSummary will display a 0,00 AmountPWS-2356PWS 2.19.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

OutboundOnPrem

OTA_ProfileCreateRQ | POS | Source | TPA_Extensions | POSExtensions | HotelInfo | @FiscalDate


OTA_ProfileModifyRQ | POS | Source | TPA_Extensions | POSExtensions | HotelInfo | @FiscalDate

<OTA_ProfileCreateRQ>
	<POS>
		<Source>
			<TPA_Extensions>
				<px:POSExtensions xmlns:px="http://protel.io/htng/extensions">
					<px:HotelInfo/>
Remove the FiscalDate from the Profile message, can be enable in the message if neededPWS-2364PWS 2.19.X
OTA_HotelResNotifRQOutboundOnPrem
no change in XML structureNo Preparer Exception after deleting the setting in the RBG and building ResNotif outbound.PWS-2355PWS 2.19.X
HTNG_HotelFolioRSOutboundOnPremHTNG_HotelFolioRS | Folios | Folio | RevenueDetailsno change in XML structureThe issue with displaying the RevenueDetails as Forecast AND real Revenue for the last past day is fixed.PWS-2351PWS 2.19.X
OTA_ProfileReadRSOutboundOnPremOTA_ProfileReadRS | Errors | Errorno change in XML structure

Changed the error text in case of not existing a profile ID to:
<Error ShortText="Could not find profile 61000000 - Profile does not exist." Code="321"/>

PWS-2349PWS 2.19.X
OTA_HotelResNotifRQOutboundOnPremOTA_HotelResNotifRQno change in XML structureTo reproduce the missing entries for the past dates in prfutre after running a persistent forecast.PWS-2345PWS 2.19.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQno change in XML structureMessage will be triggered when a reservation is created, modified (affecting the invoice) and cancelled.PWS-2320PWS 2.19.X
HTNG_HotelCheckOutNotifRQInboundOnPremHTNG_HotelCheckOutNotifRQ

no change in XML structure

Added the functionality to check-in a reservation which has no roomID assignedPWS-2193PWS 2.19.X
OTA_HotelInvBlockNotifRQInbound / OutboundOnPremOTA_HotelInvBlockNotifRQ | TPA_Extensions | ReservationExtensions
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:ContactDetails>
			<px:AdditionalInfo />
		</px:ContactDetails>
	</px:ProfileInfoExtensions>
	<InvBlockExtensions>
		<InvBlockID ID="213" ID_Context="protelIO" Type="18" />
		<InvBlockID ID="4444" ID_Context="iVvy" Type="18" />
	</InvBlockExtensions>
	<px:ReservationExtensions>
		<px:ReservationStatus Code="Conf" ID="3" ID_Context="protelIO" Name="Credit Card Guarante" RPH="213" />
	</px:ReservationExtensions>
</TPA_Extensions>
Implementing ReservationExtensions in TPA_Extension element to contain the allotment reservation status.PWS-2269PWS 2.19.X
OTA_HotelInvBlockNotifRQOutboundOnPremOTA_HotelInvBlockNotifRQ / TPA_Extensions
<?xml version='1.0' encoding='utf-8'?>
<OTA_HotelInvBlockNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EchoToken="7e8b3c99-1097-4e4a-a542-c47836abc56e" TimeStamp="2020-09-23T10:06:44Z" Version="4.001" CorrelationID="7e8b3c99-1097-4e4a-a542-c47836abc56e" PrimaryLangID="en" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelInvBlockNotifRQ.xsd">
	<POS>...	</POS>
	<InvBlocks>
		...
	</InvBlocks>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		<px:ProfileInfoExtensions>
			<px:ContactDetails>
				<px:AdditionalInfo>
					<px:Entry ID="155463" ID_Context="protelIO" Type="5" DefaultInd="true">SafiranParvazAsia</px:Entry>
					<px:Entry ID="155460" ID_Context="protelIO" Type="4" DefaultInd="true">ADL</px:Entry>
					<px:Entry ID="155494" ID_Context="protelIO" Type="7" DefaultInd="true">AsiaParliment</px:Entry>
					<px:Entry ID="155456" ID_Context="protelIO" Type="9" DefaultInd="true">GRP1</px:Entry>
				</px:AdditionalInfo>
			</px:ContactDetails>
		</px:ProfileInfoExtensions>
		<InvBlockExtensions>
			<InvBlockID ID="202" ID_Context="protelIO" Type="18"/>
		</InvBlockExtensions>
	</TPA_Extensions>
</OTA_HotelInvBlockNotifRQ>
Added TPA_Extensions elementPWS-1325PWS-2.19.X
OTA_HotelResNotifRQOutboundOnPremOTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / TPA_Extensions
<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation>
			<ResGuests>
				<ResGuest>
					<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
						<px:GuestStayExtensions>
							<px:TelephoneSetting ClassOfService="1"/>
						</px:GuestStayExtensions>
					</TPA_Extensions>
Added TPA_Extensions / GuestStayExtensions / TelephoneSetting to OTA_HotelResNotifRQ outboundPWS-1271PWS-2.19.X
OTA_HotelAvailRSOutboundOnPremOTA_HotelAvailRS / RoomStays / RoomStay / RatePlans / RatePlan / CancelPenalties
OTA_HotelAvailRS / RoomStays / RoomStay / RatePlans / RatePlan / RatePlanDescription
<?xml version='1.0' encoding='utf-8'?>
<OTA_HotelAvailRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-09-08T07:59:44.6739226Z" Version="6.001" CorrelationID="PWS-2221-SR4" EchoToken="PWS-2221-SR4" PrimaryLangID="en" SearchCacheLevel="live">
	<Success/>
	<HotelStays>...	</HotelStays>
	<RoomStays>
		<RoomStay RoomStayStatus="Quote" ResponseType="PropertyRateList" AvailabilityStatus="AvailableForSale" InfoSource="PMS" RPH="1" AvailableIndicator="true">
			<RoomTypes>
				<RoomType IsRoom="true" RoomTypeCode="CBR" RoomType="Classic One Bedroom Suite"/>
			</RoomTypes>
			<RatePlans>
				<RatePlan RatePlanCode="Ali3" RatePlanID="354" EffectiveDate="2017-06-20" ExpireDate="2017-06-21" PriceViewableInd="true">
					<AdditionalDetails>
				    ...
					</AdditionalDetails>
					<CancelPenalties>
						<CancelPenalty PolicyCode="Non Refundable">
							<PenaltyDescription Name="Name">
								<Text TextFormat="PlainText">Non Refundable</Text>
							</PenaltyDescription>
						</CancelPenalty>
					</CancelPenalties>
					<RatePlanDescription>
						<RatePlanDescription Name="Long Description">
							<Text TextFormat="PlainText">1111</Text>
						</RatePlanDescription>
					</RatePlanDescription>
				</RatePlan>
			</RatePlans>
			<RoomRates>...</RoomRates>
			<Total AmountAfterTax="120.00" CurrencyCode="AED"/>
		</RoomStay>
		<RoomStay RoomStayStatus="Quote" ResponseType="PropertyRateList" AvailabilityStatus="AvailableForSale" InfoSource="PMS" RPH="1" AvailableIndicator="true">
			<RoomTypes>
				<RoomType IsRoom="true" RoomTypeCode="CBR" RoomType="Classic One Bedroom Suite"/>
			</RoomTypes>
			<RatePlans>
				<RatePlan RatePlanCode="Ali3" RatePlanID="354" EffectiveDate="2017-06-20" ExpireDate="2017-06-21" PriceViewableInd="true">
					<AdditionalDetails>
					...
					</AdditionalDetails>
					<CancelPenalties>
						<CancelPenalty PolicyCode="Non Refundable">
							<PenaltyDescription Name="Name">
								<Text TextFormat="PlainText">Non Refundable</Text>
							</PenaltyDescription>
						</CancelPenalty>
					</CancelPenalties>
					<RatePlanDescription>
						<RatePlanDescription Name="Long Description">
							<Text TextFormat="PlainText">1111</Text>
						</RatePlanDescription>
					</RatePlanDescription>
				</RatePlan>
			</RatePlans>
			<RoomRates>
			...
			</RoomRates>
			<Total AmountAfterTax="150.00" CurrencyCode="AED"/>
		</RoomStay>
		...
	</RoomStays>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		...
	</TPA_Extensions>
</OTA_HotelAvailRS>

Elements CancelPenalties and RatePlanDescription will be displayedPWS-2221PWS-2.19.X
IO_ResModifyNotifRQInboundOnPremIO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="PWS-2168-Test1a" TimeStamp="2018-12-29T15:20:35.985Z" Version="1.00">
	<p:Reservations HotelCode="2570">
		<p:Reservation ArrivalDate="2018-09-28">
			<p:UniqueID ID="345318" Type="14" ID_Context="Protel_IO"/>
			<p:InvoiceItemRoutings>
				<p:InvoiceItemRouting Action="CREATE" ID_Context="protelIO">
					<p:Target ID="345318-1" ID_Context="protelIO" Type="Invoice"/>
					<p:Source ID="345318" ID_Context="protelIO" Type="Reservation"/>
					<p:ItemFilter>
						<p:Posting From="2018-09-28" To="2018-10-03" Fri="true" Mon="true" Sat="true" Sun="true" Thu="true" Tue="true" Wed="true"/>
						<p:ItemGroups>
							<p:ItemGroup Code="-1000002" ID="-1" ID_Context="protelIO">FB</p:ItemGroup>
						</p:ItemGroups>
					</p:ItemFilter>
				</p:InvoiceItemRouting>
			</p:InvoiceItemRoutings>
		</p:Reservation>
	</p:Reservations>
</p:IO_ResModifyNotifRQ>
Added functionality to add a new payment/routing instruction to a reservation.PWS-2168PWS 2.19.X
OTA_ProfileCreateRQ / 
OTA_ProfileModifyRQ
InboundOnPremOTA_ProfileCreateRQ | UniqueID
OTA_ProfileModifyRQ | UniqueID 
<OTA_ProfileCreateRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1">
	<POS>
		...
	</POS>
	<UniqueID Type="5" ID="556671101" ID_Context="IATA"/>
	<Profile ShareAllOptOutInd="Yes" ProfileType="4" CreateDateTime="2020-06-26T16:13:00" CreatorID="protel I/O_4866" LastModifyDateTime="2020-06-30T16:06:17" LastModifierID="protel 1" StatusCode="4">
		<Customer/>
		<CompanyInfo>
		...
		</CompanyInfo>
	</Profile>
</OTA_ProfileCreateRQ>
Added the functionality to import IATA number to a profilePWS-2231PWS 2.19.X
OTA_HotelResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | TPA_Extensions
<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation>
			<RoomStays>
				<RoomStay>
					<TPA_Extensions>
						<px:RateAmountExtensions xmlns:px="http://protel.io/htng/extensions" End="2018-11-21" Start="2018-11-17" AlternateCurrencyInd="false">
							...
						</px:RateAmountExtensions>
						<px:FixedChargesAmountsExtensions xmlns:px="http://protel.io/htng/extensions" End="2018-11-21" Start="2018-11-17">
							<px:RateAmount AmountAfterTax="0.00" AmountBeforeTax="0.00" RevenueCategoryCode="3" CurrencyCode="EUR"/>
							<px:RateAmount AmountAfterTax="0.00" AmountBeforeTax="0.00" RevenueCategoryCode="6" CurrencyCode="EUR"/>
							<px:RateAmount AmountAfterTax="0.00" AmountBeforeTax="0.00" RevenueCategoryCode="9" CurrencyCode="EUR"/>
							<px:RateAmount AmountAfterTax="0.00" AmountBeforeTax="0.00" RevenueCategoryCode="17" CurrencyCode="EUR"/>
						</px:FixedChargesAmountsExtensions>
					</TPA_Extensions>
Renaming of TPA_Extensions/FixedChargesAmounts element to TPA_Extensions/FixedChargesAmountsExtensions and TPA_Extensions/FixedChargesAmounts/FixedChargeAmount to TPA_Extensions/FixedChargesAmounts/RateAmount to unify messages for both PMS.PWS-1266PWS 2.19.X
OTA_HotelAvailRSoutboundOnPremOTA_HotelAvailRS | RoomStays | RoomStay | RatePlans | RatePlan | Guarantee 
OTA_HotelAvailRS | TPA_Extensions | 
AvailabilityExtensions
<OTA_HotelAvailRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-08-27T09:51:57.7432169Z" Version="6.001" CorrelationID="SR_Test1" EchoToken="EchoToken_String" PrimaryLangID="en" SearchCacheLevel="live">
	<Success/>
	<HotelStays>...</HotelStays>
	<RoomStays>
		...
		<RoomStay RoomStayStatus="Quote" ResponseType="PropertyRateList" AvailabilityStatus="AvailableForSale" InfoSource="PMS" RPH="1" AvailableIndicator="true">
			<RoomTypes>
				<RoomType IsRoom="true" RoomTypeCode="DZ Tal" RoomType="Doppelzimmer "Tal""/>
			</RoomTypes>
			<RatePlans>
				<RatePlan RatePlanCode="PACKTEST" RatePlanID="44" EffectiveDate="2019-08-01" ExpireDate="2019-08-05" PriceViewableInd="true">
					<AdditionalDetails>...</AdditionalDetails>
					<Guarantee GuaranteeCode="Test">
						<GuaranteeDescription Name="Name">
							<Text TextFormat="PlainText">Test</Text>
						</GuaranteeDescription>
					</Guarantee>
				</RatePlan>
			</RatePlans>
			<RoomRates>...</RoomRates>
			<Total AmountAfterTax="400.00" CurrencyCode="EUR"/>
		</RoomStay>
	</RoomStays>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		<px:AvailabilityExtensions>
			<px:RoomAvailable IsRoom="true" RoomTypeCode="DZ Tal" RoomID="101" RoomType="101 - Doppelzimmer "Tal"" uantity="1">
				<RoomDescription Name="Short Description">
					<Text TextFormat="PlainText">Doppelzimmer mit Balkon</Text>
				</RoomDescription>
				<Occupancy MinOccupancy="2"/>
				<px:Amenities>
					<px:Amenity>
						<px:RoomAmenity>Extra Fenster </px:RoomAmenity>
					</px:Amenity>
				</px:Amenities>
			</px:RoomAvailable>
			...
		</px:AvailabilityExtensions>
	</TPA_Extensions>
</OTA_HotelAvailRS>
Added several elements and attributes to unify the messages for both PMS.PWS-2136PWS 2.19.X



  • Keine Stichwörter