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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelRatePlanNotifRQ | outbound | IDS | Rates / Rate / BaseByGuestAmts / BaseByGuestAmt |
| Extend the cnfiguration to enable sending both Amount Before and After tax per adult calculation
| IDS-331 | TBA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TBA PWS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTNG_HotelCheckInNotifRQ | Outbound | OnPrem | whole message | HTNG_HotelCheckInNotifRQ implemented for OnPrem and it generates as soon as the room gets check in. | PWS-2737 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTNG_HotelCheckOutNotifRQ | Outbound | OnPrem | whole message | HTNG_HotelCheckOutNotifRQ implemented for OnPrem and it generates as soon as the room gets check out. | PWS-2735 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_StatsNotifRQ | outbound | OnPrem | IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | Add the CountCategorySummary to the property level | PWS-2746 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound | OnPrem | OTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:ProfileInfoExtensions | Remove the ProfileInfoExtension from the ProfileModify Element and add it to the Customer/Company Element | PWS-2771 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | outbound | OnPrem | OTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:Solutation | Remove the Attribute Solutation|@Value + Add the information into the root Element of the Solutation | PWS-2772 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelInvCountNotifRQ | outbound | OnPrem | no changes in XML | Send Delta inventory changes | PWS-112 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TBA IPA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PWS 3.3.X | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTNG_HotelCheckInNotifRQ | inbound | OnPrem | no changes in XML | In case of receiving a Check-in for a reservation without assigned room. The PWS takes the first available clean/checked room when choosing a RoomID in order to assign it to the reservation. In OnPrem it is possible to assign preferred rooms in a Profile | PWS-2656 | 3.3.X | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPA 21.30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTNG_ChargePostingRQ | Inbound | pAir | no changes in XML |
| Creating package trough the ChargePostingRQ and by SubType = "Batch" The incoming charges need to be able to include different items with multiple tax values which get stated as one item package on the client´s invoice. | IPA-910 | 21.30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPA 21.28 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_StatsNotifRQ | outbound | pAir | IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary |
| Add the CountCategorySummary to the property level | IPA-921 | 21.28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelResNotifRQ | inbound | pAir | OTA_HotelResNotifRQ | HotelResservations | HotelReservation | ResGuests | ResGuest |
| It will now be possible to modify Guest Profile data using the inbound reservation message for the usage of CRS systems. No profile objects will be subject of deletion. Complete profile modifications will still be possible only with the OTA_ProfileModifyRQ. | IPA-902 | 21.28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelResNotifRQ | inbound | pAir | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | Comments | Comment @CommentOriginatorCode OTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | Comments | Comment @Name |
| It will now be possible for IO partners to maintain a comment section of their own in the PMS - create/modify. If @CommentOriginatorCode and @Name are not provided - then only one comment line is supported. The external comment section in the PMS will always be overwritten If @CommentOriginatorCode="PMS-Frontend" then the value of the Text element refers to a comment left by the PMS owner. This value should not be used inbound. For each unique @CommentOriginatorCode and @Name pair - new comment line is appended in the PMS resevation comment section. Modification on it is achievable with the same unique pair values. | IPA-906 | 21.28 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPA 21.26 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_InvoiceFiscalizeRQ | Outbound | pAir | IO_InvoiceFiscalizeRQ | Invoice | InvoiceRecipientReminderCode |
| Adding Invoice Recipient reminder codes to the outbound message with multiple level element. | IPA-897 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPA 21.24 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelResNotifRQ | outbound | pAir | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | ReservationExtensions | CancellationInfo |
| Add the TPA_Extension "CancellationInfo" | IPA-874 | 21.24 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelInvBlockNotifRQ | outbound | pAir | OTA_HotelInvBlockNotifRQ | TPA_Extensions | ReservationExtensions | ReservationExtension | px:CancellationInfo |
| Add the TPA_Extension "CancellationInfo" | IPA-874 | 21.24 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PWS 3.2.X | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 | 3.2.X | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelAvailNotifRQ | Inbound | OnPrem | no changes in XML |
| Treat the inbound MLOS="1" as a default value and do not set it as a restriction.
| PWS-2627 | 3.2.X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTNG_HotelCheckInNotifRQ | Inbound | OnPrem |
|
| Extend the functionality, allow to void a check-in. Needed Attributes
| PWS-2508 | PWS 3.2.X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_ProfileCreateRQ OTA_ProfileModifyRQ | Outbound | OnPrem | OTA_ProfileCreateRQ | Profile | TPA_Extenstion | UserDefinedFieldExtensions |
| Add the UDF to the TPA_Extension | PWS-2704 | PWS 3.2.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_SystemDataRS | outbound | OnPrem | IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup | Description |
| Add the Description to the RatePlanGroup | PWS-2692 | PWS 3.2.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_HotelResNotifRQ | outbound | onPrem | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | ReservationExtensions | CancellationInfo |
| Add the TPA_Extension "CancellationInfo" | PWS-2658 | PWS 3.2.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OTA_ProfileModifyRQ OTA_ProfileCreateRQ OTA_ProfileMergeRQ | outbound | OnPrem | TPA_Extensions | ProfileInfoExtensions | StatisticalInfos | @Source |
| Implement the elemet and attribute of StatisticalInfos in profile outbound to hold the value of sales source of the guests. | PWS-2679 | PWS 3.2.X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IO_SystemDataRS | outbound | OnPrem | Implement the SystemData Msg for OnPrem | PWS-2222 | PWS 3.2.X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IPA 21.22 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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:
| IPA-888 | 21.20 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PWS 3. | 4181 | OTA_HotelResNotifRQ | Inbound | IDS | OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | Profiles |ProfileInfo | Profile | Customer | CustLoyalty |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Anker PWS 3.1 PWS 3.1
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.
Codeblock | ||||
---|---|---|---|---|
| ||||
...
<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>
... |
OTA_ProfileModifyRQ
Profile | TPA_Extensions | px:ProfileInfoExtensions | Traces | Trace | @TraceBegin
The following xSetup is needed:
profiles - enable_loyalty_cards = 1
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.
Codeblock | ||||
---|---|---|---|---|
| ||||
...
<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>
... |
<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> |
OTA_ProfileModifyRQHotelInvBlockNotifRQ
Profile | TPA_Extensions | px:ProfileInfoExtensions | Traces | Trace | @TraceBeginContacts | Contact
Codeblock | ||||
---|---|---|---|---|
| ||||
<px:ProfileInfoExtensions> <px:Traces><InvBlocks> <InvBlock> <Contacts> <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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<InvBlocks> <InvBlock> <Contacts> <Contact ContactType="Company" RPH="5"> <CompanyName>protel hotelsoftware GmbH</ <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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
... <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.
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
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
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"> |
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | SubAccountBalance | @Balance
OTA_ProfileModifyRQ | ProfileModify | | Customer | CustLoyalty | SubAccountBalance | @Balance
Codeblock | ||||
---|---|---|---|---|
| ||||
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> |
OTA_ResRetrieveRS
Codeblock | ||||
---|---|---|---|---|
| ||||
<Success/> <Warnings> <Warning ShortText="No reservation found for id: 345521"/> </Warnings> <ReservationsList/> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
OTA_HotelRatePlanNotifRS | RatePlanCrossRefs | @ResponseRatePlanCode
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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)
OTA_HotelAvailRS | Errors | Error | @Type
OTA_HotelAvailRS | Errors | Error | @RecordID
OTA_HotelAvailRS | Warnings | Warning | @Type
OTA_HotelAvailRS | Warnings | Warning | @RecordID
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
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
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
HTNG_HotelCheckOutNotifRS | Errors | Error | @Type
HTNG_HotelCheckOutNotifRS | Warnings | Warning | @Type
Codeblock | ||||
---|---|---|---|---|
| ||||
... <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> ... |
HTNG_HotelCheckInNotifRS / Warnings/ Warning
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> ... |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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)
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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> |
PWS 3.0 Anker PWS 3.0 PWS 3.0
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileReadRS
OTA_HotelResNotifRQ
HNTG_HotelFolioNotifRQ
HNTG_FolioNotifRQ
OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | @Relation
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
- Booker
- InvoiceRecipient
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"/> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Outbound
Codeblock | ||||
---|---|---|---|---|
| ||||
... <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> .... |
"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
OTA_ProfileModifyRQ
- 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
HTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentData
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
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
- 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."
IO_ResModifyNotifRQ | Reservations | @HotelCode
IO_ResModifyNotifRQ | Reservations | @HotelID
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
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!
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | CompanyInfo | ContactPerson | PersonName | NamePrefix
OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | PersonName | NamePrefix
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | CompanyInfo | ContactPerson | PersonName | NamePrefix
OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | PersonName | NamePrefix
Codeblock | ||||
---|---|---|---|---|
| ||||
<OTA_ProfileCreateRQ> <Profile> <CompanyInfo> <CompanyName CompanyShortName="PROTEL Hotelsoftware GmbH" Department="">Protel</CompanyName> <ContactPerson> <PersonName> <NamePrefix>Herr</NamePrefix> <GivenName>Laureen</GivenName> <Surname>Jacke</Surname> </PersonName> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<OTA_HotelInvBlockNotifRQ> <InvBlocks> <InvBlock> <BlockDescriptions> <BlockDescription CreateDateTime="2020-08-12T00:00:00"> <Text TextFormat="PlainText">TestTest 333 </Text> </BlockDescription> </BlockDescriptions> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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:
Codeblock | ||
---|---|---|
| ||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
... <RoomRate RatePlanCode="SHARER" RatePlanCategory="HU" RatePlanID="75" RoomTypeCode="CBR" BookingCode="CST" RoomID="0215" NumberOfUnits="1"> ... |
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
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
- CurrencyCode
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
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
- CurrencyCode
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | @Type
HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
- Type
Codeblock | ||||
---|---|---|---|---|
| ||||
<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
- DecimalPlaces
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
... <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"
Codeblock | ||||
---|---|---|---|---|
| ||||
... <StayInfos ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" HotelCodeContext="protelIO"> ... |
Add the Attribute
- HotelCodeContext="protelIO"
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
<Statistic ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" FiscalDate="2017-06-23" ReportCode="HTNG_PastDailySegmentRoomTypeStatistics_v1"> |
Add the Attribute
- HotelName
IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | RevenueCategorySummaries | RevenueCategorySummary | @RevenueCategoryCode
Codeblock | ||||
---|---|---|---|---|
| ||||
<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)
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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> |
Modify the Value for the Attribute @PaymentTransactionTypeCode
- Charge → charge
- Reserve → reserve
- Refund → refund
Codeblock | ||||
---|---|---|---|---|
| ||||
...
<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>
... |
OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:VipCodes
OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:MarketingCodes
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | Customer | URL
OTA_ProfileModifyRQ | ProfileModify | Customer | URL
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
Codeblock | ||||
---|---|---|---|---|
| ||||
<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.
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
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.
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.
OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @CreateDateTime
OTA_HotelResNotifRQ | HotelReservations | HotelReservation | @LastModifyDateTime
no change in XML structure
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | SubAccountBalance | Type
OTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty | SubAccountBalance | Type
Codeblock | ||||
---|---|---|---|---|
| ||||
<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.
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | @LoyalLevel
OTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty | @LoyalLevel
Codeblock | ||||
---|---|---|---|---|
| ||||
<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.
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OTA_ProfileModifyRQ | Customer / EmployerInfo
OTA_ProfileCreateRQ | Customer | EmployerInfo
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |
- 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
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"/>
... |
HTNG_HotelFolioNotifRQ
Codeblock | ||||
---|---|---|---|---|
| ||||
<HTNG_HotelFolioNotifRQ>
<TPA_Extensions>
<px:FiscalExtensions xmlns:px="http://protel.io/htng/extensions">
<px:FiscalExtension InvoiceID="2:130" FiscalCode="2"/>
</px:FiscalExtensions>
</TPA_Extensions> |
HTNG_HotelFolioRS
Codeblock | ||||
---|---|---|---|---|
| ||||
<HTNG_HotelFolioRS>
<TPA_Extensions>
<px:FiscalExtensions xmlns:px="http://protel.io/htng/extensions">
<px:FiscalExtension InvoiceID="2:130" FiscalCode="2"/>
</px:FiscalExtensions>
</TPA_Extensions> |
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.
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"/> |
OnPrem will trigger now as described in our documentation the correct number of days
Info |
---|
|
IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode = 14
IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary | CountCategoryCode = 19
Codeblock | ||||
---|---|---|---|---|
| ||||
<IO_StatsNotifRQ EchoToken="092f259e-bcf8-4739-8ecb-7b7cf2383c9f" TimeStamp="2020-10-07T15:28:39Z" Version="1.002" CorrelationID="092f259e-bcf8-4739-8ecb-7b7cf2383c9f" xmlns <px:POSExtensions xmlns:px="http://protel.io/soaphtng/extensions"> <Statistics xmlns="http://www.opentravel.org/OTA/2003/05"> <Statistic ChainCode="HC1" HotelCode="3153" <px:HotelInfo 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>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"
Codeblock | ||||
---|---|---|---|---|
| ||||
<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"
Codeblock | ||||
---|---|---|---|---|
| ||||
<Statistic ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" FiscalDate="2017-06-23" ReportCode="HTNG_PastDailySegmentRoomTypeStatistics_v1"> |
Add the Attribute
- HotelName
IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | RevenueCategorySummaries | RevenueCategorySummary | @RevenueCategoryCode
Codeblock | ||||
---|---|---|---|---|
| ||||
<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)
Codeblock | ||||
---|---|---|---|---|
| ||||
<?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> |
Added the CountCategoryCode to the future Report
14 = Room cancelled
19 = Day-use rooms
HTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentData
Codeblock | ||||
---|---|---|---|---|
| ||||
<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> |