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

Unterschiede anzeigen Seitenhistorie anzeigen

Version 1 Nächste Version anzeigen »

Release dates pAIR LIVE Environment

VersionRelease date
21.162021-04-21
21.142021-04-07
21.122021-03-24
21.102021-03-10
21.082021-02-24
21.062021-02-10
21.042021-01-27
21.022021-01-13
























IPA 21.16  








IO_InvoiceFiscalizeRQoutboundpAirIO_InvoiceFiscalizeRQ | Invoice | @FiscalCodeID
<p:IO_InvoiceFiscalizeRQ>
	<p:Invoice FiscalCode="29" FiscalCodeID="10" FiscalCodeName="Fiscal_test" ">
Add the Attribute @FiscalCodeID to the Element InvoiceIPA-825IPA 21.16

IPA 21.12








OTA_HotelAvailRQInboundpAirOTA_HotelAvailRQ | AvailRequestSegments | AvailRequestSegment | HotelSearchCriteria | Criterion | Profiles
<OTA_HotelAvailRQ
    xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="EchoToken_String" HotelStayOnly="true" ExactMatchOnly="false" TimeStamp="2018-12-03T09:30:47Z" Version="5.000" Target="Test">
    <POS>
        <Source>
            <RequestorID Type="10" ID_Context="protelIO" ID="3236" />
        </Source>
    </POS>
    <AvailRequestSegments>
        <AvailRequestSegment AvailReqType="Room">
            <HotelSearchCriteria>
                <Criterion>
                    <StayDateRange Start="2020-08-01" End="2020-08-05" />
                    <Profiles>
                        <ProfileInfo>
                            <UniqueID ID="123456" ID_Context="protelIO" Type="1" />
                            <Profile/>
                        </ProfileInfo>
                    </Profiles>
                </Criterion>
            </HotelSearchCriteria>
        </AvailRequestSegment>
    </AvailRequestSegments>
</OTA_HotelAvailRQ>

Extended the schema to enable query with profile ID. The query is meant to return special corporate rates linked to the profile.

  • query can be done only for 1 profile id at a time
  • the result will hold only the special corporate rates and no other rates
  • if no profile id is used - other search criteria is applied (no special corporate rates are included)
IPA-791IPA 21.12

IPA 21.10 








OTA_HotelResNotifRQoutboundpAirno changes in XML
...
<TPA_Extensions>
	<px:GuestStayExtensions>
		<px:StayInfo Arrival="2020-08-16T12:00:00+02:00" Departure="2020-08-20T12:00:00+02:00" PrimaryInd="false" Role="BookerAndArrivingGuest" Status="In-house"/>
		<px:TelephoneSetting ClassOfService="3"/>
	</px:GuestStayExtensions>
</TPA_Extensions>
...
In case that the second guest has the reservation booker role, this attribute in ResGuest will be displayed as  Role="BookerAndArrivingGuest" IPA-74921.10
HTNG_HotelFolioNotifRQ OutboundpAirno changes in XML
EOD will produces HTNG_HotelFolioNotifRQ messages because charges were posted to inhouse reservations.IPA-81521.10
HTNG_ChargePostingRQinboundpAir

HTNG_ChargePostingRQ | Posting | RevenueDetails | RevenueDetail | @Amount

HTNG_ChargePostingRQ | Posting | RevenueDetails | RevenueDetail | ExtendedPrice | @AmountAfterTax

no changes in the XML

RevenueDetail | @Amount will be used for the Total Amount of an Item.

ExtendedPrice | @AmountAfterTax will be used for the Single Amount of an Item.



OTA_ProfileModifyRQinboundpAir

OTA_ProfileModifyRQ | ProfileModify | Customer | Telephone 

OTA_ProfileModifyRQ | ProfileModify | Customer | Email

OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | TelephoneInfo

OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | Email

no changes in the XML

Change the Logic for inbound Email and Telephone

  1. Ignore empty incoming lists of attached records (to avoid unwanted deletions)
  2. Don't remove existing attached records (to avoid unwanted deletions)
  3. Add new record for records from the message, if value can't be found
