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

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 127 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.432020-10-21
20.412020-10-07
20.392020-09-23
20.372020-09-09
20.352020-08-26
20.332020-08-12
20.312020-07-29
20.292020-07-15
20.272020-07-01
20.252020-06-17
20.232020-06-03

Release dates PWS (onPrem) LIVE Environment

VersionRelease date

PWS 2.20

2020-11-23
PWS 2.192020-10-05
PWS 2.182020-08-26
PWS 2.172020-07-29
PWS 2.162020-06-22


Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersion
TBA PWS
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


Add the TPA_Extensions for <VipCodes> and <MarketingCodes>PWS-707
IO_ResModifyNotifRQinboundOnPremIO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | Item | @ItemID
we will import the ItemID value with the IO_ResModifyNotifRQPWS-2286

InboundOnPrem


PWS-2283
OTA_HotelAvailNotifRSOutboundOnPremOTA_HotelAvailNotifRS | Warning

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

We will changes 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

PWS-2275

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

OTA_ProfileCreateRQ | Profile | Customer | URL

OTA_ProfileModifyRQ | ProfileModify | Customer | URL


The URL will be implemented in the ProfilePWS-295
TBA IPA
HTNG_HotelCheckOutNotifRQinboundpAirno changes in the XML
we will add a configuration for selecting a specific invoice formularIPA-714
IO_SystemDataNotifRQoutboundpAir

Implementation of the new message IO_SystemDataNotifRQ

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
IPA 20.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
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 3.0.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 3.0.X
OTA_HotelResNotifRQOuboundOnPrem

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @CreateDateTime

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @LastModifyDateTime





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 3.0.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 3.0.X
HTNG_HotelFolioNotifRSOutboundOnPremHTNG_HotelFolioNotifRS | Folios | Folio | CustomerProfileno change in XML structureThe <CustomerProfile> Element will always holds the main guest infromation for all folios.PWS-2276PWS 3.0.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 3.0.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 3.0.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 3.0.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 3.0.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 3.0.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 3.0.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 3.0.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 3.0.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 3.0.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 3.0.X
PWS 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
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
IPA 20.35
IO_StatsNotifRQOutboundpAirIO_StatsNotifRQ | Statistics | Statistic | @ReportCode
<?xml version="1.0" encoding="utf-8"?>
<p:IO_StatsNotifRQ>
	<p:Statistics>
		<Statistic FiscalDate="2018-06-19" ChainCode="PENTA" HotelCode="2756" HotelName="IO Testing_pAir_2000116" ReportCode="Genius_CurrentDailyRoomTypeStatistics_v1">

Add the following report names

  • Future: Genius_CurrentDailyRoomTypeStatistics_v1
  • Past: Genius_PastDailyRoomTypeStatistics_v1
IPA-67520.35
IO_StatsNotifRQOutboundpAirIO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode
<IO_StatsNotifRQ>
	<Statistics>
		<Statistic>
			<StatisticApplicationSets>
				<StatisticApplicationSet>
					<CountCategorySummaries>
						<CountCategorySummary SummaryCount="2" CountCategoryCode="8"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="9"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="10"/>
						<CountCategorySummary SummaryCount="2" CountCategoryCode="11"/>
						<CountCategorySummary SummaryCount="2" CountCategoryCode="12"/>
						<CountCategorySummary SummaryCount="2" CountCategoryCode="13"/>
						<CountCategorySummary SummaryCount="2" CountCategoryCode="14"/>
						<CountCategorySummary SummaryCount="0" CountCategoryCode="15"/>
						<CountCategorySummary SummaryCount="2" CountCategoryCode="19"/>
						<CountCategorySummary SummaryCount="1" CountCategoryCode="22"/>
					</CountCategorySummaries>
...

remove the CountCategoryCode

  • 15 = No-shows
  • 19 = Day-use rooms
  • 22 = Complimentary and House use rooms
IPA-67520.35
OTA_HotelAvailRQInboundpAirOTA_HotelAvailRQ | AvailRequestSegments | HotelSearchCriteria | Criterion | RoomStayCandidates | RoomStayCandidate | GuestCounts | GuestCount
<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" AvailRatesOnly="true" CorrelationID="IPA_681_03" Version="0" EchoToken="IPA_681_03">
	<POS>
		<Source>
			<RequestorID ID="2787" Type="10" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
		</Source>
	</POS>
	<AvailRequestSegments>
		<AvailRequestSegment AvailReqType="Room">
			<HotelSearchCriteria>
				<Criterion>
					<StayDateRange Start="2020-08-07" End="2020-08-08"/>
					<RoomStayCandidates>
						<RoomStayCandidate RoomTypeCode="SR">
							<GuestCounts IsPerRoom="true">
								<GuestCount AgeQualifyingCode="10" Count="1"/>										
							</GuestCounts>
							<RoomAmenity RoomAmenity="0"/>
						</RoomStayCandidate>
					</RoomStayCandidates>
				</Criterion>
			</HotelSearchCriteria>
		</AvailRequestSegment>
	</AvailRequestSegments>
</OTA_HotelAvailRQ>
OTA_HotelAvailRQ will provide the available rooms requested per occupancy by checking the Count value.IPA-68120.35
OTA_HotelInvCountNotifRQOutboundpAirOTA_HotelInvCountNotifRQ | Inventories
<OTA_HotelInvCountNotifRQ>
	<UniqueID ID="2787" ID_Context="protelIO" Type="10"/>
	<Inventories ChainCode="n/a" HotelCode="2787" HotelName="protel_IO_Testhotel_pAir_2100112">
		<Inventory>
			<StatusApplicationControl End="2020-08-10" InvCode="64" InvTypeCode="JS" IsRoom="true" Start="2020-08-10"/>
			<InvCounts>
				<InvCount Count="1" CountType="1"/>
				<InvCount Count="1" CountType="2"/>
				<InvCount Count="1" CountType="3"/>
				<InvCount Count="0" CountType="4"/>
				<InvCount Count="0" CountType="5"/>
				<InvCount Count="0" CountType="6"/>
			</InvCounts>
			<UniqueID ID="64#2020-08-10#1B71" ID_Context="protelIO" Type="16"/>
			</Inventory>
			...
			<Inventory>
			<StatusApplicationControl AllInvCode="true" End="2020-08-10" Start="2020-08-10"/>
			<InvCounts>
				<InvCount Count="14" CountType="1"/>
				<InvCount Count="10" CountType="2"/>
				<InvCount Count="10" CountType="3"/>
				<InvCount Count="4" CountType="4"/>
				<InvCount Count="0" CountType="5"/>
				<InvCount Count="0" CountType="6"/>
			</InvCounts>
			<UniqueID ID="0#2020-08-10#2049" ID_Context="protelIO" Type="16"/>
		</Inventory>
		...				
	</Inventories>
