Affected Message | Direction from protel | PMS | Path | Example | Summary | Internal reference | Version |
---|
|
|
|
|
|
|
|
|
OTA_HotelResNotifRQ | inbound | pAir | Rate | @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 | 22.46 |
|
|
|
|
|
|
|
|
OTA_HotelAvailRQ | Inbound | pAir | 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-1128 | 22.44 |
OTA_HotelInvBlockNotifRQ | Inbound | pAir | OTA_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-1135 | 22.44 |
|
|
|
|
|
|
|
|
IO_InvoiceFiscalizeNotifRQ | Outbound | pAir |
|
<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-1058 | 22.38 |
|
|
|
|
|
|
|
|
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound inbound | pAir | OTA_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-1107 | 22.36 |
|
|
|
|
|
|
|
|
IO_SystemDataRS | outbound | pAir | 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-1079 | 22.24 |
|
|
|
|
|
|
|
|
OTA_HotelInvBlockNotifRQ | outbound | pAir | OTA_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-1050 | 22.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-1043 | 22.18 |
OTA_ReadRQ | inbound | pAir | OTA_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 RoomID | IPA-1029 | 22.18 |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ OTA_HotelResNotifRQ | inbound outbound | pAir | OTA_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-1041 | 22.18 |
|
|
|
|
|
|
|
|
HTNG_HotelRoomStatusUpdateNotifRQ | outbound/inbound | pAir | HTNG_HotelRoomStatusUpdateNotifRQ | Room | RoomType | @NumberOfUnits |
<HTNG_HotelRoomStatusUpdateNotifRQ>
<Room>
<RoomType NumberOfUnits="1"/>
| Add the Attribute @NumberOfUnits to the RoomType in the HTNG_HotelRoomStatusUpdateNotifRQ | IPA-1030 | 22.14 |
|
|
|
|
|
|
|
|
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound | pAir | 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-1015 | 22.12 |
|
|
|
|
|
|
|
|
OTA_HotelResNotifRQ | outbound | pAir | OTA_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-1014 | 22.10 |
|
|
|
|
|
|
|
|
OTA_HotelResNotifRQ | inbound | pAir | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomTypes | RoomType | RoomID and/or OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate | 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-1009 | 22.04 |
|
|
|
|
|
|
|
|
IO_SystemDataRS IO_ResModifyNotifRS IO_InvoiceFiscalizeRS | outbound | pAir | IO_SystemDataRS | Success IO_ResModifyNotifRS | Success IO_InvoiceFiscalizeRS | Success | New xsd:
<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 | outbound | OnPrem | 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-985 | 22.02 |
OTA_HotelInvBlockNotifRQ | Inbound | pAir | OTA_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-987 | 22.02 |