IPA-818IPA 21.10

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

OutboundpAir

OTA_ProfileCreateRQ | Profile | Customer | Telephone | @PhoneLocationType

OTA_ProfileModifyRQ | ProfileModify | Customer | Telephone | @PhoneLocationType


OTA_ProfileCreateRQ | Profile | CompanyInfo | TelephoneInfo | @PhoneLocationType

OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | TelephoneInfo | @PhoneLocationType

<Telephone DefaultInd="true" FormattedInd="false" PhoneLocationType="6" PhoneNumber="0231-915930" PhoneTechType="1"/>
<Telephone DefaultInd="true" FormattedInd="false" PhoneLocationType="6" PhoneNumber="0177-777 555 22" PhoneTechType="5"/>
<Telephone DefaultInd="true" FormattedInd="false" PhoneLocationType="6" PhoneNumber="0231-915 915 915" PhoneTechType="3"/>
<TelephoneInfo DefaultInd="false" FormattedInd="false" PhoneLocationType="7" PhoneNumber="0231- 915 915 915" PhoneTechType="3"/>
<TelephoneInfo DefaultInd="false" FormattedInd="false" PhoneLocationType="7" PhoneNumber="0177-777 555 22" PhoneTechType="5"/>
<TelephoneInfo DefaultInd="false" FormattedInd="false" PhoneLocationType="7" PhoneNumber="0231 -915 930" PhoneTechType="1"/>
Add the Attribute @PhoneLocationType to the Profile MsgIPA-807IPA 21.10

IPA 21.08 








IO_SystemDataRSOutboundpAirIO_SystemDataRS | SystemData
<ns2:IO_SystemDataRS xmlns:ns2="http://protel.io/soap" xmlns:ns3="http://www.opentravel.org/OTA/2003/05" CorrelationID="IPA-800-SR5" EchoToken="IPA-800-SR5" TimeStamp="2021-02-10T09:22:48Z" Version="1.000">
	<ns2:Success>false</ns2:Success>
	<ns2:SystemData ChainCode="n/a" HotelCode="2100116" HotelID="2100116" HotelName="protel_IO_Testhotel_pAir_2100116">
		<ns2:UniqueID ID="2100116" ID_Context="protelIO" Type="10"/>
		<ns2:Accounting>...</ns2:Accounting>
		<ns2:Profiles>...</ns2:Profiles>
		<ns2:Loyalty>...</ns2:Loyalty>
		<ns2:RoomTypes>...</ns2:RoomTypes>
		<ns2:Reservations>...</ns2:Reservations>
		<ns2:Events>...</ns2:Events>
		<ns2:Rates>...</ns2:Rates>
		<ns2:Tasks>...</ns2:Tasks>
	</ns2:SystemData>
</ns2:IO_SystemDataRS>
  1.  Changed element name from Result to SystemData
  2. Elements Errors / Success / Warnings moved up one level from IO_SystemDataRS | Result | Success (Errors, Warnings) to IO_SystemDataRS | Success (Errors, Warnings)
IO-606321.08

IPA 21.06 








HTNG_HotelFolioNotifRQOutboundpAriHTNG_HotelFolioNotifRQ | Folios | Folio
...
<htng:Folios>
	<htng:Folio FolioGroupingID="Closed" FolioID="2289" FolioType="Room" GuestPayable="false" InvoiceID="618">
		<htng:BasicPropertyInfo ChainCode="n/a" HotelCode="2787" HotelCodeContext="protelIO" HotelName="protel_IO_Testhotel_pAir_2100112"/>
		<htng:CustomerProfile>
		...