</OTA_HotelInvCountNotifRQ>
OTA_HotelInvCountNotifRQ which is generated after EOD contains the availability on Property level.IPA-64520.35
PWS 2.18.x
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | BalanceDueAmount
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders" xmlns:env="http://www.w3.org/2003/05/soap-envelope">
  <env:Header>
    <htnga:CorrelationID>0a190fc7-1553-42f0-98a8-1db08f206697</htnga:CorrelationID>
    <Source Product="protel On Premise SPE" ProductVersion="21.02000" Module="protel.WebServices" ModuleVersion="0.0.0.8416" Service="io.protel.onpremise" xmlns="http://protel.io/soap" />
  </env:Header>
  <env:Body>
    <HTNG_HotelFolioNotifRQ EchoToken="0a190fc7-1553-42f0-98a8-1db08f206697" TimeStamp="2020-09-25T10:12:21Z" Version="4" CorrelationID="0a190fc7-1553-42f0-98a8-1db08f206697" xmlns="http://htng.org/2014B">
      <POS xmlns="http://www.opentravel.org/OTA/2003/05">
        ...
        </Source>
      </POS>
      <UniqueID Type="14" ID="341482" ID_Context="protelIO" />
      <Folios>
        <Folio FolioID="341482-0" FolioType="Room" InvoiceID="0" GuestViewable="true" GuestPayable="true">
          <BasicPropertyInfo HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" ChainCode="1" />
          <CustomerProfile>
            <ProfileInfo xmlns="http://www.opentravel.org/OTA/2003/05">
            ...
            </ProfileInfo>
          </CustomerProfile>
          <PayerProfile>
            <ProfileInfo xmlns="http://www.opentravel.org/OTA/2003/05">
            ...
            </ProfileInfo>
          </PayerProfile>
          <RevenueSummary>
            <GrossAmount Amount="429.00" xmlns="http://www.opentravel.org/OTA/2003/05" />
            <TaxItems Amount="59.17" xmlns="http://www.opentravel.org/OTA/2003/05" />
            <BalanceDueAmount Amount="13.00" xmlns="http://www.opentravel.org/OTA/2003/05" />
            <AmountReceived Amount="-20.00" xmlns="http://www.opentravel.org/OTA/2003/05" />
          </RevenueSummary>
          <RevenueDetails>
          ...
          </RevenueDetails>
        </Folio>
      </Folios>
    </HTNG_HotelFolioNotifRQ>
  </env:Body>
</env:Envelope>

The BalanceDueAmount in RevenueSummary must contain the actual balance of the folio and not forecasted revenue.

PWS-2263PWS-2.18.5
OTA_HotelResNotifRQoutboundonPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | Traces
<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="8003568d-d5cb-4cb1-81e0-b2009fecabf0" TimeStamp="2020-08-07T12:55:53Z" Version="5.000" CorrelationID="8003568d-d5cb-4cb1-81e0-b2009fecabf0" ResStatus="Initiate" PrimaryLangID="en" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd">
	<HotelReservations>
		<HotelReservation CreateDateTime="2020-06-05T04:52:59.663Z" LastModifyDateTime="2020-08-03T12:14:16.373Z" LastModifierID="protel 1" CreatorID="protel 1" ResStatus="Reserved">
			<UniqueID Type="14" ID="2389773" ID_Context="protelIO"/>
			<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
				<Traces>
					<Trace TraceDate="2019-08-28" TraceTime="" TraceDepartment="GHA_PrefG" TraceText="TEst"/>
					<Trace TraceDate="2019-08-28" TraceTime="" TraceDepartment="FLOWER" TraceText="Tulpen"/>
				</Traces>
Added Traces to the TPA_Extensions.PWS-2112PWS 2.18.x
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio
<HTNG_HotelFolioNotifRQ>
	<UniqueID Type="14" ID="341389" ID_Context="protelIO"/>
	<Folios>
		<Folio FolioID="192405" FolioType="Room" InvoiceID="192405" GuestViewable="false" GuestPayable="true">
...	
		</Folio>
		<Folio FolioID="341389-1" FolioType="Room" InvoiceID="0" GuestViewable="true" GuestPayable="false">
...
		</Folio>
		<Folio FolioID="341389-2" FolioType="Room" InvoiceID="0" GuestViewable="true" GuestPayable="false">
...
Swapping MOP in different folios will change the value GuestPayable in the correct way.PWS-2102PWS 2.18.X
OTA_HotelResNotifRQOutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay  Comments
<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation>
			<UniqueID Type="14" ID="33523" ID_Context="protelIO" />
			<RoomStays>
				<RoomStay>
					<Comments>
						<Comment GuestViewable="false">
							<Text TextFormat="PlainText">Note1</Text>
						</Comment>
						<Comment GuestViewable="false">
							<Text TextFormat="PlainText">Note2</Text>
						</Comment>
						<Comment GuestViewable="false">
							<Text TextFormat="PlainText">Note Memo</Text>
						</Comment>
						<Comment GuestViewable="false">
							<Text TextFormat="PlainText">Note Memo IDS</Text>
						</Comment>
					</Comments>
					<DepositPayments />
					<BookingRules>
						<BookingRule AbsoluteCutoff="1900-01-01" />
					</BookingRules>
				</RoomStay>
			</RoomStays>
			<ResGuests>
				<ResGuest ResGuestRPH="36842" PrimaryIndicator="true">
					<Profiles>
						<ProfileInfo>
							<UniqueID/>
							<Profile>
								<Comments>
									<Comment Name="Customer_Comment">
										<Text TextFormat="PlainText">Note All Hotels</Text>
									</Comment>
									<Comment Name="Restaurant_Comment">
										<Text TextFormat="PlainText">Note Restaurant</Text>
									</Comment>
Memo Note and Memo IDS Note will be displayed in the message.PWS-2073PWS 2.18.X
HTNG_HotelFolioRS OutboundOnPremHTNG_HotelFolioRS | Folios | Folio | RevenueSummary
<HTNG_HotelFolioRS xmlns="http://htng.org/2014B" TimeStamp="2020-08-19T08:15:00.0095908Z" Version="3.000" CorrelationID="PWS_2038_02" EchoToken="PWS_2038_02" Target="Test" TransactionStatusCode="Start" RetransmissionIndicator="false">
	<Success/>
	<Folios>
		<Folio FolioID="192405" FolioType="Room" InvoiceID="192405" GuestViewable="true" GuestPayable="true">
			<RevenueSummary>
				<GrossAmount xmlns="http://www.opentravel.org/OTA/2003/05" Amount="0"/>
				<TaxItems xmlns="http://www.opentravel.org/OTA/2003/05" Amount="-8.69"/>
				<BalanceDueAmount xmlns="http://www.opentravel.org/OTA/2003/05" Amount="-96.00"/>
				<AmountReceived xmlns="http://www.opentravel.org/OTA/2003/05" Amount="-96.00"/>
			</RevenueSummary>
			<RevenueDetails>
				<RevenueDetail ReferenceID="65760378" TransactionDate="2017-06-19" Description="Deposit 0.0%" PMSRevenueCode="1D0.0" CurrencyCode="AED" DecimalPlaces="2" Amount="-13.00" SubTypeID="Deposit" RevenueCategoryCode="6">
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>192405</FolioID>
					</FolioIDs>
					<UnitPrice AmountBeforeTax="-13.00" AmountAfterTax="-13.00">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
						</Taxes>
					</UnitPrice>
					<ExtendedPrice AmountBeforeTax="-13.00" AmountAfterTax="-13.00" Quantity="1">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
						</Taxes>
					</ExtendedPrice>
				</RevenueDetail>
				<RevenueDetail ReferenceID="65760380" TransactionDate="2017-06-19" Description="Deposit 16.0%" PMSRevenueCode="1D16.0" CurrencyCode="AED" DecimalPlaces="2" Amount="-20.00" SubTypeID="Deposit" RevenueCategoryCode="6">
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>192405</FolioID>
					</FolioIDs>
					<UnitPrice AmountBeforeTax="-17.24" AmountAfterTax="-20.00">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="16.00" Amount="-2.76"/>
						</Taxes>
					</UnitPrice>
					<ExtendedPrice AmountBeforeTax="-17.24" AmountAfterTax="-20.00" Quantity="1">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="16.00" Amount="-2.76"/>
						</Taxes>
					</ExtendedPrice>
				</RevenueDetail>
				<RevenueDetail ReferenceID="65760382" TransactionDate="2017-06-19" Description="Cash Payment" PMSRevenueCode="1" CurrencyCode="AED" DecimalPlaces="2" Amount="-20.00" SubTypeID="Payment" RevenueCategoryCode="-1">
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>192405</FolioID>
					</FolioIDs>
					<UnitPrice AmountBeforeTax="-20.00" AmountAfterTax="-20.00">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
						</Taxes>
					</UnitPrice>
					<ExtendedPrice AmountBeforeTax="-20.00" AmountAfterTax="-20.00" Quantity="1">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
						</Taxes>
					</ExtendedPrice>
				</RevenueDetail>
				<RevenueDetail ReferenceID="65760384" TransactionDate="2017-06-19" Description="Deposit 16.0%" PMSRevenueCode="1D16.0" CurrencyCode="AED" DecimalPlaces="2" Amount="-43.00" SubTypeID="Deposit" RevenueCategoryCode="6">
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>192405</FolioID>
					</FolioIDs>
					<UnitPrice AmountBeforeTax="-37.07" AmountAfterTax="-43.00">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="16.00" Amount="-5.93"/>
						</Taxes>
					</UnitPrice>
					<ExtendedPrice AmountBeforeTax="-37.07" AmountAfterTax="-43.00" Quantity="1">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="16.00" Amount="-5.93"/>
						</Taxes>
					</ExtendedPrice>
