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

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 427 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
23.062023-02-08
23.042023-01-25
23.022023-01-11
22.502022-12-22
22.482022-11-30

Release dates PWS (onPrem) LIVE Environment

VersionRelease date
3.122023-02-15
3.112022-12-07
3.102022-10-24



Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersion
TBA IDS









TBA PWS
IO_RatePackageNotifRQOutboundonPremIO_RatePackageNotifRQ | Packages | Package | PackageItems | PackageItem | Calculation | @FixedChargeInd
<Calculation AmountAfterTax="10.00" AmountBeforeTax="8.06" Currency="EUR" InclusiveInd="false" FixedChargeInd="false" Recurrence="Daily" Relation="PerAdult">
    <DaysOfWeek Fri="true" Mon="true" Sat="true" Sun="true" Thu="true" Tue="true" Wed="true"/>
</Calculation>
New attribute added to schema: @FixedChargeInd. The attribute is boolean and optional. 

If @FixedChargeInd="false" then the package is "not a fixed charge". 

Else if the @FixedChargeInd="true" then the package "is a fixed charge". This is extra cost to the accommodation amount - but unlike the "add to rate" packages, it should not be included in the inbound reservation total amount to the PMS.

PWS-3492TBA








TBA IPA






HTNG_ChargePostingRQInboundpAirHTNG_ChargePostingRQ | Posting | RevenueCenter | ID 
<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="PWS_3462_14" CorrelationID="PWS_3462_14" TimeStamp="2021-03-18T11:32:36Z" Version="0">
	<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>
	<PropertyInfo HotelCode="2787"/>
	<Posting ID="7">
		<RevenueCenter Description="Kiosk" ID="99">
			<Terminal ID="Kiosk"/>
		</RevenueCenter>
		<Transaction TicketID="120">
			<RevenueDetails>
				<RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-100" SubTypeID="Payment">
					<Account ID="342443" Type="14" ID_Context="protelIO"/>
				</RevenueDetail>
			</RevenueDetails>
		</Transaction>
	</Posting>
</HTNG_ChargePostingRQ>
The ID value in the RevenueCenter element will be considered as the CashRegister number and in case vendors need to use a different cash register ID than the default one.IPA-1166TBA
OTA_ProfileModifyRQOutbound
Inbound
pAirOTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty
<CustLoyalty MembershipID="Mem-123456" RPH="11" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="Test" LoyalLevel="GOLD" SignupDate="2017-09-01" EffectiveDate="2017-09-01" ExpireDate="2017-09-01" ShareMarketInd="No" ShareSyncInd="No">
	<SubAccountBalance Type="Points" Balance="200"/>
</CustLoyalty>
Added guestMemberCard fields to the CustLoyalty element in the profile outbound.IPA-1168
IPA-1169
TBA
IO_RatePackageNotifRQOutboundpAirIO_RatePackageNotifRQ | Packages | Package | PackageItems | PackageItem | Calculation | @FixedChargeInd
<Calculation AmountAfterTax="10.00" AmountBeforeTax="8.06" Currency="EUR" InclusiveInd="false" FixedChargeInd="false" Recurrence="Daily" Relation="PerAdult">
    <DaysOfWeek Fri="true" Mon="true" Sat="true" Sun="true" Thu="true" Tue="true" Wed="true"/>
</Calculation>
New attribute added to schema: @FixedChargeInd. The attribute is boolean and optional. 

If @FixedChargeInd="false" then the package is "not a fixed charge". 

Else if the @FixedChargeInd="true" then the package "is a fixed charge". This is extra cost to the accommodation amount - but unlike the "add to rate" packages, it should not be included in the inbound reservation total amount to the PMS.

IPA-1179TBA

PWS 3.12.X 







HTNG_ChargePostingRQ

InboundOnPrem

HTNG_ChargePostingRQ | Posting | RevenueCenter | ID 

<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="PWS_3462_14" CorrelationID="PWS_3462_14" TimeStamp="2021-03-18T11:32:36Z" Version="0">
	<POS>
		<Source xmlns="http://www.opentravel.org/OTA/2003/05">
			<RequestorID ID="3153" Type="10" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
		</Source>
	</POS>
	<PropertyInfo HotelCode="3153"/>
	<Posting ID="7">
		<RevenueCenter Description="Kiosk" ID="99">
			<Terminal ID="Kiosk"/>
		</RevenueCenter>
		<Transaction TicketID="120">
			<RevenueDetails>
				<RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-100" SubTypeID="Payment">
					<Account ID="342443" Type="14" ID_Context="protelIO"/>
				</RevenueDetail>
			</RevenueDetails>
		</Transaction>
	</Posting>