To add FolioGroupingID in the outbound message to show the status of the invoice if it "Closed" or "Open"IPA-79621.06
IO_StatsNotifRQOutboundpAirno changes in the XML
ReportCode value changed to the "Genius_PastDailyRoomTypeStatistics_v1" for the past reports triggering via API call.IPA-79221.06
IO_StatsNotifRQOutboundpAirIO_StatsNotifRQ | Statistics | Statistics
<Statistic ChainCode="n/a" FiscalDate="2020-08-15" HotelCode="2787" HotelName="protel_IO_Testhotel_pAir_2100112" ReportCode="Genius_PastDailyRoomTypeStatistics_v1">
					<StatisticApplicationSets>
						<StatisticApplicationSet End="2020-07-01" Start="2020-07-01">
							<StatisticCodes>
								<StatisticCode StatCategoryCode="3" StatCode="JS"/>
Past data value will be sent out when "Genius_PastDailyRoomTypeStatistics_v1" is triggered via an SCS job in IO_StatsNotifRQ outbound.IPA-79321.06
OTA_HotelStayInfoNotifRQOutboundpAirOTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | RevenueCategories | RevenueCategory | RevenueDetails | RevenueDetail | FolioIDs | FolioID
<OTA_HotelStayInfoNotifRQ>
	<StayInfos>
		<StayInfo>
			<RevenueCategories>
				<RevenueCategory>
					<RevenueDetails>
						<RevenueDetail>
							<FolioIDs>
								<FolioID>InvID|408616</FolioID>
								<FolioID>ResID|2387956</FolioID>
								<FolioID>GstID|5374993</FolioID>
								<FolioID>TAAGrp|ROOMS</FolioID>
Add the Element <FolioID>TAAGrp|ROOMS</FolioID> IPA-75921.06
HTNG_ChargePostingRQInboundpAirno changes in the XML
Fixing the issue with Payment posted to a profile ID is failing in case of using a payment method flagged as account receivableIPA-77721.06

IPA 21.04








OTA_HotelResNotifRQInboundpAirno changes in the XML
Modifiying AgeQulificationCode and change the number of guests with inbound reservation modify.IPA-77221.04
IO_InvoiceFiscalizeRQOutbound pAirIO_InvoiceFiscalizeRQ
...
<p:Invoice User="Alireza Memarifard" UserTaxNo="" InvoiceCode="RE_13825" Fiscalized="false" ExternallyFiscalized="false" Type="Reservation" PastEndOfDay="false" Open="true" Void="false" InvoiceID="22700" DeliveryDate="2021-02-09">
...
Added the DeliveryDate (legal requirement Hungary)IPA-79521.04
HTNG_HotelRoomStatusUpdateNotifRQOutoundpAirno changes in the XML
Fixing the incorrect RoomStatus sent out by the pAir for different status.IPA-76521.04
OTA_HotelResNotifRQ OutboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | ReservationExtensions | FixedCharges
<TPA_Extensions>
	<px:ReservationExtensions>
		<px:ReservationStatus Code="Bez" ID="17" ID_Context="protelIO" Name="Bezahlt" RPH="17245"/>
		<px:ReservationCode Code="WWW" ID="46" ID_Context="protelIO" Language="de_DE" Name="Internet" RPH="17245" Type="CommunicationChannel"/>
		<px:ReservationCode Code="Urlaub" ID="177" ID_Context="protelIO" Language="de_DE" Name="Urlaub" RPH="17245" Type="TravelReason"/>
		<px:FixedCharges>
			<px:FixedCharge Code="Obstkorb" From="2017-07-22" Quantity="1" Recurrence="OnArrival" To="2017-07-27">
				<px:UniqueID ID="5" ID_Context="protelIO" Type="16"/>
				<px:Item Code="1021" ItemID="79"/>
				<px:Price CurrencyCode="EUR" SingleAmountAfterTax="12.50"/>
				<px:InvoiceText>Obstkorb</px:InvoiceText>
			</px:FixedCharge>
			<px:FixedCharge Code="Flasche Wein" From="2017-07-22" Quantity="1" Recurrence="Fixed" To="2017-07-27">
				<px:UniqueID ID="6" ID_Context="protelIO" Type="16"/>
				<px:Item Code="1023" ItemID="83"/>
				<px:Price CurrencyCode="EUR" SingleAmountAfterTax="29.00"/>
				<px:InvoiceText>Flasche Wein</px:InvoiceText>
			</px:FixedCharge>
		</px:FixedCharges>
	</px:ReservationExtensions>
