This instance is currently being migrated to the new Atlassian One Confluence sytem.
If you can't find your space anymore, it should be already in the new System: https://confluence.weareplanet.com/
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
Version | Release date |
---|
24. |
46 |
2024- |
12- |
11 |
24. |
42 |
2024- |
11- |
13 |
24. |
42 |
2024- |
Release dates PWS (onPrem) LIVE Environment
11-06 NO regular Release | |
24.42 | 2024-10-30 NO regular Release |
24.42 | 2024-10-16 NO regular Release |
24.38 | 2024-09-30 |
24.38 | 2024-09-18 NO regular Release |
24.36 | 2024-09-04 - IPA update will be now every 4 weeks |
24.34 | 2024-08-21 |
24.32 | 2024-08-07 NO regular Release |
24.30 | 2024-07-24 NO regular Release |
24.29 | 2027-07-17 |
24.28 | 2024-07-10 NO regular Release |
24.26 | 2024-06-26 NO regular Release |
24.24 | 2024-06-12 |
24.22 | 2024-05-29 |
24.20 | 2024-05-15 |
24.18 | NO regular Release on Wednesday 01.05.2024 due to public Holiday in Germany |
24.16 | 2024-04-17 |
24.14 | 2024-04-03 |
24.12 | 2024-03-20 |
24.10 | 2024-03-06 |
24.08 | 2024-02-21 |
24.06 | 2024-02-07 |
24.04 | 2024-01-24 |
24.02 | 2024-01-10 |
Release dates ESB (I/O) LIVE Environment
Version | Release date |
---|---|
2.6.3 | 2024-11-06 |
2.6.2 | 2024-09-25 |
2.6.1 | 2024-08-21 |
2.6.0 | 2024-07-15 |
2.5.3 | 2024-06-10 |
2.5.2 | 2024-05-15 |
2.5.1 | 2024-04-10 |
2.5.0 | 2024-02-26 |
TBA IDS | |||||||||||
TBA ESB | |||||||||||
Bulk Export from SMP UI | outbound | OnPrem pAir | n/a | no schema change | Each bulk job can be of maximum 2 years timespan. If it is necessary to have longer time span - more bulk jobs should be created. | SMP-2928 | TBA | ||||
Bulk Export from SMP UI | outbound | OnPrem pAir | n/a | no schema change | #1 For one destination - only one bulk job can be running. Any further bulk jobs for the same destination will be saved in the sequence - but it will not start unless all previous jobs are finalized (cancelled, completed). #2 If the queue for a destination in BULK mode exceeds 10K messages, no new bulk job should start. Any further bulk jobs for the same destination will be saved in the sequence - but it will not start unless the queue in BULK mode for the destination drops under 10K messages. | IO-8229 | 2.5.4 | ||||
TBA PWS | |||||||||||
OTA_ReadRQ/OTA_ResRetrieveRS | inbound | onPremise | extend the Reservation search by roomtypes |
|
language | xml |
---|---|
collapse | true |
|
|
|
OTA_ProfileModifyRQ
Codeblock | ||||
---|---|---|---|---|
| ||||
<px:Registration BirthCountry="IT" BirthPlace="CALVIGNASCO" LicensePlate="35347444" /> |
| In the ReadRQ it is now possible to request the RoomType in addition to the time period and reservation status. | PWS-3822 | TBA | |||||||
TBA IPA | ||||||||||
IO_SystemDataRS | outbound | pAir | no schema change but we will expand for pAir the attributes
| no schema change | In the pAir SystemData in Rate Configuration you can define Discount Groups. With the extension for pAir we send the attributes
| IPA-1467 | TBA | |||
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound / inbound | pAir | no schema change | no schema change | no change in the Schema. Export @LoyalLevel value with the string label the way it is defined by the user instead of the PMS SystemData ID | IPA-1277 | TBA | |||
OTA_HotelResNotifRQ OTA_ProfileCreateRQ OTA_ProfileModifyRQ OTA_HotelStayInfoNotifRQ | outbound / inbound | pAir | OTA_ProfileModifyRQ | ProfileModify | Customer | Document |
|
| To be legal in Austria, a new Attribute is added to the Document Element with the label "Issuing Authorities" | IPA-1369 | TBA | ||||||||
IO_SystemDataRQ | inbound | pAir | IO_SystemDataRQ | Request | Rates |
|
Codeblock | ||||
---|---|---|---|---|
| ||||
<Services>
<Service ID="RemoveAll" ID_Context="protelIO" Type="16"/>
</Services> |
If Service/@ID="RemoveAll" is provided, then any bookable package/s that are attached to the reservation will be removed from it.
PWS-3556
onPrem
pAir
| The vendor should be able to tell us in the RQ with the attribute IncludeInvisible="true or false" which rates he wants to see.
| IPA-1404 | TBA | |||||||||||
IO_SystemDataRS | outbound | pAir | IO_SystemDataRS | SystemData | Rates | RatePlans | RatePlan |
| The vendor should be able to tell us in the RQ with the attribute IncludeInvisible="true or false" which rates he wants to see.
| IPA-1403 | TBA | |||||||
PWS 3.19.X | ||||||||||||||
OTA_HotelResNotifRQ | inbound | OnPrem | no schema changes | We will no longer import fixed charges with inbound OTA_HotelResNotifRQ. This can only be done with IO_ResModifyNotifRQ. | PWS-3810 | 3.19.0 | ||||||||
OTA_HotelResNotifRQ | inbound | OnPrem | no schema changes | Implemented the import of the attributes CommunicationChannel and TravelReason. | PWS-3820 | 3.19.0 | ||||||||
OTA_HotelRatePlanNotifRQ | inbound | OnPrem | no schema changes |
| PWS-3821 | 3.19.0 | ||||||||
IO_SystemDataRQ | inbound | OnPrem | IO_SystemDataRQ | Request | Rates @IncludeInvisible |
|
<Errors>
<Error Code="188" Type="1" ShortText="Transaction error - please report. Incomplete Posting flow. Please check the guest folio before a retry."/>
</Errors>
- the ESB will not do retries itself
- the ESB will generate a generic RS to inform the sender of the RQ about the failure.
! The RQ should not be automatically retried - the posting itself could have happened, yet for some reason - no RS could have been generated by the PMS service (e.g. fiscalization error).
Use Case 11b (Add attached guest profile): an unlimited number of profiles can be attached to the list of attached guest profiles.
| To shorten the RS message we implemented a new attribute to exclude information about expired rates. If this new attribute is not provided, the RS message will contain information about all rates as before (default=true). If the new attribute is sent with "false", the RS message will no longer contain information about expired rates. | PWS-3805 | 3.19.0 | ||||||||||
IO_SystemDataRS | outbound | OnPrem | IO_SystemDataRS | SystemData | Reservations | GuestRelationTypes | GuestRelationType |
| Added the GuestRelationType to the SystemDataRS. | PWS-3835 | 3.19.0 | ||||||
PWS 3.17.X | |||||||||||||
OTA_HotelInvBlockNotifRQ | outbound | OnPrem | OTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | RoomTypes | RoomType | RatePlans | RatePlan@TaxInclusive |
px:FixedChargesAmountsExtensions
|
|
|
|
|
|
|
|
|
|
|
| Flag is linked to the system setup for rate values. If the PWS is set to send "net values only", the attribute will be send with "false". If the system is set up to send "gross values only" OR "net and gross values", the attribute will be send with "true". | PWS-3729 | 3.17.0 | |||||||||||
HTNG_HotelRoomStatusUpdateNotifRQ | outbound / inbound | OnPrem | Message implemented for outbound and inbound processing. | PWS-3202 PWS-3246 | 3.17.0 | |||||||||
PWS 3.16.X | ||||||||||||||
OTA_ProfileCreateRQ | outbound | OnPrem | OTA_ProfileCreateRQ | Profile | Customer | Document | no schema change | With OnPrem 23.060 it will be possible to store more than one travel document per profile so that the outbound profile messages may contain more than one document element. | PWS-3723 | 3.16.0 | |||||||
OTA_HotelResNotifRQ | outbound | OnPrem | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | RelatedTraveler | TPA_Extensions | px:GuestStayExtensions | px:StayInfo |
| The legal requirements in Spain stipulate that additional guests can be related to the main guest. The relationship to the main guest can soon be transferred by the additional attribute with. This is for example important for police reports. | PWS-3697 | 3.16.0 | |||||||
OTA_HotelResNotifRQ | outbound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | px:Traces | No change in XML, but traces from the past (before the current PMS business date) are no longer sent. | PWS-3676 | 3.16.0 | ||||||||
OTA_ProfileModifyRQ | outbound | OnPrem | OTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:ProfileExtensions | px:PersonInfos | px:Registration | px:Occupation |
| The attribute occupation was added. | PWS-3714 | 3.16.0 | |||||||
IO_ResModifyNotifRQ | inbound | OnPrem | IO_ResModifyNotifRQ | Reservations | Reservation | ProfileReferences | ProfileReference @RelationToPrimary |
New element TPA_Extensions will be added IF the respective rate has an exclusive fixed charge package.
The value of the FixedChargesAmountsExtensions | RateAmount | AmountAfterTax is NOT included in the Base/Total amounts and should NOT be used for OTA_HotelResNotifRQ to the PMS. This value has informative purpose to the walk-in guest - since the charge will be added automatically by the PMS logic during EOD.
UseCase 11: Change arriving guest
Codeblock | ||||
---|---|---|---|---|
| ||||
<p:ProfileReferences>
<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36975" Action="DELETE"/>
<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36888" Action="CREATE"/>
</p:ProfileReferences> |
With this PWS version, only the arriving guest will be exchanged, all folio recipients remain as they are.
UseCase 12: Change invoice recipient
Codeblock | ||||
---|---|---|---|---|
| ||||
<p:InvoiceReferences>
<p:InvoiceReference Type="Invoice" ID="34161-0" ID_Context="protelIO">
<p:ProfileReferences>
<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36975" Action="DELETE" Role="InvoiceRecipient"/>
<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36842" Action="CREATE" Role="InvoiceRecipient"/>
</p:ProfileReferences>
</p:InvoiceReference>
</p:InvoiceReferences> |
With this PWS version, the invoice recipient for folios A to F can be exchanged. The arriving guest will not be touched.
Codeblock | ||||
---|---|---|---|---|
| ||||
<Calculation AmountAfterTax="10.00" AmountBeforeTax="8.06" Currency="EUR" InclusiveInd="false" FixedChargeInd="false" Recurrence="Daily" Relation="PerAdult">
<DaysOfWeek Fri="true" Mon="true" Sat="true" Sun="true" Thu="true" Tue="true" Wed="true"/>
</Calculation> |
If @FixedChargeInd="false" (or the attribute is missing) then the package is "not a fixed charge".
Else if the @FixedChargeInd="true" then the package "is a fixed charge". This is extra cost to the accommodation amount - but unlike the "add to rate" packages, it should not be included in the inbound reservation total amount to the PMS.
|
|
|
| The legal requirements in Spain stipulate that additional guests can be related to the main guest. The relationship to the main guest can be transferred by the additional attribute for UseCase 11b only. The relation is for example important for police reports. | PWS-3700 | 3.16.0 | |||||||||||
OTA_HotelResNotifRQ | outbound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | | px:DocumentInfos | px:DocumentInfo |
| Due to Spanish legal requirements (Police reports), we extend the TPA extensions in the Customer element with DocumentInfo for the support number of Spanish documents. | PWS-3712 | 3.16.0 | |||||||
OTA_HotelResNotifRQ | inbound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | | px:DocumentInfos | px:DocumentInfo |
|
Codeblock | ||||
---|---|---|---|---|
| ||||
<TPA_Extensions>
<px:ReservationExtensions xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns5="http://www.w3.org/2011/03/ws-evt">
<px:ReservationStatus Code="G" ID="5" ID_Context="protelIO" Name="Guaranteed" RPH="198382"/>
<px:ReservationCode Code="CONF" ID="319" ID_Context="protelIO" Language="en_US" Name="Conference" Type="TravelReason">Conference</px:ReservationCode>
<px:ReservationCode Code="Fax" ID="44" ID_Context="protelIO" Language="en_US" Name="Facsimile" Type="CommunicationChannel">Facsimile</px:ReservationCode>
<px:FixedCharges/>
<px:Traces>
<px:Trace TraceBegin="2021-03-17T16:00:00+02:00" TraceDepartment="ACC" TraceEnd="2021-03-17T16:00:00+02:00">Trace Template 333</px:Trace>
<px:Trace TraceBegin="2021-03-18T16:00:00+02:00" TraceDepartment="ACC" TraceEnd="2021-03-18T16:00:00+02:00">Trace Template 444</px:Trace>
<px:Trace TraceBegin="2021-03-19T16:00:00+02:00" TraceDepartment="ACC" TraceEnd="2021-03-19T16:00:00+02:00">Trace Template 222</px:Trace>
<px:Trace TraceBegin="2021-03-18T16:00:00+02:00" TraceDepartment="F&B" TraceEnd="2021-03-18T16:00:00+02:00">Trace Template 123</px:Trace>
<px:Trace TraceBegin="2021-03-19T16:00:00+02:00" TraceDepartment="F&B" TraceEnd="2021-03-19T16:00:00+02:00">Trace Template 123</px:Trace>
</px:Traces>
</px:ReservationExtensions>
</TPA_Extensions> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<px:TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:ProfileInfoExtensions>
<px:Traces>
<px:Trace TraceBegin="2017-09-01T00:00:00" TraceDepartment="Direction">Test-Trace</px:Trace>
</px:Traces>
</px:ProfileInfoExtensions>
</px:TPA_Extensions> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<px:TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:ProfileInfoExtensions>
<px:AccountingInfos ARNumber="223344" Tax1="222222" Tax2="333333" />
</px:ProfileInfoExtensions>
</px:TPA_Extensions> |
- For the HTNG_ChargePostingRQ in inbound messages deposit payments are now only processed in a KSV-compliant manner.
If packages ("Batches") are transmitted as well, a corresponding warning is then issued that no packages can be processed.
For payments to reservations in the future only the @SubTypeID "Deposit" can be used, we do not support @SubTypeID "Payment" for not checked in reservations.
language | xml |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Due to Spanish legal requirements (Police reports), we extend the TPA extensions in the Customer element with DocumentInfo for the support number of a Spanish documents. | PWS-3713 | 3.16.0 | |||||||
OTA_ProfileCreateRQ OTA_ProfileCreateRQ | inbound | OnPrem | no change in xml |
|
<Services>
<Service ID="RemoveAll" ID_Context="protelIO" Type="16"/>
</Services>
If Service/@ID="RemoveAll" is provided, then any bookable package/s that were attached to the reservation will be removed from it.
| With OnPrem version 23.060 and higher it is possible to send more than one document per profile. | PWS-3651 | 3.16.0 | |
OTA_HotelResNotifRQ OTA_ProfileCreateRQ OTA_ProfileCreateRQ | outbound / inbound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | LicensePlate
|
|
<RevenueDetails><RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-10.00" SubTypeID="Deposit"><Account ID="342451" Type="14" ID_Context="protelIO"/></RevenueDetail></RevenueDetails>
| Corrected the xml to follow the schema. | PWS-3711 | 3.16.0 | ||||||||||
ESB 323 | |||||||||||||
HTNG_ChargePostingRS | outbound | onPrem pAir | HTNG_ChargePostingRS | Errors | Error |
HTNG_HotelCheckOutNotifRQ
|
<htng:HTNG_HotelCheckOutNotifRQ xmlns:htng="http://htng.org/2014B" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:px="http://protel.io/htng/extensions" CorrelationID="IOTEC_4058_05" EchoToken="IOTEC_4058_05" RetransmissionIndicator="true" Version="1" PrimaryLangID="de-DE" Timestamp="2020-07-06T14:41:54">
<POS>
<Source TerminalID="Code2Order">
<RequestorID Type="10" ID="2787" ID_Context="protelIO"/>
</Source>
</POS>
<htng:Room RoomID="110"/>
<htng:HotelReservations>
<HotelReservation ResStatus="Checked out">
<UniqueID ID="198184" ID_Context="protelIO" Type="14"/>
</HotelReservation>
</htng:HotelReservations>
</htng:HTNG_HotelCheckOutNotifRQ>
| If no RS is generated by the PMS service within ~55 seconds, then:
! The RQ should not be automatically retried - the posting itself could have happened, yet for some reason - no RS could have been generated by the PMS service (e.g. fiscalization error). | IO-7390 | ESB 323 | |||||||||||
IPA 24.38
| ||||||||||||||
OTA_HotelResNotifRQ | inbound | pAir | no schema change | no schema change | Handling for CC-Cards
→ Important for Hotels → all possible inbound CardCodes needs to be configured in the System Data (if a vendor is sending "Mastercard (virtual credit card)" it needs to be configured in the SystemData) | IPA-1568 | 24.38 | |||||||
IPA 24.29
| ||||||||||||||
IO_SystemDataRS IO_ResModifyNotifRQ OTA_HotelResNotifRQ | outbound outbound outbound / inbound | pAir | no schema change | no schema change | If the new Xsetup (Guest Relation with Primary) is set for the relations of the guests to the main guest, the various GuestRelationTypes can be queried from the system data via IO_SystemDataRS and sent via IO_ResModifyNotifRQ and OTA_HotelResNotifRQ with the attribute @RelationToPrimary. | NGPR-8321 / IOTEC-5999 | 24.29 | |||||||
IPA 24.24
| ||||||||||||||
IO_InvoiceFiscalizeRQ IO_InvoiceFiscalizeNotifRQ | outbound | pAir | IO_InvoiceFiscalizeRQ | Invoice | AdditionalText |
| Due to the legal requirements in Romania, we are extend the invoice element with a new element for the additional text for invoices. | IPA-1367 | TBA | |||||||
IO_InvoiceFiscalizeRQ IO_InvoiceFiscalizeNotifRQ | outbound | pAir | IO_InvoiceFiscalizeRQ | Invoice | InvoiceFormat |
Codeblock | ||||
---|---|---|---|---|
| ||||
<ResGlobalInfo>
<HotelReservationIDs>
<HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="27" ResID_Value="345751"/>
<HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="14" ResID_Value="345752"/>
<HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="27" ResID_Value="345753"/>
<HotelReservationID ForGuest="true" ResID_Source="CRS" ResID_Type="14" ResID_Value="PL34575211910P"/>
</HotelReservationIDs>
</ResGlobalInfo> |
Any additionally reservation ID (e.g. from a different system) will be added only for the reservation the message is about with ResID_Type="14".
HTNG_ChargePostingRQ
HTNG_ChargePostingRQ | Posting | RevenueCenter | ID
Codeblock | ||||
---|---|---|---|---|
| ||||
<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="PWS_3462_14" CorrelationID="PWS_3462_14" TimeStamp="2021-03-18T11:32:36Z" Version="0">
<POS>
<Source xmlns="http://www.opentravel.org/OTA/2003/05">
<RequestorID ID="3153" Type="10" ID_Context="protelIO"/>
<BookingChannel Type="4" Primary="true"/>
</Source>
</POS>
<PropertyInfo HotelCode="3153"/>
<Posting ID="7">
<RevenueCenter Description="Kiosk" ID="99">
<Terminal ID="Kiosk"/>
</RevenueCenter>
<Transaction TicketID="120">
<RevenueDetails>
<RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-100" SubTypeID="Payment">
<Account ID="342443" Type="14" ID_Context="protelIO"/>
</RevenueDetail>
</RevenueDetails>
</Transaction>
</Posting>
</HTNG_ChargePostingRQ> |
|
<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" MaxResponses="1000" IsModify="true" AvailRatesOnly="true" CorrelationID="PWS_3382_107" Version="0" EchoToken="PWS_3382_107">
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
IO_StatsNotifRQ | Statistics
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
language | xml |
---|---|
collapse | true |
| Due to the legal requirements in Romania, we are expanding the invoice element with a new element for the invoice format for invoices. | IPA-1365 | TBA | ||||||||
IO_SystemDataRS | outbound | pAir | IO_SystemDataRS | SystemData | Accounting | InvoiceFormat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
px:FixedChargesAmountsExtensions
language | xml |
---|---|
collapse | true |
| Due to the legal requirements in Romania, we are expanding the Accounting element with a new element for the invoice format for invoices. | IPA-1365 | TBA | ||||||||||
IO_InvoiceFiscalizeRQ IO_InvoiceFiscalizeNotifRQ | outbound | pAir | no schema change | no schema change | no change in the Schema. To be legal in Portugal, an IO_InvoiceFiscalizeRQ needs to be triggered as soon as an Proforma or Info Invoice is created. | IPA-1345 | 24.24 | ||||||
IPA 24.20
| |||||||||||||
OTA_HotelResNotifRQOTA_HotelStayInfoNotifRQOTA_ResRetrieveRSHTNG_HotelCheckInNotifRQHTNG_HotelCheckOutNotifRQ | outbound | pAir | HotelReservation | ResGuests | ResGuest | TPA_Extensions | px:GuestStayExtensions | px:StayInfo @CheckedIn @CheckedOut |
|
|
|
|
|
|
|
|
|
New element TPA_Extensions will be added IF the respective rate has an exclusive fixed charge package.
The value of the FixedChargesAmountsExtensions | RateAmount | AmountAfterTax is NOT included in the Base/Total amounts and should NOT be used for OTA_HotelResNotifRQ to the PMS. This value has informative purpose to the walk-in guest - since the charge will be added automatically by the PMS logic during EOD.
OTA_HotelInvCountNotifRQ
pAir will no longer send in LIVE mode historical data changes related to inventory.
Historical data resync is achievable only through BULK job option.
| To be legal compliant for police reports we added new attributes in the StayInfo Element @CheckedIn = date and time for the logged checkin for the reservation @CheckedOut = date and time for the logged checkout for the reservation | IPA-1392 | 24.20 | |
OTA_HotelResNotifRQ | outbound / inbound | pAir | px:ReservationExtensions | px:ProcessingInstructions | px:ResGuests | @FullOverlay @Role |
Outbound
|
<CustLoyalty MembershipID="Mem-123456" RPH="11" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="Test" LoyalLevel="GOLD" SignupDate="2017-09-01" EffectiveDate="2017-09-01" ExpireDate="2017-09-01" ShareMarketInd="No" ShareSyncInd="No">
<SubAccountBalance Type="Points" Balance="200"/>
</CustLoyalty>
IPA-1169
| Extending the handling of list of profiles linked to a reservation:
! Caution - If the vendor does not have the intention to remove a profile from a reservation - then this element should not be sent inbound ! | IPA-1387 | 24.20 | ||||||||||
IPA 24.14
| |||||||||||||
IO_InvoiceFiscalizeRQ IO_InvoiceFiscalizeNotifRQ | outbound | pAir | IO_InvoiceFiscalizeRQ | Invoice |
|
<Calculation AmountAfterTax="10.00" AmountBeforeTax="8.06" Currency="EUR" InclusiveInd="false" FixedChargeInd="false" Recurrence="Daily" Relation="PerAdult">
<DaysOfWeek Fri="true" Mon="true" Sat="true" Sun="true" Thu="true" Tue="true" Wed="true"/>
</Calculation>
If @FixedChargeInd="false" then the package is "not a fixed charge".
Else if the @FixedChargeInd="true" then the package "is a fixed charge". This is extra cost to the accommodation amount - but unlike the "add to rate" packages, it should not be included in the inbound reservation total amount to the PMS.
Codeblock | ||||
---|---|---|---|---|
| ||||
<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="PWS_3462_14" CorrelationID="PWS_3462_14" TimeStamp="2021-03-18T11:32:36Z" Version="0">
<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>
<PropertyInfo HotelCode="2787"/>
<Posting ID="7">
<RevenueCenter Description="Kiosk" ID="99">
<Terminal ID="Kiosk"/>
</RevenueCenter>
<Transaction TicketID="120">
<RevenueDetails>
<RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-100" SubTypeID="Payment">
<Account ID="342443" Type="14" ID_Context="protelIO"/>
</RevenueDetail>
</RevenueDetails>
</Transaction>
</Posting>
</HTNG_ChargePostingRQ> |
IO_ResModifyNotifRQ
Codeblock | ||||
---|---|---|---|---|
| ||||
<IO_ResModifyNotifRQ xmlns="http://protel.io/soap" CorrelationID="" EchoToken="" PrimaryLangID="de-DE" Timestamp="2022-01-27T12:40:14" Version="1">
<Reservations HotelCode="2991">
<Reservation>
<UniqueID ID="20996" ID_Context="protelIO" Type="Reservation"/>
<Packages>
<Package Action="CREATE" Code="GuestLaundry" Recurrence="Daily">
<UniqueID ID="334" ID_Context="protelIO" Type="18"/>
</Package>
</Packages>
</Reservation>
</Reservations>
</IO_ResModifyNotifRQ> |
| Due to legal requirements in Portugal, we are expanding @SystemFiscalCode1 for ATCUD @SystemFiscalCode2 for NIF @SystemFiscalCode3 for SAFT | IPA-1350 | 24.14 | |||||||||||
IO_InvoiceFiscalizeRQ IO_InvoiceFiscalizeNotifRQ | outbound | pAir | IO_InvoiceFiscalizeRQ | Invoice | InvoiceRecipient | AccountingInfos |
| We extend the AccountingInfos with the attributes @FiscalUID @CompanyRegNumber | IPA-1380 | 24.14 | |||||||
IO_InvoiceFiscalizeNotifRQ IO_InvoiceFiscalizeRQ | outbound | pAir | IO_InvoiceFiscalizeRQ | Invoice | InvoiceRecipient | AccountingInfos |
| Due to legal requirements in Italy, we extend @PublicAdministrationInd @SplitPaymentInd | IPA-1363 | 24.14 | |||||||
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound inbound | pAir | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos |
| We extend the AccountingInfos with the attributes @FiscalUID @CompanyRegNumber | IPA-1377 IPA-1378 | 24.14 | |||||||
OTA_HotelResNotif | outbound inbound | pAir | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos |
|
<ns2:PaymentMethod Code="1005" Group="CC" ID="12" ID_Context="protelIO" IsAccountReceivable="false" Visible="true">
<ns2:Name Language="en_US">Mastercard</ns2:Name>
</ns2:PaymentMethod>
| We extend the AccountingInfos with the attributes @FiscalUID @CompanyRegNumber | IPA-1377 IPA-1378 | 24.14 | |
OTA_HotelStayInfoNotifRQ | outbound | pAir | OTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile |
| Customer | TPA_Extensions | px:ProfileInfoExtensions | px: |
AccountingInfos |
|
|
|
|
We extend the AccountingInfos with the attributes @FiscalUID @CompanyRegNumber | IPA-1377 | 24.14 | ||
IPA 24.12 |
|
|
|
|
|
OTA_ |
HotelResNotifRQ | outbound / inbound | pAir |
OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | TPA_Extensions | px:GuestStayExtensions | px:StayInfo |
|
| There is now a new function in the PMS so that the PrimaryInd= true attribute can be used to specify the profile of the leading company OR the travel agency within the same reservation. | IPA-1357 IPA-1358 | 24.12 | ||||||||||
IPA 24.08
| |||||||||||||
IO_SystemDataRS | outbound | pAir | IO_SystemDataRS | SystemData | Reservations | GuestRelationTypes | GuestRelationType |
|
|
|
|
|
|
|
|
|
|
|
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.
Currently:
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
<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:
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
<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)
HTNG_HotelRoomStatusSearchRQ
| Due to legal requirements in Spain, we are expanding the GuestRelationTypeselement with the attributes for the relationship types. | IPA-1353 | 24.08 | ||||||||||
IPA 24.02
| |||||||||||||
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound inbound | pAir | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos |
|
<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>
| Due to legal requirements in Italy, we extend @PublicAdministrationInd @SplitPaymentInd | IPA-1346 IPA-1339 | 24.02 | |||||||
OTA_HotelResNotif | outbound inbound | pAir | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos |
|
<?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>
| Due to legal requirements in Italy, we extend @PublicAdministrationInd @SplitPaymentInd | IPA-1346 IPA-1339 | 24.02 | |||||||||||
OTA_HotelStayInfoNotifRQ | outbound | pAir | OTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile| Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos |
| Due to legal requirements in Italy, we extend @PublicAdministrationInd @SplitPaymentInd | IPA-1339 | 24.02 | |||||||
OTA_HotelAvailNotifRQ | outbound inbound | pAir | OTA_HotelAvailNotifRQ | @MessageContentCode | no changes in xml - new values for MessageContentCode | We use the value 4 for the restrictions on rate group level. | IPA-1334 | 24.02 | |||||||
OTA_ResRetrieveRS | outbound | pAir | OTA_ResRetrieveRS | ReservationsList | HotelReservation | @GroupName ResGuests | ResGuest | TPA_Extensions | px:ReservationGroupExtensions | px:GroupInfo| @GroupName |
| Due to Italian legal requirements (Police reports and Tourism Statistics), we're extending the schema to be able to export information about groups: group name, group ID and group leader. On profile/resguest level, PrimaryInd="true" will be shown for the group leader profile, all other profiles of this group will be shown with PrimaryInd="false". | IPA-1040 | 24.02 |