</HTNG_ChargePostingRQ>
The ID value in the RevenueCenter element will be considered as the CashRegister number and in case vendors need to use a different cash register ID than the default one.PWS-34623.12.X
OTA_HotelAvailRQInboundOnPremOTA_HotelAvailRQ
<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" MaxResponses="1000" IsModify="true" AvailRatesOnly="true" CorrelationID="PWS_3382_107" Version="0" EchoToken="PWS_3382_107">
@IsModify is A boolean flag that indicates the response message should return only HotelStay information. If the flag is true, the AvailRS will not hold the Errors element, if only no available inventory is found, but return an empty result with the TPA_Extensions AvailabilityExtensions filled (for room assignment).PWS-33823.12.X
OTA_HotelResNotifRQ outboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | UniqueID
<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="113a2cc0-8dab-429c-8ae0-89f816dbee7d" EchoToken="113a2cc0-8dab-429c-8ae0-89f816dbee7d" PrimaryLangID="en" ResStatus="Commit" TimeStamp="2022-11-29T11:06:36Z" Version="5.000" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd">
			<POS>
				<Source>
					<RequestorID ID="3525" ID_Context="protelIO" Type="10"/>
					<BookingChannel Primary="true" Type="4"/>
					<TPA_Extensions>
						<px:POSExtensions xmlns:px="http://protel.io/htng/extensions">
							<px:HotelInfo FiscalDate="2019-06-25"/>
						</px:POSExtensions>
					</TPA_Extensions>
				</Source>
			</POS>
			<HotelReservations>
				<HotelReservation CreateDateTime="2022-11-29T11:05:33.467Z" CreatorID="protel 1" LastModifierID="protel 1" LastModifyDateTime="2022-11-29T11:06:16.643Z" ResStatus="Reserved">
					<UniqueID ID="34092" ID_Context="protelIO" Type="14"/>
					<UniqueID ID="34094" ID_Context="protelIO" Type="36"/>
					<RoomStays>
The UniqueID element was extended by the element with type="36".PWS-34103.12.X

PWS 3.11.X 








IO_StatsNotifRQoutboundOnPrem

IO_StatsNotifRQ | Statistics

<IO_StatsNotifRQ xmlns="http://protel.io/soap" 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" EchoToken="c903c385-3f65-4d4e-9a8e-53a5fb7b12cf" TimeStamp="2022-10-06T09:17:19Z" Version="1.0" CorrelationID="c903c385-3f65-4d4e-9a8e-53a5fb7b12cf" PrimaryLangID="en">
	<POS>
		<Source xmlns="http://www.opentravel.org/OTA/2003/05">
			<RequestorID Type="10" ID="3152" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
			<TPA_Extensions>
				<px:POSExtensions xmlns:px="http://protel.io/htng/extensions">
					<px:HotelInfo FiscalDate="2018-10-22"/>
				</px:POSExtensions>
			</TPA_Extensions>
		</Source>
	</POS>
	<UniqueID Type="10" ID="3152" ID_Context="protelIO"/>
	<Statistics>
		<Statistic xmlns="http://www.opentravel.org/OTA/2003/05" ...>
			...
		</Statistic>
	</Statistics>
</IO_StatsNotifRQ>
We will correct the namespaces to follow our XSD. The elements <Statistics>, <POS> and <UniqueID> will be changed to use the IO namespace instead of the OTA one. PWS-33483.11.X
OTA_HotelResNotifRQinboundonPremRate | @CachedIndicator
<RoomRates>
    <RoomRate EffectiveDate="2019-09-11" ExpireDate="2019-09-12" NumberOfUnits="1" RatePlanCode="ADVOV BB" RoomTypeCode="SSV">
        <Rates>
            <Rate AlternateCurrencyInd="false" EffectiveDate="2019-09-11" ExpireDate="2019-09-12" RateTimeUnit="Day" UnitMultiplier="1" CachedIndicator="true">
                <Base AmountAfterTax="1.00" CurrencyCode="BGN"/>
            </Rate>
            <Rate AlternateCurrencyInd="true" EffectiveDate="2019-09-11" ExpireDate="2019-09-12" RateTimeUnit="Day" UnitMultiplier="1" CachedIndicator="true">
                <Base AmountAfterTax="2.00" CurrencyCode="EUR"/>
            </Rate>
        </Rates>
    </RoomRate>
    <RoomRate EffectiveDate="2019-09-12" ExpireDate="2019-09-13" NumberOfUnits="1" RatePlanCode="ADVOV BB" RoomTypeCode="SSV">
        <Rates>
            <Rate AlternateCurrencyInd="false" EffectiveDate="2019-09-12" ExpireDate="2019-09-13" RateTimeUnit="Day" UnitMultiplier="1">
                <Base AmountAfterTax="1.00" CurrencyCode="BGN"/>
            </Rate>
            <Rate AlternateCurrencyInd="true" EffectiveDate="2019-09-12" ExpireDate="2019-09-13" RateTimeUnit="Day" UnitMultiplier="1">
                <Base AmountAfterTax="2.00" CurrencyCode="EUR"/>
            </Rate>
        </Rates>
    </RoomRate>