...
Calculating BalanceDueAmount & AmountReceived in RevenueSummary in the correct way for Deposit.PWS-2182PWS 2.18.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail
<HTNG_HotelFolioNotifRQ EchoToken="08ae47bc-43bc-4ecf-ae33-bf55b2d528c9" TimeStamp="2020-08-05T09:36:22Z" Version="4" CorrelationID="08ae47bc-43bc-4ecf-ae33-bf55b2d528c9" xmlns="http://htng.org/2014B">
	<UniqueID Type="14" ID="33638" ID_Context="protelIO"/>
	<Folios>
		<Folio FolioID="33638-0" FolioType="Room" InvoiceID="0" GuestViewable="true" GuestPayable="true">
			<BasicPropertyInfo HotelCode="3236" HotelName="ART SKI - IN Hotel Hinterhag, A-5753 Saalbach" ChainCode="1"/>
			<RevenueSummary>
				<GrossAmount Amount="100.00" xmlns="http://www.opentravel.org/OTA/2003/05"/>
				<TaxItems Amount="9.09" xmlns="http://www.opentravel.org/OTA/2003/05"/>
				<BalanceDueAmount Amount="100.00" xmlns="http://www.opentravel.org/OTA/2003/05"/>
				<AmountReceived Amount="0" xmlns="http://www.opentravel.org/OTA/2003/05"/>
			</RevenueSummary>
			<RevenueDetails>
				<RevenueDetail ReferenceID="3" TransactionDate="2019-06-01" Description="*Logis" PMSRevenueCode="Logis" CurrencyCode="0" DecimalPlaces="2" Amount="100.00" SubTypeID="RevenueForecast" RevenueCategoryCode="9">
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>0</FolioID>
					</FolioIDs>
					<UnitPrice AmountBeforeTax="90.91" AmountAfterTax="100.00">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="1" Amount="9.09"/>
						</Taxes>
					</UnitPrice>
					<ExtendedPrice AmountBeforeTax="90.91" AmountAfterTax="100.00" Quantity="1">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="10.00" Amount="9.09"/>
						</Taxes>
					</ExtendedPrice>
				</RevenueDetail>
...
Display all future Revenue with the SubType= "ForecastRevenue"PWS-2007PWS 2.18.X
OTA_ProfileReadRSInboundOnPrem

OTA_ProfileReadRS | Profiles | ProfileInfo | Profile | Customer | CustLoyatly

<OTA_ProfileReadRS xmlns="http://www.opentravel.org/OTA/2003/05">
	<UniqueID ID="2691" ID_Context="protelIO" Type="10"/>
	<Profiles>
		<ProfileInfo>
			<UniqueID ID="61430" ID_Context="GHA" Type="1"/>
			<Profile RPH="61430" ProfileType="1">
				<Customer>
					<PersonName>
						<GivenName>Test </GivenName>
						<Surname>test </Surname>
					</PersonName>
					<CitizenCountryName Code="IE"/>
					<Address>
						<AddressLine>39 All Saints Park</AddressLine>
						<CityName>Dublin</CityName>
						<StateProv/>
						<CountryName>IE</CountryName>
						<PostalCode/>
					</Address>
					<CustLoyalty MembershipID="8132526639"/>
				</Customer>
			</Profile>
		</ProfileInfo>
	</Profiles>
</OTA_ProfileReadRS>

MembershipID is displayed in the ProfileSearch Dialog

Extend the OTA_ProfileReadRS to display as well the Membership ID.

PWS-1186PWS 2.18.X
OTA_ResRetrieveRSOutboundOnPremOTA_ResRetrieveRS | ReservationsList | HotelReservation | RoomStays | RoomStay | RoomTypes | RoomType
<OTA_ResRetrieveRS>
	<Success/>
	<ReservationsList>
		<HotelReservation ResStatus="In-house">
			<UniqueID Type="14" ID="341379" ID_Context="protelIO"/>
			<RoomStays>
				<RoomStay>
					<RoomTypes>
						<RoomType IsRoom="true" RoomTypeCode="CBR" RoomID="0202" NumberOfUnits="1"/>
					</RoomTypes>
					<RoomRates>
						<RoomRate RatePlanCode="SHARER" RatePlanID="75" RoomTypeCode="CBR" RoomID="0202" EffectiveDate="2017-06-19" ExpireDate="2017-06-19"/>
						<RoomRate RatePlanCode="SHARER" RatePlanID="75" RoomTypeCode="CBR" RoomID="0202" EffectiveDate="2017-06-20" ExpireDate="2017-06-20"/>
					</RoomRates>
					...


The value of RoomID in both RoomType and RoomRate element showing the same value as the room number.

PWS-2153PWS PWS 2.18.X
HTNG_HotelFolioRSOutboundOnPremHTNG_HotelFolioRS | Folios | Folio
<HTNG_HotelFolioRS xmlns="http://htng.org/2014B" TimeStamp="2020-08-18T11:56:06.1132829Z" Version="3.000" CorrelationID="PWS-2182" EchoToken="PWS-2182" Target="Test" TransactionStatusCode="Start" RetransmissionIndicator="false">
	<Success/>
	<Folios>
		<Folio FolioID="19" FolioType="Room" InvoiceID="19" GuestViewable="true" GuestPayable="true">
			...
		</Folio>
		<Folio FolioID="341324-1" FolioType="Room" InvoiceID="0" GuestViewable="false" GuestPayable="false">
			...
		<Folio FolioID="341324-5" FolioType="Room" InvoiceID="0" GuestViewable="true" GuestPayable="false">
			...
