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

Unterschiede anzeigen Seitenhistorie anzeigen

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

Release dates pAIR LIVE Environment

VersionRelease date
22.462022-11-16
22.442022-11-02
22.382022-09-21
22.362022-09-07
22.242022-06-15
22.182022-05-04
22.142022-04-06
22.122022-03-23
22.102022-03-09
22.042022-01-26
22.022022-01-12
Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersion

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_HotelAvailRQInboundpAirOTA_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

IPA 22.36 








OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
outbound
inbound
pAirOTA_ProfileCreateRQ | Profile | Customer  | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | @BirthDate

OTA_ProfileCreateRQ | Profile | Customer  | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | @BirthPlace

OTA_ProfileCreateRQ | Profile | Customer  | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | @BirthCountry

OTA_ProfileModifyRQ | ProfileModify  | Customer  | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | @BirthDate

OTA_ProfileModifyRQ | ProfileModify  | Customer  | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | @BirthPlace

OTA_ProfileModifyRQ | ProfileModify  | Customer  | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | @BirthCountry
<px:Registration BirtDate="2000-01-01" BirthPlace="Dortmund" BirthCountry="DE"/>
Added the three new optional attributes Registration@BirthDate, Registration@BirthPlace and Registration@BirthCountry.
If two (different or equal) valid birthdates are provided in Customer@BirthDate and Registration@BirthDate, the value from Registration@BirthDate will be taken. Customer@Birthdate will only be taken if no (valid) date is provided in Registration@BirthDate.
IPA-110722.36

IPA 22.24 








IO_SystemDataRS outboundpAir

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.IPA-107922.24

IPA 22.18








OTA_HotelInvBlockNotifRQoutboundpAirOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | RoomTypes | RoomType | RoomTypeAllocations | RoomTypeAllocation 

Current

<RoomTypeAllocations RoomTypePickUpStatus="X">
    <RoomTypeAllocation End="2022-08-02" NumberOfUnits="2" Start="2022-08-01"/>
    <RoomTypeAllocation End="2022-08-06" NumberOfUnits="3" Start="2022-08-06"/>
</RoomTypeAllocations>

Expected

<RoomTypeAllocations RoomTypePickUpStatus="X">
    <RoomTypeAllocation End="2022-08-02" NumberOfUnits="2" Start="2022-08-01"/>
    <RoomTypeAllocation End="2022-08-05" NumberOfUnits="0" Start="2022-08-03"/>
    <RoomTypeAllocation End="2022-08-06" NumberOfUnits="3" Start="2022-08-06"/>
    <RoomTypeAllocation End="2022-08-10" NumberOfUnits="0" Start="2022-08-07"/>
</RoomTypeAllocations>
If @RoomTypePickUpStatus is in ("4","5","13") and there are periods where there are no picked up reservations, then pAir will be still sending the "empty" periods as NumberOfUnits="2". No schema change.IPA-105022.18

HTNG_HotelFolioNotifRQ

HTNG_HotelFolioRS

outbound

inbound

pAir

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | FolioIDs | FolioID

<htng:HTNG_HotelFolioNotifRQ>
	<htng:Folios>
		<htng:Folio>
			<htng:RevenueDetails>
				<htng:RevenueDetail>
					<FolioIDs>
						<FolioID>OResID | xyz <FolioID/>
						<FolioID>OGstID | xyz <FolioID/>

Add the "OResID" and "OGstID" to the FolioID Element, to display the  "originalResID" and "originalGuestID"  if an items was shifted from one Reservation to another.

If an Item was not shifted, the Information will not be displayed

IPA-104322.18
OTA_ReadRQinboundpAirOTA_ReadRQ | ReadRequests | HotelReadRequest | TPA_Extensions | px:ReadRequestExtensions | px:Room | @RoomID
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="PWS-3130" Version="0" EchoToken="PWS-3130" MaxResponses="2">
	<POS>
		<Source>
			<RequestorID ID="3152" Type="10" ID_Context="protelIO"/>
		</Source>
	</POS>
	<ReadRequests>
		<HotelReadRequest>
			<SelectionCriteria ResStatus="In-house"/>
			<Verification>
				<PersonName>
					<Surname>Duck</Surname>
				</PersonName>
			</Verification>
			<TPA_Extensions>
				<px:ReadRequestExtensions xmlns:px="http://protel.io/htng/extensions">
					<px:Room RoomID="303" />
				</px:ReadRequestExtensions>
			</TPA_Extension>
		</HotelReadRequest>
	</ReadRequests>
</OTA_ReadRQ>
Extend the OTA_ReadRQ to search for the RoomIDIPA-102922.18

OTA_ProfileCreateRQ 

OTA_ProfileModifyRQ

OTA_HotelResNotifRQ  

inbound
outbound
pAirOTA_ProfileCreateRQ | Profile | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos |
  • px:LastNameAtBirth
  • px:FirstNameAtBirth
  • px:LastNameMother
  • px:FirstNameMother

OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos |

  • px:LastNameAtBirth
  • px:FirstNameAtBirth
  • px:LastNameMother
  • px:FirstNameMother

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos |

  • px:LastNameAtBirth
  • px:FirstNameAtBirth
  • px:LastNameMother
  • px:FirstNameMother
<TPA_Extensions>
	<px:ProfileInfoExtensions>
		<px:AddressTypes />
		<px:ContactDetails/>
		<px:PersonInfos>
			<px:LastNameAtBirth/>
			<px:FirstNameAtBirth/>
			<px:LastNameMother/>
			<px:FirstNameMother/>
			<px:Language DefaultInd="true">de-de</px:Language>
			<px:VipCodes/>
			<px:MarketingCodes/>
			<px:Keywords/>
			<px:Registration BirthCountry="DE"/>
		</px:PersonInfos>
		<px:Salutation DefaultInd="false" DisplaySequence="1" ID="11" ID_Context="protelIO" Type="SALUTATION">Dear Mr.</px:Salutation>
		<px:ProfileStatus/>
		<px:DocumentTypes/>
		<px:StatisticalInfos/>
		<px:Traces/>
		<px:LogEntries/>
		<px:Memberships/>
	</px:ProfileInfoExtensions>
