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

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 406 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
22.482022-11-30
22.462022-11-16
22.442022-11-02
22.422022-10-19

22.40

2022-10-05
22.382022-09-21

Release dates PWS (onPrem) LIVE Environment

VersionRelease date
3.112022-12-07
3.102022-10-24
3.92022-07-20


Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersion
TBA IDS








TBA PWS
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-3372
TBA IPA








IPA 22.46

OTA_HotelResNotifRQinboundpAirRate | @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 Rate/@CachedIndicator="true", then the PMS will ignore the resp rate details within the same <Rate> element 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 modification, where the external service is not aware of any manual edits on the reservation rate details, to be lost.
IPA-1133

IPA 22.44








OTA_HotelAvailRQInboundpAir

OTA_HotelAvailRQ

<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" IsModify="true" AvailRatesOnly="true" CorrelationID="IPA_1128_13" Version="0" EchoToken="IPA_1128_13">
@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).IPA-112822.44
OTA_HotelInvBlockNotifRQInboundpAirOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | BlockDescriptions | BlockDescription
<BlockDescriptions>
	<BlockDescription CreateDateTime="2022-10-06T11:00:46+02:00" LastModifyDateTime="2022-10-28T08:59:56+02:00"/>
	<BlockDescription Name="SourceOfBusiness">
		<Text TextFormat="PlainText">TEST</Text>
	</BlockDescription>
</BlockDescriptions>
BlockDescription element can be distinguished by attribute value Name.
The Name value "SourceOfBusiness" is defined to map to the Distribution Channel in pAir.
We already implemented the inbound SourceOfBusiness in BlockDescription.
IPA-113522.44

IPA 22.38 