GuestPayable attribute shows the False value for all CC and debtor payments, regardless of checking Folio A.PWS-2157PWS 2.18.X
IPA 20.33
HTNG_HotelFolioRSOutboundpAirHTNG_HotelFolioRS | Folios | Folio
<ns2:HTNG_HotelFolioRS >
	<ns2:Success/>
	<ns2:UniqueID ID="64918" ID_Context="protelIO" Type="14"/>
	<ns2:Folios>
		<ns2:Folio FolioGroupingID="HOT Awards - Mar 2018" FolioID="81863" FolioType="Corporate" GuestPayable="true">
...
		<ns2:Folio FolioGroupingID="HOT Awards - Mar 2018" FolioID="105250" FolioType="Corporate" GuestPayable="false">
...
GuestPayable="false" for the Debtor MOP.IPA_67220.33
IPA 20.31
HTNG_ChargePostingRQInboundpAirHTNG_ChargePostingRQ
<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="EchoToken_String" Version="0" CorrelationID="IPA_668_02">
	<POS>
		<Source xmlns="http://www.opentravel.org/OTA/2003/05">
			<RequestorID ID="2787" Type="10" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
		</Source>
	</POS>
	<Posting ID="7">
		<RevenueCenter Description="Kiosk">
			<Terminal ID="Kiosk"/>
		</RevenueCenter>
		<Transaction TicketID="">
			<RevenueDetails>
				<RevenueDetail ReferenceID="81" Description="Cigare" PMSRevenueCode="" CurrencyCode="EUR" Amount="27.00" SubTypeID="Revenue">
					<Account ID="1526" Type="21" ID_Context="protelIO"/>
				</RevenueDetail>
			</RevenueDetails>
		</Transaction>
	</Posting>
</HTNG_ChargePostingRQ>
pAir check the open invoices if a new HTNG_ChargePostingRQ comes in and post charges to the current open invoice instead of creating the new one.IPA-66820.31
IO_InvoiceFiscalizeRQOutboundpAirIO_InvoiceFiscalizeRQ | Invoice 
<?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">IO_InvoiceFiscalizeRQ</p:Action>
		<p:Target xmlns:p="http://protel.io/soap">ro.bit-soft.fiscal-legal</p:Target>
		<p:Source xmlns:p="http://protel.io/soap" Module="backline" ModuleVersion="2020-07-23T21:43:52 (QA)" Product="protelAir" ProductVersion="2031.0.57595-RC" Service="io.protel.air"/>
	</env:Header>
	<env:Body>
		<p:IO_InvoiceFiscalizeRQ xmlns:p="http://protel.io/soap" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:htng="http://htng.org/2014B" CorrelationID="INV#2100170#CLOSE#000111#1595600211712#7901" RetransmissionInd="false" TimeStamp="2020-07-24T14:16:51Z" Version="1.0">
			<p:HotelInfo ChainCode="n/a" ChainName="" FiscalDate="2017-11-05" HotelCode="2876" HotelName="protel_IO_Testhotel_pAir_2100170">
				<p:CompanyName/>
				<p:CompanyGroupName/>
				<p:Homepage>MyProperty_Website</p:Homepage>
				<p:Email PrimaryInd="false" Type="3" Value="MyProperty_Email@bookatonce.com"/>
				<p:Phone PrimaryInd="false" Type="1" Value="MyProperty_Phone"/>
				<p:Fax PrimaryInd="false" Type="4" Value="MyProperty_Fax"/>
				<p:LocalCourt>MyProperty_DistrictCourt</p:LocalCourt>
				<p:TradeRegister>MyProperty_RegistrationNumber</p:TradeRegister>
				<p:TradeRegisterID/>
				<p:TaxNumber>MyProperty_SalesTaxIdNo</p:TaxNumber>
				<p:TaxNumber2>MyProperty_TaxNumber</p:TaxNumber2>
				<p:IBAN>MyProperty_IBAN</p:IBAN>
				<p:SwiftCode>MyProperty_SWIFT</p:SwiftCode>
			</p:HotelInfo>
			<p:Invoice BusinessDate="2017-11-05" ExternallyFiscalized="false" FiscalCode="FF1000331" FiscalCodeName="Fiscal Invoice" FiscalDate="2020-07-24T16:16:51+02:00" Fiscalized="true" InvoiceCode="RE_793" InvoiceDate="2020-07-24T16:13:18+02:00" InvoiceID="1682" Open="false" PastEndOfDay="false" Type="Reservation" User="Alireza Memarifard" UserTaxNo="" Void="true">
				<p:Reference BusinessDate="2017-11-05" ExternallyFiscalized="false" Fiscalized="false" InvoiceCode="RE_792" InvoiceDate="2020-07-24T16:11:47+02:00" InvoiceID="1681" Open="false" PastEndOfDay="false" Type="Reservation" Void="false"/>
				<p:InvoiceRecipient ProfileID="1059" ProfileType="Customer">
					<p:FirstName>vlad</p:FirstName>
					<p:LastName>test</p:LastName>
					<p:Nationality>GB</p:Nationality>
					<p:Language>en_US</p:Language>
					<p:Notes/>
					<p:Gender>M</p:Gender>
					<p:Addresses/>
				</p:InvoiceRecipient>
				<p:Charges>
					<p:Item CashRegisterID="1" ID="63849" OriginalInvoiceID="1681" OriginalInvoiceServiceDate="2017-11-05" PostingAccount="111" Quantity="1" ServiceDate="2017-11-05" SystemDate="2020-07-24T14:11:35+02:00" TaxCode="10%" TaxRate="10" Type="Article">
						<p:PostingText>Dog accommodation</p:PostingText>
						<p:TotalAmountAfterTax CurrencyCode="HUF">
							<p:Amount>-12.00</p:Amount>
						</p:TotalAmountAfterTax>
						<p:SingleAmountAfterTax CurrencyCode="HUF">
							<p:Amount>-12.00</p:Amount>
						</p:SingleAmountAfterTax>
						<p:SingleAmountBeforeTax CurrencyCode="HUF">
							<p:Amount>-10.91</p:Amount>
						</p:SingleAmountBeforeTax>
						<p:AdditionalText>We also welcome your canine quadruped who will enjoy the meadow in front of the house.</p:AdditionalText>
						<p:TaxInfo Code="10%" ID="2" Rate="10">10%</p:TaxInfo>
						<p:Room>101</p:Room>
						<p:Reference Code="1023" ID="44" Name="Dog accommodation">
							<p:Group Code="1002" ID="4" Name="Extras"/>
						</p:Reference>
					</p:Item>
				</p:Charges>
				<p:Payments>
					<p:Item CashRegisterID="1" ID="63850" OriginalInvoiceID="1681" OriginalInvoiceServiceDate="2017-11-05" PostingAccount="111" Quantity="1" ServiceDate="2017-11-05" SystemDate="2020-07-24T14:11:44+02:00" Type="Payment">
						<p:PostingText>VISA</p:PostingText>
						<p:TotalAmountAfterTax CurrencyCode="HUF">
							<p:Amount>12.00</p:Amount>
						</p:TotalAmountAfterTax>
						<p:SingleAmountAfterTax CurrencyCode="HUF">
							<p:Amount>12.00</p:Amount>
						</p:SingleAmountAfterTax>
						<p:SingleAmountBeforeTax CurrencyCode="HUF">
							<p:Amount>12.00</p:Amount>
						</p:SingleAmountBeforeTax>
						<p:AdditionalText/>
						<p:Room>101</p:Room>
						<p:Reference Code="1006" ID="13" Name="VISA">
							<p:Group Code="1004" ID="11" Name="Credit card"/>
						</p:Reference>
					</p:Item>
				</p:Payments>
				<p:Deposits/>
				<p:Expenses/>
				<p:Batches/>
				<p:TotalChargeAmount CurrencyCode="HUF">
					<p:Amount>-12.00</p:Amount>
				</p:TotalChargeAmount>
				<p:TotalPaymentsAmount CurrencyCode="HUF">
					<p:Amount>12.00</p:Amount>
				</p:TotalPaymentsAmount>
				<p:TotalDepositsAmount CurrencyCode="HUF">
					<p:Amount>12.00</p:Amount>
				</p:TotalDepositsAmount>
				<p:VoidReason/>
			</p:Invoice>
			<p:Terminal TerminalName="Cashier 1">
				<p:URL>1</p:URL>
				<p:Location>Cashier 1d</p:Location>
			</p:Terminal>
			<p:ReservationInfo ArrivalDate="2017-11-05T12:00:00+01:00" CRSNumber="" DepartureDate="2017-11-07T12:00:00+01:00" ReservationID="1119">
				<p:Booker ProfileID="1059" ProfileType="Customer">
					<p:FirstName>vlad</p:FirstName>
					<p:LastName>test</p:LastName>
					<p:Nationality>GB</p:Nationality>
					<p:Language>en_US</p:Language>
					<p:Notes/>
					<p:Gender>M</p:Gender>
					<p:Addresses/>
				</p:Booker>
				<p:ReservationGuests>
					<p:Guest ProfileID="1059" ProfileType="Customer">
						<p:FirstName>vlad</p:FirstName>
						<p:LastName>test</p:LastName>
						<p:Nationality>GB</p:Nationality>
						<p:Language>en_US</p:Language>
						<p:Notes/>
						<p:Gender>M</p:Gender>
						<p:Addresses/>
					</p:Guest>
				</p:ReservationGuests>
				<p:Notes/>
				<p:ExchangeRateDateSetOnCheckin>false</p:ExchangeRateDateSetOnCheckin>
			</p:ReservationInfo>
		</p:IO_InvoiceFiscalizeRQ>
	</env:Body>