</TPA_Extensions>
Added four extra fields to profile messages (and the profile part of the reservation message). These fields are a legal requirement in Hungary and Romania.IPA-104122.18

IPA 22.14 








HTNG_HotelRoomStatusUpdateNotifRQ outbound/inboundpAirHTNG_HotelRoomStatusUpdateNotifRQ |  Room | RoomType | @NumberOfUnits
<HTNG_HotelRoomStatusUpdateNotifRQ>
	<Room>
		<RoomType NumberOfUnits="1"/>
Add the Attribute @NumberOfUnits to the RoomType in the HTNG_HotelRoomStatusUpdateNotifRQ IPA-103022.14

IPA 22.12 








OTA_ProfileCreateRQ 

OTA_ProfileModifyRQ 

outboundpAir

OTA_ProfileCreateRQ | Profile | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile 


 OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile 

<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:StatisticalInfos>
			<px:ParentProfile Name="Duck AG" ID="181579" ID_Context="protelIO" Type="3"/>
		</px:StatisticalInfos>
	</px:ProfileInfoExtensions>
</TPA_Extensions>

 Add the new official XSD TPA_Extensions "px:ParentProfile "

IPA-101522.12

IPA 22.10








OTA_HotelResNotifRQoutboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | DepositPayments
<DepositPayments>
	<GuaranteePayment>
		<AmountPercent Amount="77.00" CurrencyCode="AED" ApplyAs="FirstNightDeposit"/>
		<Deadline AbsoluteDeadline="2019-09-06"/>
	</GuaranteePayment>
	<GuaranteePayment>
		<AcceptedPayments>
			<AcceptedPayment PaymentTransactionTypeCode="charge">
				<PaymentCard>
					<CardType>CASH (AED)</CardType>
				</PaymentCard>
			</AcceptedPayment>
		</AcceptedPayments>
		<AmountPercent Amount="-55.00" CurrencyCode="AED" ApplyAs="FirstNightDeposit"/>
	</GuaranteePayment>
</DepositPayments>
Add Deposit Paid to outbound Reservation Message.IPA-101422.10

IPA 22.04 








OTA_HotelResNotifRQinboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomTypes | RoomType | RoomID
and/or
OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate | RoomID
RoomID
<OTA_HotelResNotifRQ>
    <HotelReservations>
        <HotelReservation ResStatus="In-house">
            <RoomStays>
                <RoomStay MarketCode="AK22">
                    <RoomTypes>
                        <RoomType RoomID="15012" RoomTypeCode="JUNS"/>
                    </RoomTypes>
                    <RoomRates>
                        <RoomRate EffectiveDate="2022-08-04" ExpireDate="2022-08-06" RoomID="15012" RoomTypeCode="JUNS">
In-house reservations can not have the RoomID modified with this message.
Other data like MarketCode, DepartureDate, Services remains modifiable with this message.
IPA-100922.04

IPA 22.02 








IO_SystemDataRS
IO_ResModifyNotifRS
IO_InvoiceFiscalizeRS

outboundpAirIO_SystemDataRS | Success
IO_ResModifyNotifRS | Success
IO_InvoiceFiscalizeRS | Success

New xsd:

Success
<xs:complexType name="IOMessageResultType">
    <xs:sequence>
        <xs:element minOccurs="0" name="Success">
            <xs:complexType>
                <xs:annotation>
                    <xs:documentation xml:lang="en">Existence of element in RS message signals successful processing.</xs:documentation>
                </xs:annotation>
            </xs:complexType>
        </xs:element>

Currently the <Success> element, if present, appears with Boolean value. (e.g. <Success>true</Success>)

With this change, the <Success> element, if present, will appear only as empty element. (e.g. <Success/>)

IPA-997

22.02
OTA_HotelResNotifRQ outboundOnPrem

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

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

Add the new Element "SerivceDates"

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

Possible Recurrence

  • OnArrival
  • OnDeparture
  • Daily
  • DaysOfWeek
  • Floating
  • Fixed
IPA-98522.02
OTA_HotelInvBlockNotifRQInboundpAirOTA_HotelInvBlockNotifRQ | TPA_Extensions | InvBlockExtensions | CancellationInfo
<TPA_Extensions>
	<px:InvBlockExtensions>
		<px:InvBlockID ID="23" ID_Context="protelIO" Type="18"/>
		<px:CancellationInfo Code="Cancel" ID="13" ID_Context="protelIO" Timestamp="2019-07-30T10:44:26+02:00" Type="1" User="">erreur</px:CancellationInfo>
	</px:InvBlockExtensions>
	<px:ProfileInfoExtensions>
		<px:ContactDetails>
			<px:AdditionalInfo>
				<px:Entry DefaultInd="true" ID="1543" ID_Context="protelIO" RPH="6bee2ab8-f5a0-4ce0-9e50-6a52bff63aab" Type="1">memari</px:Entry>
				<px:Entry ID="1543" ID_Context="protelIO" RPH="be2ab219-99e0-4714-8e30-a6924aa820bf" Type="1"/>
			</px:AdditionalInfo>
		</px:ContactDetails>
	</px:ProfileInfoExtensions>
	<px:ReservationExtensions/>
</TPA_Extensions>
Implement the CancellationInfo for the inbound allotment.IPA-98722.02
  • Keine Stichwörter