</TPA_Extensions>
We will add the FixedCharges to the ReservationExtensions.IPA-76821.04
IO_SystemDataRSOutboundpAirIO_SystemDataRS
<ns2:ItemRoutingTemplates>
	<ns2:ItemRoutingTemplate Code="RI_Template">
		<ns2:Name Language="de_DE">Gesamte Reservierung</ns2:Name>
		<ns2:Description Language="de_DE">{"and":[{"item":[4,112]}]}</ns2:Description>
	</ns2:ItemRoutingTemplate>
</ns2:ItemRoutingTemplates>
<ns2:TransactionAccounts>
	<ns2:TransactionAccount Code="1000" CurrencyCode="EUR" ID="1" ID_Context="protelIO" RevenueCategoryCode="6" Visible="true">
		<ns2:Name Language="de_DE">Speisen</ns2:Name>
		<ns2:Description Language="de_DE">RR</ns2:Description>
		<ns2:Items>
			<ns2:Item AmountAfterTax="9.000000000" Code="1020" CurrencyCode="EUR" Group="SP" ID="77" ID_Context="protelIO" RevenueCategoryCode="3" StatisticsCode="FoodAndBeverage" TaxCode="10%" TaxPercentage="10" Visible="true">
				<ns2:Name Language="de_DE">Frühstück</ns2:Name>
			</ns2:Item>
			<ns2:Item AmountAfterTax="9.000000000" Code="1036" CurrencyCode="EUR" Group="SP" ID="109" ID_Context="protelIO" RevenueCategoryCode="3" StatisticsCode="FoodAndBeverage" TaxCode="10%" TaxPercentage="10" Visible="true">
				<ns2:Name Language="de_DE">Breakfast-Package</ns2:Name>
			</ns2:Item>
			<ns2:Item AmountAfterTax="7.500000000" Code="1021" CurrencyCode="EUR" Group="SP" ID="79" ID_Context="protelIO" RevenueCategoryCode="6" StatisticsCode="Extras" TaxCode="10%" TaxPercentage="10" Visible="true">
				<ns2:Name Language="de_DE">Obstkorb</ns2:Name>
			</ns2:Item>
			<ns2:Item AmountAfterTax="9.000000000" Code="1022" CurrencyCode="EUR" Group="SP" ID="81" ID_Context="protelIO" RevenueCategoryCode="3" StatisticsCode="FoodAndBeverage" TaxCode="10%" TaxPercentage="10" Visible="true">
				<ns2:Name Language="de_DE">Lunchpaket</ns2:Name>
			</ns2:Item>
			<ns2:Item AmountAfterTax="0.000000000" Code="1024" CurrencyCode="EUR" Group="SP" ID="85" ID_Context="protelIO" RevenueCategoryCode="3" StatisticsCode="FoodAndBeverage" TaxCode="10%" TaxPercentage="10" Visible="true">
				<ns2:Name Language="de_DE">Buffet</ns2:Name>
			</ns2:Item>
			<ns2:Item AmountAfterTax="5.000000000" Code="1027" CurrencyCode="EUR" Group="SP" ID="90" ID_Context="protelIO" RevenueCategoryCode="3" StatisticsCode="FoodAndBeverage" TaxCode="10%" TaxPercentage="10" Visible="true">
				<ns2:Name Language="de_DE">Frühstück Kind <5 Yrs</ns2:Name>
			</ns2:Item>
		</ns2:Items>
	</ns2:TransactionAccount>