</env:Envelope>

Outbound IO_InvoiceFiscalizeRQ won't hold the Reference element for the Re-post or newly created invoices.IPA-65220.31
IO_InvoiceFiscalizeRQOutboundpAirIO_InvoiceFiscalizeRQ | Invoice 
<p:IO_InvoiceFiscalizeRQ xmlns:p="http://protel.io/soap" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:htng="http://htng.org/2014B" RetransmissionInd="false" CorrelationID="INV#2100112#CLOSE#000205#1595594111573#9A86" Version="1.0" TimeStamp="2020-07-24T12:35:11Z">
	<p:HotelInfo FiscalDate="2020-07-26" HotelCode="2787" HotelName="protel_IO_Testhotel_pAir_2100112" ChainCode="n/a" ChainName="">
		<p:CompanyName/>
		<p:CompanyGroupName/>
		<p:Homepage>www.bookatonce.com</p:Homepage>
		<p:Email Value="noreply@bookatonce.com" Type="3" PrimaryInd="false"/>
		<p:Phone Value="01234587" Type="1" PrimaryInd="false"/>
		<p:Fax Value="012345" Type="4" PrimaryInd="false"/>
		<p:LocalCourt>bo Amtsgericht</p:LocalCourt>
		<p:TradeRegister>aaa111111bbbb</p:TradeRegister>
		<p:TradeRegisterID/>
		<p:TaxNumber>cccc22222xxxx</p:TaxNumber>
		<p:TaxNumber2>hhhh4444jjjj</p:TaxNumber2>
		<p:IBAN>pppp5555dddd</p:IBAN>
		<p:SwiftCode>zzz66666fff</p:SwiftCode>
	</p:HotelInfo>
	<p:Invoice User="Alireza Memarifard" UserTaxNo="1234567" InvoiceDate="2019-11-09T11:32:26+01:00" InvoiceCode="342" FiscalDate="2019-11-09T11:32:26+01:00" FiscalCode="FIS_INV_347" FiscalCodeName="FIS_INV" Fiscalized="true" ExternallyFiscalized="false" Type="Reservation" PastEndOfDay="true" Open="false" Void="false" InvoiceID="751" BusinessDate="2019-11-09">
		<p:InvoiceRecipient ProfileType="Customer" ProfileID="426">
			<p:FirstName/>
			<p:LastName>Dxxx</p:LastName>
			<p:Nationality>GB</p:Nationality>
			<p:Language>fr_FR</p:Language>
			<p:Notes/>
			<p:Gender/>
			<p:Addresses>
				<p:Address PrimaryInd="false">
					<p:Notes/>
				</p:Address>
			</p:Addresses>
			<p:EmailAddresses>
				<p:Communication Value="" Type="11" Notes="" PrimaryInd="true"/>
			</p:EmailAddresses>
			<p:OtherCommunications>
				<p:Communication Value="" Type="-1" Notes="" PrimaryInd="true"/>
			</p:OtherCommunications>
		</p:InvoiceRecipient>
		<p:Charges>
			<p:Item ID="16216" Quantity="1" TaxRate="10" TaxCode="10%" Type="Article" ServiceDate="2019-11-07" SystemDate="2019-11-03T14:16:49+01:00" PostingAccount="126" BatchID="16221">
				<p:PostingText>Accommodation</p:PostingText>
				<p:TotalAmountAfterTax CurrencyCode="EUR">
					<p:Amount>210.00</p:Amount>
				</p:TotalAmountAfterTax>
				<p:SingleAmountAfterTax CurrencyCode="EUR">
					<p:Amount>210.00</p:Amount>
				</p:SingleAmountAfterTax>
				<p:SingleAmountBeforeTax CurrencyCode="EUR">
					<p:Amount>190.91</p:Amount>
				</p:SingleAmountBeforeTax>
				<p:AdditionalText>Hébergement LME</p:AdditionalText>
				<p:TaxInfo Rate="10" ID="2" Code="10%">TVA</p:TaxInfo>
				<p:Room>11</p:Room>
				<p:Reference Name="Hébergement" ID="26" Code="100" TransactionAccount="2100,2">
					<p:Group Name="Hébergement La Maison d'Estournel" ID="25" Code="1018"/>
				</p:Reference>
			</p:Item>			
		</p:Batches>
		<p:TotalChargeAmount CurrencyCode="EUR">
			<p:Amount>654.70</p:Amount>
		</p:TotalChargeAmount>
		<p:TotalPaymentsAmount CurrencyCode="EUR">
			<p:Amount>-654.70</p:Amount>
		</p:TotalPaymentsAmount>
		<p:TotalDepositsAmount CurrencyCode="EUR">
			<p:Amount>0.00</p:Amount>
		</p:TotalDepositsAmount>
		<p:VoidReason/>
	</p:Invoice>
	<p:Terminal TerminalName="CAISSE">
		<p:URL>1</p:URL>
		<p:Location/>
	</p:Terminal>
	<p:ReservationInfo ReservationID="477" ArrivalDate="2019-11-07T12:00:00+01:00" DepartureDate="2019-11-09T12:00:00+01:00" CRSNumber="">
		<p:Booker ProfileType="Customer" ProfileID="426">
			<p:FirstName/>
			<p:LastName>Dxxx</p:LastName>
			<p:Nationality>GB</p:Nationality>
			<p:Language>fr_FR</p:Language>
			<p:Notes/>
			<p:Gender/>
			<p:Addresses>
				<p:Address PrimaryInd="false">
					<p:Notes/>
				</p:Address>
			</p:Addresses>
			<p:EmailAddresses>
				<p:Communication Value="" Type="11" Notes="" PrimaryInd="true"/>
			</p:EmailAddresses>
			<p:OtherCommunications>
				<p:Communication Value="" Type="-1" Notes="" PrimaryInd="true"/>
			</p:OtherCommunications>
		</p:Booker>
		<p:ReservationGuests>
			<p:Guest ProfileType="Customer" ProfileID="426">
				<p:FirstName/>
				<p:LastName>Dxxx</p:LastName>
				<p:Nationality>GB</p:Nationality>
				<p:Language>fr_FR</p:Language>
				<p:Notes/>
				<p:Gender/>
				<p:Addresses>
					<p:Address PrimaryInd="false">
						<p:Notes/>
					</p:Address>
				</p:Addresses>
				<p:EmailAddresses>
					<p:Communication Value="" Type="11" Notes="" PrimaryInd="true"/>
				</p:EmailAddresses>
				<p:OtherCommunications>
					<p:Communication Value="" Type="-1" Notes="" PrimaryInd="true"/>
				</p:OtherCommunications>
			</p:Guest>
		</p:ReservationGuests>
		<p:Notes>GL // 2A // DAC // Room only // Freelance Editor Vogue Travel in France // Surclassé de PAG en COS + validé 28.10 CG // ok visite cos le 8.11 à 15h geraldine et ludovic </p:Notes>
		<p:ExchangeRateDateSetOnCheckin>false</p:ExchangeRateDateSetOnCheckin>
	</p:ReservationInfo>
