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.
Affected Message | Direction from protel | PMS | Path | Example | Summary | Internal reference | Version | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TBA IDS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TBA PWS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_StatsNotifRQ | outbound | OnPrem | IO_StatsNotifRQ | Statistics |
| 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 |
| 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. | PWS-3372 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TBA IPA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPA 22.46 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelResNotifRQ | inbound | pAir | Rate | @CachedIndicator |
| 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_HotelAvailRQ | Inbound | pAir | OTA_HotelAvailRQ |
| @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 |
| 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPA 22.38 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_InvoiceFiscalizeNotifRQ | Outbound | pAir |
| 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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PWS 3.9.X IPA 22.36 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_SystemDataRS OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outboundinbound | onPremise | pAir | OTA IO_ ProfileCreateRQSystemDataRS | ProfileSystemData | CustomerRates | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | @BirthDateOTA_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
| 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 | PWS 3.9.X|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anker | PWS 3.9.X | PWS 3.9.X | IO_SystemDataRS | outbound | onPremise | IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup |@CategoryCode IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup |@CategoryID |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
OTA_ProfileModifyRQ
OTA_ProfileModifyRS
outbound
inbound
OTA_ProfileModifyRQ | POS | ProfileModify
OTA_ProfileModifyRS | Errors | Error
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
Current
Codeblock | ||||
---|---|---|---|---|
| ||||
<RoomTypeAllocations RoomTypePickUpStatus="X">
<RoomTypeAllocation End="2022-08-01" NumberOfUnits="1" Start="2022-08-01"/>
<RoomTypeAllocation End="2022-08-02" NumberOfUnits="1" Start="2022-08-02"/>
<RoomTypeAllocation End="2022-08-03" NumberOfUnits="0" Start="2022-08-03"/>
<RoomTypeAllocation End="2022-08-04" NumberOfUnits="0" Start="2022-08-04"/>
<RoomTypeAllocation End="2022-08-05" NumberOfUnits="0" Start="2022-08-05"/>
<RoomTypeAllocation End="2022-08-06" NumberOfUnits="3" Start="2022-08-06"/>
<RoomTypeAllocation End="2022-08-07" NumberOfUnits="0" Start="2022-08-07"/>
<RoomTypeAllocation End="2022-08-08" NumberOfUnits="0" Start="2022-08-08"/>
<RoomTypeAllocation End="2022-08-09" NumberOfUnits="0" Start="2022-08-09"/>
<RoomTypeAllocation End="2022-08-10" NumberOfUnits="0" Start="2022-08-10"/>
</RoomTypeAllocations> |
Expected
Codeblock | ||||
---|---|---|---|---|
| ||||
<RoomTypeAllocations RoomTypePickUpStatus="X">
<RoomTypeAllocation End="2022-08-02" NumberOfUnits="1" 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> |
RoomTypeAllocation blocks will be grouped for consecutive dates per @NumberOfUnits. This will result in a shorter message. No schema change. Valid for all @RoomTypePickUpStatus supported.
HTNG_HotelFolioNotifRQ
HTNG_HotelFolioRS
outbound
inbound
HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | FolioIDs | FolioID
or/and
HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | RevenueDetailItems | RevenueDetailItem | FolioIDs | FolioID
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
Codeblock | ||||
---|---|---|---|---|
| ||||
<OTA_ProfileModifyRQ>
<ProfileModify>
<TPA_Extensions>
<px:ProfileInfoExtensions>
<px:PersonInfos> <px:Salutation ID="1" ID_Context="protelIO" Type="Salutation">Dear Mrs. and Miss. Mustermann</px:Salutation> |
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
Codeblock | ||||
---|---|---|---|---|
| ||||
<OTA_ProfileModifyRQ>
<ProfileModify>
<TPA_Extensions>
<px:ProfileInfoExtensions>
<px:PersonInfos>
<px:Language DefaultInd="true">en-us</px:Language> |
OTA_ReadRQ | ReadRequests | HotelReadRequest | TPA_Extensions | px:ReadRequestExtensions | px:Room | @RoomID
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
OTA_HotelRatePlanNotifRQ
OnPremise
pAir
OTA_HotelRatePlanNotifRQ | RatePlans | RatePlan | Rates | Rate | AdditionalGuestAmounts | AdditionalGuestAmount | @TaxInclusive
OTA_HotelRatePlanNotifRQ | RatePlans | RatePlan | Rates | Rate | AdditionalGuestAmounts | AdditionalGuestAmount | Taxes | @Amount
OTA_HotelRatePlanNotifRQ | RatePlans | RatePlan | Rates | Rate | AdditionalGuestAmounts | AdditionalGuestAmount | Taxes | @CurrencyCode
Codeblock | ||||
---|---|---|---|---|
| ||||
<AdditionalGuestAmounts>
<AdditionalGuestAmount AgeQualifyingCode="7" Amount="18.18" CurrencyCode="EUR" MaxAge="3" MinAge="0" TaxInclusive="false">
<Taxes Amount="1.82" CurrencyCode="EUR"/>
</AdditionalGuestAmount> |
OnPremise
pAir
OTA_HotelRateAmountNotifRQ | RatePlans | RatePlan | Rates | Rate | AdditionalGuestAmounts | AdditionalGuestAmount | @TaxInclusive
OTA_HotelRateAmountNotifRQ | RatePlans | RatePlan | Rates | Rate | AdditionalGuestAmounts | AdditionalGuestAmount | Taxes | @Amount
OTA_HotelRateAmountNotifRQ | RatePlans | RatePlan | Rates | Rate | AdditionalGuestAmounts | AdditionalGuestAmount | Taxes | @CurrencyCode
Codeblock | ||||
---|---|---|---|---|
| ||||
<AdditionalGuestAmounts>
<AdditionalGuestAmount AgeQualifyingCode="7" Amount="18.18" CurrencyCode="EUR" MaxAge="3" MinAge="0" TaxInclusive="false">
<Taxes Amount="1.82" CurrencyCode="EUR"/>
</AdditionalGuestAmount> |
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | Customer | PersonName | MiddleName
OTA_ProfileModifyRQ | ProfileModify | Customer | PersonName | MiddleName
Codeblock | ||||
---|---|---|---|---|
| ||||
<Customer BirthDate="1980-01-01" Gender="Female">
<PersonName>
<GivenName>Doodi</GivenName>
<MiddleName>Jacksonn</MiddleName>
<Surname>Joness</Surname>
</PersonName>
<Email DefaultInd="true" EmailType="1" ShareMarketInd="No">xgomez+892372@civitfun.com</Email>
<Address DefaultInd="true" FormattedInd="false" ShareMarketInd="No" Type="1" UseType="6">
<AddressLine>Calle Dos 2</AddressLine>
<CityName>Palma</CityName>
<StateProv>Islas Baleares</StateProv>
<CountryName Code="ES">Spain</CountryName>
</Address>
<CitizenCountryName Code="ES" DefaultInd="true"/>
<Document DocID="99999999R" DocType="5" EffectiveDate="2015-01-01" ExpireDate="2024-12-31"/>
<EmployerInfo CompanyShortName="" Department=""/>
</Customer> |
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile
OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Remove the existing TPA_Extensions
Codeblock | ||||
---|---|---|---|---|
| ||||
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<Master MasterAccountID="181579"/>
</TPA_Extensions> |
And add the new official XSD TPA_Extensions "px:ParentProfile "
OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | Guarantee
Codeblock | ||||
---|---|---|---|---|
| ||||
<Guarantee GuaranteeType="CC/DC/Voucher">
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard CardCode="MC" CardType="1" EncryptionKey="hOSJucTz-9QDE-KKKE-qiTa-af8X4oOiNVG" ExpireDate="0123" MaskedCardNumber="XXXXXXXXXXXX5100">
<CardHolderName>AT</CardHolderName>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee> |
RatePlanGroups | RatePlanGroup |@CategoryCode
IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup |@CategoryID
HTNG_ChargePostingRQ
HTNG_ChargePostingRQ | Posting | Transaction | RevenueDetails | RevenueDetail | Account
Codeblock | ||||
---|---|---|---|---|
|
<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> |
OTA_ProfileModifyRQ
OTA_ProfileModifyRS
outbound
inbound
OTA_ProfileModifyRQ | POS | ProfileModify
OTA_ProfileModifyRS | Errors | Error
IO_RatePackageNotifRQ | Packages | Package | Validity
IO_RatePackageNotifRQ | Packages | Package | PackageItem | ValidityCodeblock | ||||
---|---|---|---|---|
|
<Validity From="1990-01-01" To="2050-01-01"/>
<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