IO_InvoiceFiscalizeNotifRQOutboundpAir
<p:IO_InvoiceFiscalizeNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:htng="http://htng.org/2014B" xmlns:p="http://protel.io/soap" CorrelationID="INV#2100171#Update#000153#1663079592581#E8FC" TimeStamp="2022-09-13T14:33:13Z" Version="1.0">
	<p:UniqueID ID="6969" ID_Context="protelIO" Type="Invoice"/>
	<p:UniqueID ID="2877" ID_Context="protelIO" Type="Hotel"/>
	<p:Invoice BusinessDate="2022-04-07" ExternalFiscalClosingID="deafcef0cc6ef843022c048e9521af37" ExternalFiscalCode="7d280d03-ad80-4e4e-9c03-c64bd7cf93ce" ExternallyFiscalized="true" FiscalCode="2393" FiscalCodeID="2" FiscalCodeName="ΑΠΟΔΕΙΞΗ ΠΑΡΟΧΗΣ ΥΠΗΡΕΣΙΩΝ" FiscalDate="2022-09-13T16:33:05+02:00" Fiscalized="true" InvoiceCode="RE_5056" InvoiceDate="2022-09-13T16:33:05+02:00" InvoiceID="6969" Open="false" PastEndOfDay="false" Type="Reservation" User="Alireza Memarifard" UserTaxNo="" Void="false">
		<p:InvoiceRecipient ProfileID="4224" ProfileType="Customer">
			<p:FirstName/>
			<p:LastName>Rxxx</p:LastName>
			<p:Language>en_US</p:Language>
			<p:Notes/>
			<p:Gender/>
			<p:Addresses/>
			<p:EmailAddresses>
				<p:Communication Notes="" PrimaryInd="true" Type="11" Value=""/>
			</p:EmailAddresses>
			<p:PhoneNumbers>
				<p:Communication Notes="" PrimaryInd="true" Type="9" Value=""/>
			</p:PhoneNumbers>
		</p:InvoiceRecipient>
		<p:Charges>
			<p:Item CashRegisterID="1" ID="121026" PostingAccount="153" Quantity="1" ServiceDate="2022-04-07" SystemDate="2022-09-13T14:32:50+02:00" TaxCode="13%" TaxRate="13.000000000" Type="Article">
				<p:PostingText>Accommodation</p:PostingText>
				<p:TotalAmountAfterTax CurrencyCode="EUR">
					<p:Amount>1.00</p:Amount>
				</p:TotalAmountAfterTax>
				<p:SingleAmountAfterTax CurrencyCode="EUR">
					<p:Amount>1.00</p:Amount>
				</p:SingleAmountAfterTax>
				<p:SingleAmountBeforeTax CurrencyCode="EUR">
					<p:Amount>0.88</p:Amount>
				</p:SingleAmountBeforeTax>
				<p:AdditionalText/>
				<p:TaxInfo Code="13%" ID="2" Rate="13.000000000">VAT_13</p:TaxInfo>
				<p:Room>1</p:Room>
				<p:Reference Code="100" ID="26" Name="Accommodation">
					<p:Group Code="1018" ID="25" Name="Accommodation"/>
				</p:Reference>
			</p:Item>
		</p:Charges>
		<p:Payments>
			<p:Item CashRegisterID="1" ID="121027" PostingAccount="153" Quantity="1" ServiceDate="2022-04-07" SystemDate="2022-09-13T14:32:57+02:00" Type="Payment">
				<p:PostingText>??????????? ??????????????</p:PostingText>
				<p:TotalAmountAfterTax CurrencyCode="EUR">
					<p:Amount>-1.00</p:Amount>
				</p:TotalAmountAfterTax>
				<p:SingleAmountAfterTax CurrencyCode="EUR">
					<p:Amount>-1.00</p:Amount>
				</p:SingleAmountAfterTax>
				<p:SingleAmountBeforeTax CurrencyCode="EUR">
					<p:Amount>-1.00</p:Amount>
				</p:SingleAmountBeforeTax>
				<p:AdditionalText/>
				<p:Room>1</p:Room>
				<p:Reference Code="1019" ID="41" Name="??????????? ??????????????">
					<p:Group Code="1012" ID="19" Name="Noncash"/>
				</p:Reference>
			</p:Item>
		</p:Payments>
		<p:Deposits/>
		<p:Expenses/>
		<p:Batches/>
		<p:TotalChargeAmount CurrencyCode="EUR">
			<p:Amount>1.00</p:Amount>
		</p:TotalChargeAmount>
		<p:TotalPaymentsAmount CurrencyCode="EUR">
			<p:Amount>-1.00</p:Amount>
		</p:TotalPaymentsAmount>
		<p:TotalDepositsAmount CurrencyCode="EUR">
			<p:Amount>0.00</p:Amount>
		</p:TotalDepositsAmount>
		<p:VoidReason/>
	</p:Invoice>
	<p:ExternalFiscalCode>7d280d03-ad80-4e4e-9c03-c64bd7cf93ce</p:ExternalFiscalCode>
	<p:ExternalFiscalClosingID>deafcef0cc6ef843022c048e9521af37</p:ExternalFiscalClosingID>
</p:IO_InvoiceFiscalizeNotifRQ>
IO_InvoiceFiscalizeNotifRQ is a new Legal-Fiscal implemented message containing all the fiscal information that sends out to the vendors after a successful fiscalization (internal, external or both)IPA-105822.38

PWS 3.9.X 

IO_SystemDataRS outboundonPremise

IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup |@CategoryCode

IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup |@CategoryID

<ns2:RatePlanGroup CategoryCode="PWSTG" CategoryID="21" Code="PWSTRC" ID="1271" ID_Context="protelIO" Type="Standard" Visible="true">
	<ns2:Description Language="de">PWS Test Ratecode</ns2:Description>
</ns2:RatePlanGroup>
Added two new optional attributes to be able to display the rategroups. Now the message is able to display the onPremise rate structure rategroup → ratecode → ratecodetails.PWS-32363.9.X

OTA_ProfileModifyRQ

OTA_ProfileModifyRS

outbound

inbound

onPremise

OTA_ProfileModifyRQ | POS | ProfileModify 


OTA_ProfileModifyRS | Errors | Error

<Errors>
	<Error Code="321" ShortText="The Profile is anonymized and will not be updated." Type="10"/>
</Errors>

If an anonymized profile is edited in PMS, then no data is shared. 

As soon as an anonymized profile is tried to be updated in the PMS, the error message is displayed. 

PWS-3261

and 

PWS-3260

3.9.X











  • Keine Stichwörter