</p:IO_InvoiceFiscalizeRQ>

UserTaxNo attribute holds the value of the Government ID of the user who closed/checked the invoice.IPA-65120.31

HTNG_HotelCheckOutNotifRQ

InboundpAirTrigger for sending invoice emails
<htng:HTNG_HotelCheckOutNotifRQ xmlns:htng="http://htng.org/2014B" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:px="http://protel.io/htng/extensions" CorrelationID="IPA_655_01" EchoToken="IPA_655_01" Version="1" PrimaryLangID="de-DE" Timestamp="2020-07-06T14:41:54">
	<POS>
		<Source TerminalID="Code2Order">
			<RequestorID Type="10" ID="2787" ID_Context="protelIO"/>
		</Source>
	</POS>
	<htng:AffectedGuests>
		<htng:UniqueID ID="1525" ID_Context="protelIO" Type="1"/>
	</htng:AffectedGuests>
	<htng:Room RoomID="10"/>
	<htng:HotelReservations>
		<HotelReservation ResStatus="Checked out">
			<UniqueID ID="1694" ID_Context="protelIO" Type="14"/>
			<ResGuests>
				<ResGuest ResGuestRPH="1525" PrimaryIndicator="true">
					<Profiles>
						<ProfileInfo>
							<UniqueID ID="1525" ID_Context="protelIO" Type="1"/>
							<Profile ProfileType="1" RPH="1525" StatusCode="4">
								<Customer Gender="unknown">
									<PersonName>
										<GivenName>Alireza</GivenName>
										<Surname>Memarifard</Surname>
									</PersonName>
									<CitizenCountryName Code="" DefaultInd="true"/>
								</Customer>
							</Profile>
						</ProfileInfo>
					</Profiles>
				</ResGuest>
			</ResGuests>
		</HotelReservation>
	</htng:HotelReservations>
</htng:HTNG_HotelCheckOutNotifRQ>

After receiving HTNG_HotelCheckOutNotifRQ, pAir send an automatic PDF invoice to the guest's email address and checks out the guest.

IPA-65520.31

HTNG_ChargePostingRQ

InboundpAirHTNG_ChargePostingRQ
<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="EchoToken_String" Version="0" CorrelationID="IPA_563_02">
	<POS>
		<Source xmlns="http://www.opentravel.org/OTA/2003/05">
			<RequestorID ID="2787" Type="10" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
		</Source>
	</POS>
	<Posting ID="7">
		<RevenueCenter Description="Kiosk">
			<Terminal ID="Kiosk"/>
		</RevenueCenter>
		<Transaction TicketID="">
			<RevenueDetails>
				<RevenueDetail ReferenceID="81" Description="Cigare" PMSRevenueCode="" CurrencyCode="EUR" Amount="25.00" SubTypeID="Revenue">
					<Account ID="1693" Type="14" ID_Context="protelIO"/>
				</RevenueDetail>
			</RevenueDetails>
		</Transaction>
	</Posting>
</HTNG_ChargePostingRQ>
The issue with multiple entries in pAir folio per each HTNG_ChargePostingRQ is resolved.IPA-65320.31
OTA_HotelInvBlockNotifRQOutboundpAirOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | RoomTypes | RoomType | RatePlans
<OTA_HotelInvBlockNotifRQ>
	<InvBlocks>
		<InvBlock BookingStatus="Open" InvBlockCode="39" InvBlockLongName="IPA_617_01" InvBlockName="IPA_617_01" InvBlockStatusCode="2" InvBlockTypeCode="16" TransactionAction="Modify">
			<HotelRef ChainCode="n/a" ChainName="n/a" HotelCode="2578" HotelName="l'Arrivée HOTEL & SPA"/>
			<InvBlockDates End="2020-08-04" OffsetCalculationMode="BeforeBlockStartDate" OffsetDuration="P0D" Start="2020-08-01"/>
			<RoomTypes>
				<RoomType RoomTypeCode="KING">
					<RatePlans>
						<RatePlan CurrencyCode="EUR" End="2020-08-04" MaxGuestApplicable="1" RatePlanCode="AK_TCTG_1" Start="2020-08-01">
							<BaseByGuestAmts>
								<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="111.00" AmountBeforeTax="100.91" CurrencyCode="EUR" NumberOfGuests="1"/>
							</BaseByGuestAmts>
							<RateDescription Name="RateGroup">
								<Text TextFormat="PlainText">RG1</Text>
							</RateDescription>
							<MarketCode MarketCode="FAM" MarketCodeName="Family"/>
						</RatePlan>
					</RatePlans>