</ns2:TransactionAccounts>
<ns2:AgeGroups>
	<ns2:AgeGroup Code="10" ID="-1" ID_Context="protelIO" Visible="true">
		<ns2:Description Language="de_DE"> (0-0) Adult</ns2:Description>
	</ns2:AgeGroup>
	<ns2:AgeGroup Code="8" ID="1" ID_Context="protelIO" Visible="true">
		<ns2:Name Language="de_DE">Kinder</ns2:Name>
		<ns2:Description Language="de_DE">Kinder (0-14) Child</ns2:Description>
	</ns2:AgeGroup>
</ns2:AgeGroups>

Adding the following attributes / elements:

  • attribute RevenueCategoryCode to Item element
  • element FiscalCodes to Accounting element
  • element ItemRoutingTemplates to Accounting element
  • element AgeGroups to Rates element
IPA-76621.04
IO_SystemDataRQInboundpAirIO_SystemDataRQ | Request
<p:IO_SystemDataRQ xmlns:p="http://protel.io/soap" TimeStamp="2020-08-20T07:15:51.4023488Z" Version="1.000" CorrelationID="IPA-766" EchoToken="IPA-766">
	<p:Request xmlns:p="http://protel.io/soap">
		<UniqueID Type="10" ID="2575" ID_Context="protelIO"/>
		<p:Accounting/>
		<p:Rooms/>
		<p:Reservations/>
		<p:Rates/>
		<p:Tasks/>
		<p:Loyalty/>
		<p:Profiles/>
		<p:Events/>
	</p:Request>
</p:IO_SystemDataRQ>

Added the possibility to request only specific parts of the message. Within the Request element you can send the following elements to request them in the IO_SystemDataRS message:

  • element Accounting
  • element Rooms
  • element Reservations
  • element Rates
  • element Tasks
  • element Profiles
  • element Loyalty
  • element Events
IPA-76621.04

IPA 21.02








OTA_HotelResNotifRQOutboundpAirno changes in the XML

Stop sending reservations of other multi-property hotels during EOD.

IPA-78921.02
IO_SysAdministrationCompleteNotifRQOutboundpAirIO_SysAdministrationCompleteNotifRQ | Changes | Change | Value
<?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_SysAdministrationCompleteNotifRQ</p:Action>
		<p:CorrelationID xmlns:p="http://protel.io/soap">STATUS#2100114#ENDOFDAY#000098#1610449341514#7FA1</p:CorrelationID>
		<p:Source xmlns:p="http://protel.io/soap" Module="backline" ModuleVersion="2021-01-12T08:33:01 (QA)" Product="protelAir" ProductVersion="2102.0.61296-RC" Service="io.protel.air"/>
	</env:Header>
	<env:Body>
		<p:IO_SysAdministrationCompleteNotifRQ xmlns:p="http://protel.io/soap" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:htng="http://htng.org/2014B" CorrelationID="STATUS#2100114#ENDOFDAY#000098#1610449341514#7FA1" TimeStamp="2021-01-12T11:02:21Z" Version="1.0">
			<p:Changes ChainCode="n/a" HotelCode="2792" HotelID="2100114" HotelName="protel_IO_Testhotel_pAir_2100114">
				<p:Change>
					<p:Name>currentBookingDate</p:Name>
					<p:Value>2021-01-05T00:00:00+01:00</p:Value>
				</p:Change>
			</p:Changes>
		</p:IO_SysAdministrationCompleteNotifRQ>
	</env:Body>
</env:Envelope>
The value of the currentBookingDate in outbound IO_SysAdministrationCompleteNotifRQ is currently same with the PMS current business date. IPA-78421.02
OTA_ReadRQInboundpAirOTA_ReadRQ | @ReturnListIndicator no change in XML

The behaviour will be changed to 

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


IPA-76121.02
OTA_ReadRQ / OTA_ProfileReadRSInboundpAirOTA_ReadRQ | @ReturnListIndicator no change in XMLOTA_ProfileReadRS will hold
  • an error element in case no profiles could be found (strict search)
  • success plus warning element in case profiles only found when ignoring certain search criterias
IPA-76221.02
  • Keine Stichwörter