</RoomRates>

If at least one of Rate/@CachedIndicator is set to "true", then the PMS will ignore the resp rate details for this reservation and will use its latest known data.
@CachedIndicator is optional with default value of "false".
The values makes sense only for ResStatus="Modify".
The new use case eliminates the option for inbound  rate modification, where the external service is not aware of any manual edits on the reservation rate details, to be lost.

PWS-33723.11.X

IPA 23.02 

IO_ResModifyNotifRQ

InboundpAirIO_ResModifyNotifRQ | Reservations | Reservation | Packages | Package
<IO_ResModifyNotifRQ xmlns="http://protel.io/soap" CorrelationID="" EchoToken="" PrimaryLangID="de-DE" Timestamp="2022-01-27T12:40:14" Version="1">
	<Reservations HotelCode="2991">
		<Reservation>
			<UniqueID ID="20996" ID_Context="protelIO" Type="Reservation"/>
			<Packages>
				<Package Action="CREATE" Code="GuestLaundry" Recurrence="Daily">
					<UniqueID ID="334" ID_Context="protelIO" Type="18"/>
				</Package>
			</Packages>
		</Reservation>
	</Reservations>
</IO_ResModifyNotifRQ>
Inbound IO_ResModifyNotifRQ now accept the PackageID instead of it's name to Create/Delete the package from a reservation.IPA-114923.02

IPA 22.50 

IO_SystemDataRSOutboundpAirIO_SystemDataRS | SystemData | Accounting | PaymentMethods | PaymentMethod 
<ns2:PaymentMethod Code="1005" Group="CC" ID="12" ID_Context="protelIO" IsAccountReceivable="false" Visible="true">
	<ns2:Name Language="en_US">Mastercard</ns2:Name>
</ns2:PaymentMethod>
The value of @Code attribute replaced with the PLU (TAA number) of the PaymentMethod item. It was already the shortname of the MOP item.IPA-115822.50
OTA_ProfileModifyRQinboundpAirOTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile
TPA_Extensions
<TPA_Extensions>
    <px:ProfileInfoExtensions>
        <px:StatisticalInfos>
            <px:ParentProfile ID="24886" ID_Context="protelIO" Name="protel" Type="3"/>
        </px:StatisticalInfos>
    </px:ProfileInfoExtensions>
</TPA_Extensions>
Enable attaching a profile as "Parent profile" inbound. The functionality can be used only with existing protel PMS profile IDsIPA-114522.50

IPA 22.48

HTNG_HotelFolioRQinboundpAirHTNG_HotelFolioRQ | 

UniqueID

<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<s:Header xmlns:s="http://www.w3.org/2003/05/soap-envelope">		
	</s:Header>
	<s:Body xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
		<HTNG_HotelFolioRQ xmlns="http://htng.org/2014B" EchoToken="IPA_1138_31" Version="0" CorrelationID="IPA_1138_31">
			<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>
			<UniqueID ID="3584" Type="36" ID_Context="protelIO"/>
		</HTNG_HotelFolioRQ>
	</s:Body>
</env:Envelope>
In order to receive the Folio Item for a GroupReservation in pAir, we accept Type="36" as GroupMaster and sends back folio items accordingly. 
In this case ID should be the GroupMaster ResID.
Since the GroupMaster ResID is needed for this case, vendors should know the ResID before sending in the FolioRQ. To do this, vendors need to be subscribed for IO_ResGroupNotifRQ Otherwise.
IPA-114222.48
OTA_HotelResNotifRQoutboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate | Rates | Rate | TPA_Extensions | px:RateAmountExtensions 

Currently:

RateAmountExtensions
<TPA_Extensions>
    <px:RateAmountExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="29.13" AmountBeforeTax="29.13" CurrencyCode="USD" RevenueCategoryCode="0"/>
        <px:RateAmount AmountAfterTax="7.33" AmountBeforeTax="7.00" CurrencyCode="USD" RevenueCategoryCode="3"/>
        <px:RateAmount AmountAfterTax="21.24" AmountBeforeTax="21.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="187.56" AmountBeforeTax="159.00" CurrencyCode="USD" RevenueCategoryCode="9"/>
        <px:RateAmount AmountAfterTax="245.26" AmountBeforeTax="216.13" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:RateAmountExtensions>
    <px:FixedChargesAmountsExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:FixedChargesAmountsExtensions>