...
Resolved the issue with displaying multiplying RatePlan element with wrong details for allotments. Now the message displays only the rates corresponding with the allotment period.IPA-61720.31
IPA 2.29
IO_ResModifyNotifRQInboundpAirIO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="IPA-600-SR-9" TimeStamp="2020-05-18T14:00:00.000Z" Version="1.00">
	<p:Reservations HotelID="2572">
		<p:Reservation>
			<p:UniqueID Type="14" ID="11514" ID_Context="protelIO"/>
			<p:InvoiceItemRoutings>
				<p:InvoiceItemRouting Action="CREATE" Name="Rule 1" ID="" ID_Context="protelIO">
					<p:Target Type="Invoice" ID="1728" ID_Context="protelIO"/>
					<p:Source Type="Reservation" ID="11514" ID_Context="protelIO"/>
					<p:ItemFilter>
						<p:Posting Mon="true" Tue="true" Wed="true" Thu="true" Fri="true" Sat="true" Sun="true"/>
						<p:ItemGroups/>
						<p:Items>
							<p:Item ID="42" ID_Context="protelIO" Code="44100">Parken</p:Item>
						</p:Items>
					</p:ItemFilter>
				</p:InvoiceItemRouting>
				<p:InvoiceItemRouting Action="CREATE" Name="Rule 2" ID="" ID_Context="protelIO">
					<p:Target Type="Invoice" ID="1738" ID_Context="protelIO"/>
					<p:Source Type="Reservation" ID="11514" ID_Context="protelIO"/>
					<p:ItemFilter>
						<p:Posting From="2020-06-29" To="2020-06-30"/>
						<p:ItemGroups/>
						<p:Items>
							<p:Item ID="83" ID_Context="protelIO" Code="44105">Haustier</p:Item>
						</p:Items>
					</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.IPA-62720.29

HTNG_ChargePostingRQ

InboundpAirHTNG_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_656_02" TimeStamp="2020-06-09T18:03:07Z" Version="1" CorrelationID="IPA_656_02" PrimaryLangID="en_US">
	<htng:POS>
		<Source>
			<RequestorID Type="10" ID_Context="protelIO" ID="2594"/>
			<TPA_Extensions>
				<px:POSExtensions>
					<px:HotelInfo FiscalDate="2018-03-16"/>
				</px:POSExtensions>
			</TPA_Extensions>
		</Source>
	</htng:POS>
	<htng:UniqueID Type="10" ID_Context="protelIO" ID="2594"/>
	<htng:PropertyInfo ChainCode="MRHCH" HotelCode="2594" HotelCodeContext="protelIO" HotelName="protel_IO_Testhotel_pAir_2100052"/>
	<htng:Posting ID="IPA_602_01">
		<htng:TotalPostingAmount Amount="0.00" CurrencyCode="NZD"/>
		<htng:Transaction>
			<htng:RevenueDetails>
				<htng:RevenueDetail Amount="16.00" CurrencyCode="NZD" Description="Beer" ReferenceID="96" SubTypeID="Revenue" TransactionDate="2019-09-27">
					<htng:Account ID="105241" ID_Context="protelIO" Type="16"/>
				</htng:RevenueDetail>
			</htng:RevenueDetails>
		</htng:Transaction>
	</htng:Posting>
</htng:HTNG_ChargePostingRQ>
The issue with sending post charges to specific folio is resolved.IPA-65620.29
OTA_HoteResNotifRQInboundpAir

OTA_HoteResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | @ArrivalTime

OTA_HoteResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | @DepartureTime

<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation>
			<ResGuests>
				<ResGuest ArrivalTime="17:15:00+01:00" DepartureTime="10:30:00+01:00" PrimaryIndicator="true" ResGuestRPH="26293">
					<Profiles>
						<ProfileInfo>
...
Added functionality for receiving ArrivalTime and DepartureTime for a guest in inbound OTA_HotelResNotifRQ.IPA-64020.29
HTNG_ChargePostingRQInboundpAirHTNG_ChargePostingRQ / Posting / Transaction / RevenueDetails / RevenueDetail
<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_602_01" TimeStamp="2020-06-09T18:03:07Z" Version="1" CorrelationID="IPA_602_01" PrimaryLangID="en_US">
	<htng:POS>
		<Source>
			<RequestorID Type="10" ID_Context="protelIO" ID="2987"/>
			<TPA_Extensions>
				<px:POSExtensions>
					<px:HotelInfo FiscalDate="2019-09-27"/>
				</px:POSExtensions>
			</TPA_Extensions>
		</Source>
	</htng:POS>
	<htng:UniqueID Type="10" ID_Context="protelIO" ID="2987"/>
	<htng:PropertyInfo ChainCode="MRHCH" HotelCode="2987" HotelCodeContext="protelIO" HotelName="protel_IO_Testhotel_pAir_2100182"/>
	<htng:Posting ID="IPA_602_01">
		<htng:TotalPostingAmount Amount="0.00" CurrencyCode="CHF"/>
		<htng:Transaction>
			<htng:RevenueDetails>
				<htng:RevenueDetail SubTypeID="RevenueForecast" RevenueCategoryCode="9" ReferenceID="26" TransactionDate="2019-09-27" Description="Logis" PMSRevenueCode="1100" Amount="20.00" CurrencyCode="CHF">
					<FolioIDs>
						<FolioID>1037222</FolioID>
					</FolioIDs>
					<htng:UnitPrice AmountBeforeTax="19.29" AmountAfterTax="20.00" Type="31" CurrencyCode="CHF">
						<Taxes CurrencyCode="CHF">
							<Tax Type="Inclusive" Percent="4.00" Amount="0.71" CurrencyCode="CHF"/>
						</Taxes>
					</htng:UnitPrice>
					<htng:ExtendedPrice Quantity="1" AmountBeforeTax="19.29" AmountAfterTax="20.00" Type="31" CurrencyCode="CHF">
						<Taxes CurrencyCode="CHF">
							<Tax Type="Inclusive" Percent="4.00" Amount="0.71" CurrencyCode="CHF"/>
						</Taxes>
					</htng:ExtendedPrice>
					<htng:Account Type="16" ID_Context="protelIO" ID="23973"/>
					<htng:Other_PaymentForm Remark="Move Item">
						<DirectBill DirectBill_ID="23974" BillingNumber="">
							<CompanyName Code="55313" CodeContext="protelIO"/>
						</DirectBill>
					</htng:Other_PaymentForm>
				</htng:RevenueDetail>
			</htng:RevenueDetails>
		</htng:Transaction>
	</htng:Posting>
</htng:HTNG_ChargePostingRQ>
Move items between the invoices to avoid voiding and adding items again.IPA-60220.29
PWS 2.17.x
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
InboundOnPremProfileModify | PrefCollections | PrefCollection | HotelPref
<OTA_ProfileModifyRQ EchoToken="PWS-2177-TestCase3-1" xmlns="http://www.opentravel.org/OTA/2003/05">
	<POS>
		<Source>
			<RequestorID Type="10" ID_Context="protelIO" ID="2653"/>
		</Source>
	</POS>
	<UniqueID Type="1" ID_Context="protelIO" ID="401145"/>
	<ProfileModify ShareAllOptOutInd="Yes" ProfileType="1">
		<PrefCollections>
					<PrefCollection>
						<HotelPref>
							<PhysChallFeaturePref PhysChallFeatureType="45"/>
						</HotelPref>
					</PrefCollection>
				</PrefCollections>
...
Room preferences and guest preferences send will be displayed in the profile if they are mapped correctly.PWS-1277PWS 2.17.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ

no change in XML structure

