Affected Message | Direction from protel | PMS | Path | Example | Summary | Internal reference | Version |
---|
TBA IDS |
OTA_HotelRatePlanNotifRQ | outbound | IDS | Rates / Rate / BaseByGuestAmts / BaseByGuestAmt |
<Rates>
<Rate RateTier="Active" Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" Start="2021-11-23" End="2021-11-23" CurrencyCode="EUR" InvTypeCode="50">
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="90.48" AmountAfterTax="95.00" NumberOfGuests="1" AgeQualifyingCode="10"/>
</BaseByGuestAmts>
</Rate>
| Extend the cnfiguration to enable sending both Amount Before and After tax per adult calculation OTA_HotelRatePlanNotifRQ/ .. /BaseByGuestAmt | 1..n | Description |
---|
/@AmountBeforeTax | 0..1 | The total amount excluding all associated taxes (e.g., sales tax, VAT, GST or any associated tax). | /@AmountAfterTax | 0..1 | The total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax). |
| IDS-331 | TBA |
TBA PWS |
OTA_HotelInvBlockNotifRQ | inbound | OnPrem | no changes in XML |
| To re-instate a cancelled block you can now send a request with TransactionAction="Modify" in combination with InvBlockStatusCode="5" and BookingStatus="Closed". | PWS-2690 |
|
OTA_HotelInvCountNotifRQ | outbound | OnPrem | no changes in XML |
| Send Delta inventory changes | PWS-112 |
|
IO_SystemDataRS | outbound | OnPrem | IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup | Description |
| Add the Description to the RatePlanGroup | PWS-2692 |
|
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound | onPrem | OTA_ProfileCreateRQ | Profile | TPA_Extenstion | UserDefinedFieldExtensions |
| Add the UDF to the TPA_Extension | PWS-2704 |
|
|
|
|
|
|
|
|
|
TBA IPA |
|
|
|
|
|
|
|
|
PWS 3.2 |
OTA_ProfileModifyRQ OTA_ProfileCreateRQ OTA_ProfileMergeRQ | outbound | OnPrem | TPA_Extensions | ProfileInfoExtensions | StatisticalInfos | @Source |
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:ProfileInfoExtensions>
<px:Salutation ID="1" ID_Context="protelIO" Type="Salutation" Value="Dear Mr. KSV" />
<px:StatisticalInfos Source="Fair & Exhibition Contact" />
</px:ProfileInfoExtensions>
</TPA_Extensions>
| Implement the elemet and attribute of StatisticalInfos in profile outbound to hold the value of sales source of the guests. | PWS-2679 |
|
IO_SystemDataRS | outbound | OnPrem |
|
| Implement the SystemData Msg for OnPrem | PWS-2222 | PWS 3.2.X |
IPA 21.22 |
HTNG_HotelFolioNotifRQ HTNG_HotelFolioRS | outbound | pAir | no changes in XML |
| Routing instructions are now reflected in RevenueDetails for RevenueForecast. | IPA-885 | 21.22 |
IPA 21.20 |
OTA_HotelStatsNotifRQ | outbound | pAir | no changes in XML |
| The message contains the following FiscalDates: - px:POSExtensions | HotelInfo | @FiscalDate = Current Business date in PMS
- Statistics | Statistic | @FiscalDate = always the date the last End of Day process has been done for (last completed business day)
| IPA-888 | 21.20 |
|
IO_InvoiceFiscalizeRQ | outbound | pAir | IO_InvoiceFiscalizeRQ | Invoice | @FiscalCodeID |
<p:IO_InvoiceFiscalizeRQ>
<p:Invoice FiscalCode="29" FiscalCodeID="10" FiscalCodeName="Fiscal_test" ">
| Add the Attribute @FiscalCodeID to the Element Invoice | IPA-825 | IPA 21.16 |
|
OTA_HotelAvailRQ | Inbound | pAir | OTA_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-791 | IPA 21.12 |
IDS 5.418 |
OTA_HotelResNotifRQ | Inbound | IDS | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | Profiles |ProfileInfo | Profile | Customer | CustLoyalty |
<CustLoyalty ProgramID="GHA" MembershipID="" RPH="3678116" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="ALS" Remark="" LoyalLevel="GOLD" SignupDate="2017-06-21" EffectiveDate="2017-06-21" ExpireDate="2017-08-21" ShareMarketInd="No" ShareSyncInd="No">
<SubAccountBalance Balance="0" />
</CustLoyalty>
| The value of ProgramID for an incoming reservation should be stored in the proper field in the PMS as Program ID in the guest Loyalty Program window.
The following xSetup is needed: profiles - enable_loyalty_cards = 1 | IDS-274 | IDS 5.418 |
|
|
|
|
|
|
|
|
OTA_HotelResNotifRQ | outbound | pAir | no 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-749 | 21.10 |
HTNG_HotelFolioNotifRQ | Outbound | pAir | no changes in XML |
| EOD will produces HTNG_HotelFolioNotifRQ messages because charges were posted to inhouse reservations. | IPA-815 | 21.10 |
HTNG_ChargePostingRQ | inbound | pAir | 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_ProfileModifyRQ | inbound | pAir | 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 - Ignore empty incoming lists of attached records (to avoid unwanted deletions)
- Don't remove existing attached records (to avoid unwanted deletions)
- Add new record for records from the message, if value can't be found
| IPA-818 | IPA 21.10 |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Outbound | pAir | 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 Msg | IPA-807 | IPA 21.10 |
|
|
|
|
|
|
|
|
IO_SystemDataRS | Outbound | pAir | IO_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>
| - Changed element name from Result to SystemData
- Elements Errors / Success / Warnings moved up one level from IO_SystemDataRS | Result | Success (Errors, Warnings) to IO_SystemDataRS | Success (Errors, Warnings)
| IO-6063 |
|
|
HTNG_ChargePostingRQ | inbound | OnPrem | no changes in xml |
| If Posting/Transaction/RevenueDetails/RevenueDetail @Description is provided, PWS will use it to fill leist.zustext. If there is no description delivered, PWS will use zahlart.bez for SubTypeID="Payment" and ukto.bez for SubTypeID="Revenue". For Deposit the description is not used. | PWS-2441 | PWS 3.1.X |
OTA_ProfileModifyRS | outbound | OnPrem | no changes in XML |
...
<Success/>
<Warnings>
<Warning ShortText="Missing Configuration for OtaTab in mpe 0: Collection: PropertyAmenityPref,CodeValue: 61, CodeList: HAC
Missing Configuration for OtaTab in mpe 0: Collection: RoomAmenityPref, CodeValue: 16, CodeList: RMA" Code="172" Type="3">Missing Configuration for OtaTab in mpe 0: Collection: PropertyAmenityPref, CodeValue: 61, CodeList: HAC Missing Configuration for OtaTab in mpe 0: Collection: RoomAmenityPref, CodeValue: 16, CodeList: RMA</Warning>
</Warnings>
...
| Add Warning elements for missing OTA mappings | PWS-2551 | PWS 3.1.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound | OnPrem | Profile | TPA_Extensions | px:ProfileInfoExtensions | Traces | Trace Profile | TPA_Extensions | px:ProfileInfoExtensions | Traces | Trace | @TraceBegin
|
<px:ProfileInfoExtensions>
<px:Traces>
<px:Trace TraceBegin="2018-09-20T00:00:00" TraceDepartment="Restaurant">Allergiker!</px:Trace>
<px:Trace TraceBegin="2018-09-20T00:00:00" TraceDepartment="Housekeeping">Zweites Kissen</px:Trace>
</px:Traces>
</px:ProfileInfoExtensions>
| Corrected the xml structure for traces to fit the XSD. Changed TraceDate and TraceTime to TraceBegin and added Trace element inside Traces element. | PWS-2597 | PWS 3.1.3 |
HTNG_HotelCheckInNotifRQ | Inbound | OnPrem | - HTNG_HotelCheckInNotifRQ|@RetransmissionIndicator
- HTNG_HotelCheckInNotifRQ|HotelReservation@ResStatus
|
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Body>
<htng:HTNG_HotelCheckInNotifRQ xmlns:htng="http://htng.org/2014B" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:px="http://protel.io/htng/extensions" CorrelationID="IPA_798_02" EchoToken="IPA_798_02" Version="1" Timestamp="2020-07-23T14:58:16Z" RetransmissionIndicator="true">
<POS>
<Source>
<RequestorID ID="2787" Type="10" ID_Context="protelIO"/>
<BookingChannel Type="4" Primary="true"/>
</Source>
</POS>
<htng:Room RoomID=""/>
<htng:HotelReservations>
<HotelReservation ResStatus="Reserved">
<UniqueID ID="1742" ID_Context="protelIO" Type="14"/>
</HotelReservation>
</htng:HotelReservations>
</htng:HTNG_HotelCheckInNotifRQ>
</env:Body>
</env:Envelope>
| Extend the functionality, allow to void a check-in. Needed Attributes - HTNG_HotelCheckInNotifRQ|@RetransmissionIndicator = "true "
- HTNG_HotelCheckInNotifRQ|HotelReservation@ResStatus = "Reserved"
| PWS-2508 | PWS 3.1.X |
OTA_HotelInvBlockNotifRQ | outbound | OnPrem | OTA_HotelInvBlockNotifRQ | InvBlocks | Contacts | Contact |
<InvBlocks>
<InvBlock>
<Contacts>
<Contact ContactType="Company" RPH="5">
<CompanyName>protel hotelsoftware GmbH</CompanyName>
</Contact>
</Contacts>
</InvBlock>
</InvBlocks>
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:ProfileInfoExtensions>
<px:ContactDetails>
<px:AdditionalInfo>
<px:Entry RPH="3" ID="36866" ID_Context="protelIO" Type="4" DefaultInd="true">protel hotelsoftware GmbH</px:Entry>
</px:AdditionalInfo>
</px:ContactDetails>
</px:ProfileInfoExtensions>
<InvBlockExtensions>
<InvBlockID ID="8" ID_Context="protelIO" Type="18"/>
</InvBlockExtensions>
</TPA_Extensions>
| Extend the Element Entry with the Attribute @RPH | PWS-2626 | PWS 3.1.X |
OTA_HotelInvBlockNotifRQ | inbound/outbound | OnPrem | OTA_HotelInvBlockNotifRQ | InvBlocks | Contacts | Contact | @ContactType |
<OTA_HotelInvBlockNotifRQ>
<InvBlocks>
<InvBlock>
<Contact ContactType="Travel Agency" RPH="2">
<CompanyName>Travel Agent</CompanyName>
</Contact>
<Contact ContactType="Wholesaler" RPH="3">
<CompanyName>Wholesaler</CompanyName>
</Contact>
<Contact ContactType="Group" RPH="4">
<CompanyName>Group</CompanyName>
</Contact>
<Contact ContactType="Company" RPH="5">
<CompanyName>Company</CompanyName>
</Contact>
<Contact ContactType="Customer">
<PersonName>
<Surname>Customer</Surname>
</PersonName>
</Contact>
| Modify the Values for the ContactType, use the following - Customer
- Company
- Traven Agency
- Wholesaler
- Group
| PWS-2621 | PWS 3.1.X |
OTA_ReadRQ | outbound | OnPrem | OTA_ReadRQ | ReadRequests | ReadRequest | Customer | Telephone |
<?xml version='1.0' encoding='utf-8'?>
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="BusinessCase8" Version="0" MaxResponses="20">
<POS>
<Source>
<RequestorID ID="2570" Type="10" ID_Context="protelIO"/>
</Source>
</POS>
<ReadRequests>
<ProfileReadRequest ProfileTypeCode="1">
<Customer>
<PersonName>
<Surname>Maus</Surname>
</PersonName>
<Telephone PhoneNumber="01122233344456"/>
</Customer>
</ProfileReadRequest>
</ReadRequests>
</OTA_ReadRQ>
| Extend the ReadRQ with the Element <Telephone> | PWS-2583 | PWS 3.1.X |
HTNG_HotelCheckInNotifRQ | inbound | OnPrem | no changes in XML |
| Extend the Check-In for DayUse Reservation | PWS-2509 | PWS 3.1.X |
HTNG_HotelCheckOutNotifRS | Outbound | OnPrem | no changes in XML |
| If HTNG_HotelCheckOutNotifRS contained some errors, the error details would be shown in IFC error message in OnPrem. | PWS-2128 | PWS 3.1.X |
OTA_ReadRQ/OTA_ResRetrieveRS | Inbound | OnPrem | root |
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<htng:CorrelationID xmlns:htng="http://htng.org/PWSWG/2007/02/AsyncHeaders">PWS_667_08</htng:CorrelationID>
</env:Header>
<env:Body>
<OTA_ReadRQ CorrelationID="PWS_667_08" EchoToken="PWS_667_08" MaxResponses="2" TimeStamp="2019-06-10T19:10:00Z" xmlns="http://www.opentravel.org/OTA/2003/05">
<POS>
<Source>
<RequestorID ID="3153" Type="10" ID_Context="protelIO"/>
<BookingChannel Type="4" Primary="true"/>
</Source>
</POS>
<ReadRequests>
<HotelReadRequest>
<SelectionCriteria Start="2017-07-01" End="2017-07-03" ResStatus="Reserved"/>
</HotelReadRequest>
</ReadRequests>
</OTA_ReadRQ>
</env:Body>
</env:Envelope>
| OTA_ReadRQ / @MaxResponses. Deliver only the specified number in the response. | PWS-667 | PWS 3.1.X |
OTA_ResRetrieveRS | Outbound | OnPrem | no changes in XML |
...
<Customer Gender="Unknown" BirthDate="1900-01-01" Language="ENG">
<PersonName>
<NamePrefix/>
<GivenName>hasan</GivenName>
<MiddleName/>
<Surname>karami</Surname>
</PersonName>
<Telephone PhoneNumber="0231555666" PhoneLocationType="6" PhoneTechType="1" DefaultInd="true"/>
<Telephone PhoneNumber="09122225556" PhoneLocationType="10" PhoneTechType="5" DefaultInd="true"/>
<Telephone PhoneNumber="0231999888" PhoneLocationType="6" PhoneTechType="3" DefaultInd="true"/>
<Address FormattedInd="false" Type="1" DefaultInd="true">
<StateProv/>
<CountryName Code="DE">Germany</CountryName>
</Address>
<CitizenCountryName DefaultInd="true" Code="DE"/>
<Document DocID="123456" DocType="2" ExpireDate="2025-10-10"/>
</Customer>
...
| The following issue has solved: - Document element doesn't multiply by the language codes
- Values for EffectiveDate and ExpireDate should not be displayed if they are default values
- For other search criteria like Date range with reservation status request, all possible combinations of Telephone element display.
| PWS-2528 | PWS 3.1.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Inbound | OnPrem | Vip codes OTA_ProfileCreateRQ | Profile | TPA_Extensions | ProfileInfoExtensions | VipCodes | Code OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | ProfileInfoExtensions | VipCodes | Code
Marketing codes OTA_ProfileCreateRQ | Profile | TPA_Extensions | ProfileInfoExtensions | MarketingCodes | Code OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | ProfileInfoExtensions | MarketingCodes | Code
|
<OTA_ProfileModifyRQ>
<UniqueID Type="1" ID="220441" ID_Context="protelIO"/>
<ProfileModify ProfileType="1" LastModifyDateTime="2020-09-16T13:13:15" ShareAllOptOutInd="No" CreatorId="protelIO" LastModifierID="dailypoint">
| Extend the inbound Profile Message to import inbound Vip and Marketing Code | PWS-2373 | PWS 3.1.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Inbound | OnPrem | OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | SubAccountBalance | @Balance OTA_ProfileModifyRQ | ProfileModify | | Customer | CustLoyalty | SubAccountBalance | @Balance |
CustLoyalty ProgramID="4444" MembershipID="4444" RPH="4" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="GHA" Remark="" LoyalLevel="PLATINUM" SignupDate="2019-05-17" EffectiveDate="2019-05-18" ExpireDate="2019-05-18" ShareMarketInd="No" ShareSyncInd="No">
<SubAccountBalance Type="Type1" Balance="50"/>
</CustLoyalty>
| Extend the inbound Profile Message to import inbound the value of the Balance of a Loyalty Card | PWS-2388 | PWS 3.1.X |
OTA_ResRetrieveRS | Outbound | OnPrem | OTA_ResRetrieveRS | Succes |
<Success/>
<Warnings>
<Warning ShortText="No reservation found for id: 345521"/>
</Warnings>
<ReservationsList/>
| Currently if no result is found for a Reservation LookUp the PWS is sending a "Error + Warning" we will modifiy this to "Success+Warning" | PWS-1323 | PWS 3.1.X |
OTA_HotelAvailRQ | Inbound | OnPrem | OTA_HotelAvailRQ | AvailRequestSegments | AvailRequestSegment | HotelSearchCriteria | Criterion | RoomStayCandidates | RoomStayCandidates |
<Criterion>
<StayDateRange End="2020-01-05" Start="2020-01-01"/>
<RoomStayCandidates>
<RoomStayCandidate RoomTypeCode="1BR">
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
</GuestCounts>
<RoomAmenity RoomAmenity="1"/>
</RoomStayCandidate>
<RoomStayCandidate RoomTypeCode="FCA">
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
</GuestCounts>
<RoomAmenity RoomAmenity="1"/>
</RoomStayCandidate>
</RoomStayCandidates>
</Criterion>
| Search for multiple RoomTypeCode is possible | PWS-1321 | PWS 3.1.X |
IO_StatsNotifRQ | outbound | OnPrem | no changes in XML |
| Add a config, to configure the days in the after EOD report | PWS-2519 | PWS 3.1.X |
OTA_HotelAvailRS | outbound | OnPrem | no changes in XML |
| If the inbound OTA_HotelAvailRQ contains filters for a floor, the RS will now only show rooms for the requested floor. | PWS-709 | PWS 3.1.X |
HTNG_ChargePostingRS | outbound | OnPrem | no changes in XML |
| For posted payments or revenue to a reservation ID the RS will hold a warning element if the payment / revenue was posted to a different folio window. If there are already folio windows closed for this reservation, the PWS will try to post the payment/revenue to the next free folio window. The RS will hold the used folio window in the warning element. | PWS-2427 | PWS 3.1.X |
OTA_HotelAvailRS | outbound | OnPrem | no changes in XML |
| If the inbound OTA_HotelAvailRQ contains filters for RoomIDs, the RS will now only show these roomIDs. | PWS-1320 | PWS 3.1.X |
PWSOTA_HotelAvailRQ | inbound | OnPrem | OTA_HotelAvailRQ | @MaxResponses |
<OTA_HotelAvailRQ EchoToken="EchoToken_String" HotelStayOnly="true" ExactMatchOnly="false" TimeStamp="2018-12-03T09:30:47Z" Version="5.000" Target="Test" MaxResponses="5" xmlns="http://www.opentravel.org/OTA/2003/05">
<POS>
<Source>
<RequestorID Type="10" ID_Context="protelIO" ID="3152"/>
</Source>
</POS>
<AvailRequestSegments>
<AvailRequestSegment AvailReqType="Room">
<HotelSearchCriteria>
<Criterion>
<StayDateRange End="2018-11-11" Start="2018-11-10"/>
<RoomStayCandidates>
<RoomStayCandidate RoomTypeCode="EZ">
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
</GuestCounts>
</RoomStayCandidate>
</RoomStayCandidates>
</Criterion>
</HotelSearchCriteria>
</AvailRequestSegment>
</AvailRequestSegments>
<HotelReservationIDs>
</HotelReservationIDs>
</OTA_HotelAvailRQ>
| Limits the number of responses (elements in TPA_Extensions | AvailabilityExtensions | RoomAvailable) in OTA_HotelAvailRS | PWS-1319 | PWS 3.1.X |
OTA_HotelRatePlanNotifRS | outbound | OnPrem | OTA_HotelRatePlanNotifRS | RatePlanCrossRefs | @RequestRatePlanCode OTA_HotelRatePlanNotifRS | RatePlanCrossRefs | @ResponseRatePlanCode |
<OTA_HotelRatePlanNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2021-02-17T11:12:36Z" Version="3.000" CorrelationID="PWS-636-SR3" EchoToken="PWS-636-SR3">
<Success/>
<RatePlanCrossRefs RequestRatePlanCode="Test" ResponseRatePlanCode="Test"/>
</OTA_HotelRatePlanNotifRS>
| Added the element RatePlanCrossRefs with attributes @RequestRatePlanCode and @ResponseRatePlanCode to the RS message. | PWS-636 | PWS 3.1.X |
OTA_HotelAvailRQ | inbound | OnPrem | OTA_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)
| PWS-2382 | PWS 3.1.X |
OTA_HotelResNotifRQ | Outbound | OnPrem | no changes in the XML |
| Moving a reservation from an IO activated property to a non-IO activated property, trigger an OTA_HotelResNotifRQ message containing ResStatus="cancelled". | PWS-2514 | PWS-3.1.X |
OTA_HotelAvailRS | Outbound | OnPrem | OTA_HotelAvailRS | Errors | Error | @Type OTA_HotelAvailRS | Errors | Error | @RecordID OTA_HotelAvailRS | Warnings | Warning | @Type OTA_HotelAvailRS | Warnings | Warning | @RecordID |
<env:Body>
<OTA_HotelAvailRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2021-02-15T09:42:06.6389245Z" Version="3.000" CorrelationID="PWS_695_05" EchoToken="PWS_695_05">
<Errors>
<Error ShortText="The given date range is invalid." Code="321" RecordID="PWS_695_05" Type="10"/>
</Errors>
</OTA_HotelAvailRS>
</env:Body>
| Add the Attribute @Type and @RecordID to the OTA_HotelAvailRS | PWS-695 | PWS-3.1.X |
OTA_HotelInvBlockNotifRS | Outbound | OnPrem | OTA_HotelInvBlockNotifRS | Errors | Error | @Type OTA_HotelInvBlockNotifRS | Errors | Error | @RecordID OTA_HotelInvBlockNotifRS | Errors | Error | @ShortText OTA_HotelInvBlockNotifRS | Warnings | Warning | @Type OTA_HotelInvBlockNotifRS | Warnings | Warning | @RecordID OTA_HotelInvBlockNotifRS | Warnings | Warning | @ShortText |
<env:Body>
<OTA_HotelInvBlockNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2021-02-12T13:19:45Z" Version="1.000" CorrelationID="PWS_498_26" EchoToken="PWS_498_26">
<Errors>
<Error ShortText="Invalid RoomType CBR22! " Code="321" RecordID="PWS_498_26" Type="3">Invalid RoomType CBR22! </Error>
</Errors>
</OTA_HotelInvBlockNotifRS>
</env:Body>
| Add the Attribute @Type, @RecordID and @ShortText to the OTA_HotelAvailRS | PWS-489 | PWS-3.1.X |
HTNG_HotelCheckOutNotifRS | Outbound | OnPrem | HTNG_HotelCheckOutNotifRS | Errors | Error | @Type HTNG_HotelCheckOutNotifRS | Warnings | Warning | @Type |
...
<HTNG_HotelCheckOutNotifRS xmlns="http://htng.org/2014B" TimeStamp="2021-02-11T15:31:55.8228677Z" Version="3.000" CorrelationID="PWS_1167_01" EchoToken="PWS_1167_01">
<Errors>
<Error ShortText="CheckOut failed. Could not check out" Code="321" RecordID="341570" Type="10"/>
</Errors>
</HTNG_HotelCheckOutNotifRS>
...
| Add the Attribute @Type to the HTNG_HotelCheckOutNotifRS | PWS-1167 | PWS-3.1.X |
OTA_ProfileCreateRQ | Inbound | OnPrem | no changes in the XML |
| PWS stop modifying the profile in case of income ProfileCreateRQ for already existing profileID and send back Error. | PWS-2504 | PWS-3.1.X |
HTNG_HotelCheckInNotifRS | Outbound | OnPrem | HTNG_HotelCheckInNotifRS / Errors / Error HTNG_HotelCheckInNotifRS / Warnings/ Warning |
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<htnga:CorrelationID xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders">PWS_1047</htnga:CorrelationID>
<Source xmlns="http://protel.io/soap" Product="protel On Premise SPE" ProductVersion="21.04000" Module="protel.WebServices" ModuleVersion="0.0.0.9181" Service="io.protel.OnPremise"/>
</env:Header>
<env:Body>
<HTNG_HotelCheckInNotifRS xmlns="http://htng.org/2014B" TimeStamp="2021-02-09T12:14:25.4729816Z" Version="3.000" CorrelationID="PWS_1047" EchoToken="PWS_1047">
<Errors>
<Error ShortText="Can't check in, the room is dirty." Code="321" RecordID="341562" Type="10"/>
</Errors>
</HTNG_HotelCheckInNotifRS>
</env:Body>
</env:Envelope>
| @Type attribute is added to the Error / Warning in HTNG_HotelCheckInNotifRS outbound. | PWS-1047 | PWS-3.1.X |
OTA_HotelInvBlockNotifRS | Outbound | OnPrem | OTA_HotelInvBlockNotifRS | InvBlockCodeRefs | InvBlockCodeRef |
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<htnga:CorrelationID xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders">PWS_498_21</htnga:CorrelationID>
<Source xmlns="http://protel.io/soap" Product="protel On Premise SPE" ProductVersion="21.04000" Module="protel.WebServices" ModuleVersion="0.0.0.9133" Service="io.protel.OnPremise"/>
</env:Header>
<env:Body>
<OTA_HotelInvBlockNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2021-02-08T11:07:56Z" Version="1.000" CorrelationID="PWS_498_21" EchoToken="PWS_498_21">
<Success/>
<InvBlockCodeRefs>
<HotelRef HotelCode="3153"/>
<InvBlockCodeRef InvBlockCode="202" InvSystemInvBlockCode="1"/>
</InvBlockCodeRefs>
</OTA_HotelInvBlockNotifRS>
</env:Body>
</env:Envelope>
| Adding Attribute @InvSystemInvBlockCode to outbound OTA_HotelInvBlockNotifRS . The value of this attribute is equal to RPH of the attached profile to the allotment. | PWS-498 | PWS-3.1.X |
HTNG_HotelFolioRS | Outbound | OnPrem | HTNG_HotelFolioRS | UniqueID |
<HTNG_HotelFolioRS xmlns="http://htng.org/2014B" TimeStamp="2021-02-05T16:14:09.1192388Z" Version="3.000" CorrelationID="PWS_811_01" EchoToken="PWS_811_01" Target="Test" TransactionStatusCode="Start" RetransmissionIndicator="false">
<UniqueID Type="14" ID="341373" ID_Context="protelIO"/>
<Success/>
<Folios>
...
| UniqueID element with it's attributes added to HTNG_HotelFolioRS outbound. | PWS-811 | PWS-3.1.X |
OTA_ReadRQ | Inbound | OnPrem | OTA_ReadRQ | @ReturnListIndicator |
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" ReturnListIndicator="true" CorrelationID="123456789">
| Implement a WildCard Search - @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)
| PWS-2400 | PWS-3.1.X |
OTA_HotelAvailNotifRS | Outbound | OnPrem | OTA_HotelAvailNotifRS | UniqueID |
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<htnga:CorrelationID xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders">2d229478-326d-a6f8-e3a6-190e618596cd</htnga:CorrelationID>
<Source xmlns="http://protel.io/soap" Product="protel On Premise SPE" ProductVersion="21.04000" Module="protel.WebServices" ModuleVersion="0.0.0.9153" Service="io.protel.OnPremise"/>
</env:Header>
<env:Body>
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2021-02-01T09:59:11Z" Version="3.000" CorrelationID="2d229478-326d-a6f8-e3a6-190e618596cd">
<UniqueID Type="10" ID="3153" ID_Context="protelIO"/>
<Success/>
<Warnings>
<Warning ShortText="Unable to process" Code="450" Type="10">No restrictions found for deletion! No existing restriction with single definition for roomType 5!</Warning>
<Warning ShortText="Unable to process" Code="450" Type="10">No restrictions found for deletion! No existing restriction with single definition for roomType 5!</Warning>
</Warnings>
</OTA_HotelAvailNotifRS>
</env:Body>
</env:Envelope>
| Adding UniqueID Element to the OTA_HotelAvailNotifRS outbound. | PWS-587 | PWS-3.1.X |
IPA 21.06 |
HTNG_HotelFolioNotifRQ | Outbound | pAri | HTNG_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-796 | 21.06 |
IO_StatsNotifRQ | Outbound | pAir | no changes in the XML | | ReportCode value changed to the "Genius_PastDailyRoomTypeStatistics_v1" for the past reports triggering via API call. | IPA-792 | 21.06 |
IO_StatsNotifRQ | Outbound | pAir | IO_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-793 | 21.06 |
OTA_HotelStayInfoNotifRQ | Outbound | pAir | OTA_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-759 | 21.06 |
HTNG_ChargePostingRQ | Inbound | pAir | no 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 receivable | IPA-777 | 21.06 |
|
OTA_ProfileCreateRQ OTA_ProfileModifyRQ OTA_ProfileReadRS OTA_HotelResNotifRQ HNTG_HotelFolioNotifRQ HNTG_FolioNotifRQ | outbound | OnPrem | OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | @Relation |
<OTA_ProfileModifyRQ>
<UniqueID Type="10" ID="3151" ID_Context="protelIO">
<CompanyName CompanyShortName="K+K Hotel Opera, H- 1065 Budapest" TravelSector="3" Code="3151" CodeContext="io.protel.OnPremise"/>
</UniqueID>
<UniqueID Type="4" ID="262026" ID_Context="protelIO"/>
<ProfileModify>
<Customer>
<CitizenCountryName DefaultInd="true" Code="SI"/>
</Customer>
<CompanyInfo>
<CompanyName CompanyShortName="SI 16004841" Department="">PROTEL Damjan Knific s.p.</CompanyName>
<ContactPerson Relation="Booker">
<PersonName>
<NamePrefix>Hase</NamePrefix>
<GivenName>Laureen</GivenName>
<Surname>Jacke</Surname>
</PersonName>
</ContactPerson>
<ContactPerson Relation="InvoiceRecipient">
<PersonName>
<NamePrefix>Frau Mag.</NamePrefix>
<GivenName>Test</GivenName>
<Surname>Test</Surname>
</PersonName>
</ContactPerson>
| Extend the Profile Element for Company/TA/Source/Group Profile, add the Relation of the ContactPerson, possible value | PWS-2628 | PWS 3.0.11 |
IO_StatsNotifRQ | outbound | OnPrem | IO_StatsNotifRQ | Statistics | Statistic |
<IO_StatsNotifRQ>
<Statistics xmlns="http://www.opentravel.org/OTA/2003/05">
<Statistic ChainCode="HC1" HotelCode="3236" HotelName="ART SKI - IN Hotel Hinterhag, A-5753 Saalbach" FiscalDate="2019-05-29" ReportCode="Genius_PastDailyRoomTypeStatistics_v1">
<StatisticApplicationSets>
<StatisticApplicationSet Start="2019-05-28" End="2019-05-28">
<StatisticCodes/>
<RevenueCategorySummaries>
<RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="EUR" Amount="208.49"/>
<RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="EUR" Amount="73.40"/>
<RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="EUR" Amount="901.68"/>
<RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="EUR" Amount="1183.57"/>
<RevenueCategorySummary RevenueCategoryCode="123" CurrencyCode="EUR" Amount="234.75"/>
<RevenueCategorySummary RevenueCategoryCode="126" CurrencyCode="EUR" Amount="73.40"/>
<RevenueCategorySummary RevenueCategoryCode="129" CurrencyCode="EUR" Amount="991.85"/>
<RevenueCategorySummary RevenueCategoryCode="1217" CurrencyCode="EUR" Amount="1300.00"/>
| Extend the IO_StatsNotif with the Total amount per Day | PWS-2596 | PWS 3.0.9 |
HTNG_HotelFolioNotifRQ | outbound | OnPrem | HTNG_HotelFolioNotifRQ | TPA_Extensions | FolioExtensions | FolioExtension |
<TPA_Extensions>
<px:FolioExtensions xmlns:px="http://protel.io/htng/extensions">
<px:FolioExtension Action="CHECKOUT" ClosingDate="2018-09-14T00:00:00" FolioID="331578-0" IncrementalItemsInd="false"/>
<px:FolioExtension Action="CHECKOUT" ClosingDate="2018-09-14T00:00:00" FolioID="127789" IncrementalItemsInd="false" ItemsFromDate="2018-09-13T00:00:00" ItemsToDate="2018-09-14T00:00:00"/>
</px:FolioExtensions>
</TPA_Extensions>
| Add the TPA_Extension to the HTNG_HotelFolioNotifRQ | PWS-949 | PWS 3.0.X |
OTA_ProfileMergeRQ | Inbound Outbound | OnPrem | no changes in the XML |
| The ObsoleteProfileID "Type" refer to Open Travel Code List Unique ID type(UIT) and would be respective 9, 4, 5, and 7 for different profile types. | PWS-2542 | PWS 3.0.X |
OTA_HotelInvBlockNotifRQ | Outbound | OnPrem | OTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | Contacts |
...
<Contact ContactType="Private">
<PersonName>
<GivenName>Alireza</GivenName>
<Surname>memarifard</Surname>
</PersonName>
<Telephone PhoneNumber="017777777" PhoneTechType="5" ShareMarketInd="No" PhoneLocationType="6" DefaultInd="true" />
<Address Type="2" ShareMarketInd="Yes" DefaultInd="true">
<AddressLine />
<CityName />
<PostalCode />
<StateProv/>
<CountryName Code="DE">Germany</CountryName>
</Address>
<Email EmailType="1" ShareMarketInd="No" DefaultInd="true">memaryfard@gmail.com</Email>
</Contact>
....
| Display the privat profile in the OTA_HotelInvBlockNotifRQ. | PWS-551 | PWS 3.0.X |
HTNG_HotelFolioNotifRQ HTNG_HotelFolioRS | Outbound | OnPrem | @FolioGroupingID | TODO | Add the new Attribute @FolioGroupingID with the values "Closed" and "Open". "Closed" > if an invoice is closed and fiscalized "Open" > if an Invoice ID assigned but not fiscalized "Open" > if no invoice ID yet assigned to the invoice | PWS-2499 | PWS 3.0.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Outbound | OnPrem | @ShareMarketInd | no change in xml | As protel is offering a third value for optin settings ("not asked"), where there is no value in OTA standard, we decided to change the behaviour of sending optin values as follows:
- value set to "no" in protel
→ attribute @ShareMarketInd="No" will be send - value set to "yes" in protel
→ attribute @ShareMarketInd="Yes" will be send - value set to "not asked" in protel
→ attribute @ShareMarketInd will NOT be send
| PWS-347 | PWS 3.0.X |
HTNG_HotelCheckOutNotifRS | Outbound | OnPrem | HTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentData |
<HTNG_HotelCheckOutNotifRS xmlns="http://htng.org/2014B" TimeStamp="2020-09-28T11:28:12.2502538Z" Version="3.000" CorrelationID="Test_AKO_6">
<Success/>
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:DocumentExtensions>
<px:DocumentData Type="Invoice" ID="419" ID_Context="protelIO">JVBERi0xLjYKJcOkw7zDtsOfCjIgM...</px:DocumentData>
| We will provide in HTNG_HotelCheckOutNotifRS / DocumentData element the base64 encoded PDF invoice for non-fiscal Protels | PWS-2435 | PWS 3.0.X |
OTA_HotelResNotifRQ | Outbound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | ReservationExtensions | FixedCharges |
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:ReservationExtensions>
<px:ReservationDateInfo CreateDateTimeSyncInd="False" ModifyDateTimeSyncInd="True"/>
<px:ReservationStatus Code="Conf" ID="1" ID_Context="protelIO" Name="gtd" RPH="625974"/>
<px:FixedCharges>
<px:FixedCharge Code="€ Halbpension" Recurrence="DaysOfWeek" Quantity="2" RequestedIndicator="true">
<px:Price CurrencyCode="EUR" SingleAmountAfterTax="5.00"/>
<px:UniqueID Type="FixedCharge" ID="49295" ID_Context="protelIO"/>
<px:Item ItemID="339"/>
<px:InvoiceText>€ Halbpension</px:InvoiceText>
</px:FixedCharge>
</px:FixedCharges>
</px:ReservationExtensions>
</TPA_Extensions>
| We will add the FixedCharges to the ReservationExtensions. | PWS-2447 | PWS 3.0.X |
HTNG_ChargePostingRQ/RS HTNG_HotelCheckInNotifRQ/RS HTNG_HotelCheckOutNotifRQ/RS HTNG_HotelFolioRQ/RS IO_ResModifyNotifRQ/RS IO_SystemStatusRQ/RS OTA_HotelAvailNotifRQ/RS OTA_HotelAvailRQ/RS OTA_HotelInvBlockNotifRQ/RS OTA_HotelRatePlanNotifRQ/RS OTA_ProfileCreateRQ/RS OTA_ProfileMergeRQ/RS OTA_ProfileModifyRQ/RS OTA_ReadRQ/OTA_ProfileReadRS OTA_ReadRQ/OTA_ResRetrieveRS | inbound | OnPrem | Handling if configuration for RS message is missing | no change in XML | - If the RS message of an inbound RQ message is not activated in the configuration, PWS will answer the RQ with an error in the RS
<Error ShortText="RS not activated in IO configuration" Code="321" Type="1">RS not activated in IO configuration</Error> and the RQ is NOT processed. - If the RS message of an inbound RQ message is missing in the configuration, the PWS will NOT send a RS message back and will NOT process the RQ. It will create an entry in the interface error dialog like "OTA_ProfileMergeRS | RS not found / configured in IO configuration."
| PWS-2474 | PWS 3.0.X |
OTA_ProfileModifyRQ | Inbound | OnPrem | RQs with missing CustLoyalty elements | no change in XML | Missing not mandatory CustLoyalty attributes no longer result in errors | PWS-2357 | PWS 3.0.X |
IO_RatePackageNotifRQ | Outbound | OnPrem | Action on PackageItem level implemented | no change in XML | We corrected the Action attribute on PackageItem level to display "CREATE", "UPDATE", DELETED" and "NONE" as expected. | PWS-2236 |
|
IO_ResModifyNotifRQ | Inbound | OnPrem | IO_ResModifyNotifRQ | Reservations | @HotelCode IO_ResModifyNotifRQ | Reservations | @HotelID |
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="PWS-2376-SR-1" TimeStamp="2018-12-29T15:20:35.985Z" Version="1.00">
<p:Reservations HotelCode="3152">
<p:Reservation>
<p:UniqueID ID="345470" Type="14" ID_Context="Protel_IO"/>
<p:Slices>
<p:Slice From="2018-11-15T12:00:00+02:00" To="2018-11-18T12:00:00+02:00">
<p:Room RoomType="GFamÜKat"/>
</p:Slice>
</p:Slices>
</p:Reservation>
</p:Reservations>
</p:IO_ResModifyNotifRQ>
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="PWS-2376-SR-2" TimeStamp="2018-12-29T15:20:35.985Z" Version="1.00">
<p:Reservations HotelID="3152">
<p:Reservation>
<p:UniqueID ID="345470" Type="14" ID_Context="Protel_IO"/>
<p:Slices>
<p:Slice From="2018-11-15T12:00:00+02:00" To="2018-11-18T12:00:00+02:00">
<p:Room RoomType="Klassik"/>
</p:Slice>
</p:Slices>
</p:Reservation>
</p:Reservations>
</p:IO_ResModifyNotifRQ>
| PWS is now able to receive either @HotelCode or @HotelID tp identify the hotel. This is now the same behaviour as for pAir. | PWS-2376 |
|
IO_ResModifyNotifRQ | Inbound | OnPrem | Adding private guest as attached profile implemented | no change in XML | When sending only one <ProfileReference> element with @Action="CREATE", an additional guest will be added to the attached profiles. This will fail, if the new guest count would exceed the guest count of the reservation. | PWS-2343 | PWS 3.0.X |
OTA_HotelResNotifRQ | Outbound | OnPrem | HotelReservations | HotelReservation | Services | Service | @RequestedIndicator |
<Services>
<Service ID="29" ID_Context="protelIO" Type="16" ServiceInventoryCode="29" ServicePricingType="Per stay" Quantity="1" Inclusive="true" RequestedIndicator="false">
<Price RateTimeUnit="Day" EffectiveDate="2019-05-21" ExpireDate="2019-05-24">
<Total AmountBeforeTax="13.64" AmountAfterTax="15.00" CurrencyCode="EUR"/>
</Price>
<ServiceDetails>
<TimeSpan Start="2019-05-21" End="2019-05-24"/>
<Comments>
<Comment>
<Text TextFormat="PlainText">INCLUSIVE</Text>
</Comment>
</Comments>
<Total AmountBeforeTax="13.64" AmountAfterTax="15.00" CurrencyCode="EUR"/>
</ServiceDetails>
</Service>
<Service ID="26" ID_Context="protelIO" Type="16" ServiceInventoryCode="26" ServicePricingType="Per stay" Quantity="1" Inclusive="true" RequestedIndicator="true">
<Price RateTimeUnit="Day" EffectiveDate="2019-05-21" ExpireDate="2019-05-24">
<Total AmountBeforeTax="25.00" AmountAfterTax="30.00" CurrencyCode="EUR"/>
</Price>
<ServiceDetails>
<TimeSpan Start="2019-05-21" End="2019-05-24"/>
<Comments>
<Comment>
<Text TextFormat="PlainText">ADDONLY</Text>
</Comment>
</Comments>
<Total AmountBeforeTax="25.00" AmountAfterTax="30.00" CurrencyCode="EUR"/>
</ServiceDetails>
</Service>
</Services>
| For inclusive packages the RequestedIndicator will be "false", for booked bookable packages the RequestedIndicator will be "true". | PWS-853 | PWS 3.0.X |
OTA_HotelResNotifRQ | Outbound | OnPrem | HotelReservations | HotelReservation |
| We will adjust the TPA_Extensions according to the XSD: - TPA_Extensions/Nationality will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / CitizienCountryName
- TPA_Extensions/Optinout : we are using ShareMarketInd attributes in PersonName, Telephone, Email, URL,...
- TPA_Extensions/CustomerPreferences will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / PrefCollections
- TPA_Extensions/RoomPreferences will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / PrefCollections
- TPA_Extensions/Salutation will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / TPA_Extensions / ProfileInfoExtensions / Salutation
- TPA_Extensions/Traces will be shifted to HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / TPA_Extensions / ProfileInfoExtensions / Traces
- TPA_Extensions/SearchName will be deleted with PWS version 3.1.x
Until release of PWS 3.1 (planned for Q1/2021) we will send the information in both places. Beginning with PWS 3.1 we will send the information in the new places ONLY! | PWS-2372 | PWS 3.0.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Inbound | OnPrem | OTA_ProfileCreateRQ | Profile | CompanyInfo | ContactPerson | PersonName | NamePrefix OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | PersonName | NamePrefix |
<OTA_ProfileCreateRQ>
<Profile>
<CompanyInfo>
<CompanyName CompanyShortName="PROTEL Hotelsoftware GmbH" Department="">Protel</CompanyName>
<ContactPerson>
<PersonName>
<NamePrefix>Herr</NamePrefix>
<GivenName>Laureen</GivenName>
<Surname>Jacke</Surname>
</PersonName>
| Add the Attribute "NamePrefix" to the Element ContactPerson | PersonName We will implemented the value from "NamePrefix" it doesn't matter if is configured in the System Data or not | PWS-2117 | PWS 3.0.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Outbound | OnPrem | OTA_ProfileCreateRQ | Profile | CompanyInfo | ContactPerson | PersonName | NamePrefix OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | PersonName | NamePrefix |
<OTA_ProfileCreateRQ>
<Profile>
<CompanyInfo>
<CompanyName CompanyShortName="PROTEL Hotelsoftware GmbH" Department="">Protel</CompanyName>
<ContactPerson>
<PersonName>
<NamePrefix>Herr</NamePrefix>
<GivenName>Laureen</GivenName>
<Surname>Jacke</Surname>
</PersonName>
| Add the Attribute "NamePrefix" to the Element ContactPerson | PersonName | PWS-2495 | PWS 3.0.X |
OTA_HotelInvBlockNotifRQ | Outbound | OnPrem | OTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | BlockDescriptions |
<OTA_HotelInvBlockNotifRQ>
<InvBlocks>
<InvBlock>
<BlockDescriptions>
<BlockDescription CreateDateTime="2017-09-03T00:00:00">
<Text TextFormat="HTML">1. Zeile<br/> 2. Zeile</Text>
</BlockDescription>
<BlockDescription Name="SourceOfBusiness">
<Text TextFormat="PlainText">Desk reservation</Text>
</BlockDescription>
</BlockDescriptions>
| Adjust the BlockDescription instead of "PlainText" we will display the Note now in the TextFormat="HTML" to display line break with <br/> | PWS-2226 | PWS 3.0.X |
OTA_HotelInvBlockNotifRQ | Inbound | OnPrem | OTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | BlockDescriptions | BlockDescription | @CreateDateTime |
<OTA_HotelInvBlockNotifRQ>
<InvBlocks>
<InvBlock>
<BlockDescriptions>
<BlockDescription CreateDateTime="2020-08-12T00:00:00">
<Text TextFormat="PlainText">TestTest 333 </Text>
</BlockDescription>
</BlockDescriptions>
| Add the Attribute @CreateDateTime for inbound Blocks | PWS-759 | PWS 3.0.X |
HTNG_HotelCheckInNotifRQ | Inbound | OnPrem | HTNG_HotelCheckInNotifRQ | POS | Source |
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Body>
<htng:HTNG_HotelCheckInNotifRQ xmlns:htng="http://htng.org/2014B" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:px="http://protel.io/htng/extensions" CorrelationID="PWS_2127_01" EchoToken="PWS_2127_01" Version="1" Timestamp="2020-07-23T14:58:16Z">
<POS>
<Source TerminalID="Ariane">
<RequestorID ID="3153" Type="10" ID_Context="protelIO"/>
<BookingChannel Type="4" Primary="true"/>
</Source>
</POS>
<htng:HotelReservations>
<HotelReservation>
<UniqueID ID="341562" ID_Context="protelIO" Type="14"/>
</HotelReservation>
</htng:HotelReservations>
</htng:HTNG_HotelCheckInNotifRQ>
</env:Body>
</env:Envelope>
| The value of the TerminalID will be stored in the Reservation History in OnPrem to display the name of integration partner as the system which checked-in the reservation. In case of empty or null value for this attribute, the defauld value will be set in OnPrem as "external IO system" and a warning send back with RS like following:
<Warning ShortText="TerminalID empty or missing, using default value: external IO System." Code="321" Type="10">TerminalID empty or missing, using default value: external IO System.</Warning>
| PWS-2127 | PWS 3.0.X |
HTNG_HotelChargePostingRQ | Inbound | OnPrem | HTNG_HotelChargePostingRQ | Posting | Transaction | RevenueDetails |
<RevenueDetails>
<RevenueDetail Description="Cola Posting" SubTypeID="Revenue" Amount="25.00" CurrencyCode="EUR" PMSRevenueCode="5010">
<ExtendedPrice Quantity="1" DecimalPlaces="2" AmountAfterTax="25.00"/>
<Account ID_Context="protelIO" Type="21" ID="8326"/>
</RevenueDetail>
<RevenueDetail Description="Visa Posting" SubTypeID="Payment" Amount="-25.00" CurrencyCode="EUR" PMSRevenueCode="1">
<ExtendedPrice Quantity="1" DecimalPlaces="2" AmountAfterTax="-25.00"/>
<Account ID_Context="protelIO" Type="21" ID="8326"/>
</RevenueDetail>
</RevenueDetails>
| Possible to post Charges and Payments only against a Profile ID | PWS-2284 | PWS 3.0.X |
OTA_HotelStayInfoNotifRQ | Outbound | OnPrem | OTA_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> | PWS-2430 | PWS 3.0.X |
IO_IdentifierRQ | Outbound | OnPrem | root Element |
<IO_IdentifierRQ xmlns="http://protel.io/soap" EchoToken="A246B7B4-F4F3-4122-A91B-4265B61DC2D5" TimeStamp="2021-01-15T08:23:27Z" Version="4.000" CorrelationID="A246B7B4-F4F3-4122-A91B-4265B61DC2D5" IDType="GHA" PrimaryLangID="en">
| Change the Version from "4" to "4.000" Add the Attribute PrimaryLangID="en" | PWS-1120 | PWS 3.0.X |
OTA_HotelResNotifRQ | Outbound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate |
...
<RoomRate RatePlanCode="SHARER" RatePlanCategory="HU" RatePlanID="75" RoomTypeCode="CBR" BookingCode="CST" RoomID="0215" NumberOfUnits="1">
...
| BookingCode attribute in RoomRate element displays the initially booked room type. | PWS-2385 | PWS 3.0.X |
HTNG_HotelFolioNotifRQ | Outbound | OnPrem | HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | @CurrencyCode HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | Taxes | Tax | @CurrencyCode HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | ExtendedPrice | @CurrencyCode HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | ExtendedPrice | Taxes | Tax | @CurrencyCode |
<RevenueDetail ReferenceID="1328" TransactionDate="2019-05-26" Description="Weihnachtsmenü Kind" PMSRevenueCode="207" CurrencyCode="EUR" Amount="25.00" SubTypeID="RevenueForecast" RevenueCategoryCode="3">
<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
<FolioID>33797-0</FolioID>
</FolioIDs>
<UnitPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31">
<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
<Tax Type="Inclusive" Percent="10.00" Amount="2.27" CurrencyCode="EUR" />
</Taxes>
</UnitPrice>
<ExtendedPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31" Quantity="1">
<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
<Tax Type="Inclusive" Percent="10.00" Amount="2.27" CurrencyCode="EUR" />
</Taxes>
</ExtendedPrice>
</RevenueDetail>
| Add the Attribute | PWS-1162 | PWS 3.0.X |
HTNG_HotelFolioNotifRQ | Outbound | OnPrem | HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | GrossAmount | @CurrencyCode HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | TaxItems | @CurrencyCode
HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | BalanceDueAmount| @CurrencyCode
HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueSummary | AmountReceived | @CurrencyCode
|
<HTNG_HotelFolioNotifRQ>
<Folios>
<Folio FolioID="33797-0" FolioType="Room" InvoiceID="0" GuestPayable="true">
<RevenueSummary>
<GrossAmount Amount="5582.00" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
<TaxItems Amount="534.73" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
<BalanceDueAmount Amount="0" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
<AmountReceived Amount="0" CurrencyCode="EUR" xmlns="http://www.opentravel.org/OTA/2003/05" />
</RevenueSummary>
| Add the Attribute | PWS-942 | PWS 3.0.X |
HTNG_HotelFolioNotifRQ | Outbound | OnPrem | HTNG_HotelFolioNotifRQ | Folios | Folio | BasicPropertyInfo | @HotelCodeContext |
<HTNG_HotelFolioNotifRQ>
<Folios>
<Folio FolioID="33797-0" FolioType="Room" InvoiceID="0" GuestPayable="true">
<BasicPropertyInfo HotelCode="3236" HotelCodeContext="protelIO" HotelName="ART SKI - IN Hotel Hinterhag, A-5753 Saalbach" ChainCode="1" />
| Add the Attribute - HotelCodeContext="protelIO"
| PWS-941 | PWS 3.0.X |
HTNG_HotelFolioNotifRQ | Outbound | OnPrem | HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | @Type HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail |
|
<RevenueDetail ReferenceID="1328" TransactionDate="2019-05-27" Description="Weihnachtsmenü Kind" PMSRevenueCode="207" CurrencyCode="EUR" Amount="25.00" SubTypeID="RevenueForecast" RevenueCategoryCode="3">
<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
<FolioID>33797-0</FolioID>
</FolioIDs>
<UnitPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31">
<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
</Taxes>
</UnitPrice>
<ExtendedPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31" Quantity="1">
<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
</Taxes>
</ExtendedPrice>
</RevenueDetail>
| Add the Attribute | PWS-945 | PWS 3.0.X |
HTNG_HotelFolioNotifRQ | Outbound | OnPrem | HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | @DecimalPlaces |
<RevenueDetail ReferenceID="1328" TransactionDate="2019-05-27" Description="Weihnachtsmenü Kind" PMSRevenueCode="207" CurrencyCode="EUR" Amount="25.00" SubTypeID="RevenueForecast" RevenueCategoryCode="3">
<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
<FolioID>33797-0</FolioID>
</FolioIDs>
<UnitPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31">
<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
</Taxes>
</UnitPrice>
<ExtendedPrice AmountBeforeTax="22.73" AmountAfterTax="25.00" CurrencyCode="EUR" Type="31" Quantity="1">
<Taxes xmlns="http://www.opentravel.org/OTA/2003/05">
<Tax Type="Inclusive" Percent="10.00" Amount="2.27" />
</Taxes>
</ExtendedPrice>
</RevenueDetail>
| Remove the Attribute | PWS-1017 | PWS 3.0.X |
HTNG_HotelFolioNotifRQ | Outbound | OnPrem | root Element |
<HTNG_HotelFolioNotifRQ EchoToken="cb364dd1-5d3b-4c1b-91d6-f8bf9f00e911" TimeStamp="2020-12-11T13:46:12Z" Version="1.002" CorrelationID="cb364dd1-5d3b-4c1b-91d6-f8bf9f00e911" PrimaryLangID="en" xmlns="http://htng.org/2014B">
| Fix the Value of the following Attributes - Version="1.002"
- PrimaryLangID="de"
| PWS-1119 | PWS 3.0.X |
OTA_HotelInvCountNotifRQ | Outbound | OnPrem | OTA_HotelInvCountNotifRQ | UniqueID |
<OTA_HotelInvCountNotifRQ>
<UniqueID Type="10" ID="3236" ID_Context="protelIO" />
| Add the UniqueID Element - OTA_HotelInvCountNotifRQ | UniqueID | @ID="HotelID"
- OTA_HotelInvCountNotifRQ | UniqueID | @ID_Context="protelIO"
- OTA_HotelInvCountNotifRQ | UniqueID | @Type="10"
| PWS-787 | PWS 3.0.X |
OTA_HotelInvCountNotifRQ | Outbound | OnPrem | root Element |
<OTA_HotelInvCountNotifRQ EchoToken="10bf9470-b920-4dd9-9045-8f8ca8176d31" TimeStamp="2020-12-11T14:16:49Z" Version="2.000" CorrelationID="10bf9470-b920-4dd9-9045-8f8ca8176d31" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">
| Fix the Value of the following Attributes - Version="2.000"
- PrimaryLangID="de"
| PWS-786 | PWS 3.0.X |
OTA_ReadRQ | Outbound | OnPrem | Root Element |
...
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="0EF52770-2E30-46FA-AAF5-499E5F5EB98F" TimeStamp="2020-12-09T14:27:17Z" Version="4.000" CorrelationID="0EF52770-2E30-46FA-AAF5-499E5F5EB98F" PrimaryLangID="en" MaxResponses="30">
...
| Fix the Value of the following Attributes - Version="4.000"
- PrimaryLangID="en"
| PWS-1116 | PWS 3.0 |
OTA_HotelStayInfoNotifRQ | Outbound | OnPrem | OTA_HotelStayInfoNotifRQ | StayInfos |
...
<StayInfos ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" HotelCodeContext="protelIO">
...
| Add the Attribute - HotelCodeContext="protelIO"
| PWS-630 | PWS 3.0.X |
OTA_HotelStayInfoNotifRQ | Outbound | OnPrem | Root Element |
<OTA_HotelStayInfoNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="36288982-2783-451b-8fa4-64a56981290f" TimeStamp="2020-12-09T13:41:07Z" Version="5.000" CorrelationID="36288982-2783-451b-8fa4-64a56981290f" PrimaryLangID="en">
...
| Fix the Value of the following Attributes - Version="5.000"
- PrimaryLangID="en"
| PWS-627 | PWS 3.0.X |
OTA_HotelStatsNotifRQ | Outbound | OnPrem | OTA_HotelStatsNotifRQ | UniqueID |
<OTA_HotelStatsNotifRQ EchoToken="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" TimeStamp="2020-12-09T11:12:59Z" Version="3.000" CorrelationID="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">
<POS>
<Source>
<RequestorID Type="10" ID="3153" ID_Context="protelIO" />
<BookingChannel Type="4" Primary="true" />
<TPA_Extensions>
<px:POSExtensions xmlns:px="http://protel.io/htng/extensions">
<px:HotelInfo FiscalDate="2017-06-24" />
</px:POSExtensions>
</TPA_Extensions>
</Source>
</POS>
<UniqueID Type="10" ID="3153" ID_Context="protelIO" />
...
| Add the UniqueID Element - OTA_HotelInvCountNotifRQ | UniqueID | @ID="HotelID"
- OTA_HotelInvCountNotifRQ | UniqueID | @ID_Context="protelIO"
- OTA_HotelInvCountNotifRQ | UniqueID | @Type="10"
| PWS-901 | PWS 3.0 |
OTA_HotelStatsNotifRQ | Outbound | OnPrem | Root Element |
<OTA_HotelStatsNotifRQ EchoToken="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" TimeStamp="2020-12-09T11:12:59Z" Version="3.000" CorrelationID="a242fdc2-3c4f-4baa-ab07-c3681078f8c4" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">
| Fix the Value of the following Attributes - Version="3.000"
- PrimaryLangID="de"
| PWS-1147 | PWS 3.0 |
OTA_HotelStatsNotifRQ | Outbound | OnPrem | OTA_HotelStatsNotifRQ | Statistics | Statistic |
<Statistic ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" FiscalDate="2017-06-23" ReportCode="HTNG_PastDailySegmentRoomTypeStatistics_v1">
| Add the Attribute | PWS-1148 | PWS 3.0 |
IO_StatsNotifRQ | Outbound | OnPrem | IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | RevenueCategorySummaries | RevenueCategorySummary | @RevenueCategoryCode |
<StatisticApplicationSet End="2018-02-08" Start="2018-02-08">
<StatisticCodes/>
<RevenueCategorySummaries>
<RevenueCategorySummary Amount="104.20" CurrencyCode="EUR" RevenueCategoryCode="3"/>
<RevenueCategorySummary Amount="124.00" CurrencyCode="EUR" RevenueCategoryCode="123"/>
<RevenueCategorySummary Amount="0.00" CurrencyCode="EUR" RevenueCategoryCode="6"/>
<RevenueCategorySummary Amount="0.00" CurrencyCode="EUR" RevenueCategoryCode="126"/>
<RevenueCategorySummary Amount="10000.00" CurrencyCode="EUR" RevenueCategoryCode="9"/>
<RevenueCategorySummary Amount="10700.00" CurrencyCode="EUR" RevenueCategoryCode="129"/>
<RevenueCategorySummary Amount="10104.20" CurrencyCode="EUR" RevenueCategoryCode="17"/>
<RevenueCategorySummary Amount="10824.00" CurrencyCode="EUR" RevenueCategoryCode="1217"/>
</RevenueCategorySummaries>
</StatisticApplicationSet>
| Extend the IO_StatsNotifRQ, add the @RevenueCategoryCode - 123 = Food & Beverage (gross)
- 126 = Other Revenue (gross)
- 129 = Room Revenue (gross)
- 1217 = Total Revenue (gross)
| PWS-1163 | PWS 3.0 |
OTA_ReadRQ | Inbound | OnPrem | OTA_ReadRQ | ReadRequests | ProfileReadRequest | Company | Address |
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Body>
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="2602_PWS-2188_6" Version="0" EchoToken="PWS-2188_6" MaxResponses="10">
<POS>
<Source>
<RequestorID ID="2602" Type="10" ID_Context="protelIO"/>
</Source>
</POS>
<ReadRequests>
<ProfileReadRequest ProfileTypeCode="3">
<Company>
<CompanyName>protel</CompanyName>
<Address>
<AddressLine>Europaplatz 8</AddressLine>
<CityName>Dortmund</CityName>
<PostalCode>44236</PostalCode>
<CountryName Code="DE">Deutschland</CountryName>
</Address>
</Company>
</ProfileReadRequest>
</ReadRequests>
</OTA_ReadRQ>
</env:Body>
</env:Envelope>
| Profile lookup by OTA_ReadRQ can be search be combination of Company/TA/Source/Group profile name and PostalCode/CityName/CountryName. | PWS-2358 | PWS 3.0 |
|
OTA_HotelResNotifRQ | Inbound | pAir | no changes in the XML |
| Modifiying AgeQulificationCode and change the number of guests with inbound reservation modify. | IPA-772 | 21.04 |
IO_InvoiceFiscalizeRQ | Outbound | pAir | IO_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-795 | 21.04 |
HTNG_HotelRoomStatusUpdateNotifRQ | Outound | pAir | no changes in the XML |
| Fixing the incorrect RoomStatus sent out by the pAir for different status. | IPA-765 | 21.04 |
OTA_HotelResNotifRQ | Outbound | pAir | OTA_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-768 | 21.04 |
IO_SystemDataRS | Outbound | pAir | IO_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-766 | 21.04 |
IO_SystemDataRQ | Inbound | pAir | IO_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-766 | 21.04 |
|
OTA_HotelResNotifRQ | Outbound | pAir | no changes in the XML |
| Stop sending reservations of other multi-property hotels during EOD. | IPA-789 | 21.02 |
IO_SysAdministrationCompleteNotifRQ | Outbound | pAir | IO_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-784 | 21.02 |
OTA_ReadRQ | Inbound | pAir | OTA_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-761 |
|
OTA_ReadRQ / OTA_ProfileReadRS | Inbound | pAir | OTA_ReadRQ | @ReturnListIndicator | no change in XML | OTA_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-762 |
|
|
OTA_HotelResNotifRQ | Outbound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGlobalInfo | DepositPayments | GuaranteePayment | AcceptedPayments | AcceptedPayment | @PaymentTransactionTypeCode |
| Modify the Value for the Attribute @PaymentTransactionTypeCode - Charge → charge
- Reserve → reserve
- Refund → refund
| PWS-2401 | PWS-2.20.4 |
HTNG_HotelCheckInNotifRQ | Inbound | OnPrem | no change in XML structure | no change in XML structure | The Unassigned room reservations get checked-in properly after sending the RQ. | PWS-2451 | PWS 2.20.4 |
OTA_HotelInvBlockNotifRQ | Inbound | OnPrem | OTA_HotelInvBlockNotifRQ | TPA_Extensions | ReservationExtensions | ReservationExtension |
...
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:ProfileInfoExtensions>
<px:ContactDetails>
<px:AdditionalInfo />
</px:ContactDetails>
</px:ProfileInfoExtensions>
<InvBlockExtensions>
<InvBlockID ID="114411" ID_Context="SUI" Type="18" />
</InvBlockExtensions>
<ReservationExtensions xmlns="http://protel.io/htng/extensions">
<ReservationStatus ID="17" ID_Context="protelIO"/>
</ReservationExtensions>
</TPA_Extensions>
...
| The reservation status can be set with new allotment (Commit) in an inboud RQ. | PWS-2437 | PWS 2.20.X |
OTA_ProfileCreateRQ / OTA_ProfileModifyRQ | Outbound | OnPrem | OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:VipCodes OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:MarketingCodes |
<px:ProfileInfoExtensions>
<px:PersonInfos>
<px:VipCodes>
<px:Code DefaultInd="true" DisplaySequence="0" ID="3" ID_Context="protelIO" Type="VIPCODE" Value="Black List"/>
<px:Code DefaultInd="false" DisplaySequence="0" ID="1" ID_Context="protelIO" Type="VIPCODE" Value="Stammgast"/>
</px:VipCodes>
<px:MarketingCodes>
<px:Code DefaultInd="true" DisplaySequence="0" ID="8" ID_Context="protelIO" Type="MARKETINGCODE" Value="Urlauber"/>
<px:Code DefaultInd="false" DisplaySequence="0" ID="16" ID_Context="protelIO" Type="MARKETINGCODE" Value="Wellness / Beauty"/>
</px:MarketingCodes>
</px:PersonInfos>
</px:ProfileInfoExtensions>
| Add the TPA_Extensions for <VipCodes> and <MarketingCodes>to both messages | PWS-707 | PWS 2.20.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Inbound | OnPrem | OTA_ProfileCreateRQ | Profile | Customer | URL OTA_ProfileModifyRQ | ProfileModify | Customer | URL |
<Profile ShareAllOptOutInd="Yes" ProfileType="1" CreateDateTime="2020-10-08T09:52:00" CreatorID="protel 37" RPH="" LastModifyDateTime="2020-10-08T09:52:48" LastModifierID="protel 37" StatusCode="4">
<Customer Gender="Unknown" Language="de">
<PersonName>
<GivenName>Max</GivenName>
<Surname>Mustermann</Surname>
</PersonName>
<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true">
<StateProv/>
<CountryName Code="NO">Norwegen</CountryName>
</Address>
<CitizenCountryName DefaultInd="true" Code="NO"/>
<Document BirthDate="1900-01-01" EffectiveDate="1900-01-01" ExpireDate="2050-12-31"/>
<EmployerInfo CompanyShortName="Company2" Department="Department">Company1</EmployerInfo>
<URL DefaultInd="true" ShareMarketInd="No">Url@test.com</URL>
</Customer>
</Profile>
| The URL send by third parties in OTA_ProfileCreateRQ and OTA_ProfileModifyRQ will be imported to the profile. | PWS-295 | PWS 2.20.X |
OTA_HotelAvailNotifRS | Outbound | OnPrem | OTA_HotelAvailNotifRS | Warning |
<OTA_HotelAvailNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-11-11T12:42:52Z" Version="3.000" CorrelationID="PWS-2275-TestRound3-SR1">
<Success/>
<Warnings>
<Warning ShortText="RateGroups not found by RatePlanCategory code SRBAR" Code="320" Type="12">RateGroups not found by RatePlanCategory code SRBAR</Warning>
<Warning ShortText="No matches for 1 AvailStatusMessage elements" Code="320" Type="13">No matches for 1 AvailStatusMessage elements</Warning>
</Warnings>
</OTA_HotelAvailNotifRS>
| Currently when receiving an inbound AvailNotif with multiple restrictions, some of them are successfully but some fail, the PWS is replying with an Error We will change this behaviour, the PWS should return a warning element for every failed restriction and process the correct ones, so that RS message holds Success and Warnings. Additionally there will be one warning element with the overall number of failed AvailStatusMessages. | PWS-2275 | PWS 2.20.X |
IO_ResModifyNotifRQ | inbound | OnPrem | IO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | Item | @ItemID |
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="PWS-2286-SR3" TimeStamp="2018-12-29T15:20:35.985Z" Version="1.00">
<p:Reservations HotelCode="3153">
<p:Reservation ArrivalDate="2018-01-10">
<p:UniqueID ID="341561" Type="14" ID_Context="Protel_IO"/>
<p:FixedCharges>
<p:FixedCharge Action="CREATE" Code="TAA using article" UpsellInd="false" Recurrence="Daily" Quantity="1">
<p:InvoiceText>TAA upsell using an article</p:InvoiceText>
<p:Price SingleAmountAfterTax="22.22" CurrencyCode="EUR"/>
<p:Item ItemID="1234" Code="1080"/>
</p:FixedCharge>
</p:FixedCharges>
</p:Reservation>
</p:Reservations>
</p:IO_ResModifyNotifRQ>
| We will import the ItemID value with the IO_ResModifyNotifRQ for the use case "Create/Update a fixed charge using an article". If UpsellInd="false" and no Item/@Code but Item/@ItemID provided, the fixed charge will be processed. If UpsellInd="false" and no Item/@ItemID provided, the PWS will send an error back. | PWS-2286 | PWS 2.20.x |
OTA_ProfileModifyRQ | Inbound | OnPrem | OTA_ProfileCreateRQ | Profile | CompanyInfo | AddressInfo | @ShareMarketInd | no change in XML structure | Modifying the ShareMarketInd for Company profiles without <Customer> Element is not possible, we will fix this. For Company Profiles only a <CompanyInfo> Element is needed to modify the ShareMarketInd. | PWS-2283 | PWS 2.20.X |
OTA_HotelResNotifRQ | Oubound | OnPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @CreateDateTime OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @LastModifyDateTime | no change in XML structure | Timestamps corrected to use UTC time (equal to other messages). | PWS-2310 | PWS 2.20.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Inbound | OnPrem | OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | SubAccountBalance | Type OTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty | SubAccountBalance | Type |
<CustLoyalty ProgramID="5566" MembershipID="5566" RPH="9" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="GHA" Remark="" LoyalLevel="PLATINUM" SignupDate="2019-05-18" EffectiveDate="2019-05-18" ExpireDate="2019-05-18" ShareMarketInd="No" ShareSyncInd="No">
<SubAccountBalance Type="Type1" Balance="60" />
</CustLoyalty>
| To import the @Type correctly and set it in the guest's loyalty Program as Loyalty Type. Extend the error handling for not existing Type, no change in the XML Message. | PWS-594 | PWS 2.20.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Inbound | OnPrem | OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | @LoyalLevel OTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty | @LoyalLevel |
<CustLoyalty ProgramID="5566" MembershipID="5566" RPH="9" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="GHA" Remark="" LoyalLevel="PLATINUM" SignupDate="2019-05-18" EffectiveDate="2019-05-18" ExpireDate="2019-05-18" ShareMarketInd="No" ShareSyncInd="No">
<SubAccountBalance Balance="0" />
</CustLoyalty>
| To import the @LoyalLevel correctly and set it in the guest's loyalty Program as Loyalty level. Extend the error handling for not existing LoyalLevel, no change in the XML Message. | PWS-593 | PWS 2.20.X |
HTNG_HotelFolioNotifRS | Outbound | OnPrem | HTNG_HotelFolioNotifRS | Folios | Folio | CustomerProfile | no change in XML structure | The <CustomerProfile> element will always hold the main guest information for all folios. | PWS-2276 | PWS 2.20.X |
HTNG_HotelFolioNotifRS | Outbound | OnPrem | HTNG_HotelFolioNotifRS | Folios | Folio | @GuestViewable |
<HTNG_HotelFolioRS xmlns="http://htng.org/2014B" TimeStamp="2020-10-27T11:03:40.5921104Z" Version="3.000" CorrelationID="PWS_2252_01" EchoToken="PWS_2252_01" Target="Test" TransactionStatusCode="Start" RetransmissionIndicator="false">
<Success/>
<Folios>
<Folio FolioID="341558-0" FolioType="Room" InvoiceID="0" GuestPayable="true">
...
</Folio>
<Folio FolioID="341558-1" FolioType="Room" InvoiceID="0" GuestPayable="false">
....
</Folio>
</Folios>
</HTNG_HotelFolioRS>
</env:Body>
</env:Envelope>
| Remove the <GuestViewable> attribute, as there is no possibility in PMS to set it. | PWS-2252 | PWS 2.20.X |
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Inbound | OnPrem | OTA_ProfileModifyRQ | Customer / EmployerInfo OTA_ProfileCreateRQ | Customer | EmployerInfo |
<Customer Gender="Male" Language="de">
<PersonName>
<GivenName>tst</GivenName>
<Surname>Test593_02</Surname>
</PersonName>
<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true">
<StateProv/>
<CountryName Code="NO">Norwegen</CountryName>
</Address>
<CitizenCountryName DefaultInd="true" Code="NO" />
<Document BirthDate="1900-01-01" EffectiveDate="1900-01-01" ExpireDate="1900-01-01" />
<EmployerInfo CompanyShortName="Company2" Department="Dep">Company</EmployerInfo>
</Customer>
| The EmployerInfo will be implemented in the Profile | PWS-623 | PWS 2.20.X |
OTA_ResRestrieveRS | Outbound | OnPrem | OTA_ResResRetrieve | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | - Customer | @Gender
- Customer | @BirthDate
- Customer | @Language
- Customer | PersonName | NamePrefix
- Customer | CitizenCountryName (element)
- Customer | RelatedTraveler (element)
- Customer | Document (element)
OTA_ResResRetrieve | RoomStays | BasicPropertyInfo OTA_ResResRetrieve | RoomStays | RoomStay | ResGuestRPH
Root element - Version to 6.002
- add PrimaryLangID="de"
- add the attribute EchoToken
|
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-10-15T07:45:33.7529995Z" Version="6.002" CorrelationID="READ#TEST#1" EchoToken="52151515151" PrimaryLangID="de">
<Success/>
<ReservationsList>
<HotelReservation ResStatus="Reserved">
<UniqueID Type="14" ID="33526" ID_Context="protelIO"/>
<RoomStays>
<RoomStay>
<BasicPropertyInfo HotelCode="3236" HotelCodeContext="protelIO" HotelName="ART SKI - IN Hotel Hinterhag, A-5753 Saalbach" ChainCode="HC1"/>
<ResGuestRPHs>
<ResGuestRPH RPH="36842"/>
</ResGuestRPHs>
...
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest xmlns:px="http://protel.io/htng/extensions" PrimaryIndicator="false">
<Profiles>
<ProfileInfo>
<UniqueID Type="1" ID="36842" ID_Context="protelIO"/>
<Profile ProfileType="1">
<Customer Gender="Female" BirthDate="1989-08-12" Language="de">
<PersonName>
<NamePrefix>Frau</NamePrefix>
<GivenName>Test_GivenName</GivenName>
<MiddleName/>
<Surname>Test_SurName</Surname>
</PersonName>
<Telephone ShareMarketInd="Null" PhoneNumber="0231-915930" PhoneLocationType="6" PhoneTechType="1" DefaultInd="true"/>
<Email DefaultInd="true" EmailType="1">support@protel.net</Email>
<Address FormattedInd="false" Type="1" DefaultInd="true" UseType="6">
<AddressLine>Europaplatz 9a</AddressLine>
<CityName>Dortmund</CityName>
<PostalCode>44269</PostalCode>
<StateProv StateCode="DE-NW">Nordrhein-Westfalen</StateProv>
<CountryName Code="DE">Deutschland</CountryName>
</Address>
<CitizenCountryName DefaultInd="true" Code="DE"/>
<RelatedTraveler BirthDate="1985-10-17">
<UniqueID Type="1" ID="36255"/>
<PersonName Language="en">
<NamePrefix>Mr.</NamePrefix>
<GivenName>Jacob</GivenName>
<Surname>Aliker</Surname>
<Document/>
</PersonName>
</RelatedTraveler>
<Document DocIssueLocation="Dormtund" DocID="12345" BirthDate="1989-08-12" EffectiveDate="2000-12-12" ExpireDate="2050-12-31"/>
...
| Add several attributes/elements to the OTA_ResRetrieveRS | PWS-2166 | PWS-1210 | PWS 2.20.X |
HTNG_HotelFolioNotifRQ | Outbound | OnPrem | HTNG_HotelFolioNotifRQ | TPA_Extensions | FiscalExtensions |
<HTNG_HotelFolioNotifRQ>
<TPA_Extensions>
<px:FiscalExtensions xmlns:px="http://protel.io/htng/extensions">
<px:FiscalExtension InvoiceID="2:130" FiscalCode="2"/>
</px:FiscalExtensions>
</TPA_Extensions>
| For fiscalizing PMS the used FiscalCode will be exported with the new TPA_Extension, for non-fiscalizing PMS nothing will change. | PWS-2265 | PWS 2.20.X |
HTNG_HotelFolioRS | Outbound | OnPrem | HTNG_HotelFolioRS | TPA_Extensions | FiscalExtensions |
<HTNG_HotelFolioRS>
<TPA_Extensions>
<px:FiscalExtensions xmlns:px="http://protel.io/htng/extensions">
<px:FiscalExtension InvoiceID="2:130" FiscalCode="2"/>
</px:FiscalExtensions>
</TPA_Extensions>
| For fiscalizing PMS the used FiscalCode will be exported with the new TPA_Extension, for non-fiscalizing PMS nothing will change. | PWS-2265 | PWS 2.20.X |
OTA_HotelAvailRS | Outbound | OnPrem | OTA_HotelAvailRS | no change in XML structure | Available rooms should be listed in the OTA_HotelAvailRS based on the following XSetup: - if yield.enable = 0, normal rate calculation
- if yield.enable = 1, BAR rate calculation (query in yieldbar table) as current behavior
- if yield.enabledhurdle = 1, normal rate calculation compare to the valid hurdle rates. //for instance if normal rate is 100 and hurdle is 120, then No availability.
| PWS-2070 | PWS 2.20.X |
OTA_HotelInvBlockNotifRS | outbound | OnPrem | OTA_HotelInvBlockNotifRS | TPA_Extensions | ProfileInfoExtensions | ContactDetails | AdditionalInfo |
<OTA_HotelInvBlockNotifRS>
<Success/>
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:ProfileInfoExtensions>
<px:ContactDetails>
<px:AdditionalInfo>
<px:Entry ID="155498" ID_Context="protelIO" RPH="1"/>
<px:Entry ID="00000013" ID_Context="USI" RPH="1"/>
| In OTA_HotelInvBlockNotifRS we will display the ProfileID with ID_Context = "protelIO" | PWS-2271 | PWS 2.20.X |
IO_StatsNotifRQ | outbound | OnPrem | Trigger in EOD procedure | no change in XML structure | OnPrem will trigger now as described in our documentation the correct number of days
| PWS-2218 | PWS 2.20.X |
IO_StatsNotifRQ | outbound | OnPrem | IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode = 14
IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode = 19 |
<IO_StatsNotifRQ EchoToken="092f259e-bcf8-4739-8ecb-7b7cf2383c9f" TimeStamp="2020-10-07T15:28:39Z" Version="1.002" CorrelationID="092f259e-bcf8-4739-8ecb-7b7cf2383c9f" xmlns="http://protel.io/soap">
<Statistics xmlns="http://www.opentravel.org/OTA/2003/05">
<Statistic ChainCode="HC1" HotelCode="3153" FiscalDate="2017-06-21" ReportCode="Genius_CurrentDailyRoomTypeStatistics_v1">
<StatisticApplicationSets>
<StatisticApplicationSet Start="2017-06-21" End="2017-06-21">
<StatisticCodes>
<StatisticCode StatCode="ACCT" StatCategoryCode="3"/>
<StatisticCode StatCode="1" StatCategoryCode="Pseudo"/>
</StatisticCodes>
<RevenueCategorySummaries>
<RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="AED" Amount="0.00"/>
<RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="AED" Amount="0.00"/>
<RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="AED" Amount="0.00"/>
<RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="AED" Amount="0.00"/>
</RevenueCategorySummaries>
<CountCategorySummaries>
<CountCategorySummary SummaryCount="1" CountCategoryCode="8"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="9"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="10"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="11"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="12"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="13"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="22"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="14"/>
<CountCategorySummary SummaryCount="3" CountCategoryCode="19"/>
</CountCategorySummaries>
</StatisticApplicationSet>
<StatisticApplicationSet Start="2017-06-22" End="2017-06-22">
<StatisticCodes>
<StatisticCode StatCode="CBRT" StatCategoryCode="3"/>
<StatisticCode StatCode="0" StatCategoryCode="Pseudo"/>
</StatisticCodes>
<RevenueCategorySummaries>
<RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="AED" Amount="0.00"/>
<RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="AED" Amount="0.00"/>
<RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="AED" Amount="0.00"/>
<RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="AED" Amount="0.00"/>
</RevenueCategorySummaries>
<CountCategorySummaries>
<CountCategorySummary SummaryCount="2" CountCategoryCode="8"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="9"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="10"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="11"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="12"/>
<CountCategorySummary SummaryCount="1" CountCategoryCode="13"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="22"/>
<CountCategorySummary SummaryCount="1" CountCategoryCode="14"/>
<CountCategorySummary SummaryCount="0" CountCategoryCode="19"/>
</CountCategorySummaries>
</StatisticApplicationSet>
| Added the CountCategoryCode to the future Report
14 = Room cancelled 19 = Day-use rooms | PWS-2213 | PWS 2.20.X |
HTNG_HotelCheckOutNotifRS | Outbound | OnPrem | HTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentData |
<HTNG_HotelCheckOutNotifRS xmlns="http://htng.org/2014B" TimeStamp="2020-09-28T11:28:12.2502538Z" Version="3.000" CorrelationID="Test_AKO_6">
<Success/>
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
<px:DocumentExtensions>
<px:DocumentData Type="Invoice" ID="419" ID_Context="protelIO">JVBERi0xLjYKJcOkw7zDtsOfCjIgM...</px:DocumentData>
| We will provide in HTNG_HotelCheckOutNotifRS / DocumentData element the base64 encoded PDF invoice. | PWS-2187 | PWS 2.20.X |