</TPA_Extensions> 

Expected:

RateAmountExtensions
<TPA_Extensions>
    <px:RateAmountExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="29.13" AmountBeforeTax="29.13" CurrencyCode="USD" RevenueCategoryCode="0"/>
        <px:RateAmount AmountAfterTax="7.33" AmountBeforeTax="7.00" CurrencyCode="USD" RevenueCategoryCode="3"/>
        <px:RateAmount AmountAfterTax="8.24" AmountBeforeTax="8.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="187.56" AmountBeforeTax="159.00" CurrencyCode="USD" RevenueCategoryCode="9"/>
        <px:RateAmount AmountAfterTax="232.26" AmountBeforeTax="203.13" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:RateAmountExtensions>
    <px:FixedChargesAmountsExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:FixedChargesAmountsExtensions>
</TPA_Extensions> 

If a fixed charge is set as part of Rate code, it will be included in the RateAmountExtensions as  RevenueCategoryCode= (6,17)

If a fixed charges is added on top of the Rate code, then it will be included only in the in the FixedChargesAmountsExtensions as RevenueCategoryCode= (6,17)

IPA-116022.48

HTNG_HotelRoomStatusSearchRQ

inbound

pAir
<HTNG_HotelRoomStatusSearchRQ xmlns="http://htng.org/2014B" xmlns:ota="http://www.opentravel.org/OTA/2003/05" CorrelationID="Test_RoomStatus36" EchoToken="IPA_1137_01" TimeStamp="2019-03-12T16:30:47Z" Version="1.0">
	<POS>
		<Source>
			<RequestorID Type="10" ID="2787" ID_Context="protelIO"/>
		</Source>
	</POS>
	<PropertyInfo HotelName="protel.IO TestHotel25 pAir" HotelCode="2787" HotelCodeContext="protelIO"/>
	<Room RoomID="107"/>
</HTNG_HotelRoomStatusSearchRQ>
The Room Status Search message can be used to obtain a list of rooms having a set of characteristics that the requestor is interested in. This can be done for a single room or a group of rooms, depending on the search criteria. The result then can be used, for example, to synchronize information between systems that need updated housekeeping statuses.IPA-113722.48
HTNG_HotelRoomStatusSearchRSoutboundpAir
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
	<S:Header>
		<p:Source xmlns:p="http://protel.io/soap" Module="backline" ModuleVersion="2022-11-28T09:55:36 (QA)" Product="protelAir" ProductVersion="2250.0.71659-SNAPSHOT" Service="io.protel.air"/>
		<p:CorrelationID xmlns:p="http://protel.io/soap">IPA_1137_03</p:CorrelationID>
	</S:Header>
	<S:Body>
		<ns2:HTNG_HotelRoomStatusSearchRS xmlns:ns2="http://htng.org/2014B" xmlns:ns3="http://protel.io/soap" xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns5="http://www.w3.org/2011/03/ws-evt" xmlns:ns6="http://www.opentravel.org/OTA/2003/05" CorrelationID="IPA_1137_03" EchoToken="IPA_1137_03" PrimaryLangID="en" TimeStamp="2022-11-28T10:58:38Z" Version="1">
			<ns2:Success/>
			<ns2:RoomInformationList>
				<ns2:RoomInformation>
					<ns2:Room RoomID="106">
						<ns2:RoomType IsRoom="true" NumberOfUnits="1" RoomID="106" RoomType="Standard Room" RoomTypeCode="STND">
							<ns6:RoomDescription Name="Description">
								<ns6:Text TextFormat="PlainText">Standard Room</ns6:Text>
							</ns6:RoomDescription>
						</ns2:RoomType>
						<ns2:HKStatus>OFF_MARKET</ns2:HKStatus>
						<ns2:TPA_Extensions>
							<px:RoomStatusExtensions xmlns:px="http://protel.io/htng/extensions">
								<px:HouseKeepingInfo RoomStatus="2"/>
							</px:RoomStatusExtensions>
						</ns2:TPA_Extensions>
					</ns2:Room>
				</ns2:RoomInformation>
			</ns2:RoomInformationList>
		</ns2:HTNG_HotelRoomStatusSearchRS>
	</S:Body>
</S:Envelope>
The Room Status Search message can be used to obtain a list of rooms having a set of characteristics that the requestor is interested in. This can be done for a single room or a group of rooms, depending on the search criteria. The result then can be used, for example, to synchronize information between systems that need updated housekeeping statuses.IPA-113722.48











  • Keine Stichwörter