Affected Message | Direction from protel | PMS | Path | Example | Summary | Internal reference | Version |
---|
TBA IDS |
|
|
|
|
|
|
|
|
TBA PWS |
OTA_HotelResNotifRQ | outbound | OnPrem | OTA_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-3410 | 3.11.X |
IO_StatsNotifRQ | outbound | OnPrem | 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-3348 | 3.11.X |
OTA_HotelResNotifRQ | inbound | onPrem | 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 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 | 3.11.X |
TBA IPA |
HTNG_HotelFolioRQ | inbound | pAir | HTNG_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-1142 |
|
OTA_ProfileModifyRQ | inbound | pAir | OTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile |
<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 IDs | IPA-1145 | TBA |
OTA_HotelResNotifRQ | outbound | pAir | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate | Rates | Rate | TPA_Extensions | px:RateAmountExtensions | Currently:
<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:
<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-1160 | TBA Hotfix |
|
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-1137 | 22.48 |
HTNG_HotelRoomStatusSearchRS | outbound | pAir |
|
<?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-1137 | 22.48 |
|
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 |
|
|
|
|
|
|
|
|
|
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 |
|
IO_SystemDataRS | outbound | onPremise | 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-3236 | 3.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 |