PWS generates HTNG_HotelFolioNotifRQ for both target and source folios after a post transferred via OnPrem.PWS-1291PWS 2.17.X
OTA_ProfileModifyRSOutboundOnPremOTA_ProfileModifyRS | Warnings 
<OTA_ProfileModifyRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-07-24T10:08:08Z" CorrelationID="PWS-2178-2" EchoToken="PWS-2178-2" Target="Production">
	<UniqueID Type="1" ID="401145" ID_Context="protelIO"/>
	<Success/>
	<Warnings>
		<Warning ShortText="Invalid value" Code="320" Type="10">No match found</Warning>
	</Warnings>
...
In case of an unmapped preference for a profile request, the RS message holds a warning with "No match found" text.PWS-2178PWS 2.17.X
OTA_ProfileMergeRSOutboundOnPremOTA_ProfileMergeRS | Errors
<OTA_ProfileMergeRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-07-09T11:50:05.2174196Z" Version="3.000" CorrelationID="IOTEC_675_01">
	<Errors>
		<Error ShortText="Target profile not existing." Code="312"/>
	</Errors>
</OTA_ProfileMergeRS>
Error handling for non-existing profiles while sending OTA_ProfileMergeRQ.
Now PWS checks the profiles before the merge request and if these do not exist, an appropriate error or warning is send back.
PWS-2049PWS 2.17.X
OTA_ReadRQInboundOnPremOTA_ReadRQ | ReadRequests | ProfileReadRequest | Customer
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="PWS_2108_01" Version="0" EchoToken="PWS_2108_01" MaxResponses="2">
            <POS>
                <Source>
                    <RequestorID ID="3153" Type="10" ID_Context="protelIO"/>
                </Source>
            </POS>
            <ReadRequests>
                <ProfileReadRequest ProfileTypeCode="4">
                    <Customer>
                        <PersonName>
                            <Surname>Ministry</Surname>                            
                        </PersonName>
                        <Email>mini@gmail.com</Email>
                    </Customer>
                </ProfileReadRequest>
            </ReadRequests>
        </OTA_ReadRQ>
      </soapenv:Body>     
</soapenv:Envelope>
Adding more search criteria to inbound OTA_ReadRQ for searching the profile by ID, LastName, and Email.PWS-2108PWS 2.17.X
OTA_HotelResNotifRQOutboundOnPremOTA_HotelResNotifRQ

no change in XML structure

Resolve the @ResStatus (Transaction action) for new reservations via IDS. The value of this attribute is "Commit" for newly coming RQ and "Modify" for all modifying RQ.PWS-2046PWS 2.17.X

OTA_ProfileModifyRQ


Inbound
Outbound
OnPrem

OTA_ProfileModifyRQ | ProfileModify | PrefCollections


<OTA_ProfileModifyRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="SR-30062020_all">
	<UniqueID Type="1" ID_Context="protelIO" ID="401145"/>
	<ProfileModify ShareAllOptOutInd="Yes" ProfileType="1">
		<Customer>
			<PrefCollections>
				<PrefCollection>
					<HotelPref>
						<BedTypePref BedType="7"/>
						<RoomAmenityPref RoomAmenity="50"/>
						<PhysChallFeaturePref PhysChallFeatureType="49"/>
						<PropertyAmenityPref PropertyAmenityType="5"/>
						<RoomLocationPref RoomLocationType="13"/>
					</HotelPref>
				</PrefCollection>
...
Sending PrefCollections/PrefCollection/HotelPref inbound will create room preferences for the profile in OnPremise.PWS-1265PWS 2.17.X
OTA_HotelInvBlockNotifRQInboundOnPremOTA_HotelInvBlockNotifRQ | TPA_Extensions | InvBlockExtensions
<OTA_HotelInvBlockNotifRQ>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		<InvBlockExtensions>
			<InvBlockID ID="210" ID_Context="protelIO" Type="18" />
			<InvBlockID ID="6666" ID_Context="iVcy" Type="18" />
		</InvBlockExtensions>
	</TPA_Extensions>
...
Adding TPA_Extensions to the OTA_HotelInvBlockNotifRQ outbound to hold the InternalID and ExternalID of the allotment.PWS-1018PWS 2.17.X
OTA_HotelInvBlockNotifRQOutboundOnPremOTA_HotelInvBlockNotifRQ | TPA_Extensions | InvBlockExtensions
<OTA_HotelInvBlockNotifRQ>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
		<InvBlockExtensions>
			<InvBlockID ID="210" ID_Context="protelIO" Type="18" />
			<InvBlockID ID="6666" ID_Context="iVcy" Type="18" />
		</InvBlockExtensions>
	</TPA_Extensions>
...
Adding TPA_Extensions to the OTA_HotelInvBlockNotifRQ outbound to hold the InternalID and ExternalID of the allotment.PWS-1016PWS 2.17.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQno change in XML structureDeleting a fixed charge triggers HTNG_HotelFolioNotifRQ outbound.PWS-2015PWS-2.17.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail 
<HTNG_HotelFolioNotifRQ>
	<UniqueID Type="14" ID="341330" ID_Context="protelIO"/>
	<Folios>
		<Folio FolioID="341330-0" FolioType="Room" InvoiceID="0" GuestViewable="true" GuestPayable="true">
			<BasicPropertyInfo HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" ChainCode="1"/>
			<RevenueDetails>
				<RevenueDetail ReferenceID="105" TransactionDate="2017-06-18" Description="Bookable Pack01" CurrencyCode="AED" DecimalPlaces="2" Amount="16.50" SubTypeID="Batch">
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>341330-0</FolioID>
					</FolioIDs>
					<UnitPrice AmountBeforeTax="16.50" AmountAfterTax="16.50">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
						</Taxes>
					</UnitPrice>
					<ExtendedPrice AmountBeforeTax="16.50" AmountAfterTax="16.50" Quantity="1">
						<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
							<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
						</Taxes>
					</ExtendedPrice>
					<RevenueDetailItems>
						<RevenueDetailItem ReferenceID="65760164" TransactionDate="2017-06-18" Description="10 % Service Charge" PMSRevenueCode="8002" CurrencyCode="AED" DecimalPlaces="2" Amount="1.50" RevenueCategoryCode="6">
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>341330-0</FolioID>
							</FolioIDs>
							<UnitPrice AmountBeforeTax="1.50" AmountAfterTax="1.50">
								<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
									<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
								</Taxes>
							</UnitPrice>
							<ExtendedPrice AmountBeforeTax="1.50" AmountAfterTax="1.50" Quantity="1">
								<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
									<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
								</Taxes>
							</ExtendedPrice>
						</RevenueDetailItem>
						<RevenueDetailItem ReferenceID="65760163" TransactionDate="2017-06-18" Description="*Room Rack" PMSRevenueCode="1005" CurrencyCode="AED" DecimalPlaces="2" Amount="15.00" RevenueCategoryCode="9">
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>341330-0</FolioID>
							</FolioIDs>
							<UnitPrice AmountBeforeTax="15.00" AmountAfterTax="15.00">
								<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
									<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
								</Taxes>
							</UnitPrice>
							<ExtendedPrice AmountBeforeTax="15.00" AmountAfterTax="15.00" Quantity="1">
								<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
									<Tax Type="Inclusive" Percent="0.00" Amount="0.00"/>
								</Taxes>
							</ExtendedPrice>
						</RevenueDetailItem>
					</RevenueDetailItems>
				</RevenueDetail>
...
Sending RevenueDetail with the Batch identifier (Package Identifier) to display the package information in RevenueDetailItems element.PWS-2125PWS 2.17.X



  • Keine Stichwörter