Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Release dates PWS (onPrem) LIVE Environment

VersionRelease date
3.152023-09-20
3.142023-07-05
3.132023-04-12
3.122023-02-15
3.112022-12-07
3.102022-10-24
3.92022-07-20
3.82022-05-25
3.72022-03-30
3.62022-02-02
3.52021-11-29
3.42021-09-15
3.32021-08-04
3.22021-07-14
3.12021-05-03
3.02021-02-08



Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersion

PWS 3.15.X 

Anker
PWS 3.15.X
PWS 3.15.X








OTA_ResRetrieveRS

outboundonPremOTA_ResRetrieveRS | ReservationsList | HotelReservation | @RoomNumberLockedIndicator


Codeblock
languagexml
collapsetrue
<HotelReservation CreateDateTime="2022-12-07T11:40:52.250Z" CreatorID="protel 1" LastModifierID="protel 1" LastModifyDateTime="2023-05-23T14:08:29.770Z" ResStatus="Reserved" RoomNumberLockedIndicator="false">


This indicates if a room number has been permanently assigned. PWS-36503.15.0

OTA_ResRetrieveRS

outboundonPremOTA_ResRetrieveRS | ReservationsList | HotelReservation | RoomStays | RoomStay | RoomTypes | RoomType | TPA_Extensions | pxs:RoomStatusExtensions | pxs:HouseKeepingInfo | @RoomStatus


Codeblock
languagexml
collapsetrue
<TPA_Extensions>
	<pxs:RoomStatusExtensions xmlns:pxs="http://protel.io/htng/extensions">
		<pxs:HouseKeepingInfo RoomStatus="2"/>
	</pxs:RoomStatusExtensions>
</TPA_Extensions>


Displays the current status of the room for arrivals and in-house guests.PWS-36503.15.0

OTA_HotelResNotifRQ

outboundonPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | @RoomNumberLockedIndicator


Codeblock
languagexml
collapsetrue
<HotelReservation CreateDateTime="2022-12-07T11:40:52.250Z" CreatorID="protel 1" LastModifierID="protel 1" LastModifyDateTime="2023-05-23T14:08:29.770Z" ResStatus="Reserved" RoomNumberLockedIndicator="false">


This indicates if a room number has been permanently assigned. PWS-36503.15.0

OTA_HotelResNotifRQ

outboundonPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomTypes | RoomType | TPA_Extensions | pxs:RoomStatusExtensions | pxs:HouseKeepingInfo | @RoomStatus


Codeblock
languagexml
collapsetrue
<TPA_Extensions>
	<pxs:RoomStatusExtensions xmlns:pxs="http://protel.io/htng/extensions">
		<pxs:HouseKeepingInfo RoomStatus="0"/>
	</pxs:RoomStatusExtensions>
</TPA_Extensions>


Displays the current status of the room for arrivals and in-house guests.PWS-36503.15.0

OTA_ProfileCreateRQ 
OTA_ProfileModifyRQ 

outboundonPrem

OTA_ProfileCreateRQ | Profile | Customer | PersonName | NameTitle


OTA_ProfileModifyRQ | ProfileModify | Customer | PersonName | NameTitle


Codeblock
languagexml
collapsetrue
<PersonName>
	<NamePrefix>Mr.</NamePrefix>
	<GivenName>Kevin</GivenName>
	<Surname>Boateng</Surname>
	<NameTitle>Prince</NameTitle>
</PersonName>


Added the guest's title to the PersonName element.PWS-36633.15.0

PWS 3.14.X 

Anker
PWS 3.14.X
PWS 3.14.X








OTA_ProfileModifyRQ

outbound
inbound
onPremProfileModify | Customer | TPA_Extensions | ProfileInfoExtensions | PersonInfos | Registration


Codeblock
languagexml
collapsetrue
<px:Registration BirthCountry="IT" BirthPlace="CALVIGNASCO" LicensePlate="35347444" /> 


Implemented guest BirthCountry & BirthPlace in profile messages, both inbound and outbound.PWS-35713.14.0

OTA_ProfileModifyRQ

outbound
inbound
onPremProfileModify | Customer | TPA_Extensions | ProfileInfoExtensions | AccountingInfos


Codeblock
languagexml
collapsetrue
<px:TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:AccountingInfos ARNumber="223344" Tax1="222222" Tax2="333333" />
	</px:ProfileInfoExtensions>
</px:TPA_Extensions>


Implemented Tax1 and Tax2 attributes in the profile messages.PWS-35903.14.0

IO_SystemDataRS

outboundonPremIO_SystemDataRS | Reservations | DefaultValues


Codeblock
languagexml
collapsetrue
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<env:Header>
		<htnga:CorrelationID>CorrelationID123</htnga:CorrelationID>
		<Source xmlns="http://protel.io/soap" Module="protel.WebServices" ModuleVersion="0.0.0.3" Product="protel On Premise SPE" ProductVersion="23.01000" Service="io.protel.onpremise"/>
	</env:Header>
	<env:Body>
		<ns2:IO_SystemDataRS xmlns:ns2="http://protel.io/soap" CorrelationID="CorrelationID123" TimeStamp="2023-05-11T07:25:25.4624218Z" Version="3.000">
			<ns2:UniqueID ID="3152" ID_Context="protelIO" Type="10"/>
			<ns2:Success/>
			<ns2:SystemData ChainCode="HC1" HotelCode="3152" HotelID="1" HotelName="Hotel Lamm">
				<ns2:UniqueID ID="3152" ID_Context="protelIO" Type="10"/>
				<ns2:Reservations>
					<ns2:DefaultValues ArrivalTime="14:00" DepartureTime="10:00"/>
				</ns2:Reservations>
			</ns2:SystemData>
		</ns2:IO_SystemDataRS>
	</env:Body>
</env:Envelope>


The default arrival / departure time which is set by hotel can be displayed in the reservation section of IO_SystemDataRSPWS-35733.14.0

HTNG_HotelCheckOutNotifRQ

inboundonPremHTNG_HotelCheckOutNotifRQ | RetransmissionIndicator


Codeblock
languagexml
collapsetrue
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<soapenv:Header xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">		
	</soapenv:Header>
	<soapenv:Body xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
		<HTNG_HotelCheckOutNotifRQ xmlns="http://htng.org/2014B" EchoToken="PWS_3542_13" CorrelationID="PWS_3542_13" RetransmissionIndicator="true">
			<POS>
				<Source xmlns="http://www.opentravel.org/OTA/2003/05">
					<RequestorID ID="3153" Type="10" ID_Context="protelIO"/>
					<BookingChannel Type="4" Primary="true"/>
				</Source>				
			</POS>
            <PropertyInfo  ChainCode="n/a" HotelCode="3153" HotelCodeContext="protelIO" HotelName="protel"/>
			<AffectedGuests>
				<UniqueID ID="342692" ID_Context="protelIO" Type="14"/>
			</AffectedGuests>
            <HotelReservations>
				<HotelReservation xmlns="http://www.opentravel.org/OTA/2003/05" CreateDateTime="2020-08-14T15:59:15Z" CreatorID="ame1" ResStatus="Checked Out">
					<UniqueID ID="342692" Type="14" ID_Context="protelIO"/>
				</HotelReservation>
			</HotelReservations>
		</HTNG_HotelCheckOutNotifRQ>
	</soapenv:Body>
</env:Envelope>


Implemented the RetransmissionIndicator. When true, indicates the message is being re-sent. The RS message will hold all invoices attached to the reservation for the CO guest. PWS-35423.14.0

OTA_HotelResNotifRQ

inboundonPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | Services | Service


Codeblock
languagexml
collapsetrue
<Services>
    <Service ID="RemoveAll" ID_Context="protelIO" Type="16"/>
</Services>


For Transaction Action "Modify":
If Service/@ID="RemoveAll" is provided, then any bookable package/s that are attached to the reservation will be removed from it.
PWS-35563.14.0

PWS 3.13.X

Anker
PWS 3.13.X
PWS 3.13.X








IO_ResModifyNotifRQinbound onPremIO_ResModifyNotifRQ | Reservations | Reservation | ProfileReferences | ProfileReference
Use Case 11 (Change attached guest profile): only the main reservation profile can be exchanged, no profiles on the list of attached guest profiles
Use Case 11b (Add attached guest profile): an unlimited number of profiles can be attached to the list of attached guest profiles.
PWS-34893.13.3
OTA_HotelAvailRSoutboundonPremOTA_HotelAvailRS | RoomStays | RoomStay | RoomRates | RoomRate | Rates | Rates | TPA_Extensions | 
px:FixedChargesAmountsExtensions


Codeblock
languagexml
collapsetrue
<Rate RateTimeUnit="Day" EffectiveDate="2019-02-01" ExpireDate="2019-02-03" UnitMultiplier="2">
    <Base AmountAfterTax="117.00" CurrencyCode="EUR"/>
    <Total AmountAfterTax="234.00" CurrencyCode="EUR"/>
    <TPA_Extensions>
        <px:FixedChargesAmountsExtensions
            xmlns:px="http://protel.io/htng/extensions" End="2019-02-03" Start="2019-02-01">
            <px:RateAmount AmountAfterTax="10.00" RevenueCategoryCode="17" CurrencyCode="EUR" />
        </px:FixedChargesAmountsExtensions>
    </TPA_Extensions>
</Rate>


New element TPA_Extensions will be added IF the respective rate has an exclusive fixed charge package.

The value of the FixedChargesAmountsExtensions | RateAmount | AmountAfterTax is NOT included in the Base/Total amounts and should NOT be used for OTA_HotelResNotifRQ to the PMS. This value has informative purpose to the walk-in guest - since the charge will be added automatically by the PMS logic during EOD.

PWS-35053.13.0
IO_ResModifyNotifRQinboundonPremIO_ResModifyNotifRQ | Reservations | Reservation | ProfileReferences | ProfileReference
UseCase 11: Change arriving guest


Codeblock
languagexml
collapsetrue
<p:ProfileReferences>
	<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36975" Action="DELETE"/>
	<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36888" Action="CREATE"/>
</p:ProfileReferences>


UseCase 11: Change arriving guest
With this PWS version, only the arriving guest will be exchanged, all folio recipients remain as they are.
PWS-34633.13.0
IO_ResModifyNotifRQinboundonPremIO_ResModifyNotifRQ | Reservations | Reservation | InvoiceReferences | InvoiceReference | ProfileReferences | ProfileReference
UseCase 12: Change invoice recipient


Codeblock
languagexml
collapsetrue
<p:InvoiceReferences>
	<p:InvoiceReference Type="Invoice" ID="34161-0" ID_Context="protelIO">
		<p:ProfileReferences>
			<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36975" Action="DELETE" Role="InvoiceRecipient"/>
			<p:ProfileReference ID_Context="protelIO" Type="Customer" ID="36842" Action="CREATE" Role="InvoiceRecipient"/>
		</p:ProfileReferences>
	</p:InvoiceReference>
</p:InvoiceReferences>


UseCase 12: Change invoice recipient
With this PWS version, the invoice recipient for folios A to F can be exchanged. The arriving guest will not be touched.
PWS-34633.13.0
IO_RatePackageNotifRQOutboundonPremIO_RatePackageNotifRQ | Packages | Package | PackageItems | PackageItem | Calculation | @FixedChargeInd


Codeblock
languagexml
collapsetrue
<Calculation AmountAfterTax="10.00" AmountBeforeTax="8.06" Currency="EUR" InclusiveInd="false" FixedChargeInd="false" Recurrence="Daily" Relation="PerAdult">
    <DaysOfWeek Fri="true" Mon="true" Sat="true" Sun="true" Thu="true" Tue="true" Wed="true"/>
</Calculation>


New attribute added to schema: @FixedChargeInd. The attribute is boolean and optional. 

If @FixedChargeInd="false" (or the attribute is missing) then the package is "not a fixed charge". 

Else if the @FixedChargeInd="true" then the package "is a fixed charge". This is extra cost to the accommodation amount - but unlike the "add to rate" packages, it should not be included in the inbound reservation total amount to the PMS.

PWS-34923.13.0
HTNG_ChargePostingRQInboundonPremHTNG_ChargePostingRQ | Posting | Transaction | RevenueDetails | RevenueDetail


Codeblock
languagexml
collapsetrue
<RevenueDetails><RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-10.00" SubTypeID="Deposit"><Account ID="342451" Type="14" ID_Context="protelIO"/></RevenueDetail></RevenueDetails>


The new value 'Deposit' can be applied to the SubTypeID attribute. In this case partial payments for the guests who depart on the current business date will be possible.PWS-35093.13.0

PWS 3.12.X 

Anker
PWS 3.12.X
PWS 3.12.X








OTA_HoteResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGlobalInfo | HotelReservationIDs | HotelReservationID


Codeblock
languagexml
collapsetrue
<ResGlobalInfo>
	<HotelReservationIDs>
		<HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="27" ResID_Value="345751"/>
		<HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="14" ResID_Value="345752"/>
		<HotelReservationID ForGuest="true" ResID_Source="protelIO" ResID_Type="27" ResID_Value="345753"/>
		<HotelReservationID ForGuest="true" ResID_Source="CRS" ResID_Type="14" ResID_Value="PL34575211910P"/>
	</HotelReservationIDs>
</ResGlobalInfo>


For sharer reservations there will be one HotelReservationID element for each associated reservation with ResID_Type="27".
Any additionally reservation ID (e.g. from a different system) will be added only for the reservation the message is about with ResID_Type="14".
PWS-35473.12.1
HTNG_ChargePostingRQInboundOnPremHTNG_ChargePostingRQ | Posting | RevenueCenter | ID 


Codeblock
languagexml
collapsetrue
<HTNG_ChargePostingRQ xmlns="http://htng.org/2014B" EchoToken="PWS_3462_14" CorrelationID="PWS_3462_14" TimeStamp="2021-03-18T11:32:36Z" Version="0">
	<POS>
		<Source xmlns="http://www.opentravel.org/OTA/2003/05">
			<RequestorID ID="3153" Type="10" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
		</Source>
	</POS>
	<PropertyInfo HotelCode="3153"/>
	<Posting ID="7">
		<RevenueCenter Description="Kiosk" ID="99">
			<Terminal ID="Kiosk"/>
		</RevenueCenter>
		<Transaction TicketID="120">
			<RevenueDetails>
				<RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-100" SubTypeID="Payment">
					<Account ID="342443" Type="14" ID_Context="protelIO"/>
				</RevenueDetail>
			</RevenueDetails>
		</Transaction>
	</Posting>
</HTNG_ChargePostingRQ>


The ID value in the RevenueCenter element will be considered as the CashRegister number and in case vendors need to use a different cash register ID than the default one.PWS-34623.12.X
OTA_HotelAvailRQInboundOnPremOTA_HotelAvailRQ


Codeblock
languagexml
collapsetrue
<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" MaxResponses="1000" IsModify="true" AvailRatesOnly="true" CorrelationID="PWS_3382_107" Version="0" EchoToken="PWS_3382_107">


@IsModify is A boolean flag that indicates the response message should return only HotelStay information. If the flag is true, the AvailRS will not hold the Errors element, if only no available inventory is found, but return an empty result with the TPA_Extensions AvailabilityExtensions filled (for room assignment).PWS-33823.12.X
OTA_HotelResNotifRQ outboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | UniqueID


Codeblock
languagexml
collapsetrue
<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="113a2cc0-8dab-429c-8ae0-89f816dbee7d" EchoToken="113a2cc0-8dab-429c-8ae0-89f816dbee7d" PrimaryLangID="en" ResStatus="Commit" TimeStamp="2022-11-29T11:06:36Z" Version="5.000" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd">
			<POS>
				<Source>
					<RequestorID ID="3525" ID_Context="protelIO" Type="10"/>
					<BookingChannel Primary="true" Type="4"/>
					<TPA_Extensions>
						<px:POSExtensions xmlns:px="http://protel.io/htng/extensions">
							<px:HotelInfo FiscalDate="2019-06-25"/>
						</px:POSExtensions>
					</TPA_Extensions>
				</Source>
			</POS>
			<HotelReservations>
				<HotelReservation CreateDateTime="2022-11-29T11:05:33.467Z" CreatorID="protel 1" LastModifierID="protel 1" LastModifyDateTime="2022-11-29T11:06:16.643Z" ResStatus="Reserved">
					<UniqueID ID="34092" ID_Context="protelIO" Type="14"/>
					<UniqueID ID="34094" ID_Context="protelIO" Type="36"/>
					<RoomStays>


The UniqueID element was extended by the element with type="36" showing the reservation number of the group master.PWS-34103.12.X

PWS 3.11.X 

Anker
PWS 3.11.X
PWS 3.11.X








IO_StatsNotifRQoutboundOnPremIO_StatsNotifRQ | Statistics


Codeblock
languagexml
collapsetrue
<IO_StatsNotifRQ xmlns="http://protel.io/soap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders" EchoToken="c903c385-3f65-4d4e-9a8e-53a5fb7b12cf" TimeStamp="2022-10-06T09:17:19Z" Version="1.0" CorrelationID="c903c385-3f65-4d4e-9a8e-53a5fb7b12cf" PrimaryLangID="en">
	<POS>
		<Source xmlns="http://www.opentravel.org/OTA/2003/05">
			<RequestorID Type="10" ID="3152" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
			<TPA_Extensions>
				<px:POSExtensions xmlns:px="http://protel.io/htng/extensions">
					<px:HotelInfo FiscalDate="2018-10-22"/>
				</px:POSExtensions>
			</TPA_Extensions>
		</Source>
	</POS>
	<UniqueID Type="10" ID="3152" ID_Context="protelIO"/>
	<Statistics>
		<Statistic xmlns="http://www.opentravel.org/OTA/2003/05" ...>
			...
		</Statistic>
	</Statistics>
</IO_StatsNotifRQ>


We will correct the namespaces to follow our XSD. The elements <Statistics>, <POS> and <UniqueID> will be changed to use the IO namespace instead of the OTA one. PWS-33483.11.X
OTA_HotelResNotifRQinboundonPremRate | @CachedIndicator


Codeblock
languagexml
collapsetrue
<RoomRates>
    <RoomRate EffectiveDate="2019-09-11" ExpireDate="2019-09-12" NumberOfUnits="1" RatePlanCode="ADVOV BB" RoomTypeCode="SSV">
        <Rates>
            <Rate AlternateCurrencyInd="false" EffectiveDate="2019-09-11" ExpireDate="2019-09-12" RateTimeUnit="Day" UnitMultiplier="1" CachedIndicator="true">
                <Base AmountAfterTax="1.00" CurrencyCode="BGN"/>
            </Rate>
            <Rate AlternateCurrencyInd="true" EffectiveDate="2019-09-11" ExpireDate="2019-09-12" RateTimeUnit="Day" UnitMultiplier="1" CachedIndicator="true">
                <Base AmountAfterTax="2.00" CurrencyCode="EUR"/>
            </Rate>
        </Rates>
    </RoomRate>
    <RoomRate EffectiveDate="2019-09-12" ExpireDate="2019-09-13" NumberOfUnits="1" RatePlanCode="ADVOV BB" RoomTypeCode="SSV">
        <Rates>
            <Rate AlternateCurrencyInd="false" EffectiveDate="2019-09-12" ExpireDate="2019-09-13" RateTimeUnit="Day" UnitMultiplier="1">
                <Base AmountAfterTax="1.00" CurrencyCode="BGN"/>
            </Rate>
            <Rate AlternateCurrencyInd="true" EffectiveDate="2019-09-12" ExpireDate="2019-09-13" RateTimeUnit="Day" UnitMultiplier="1">
                <Base AmountAfterTax="2.00" CurrencyCode="EUR"/>
            </Rate>
        </Rates>
    </RoomRate>
</RoomRates>


If at least one of Rate/@CachedIndicator is set to "true", then the PMS will ignore the resp rate details for this reservation and will use its latest known data.
@CachedIndicator is optional with default value of "false".
The values makes sense only for ResStatus="Modify".
The new use case eliminates the option for inbound  rate modification, where the external service is not aware of any manual edits on the reservation rate details, to be lost.
PWS-33723.11.X

PWS 3.9.X 

Anker
PWS 3.9.X
PWS 3.9.X








IO_SystemDataRS outboundonPrem

IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup |@CategoryCode

IO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup |@CategoryID


Codeblock
languagexml
collapsetrue
<ns2:RatePlanGroup CategoryCode="PWSTG" CategoryID="21" Code="PWSTRC" ID="1271" ID_Context="protelIO" Type="Standard" Visible="true">
	<ns2:Description Language="de">PWS Test Ratecode</ns2:Description>
</ns2:RatePlanGroup>


Added two new optional attributes to be able to display the rategroups. Now the message is able to display the onPremise rate structure rategroup → ratecode → ratecodetails.PWS-32363.9.X

OTA_ProfileModifyRQ

OTA_ProfileModifyRS

outbound

inbound

onPrem

OTA_ProfileModifyRQ | POS | ProfileModify 


OTA_ProfileModifyRS | Errors | Error


Codeblock
languagexml
collapsetrue
<Errors>
	<Error Code="321" ShortText="The Profile is anonymized and will not be updated." Type="10"/>
</Errors>


If an anonymized profile is edited in PMS, then no data is shared. 

As soon as an anonymized profile is tried to be updated in the PMS, the error message is displayed. 

PWS-3261

and 

PWS-3260

3.9.X

PWS 3.8.X 

Anker
PWS 3.8.X
PWS 3.8.X








OTA_HotelInvBlockNotifRQoutboundonPremOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | RoomTypes | RoomType | RoomTypeAllocations | RoomTypeAllocation 

Current

Codeblock
languagexml
collapsetrue
<RoomTypeAllocations RoomTypePickUpStatus="X">
    <RoomTypeAllocation End="2022-08-01" NumberOfUnits="1" Start="2022-08-01"/>
    <RoomTypeAllocation End="2022-08-02" NumberOfUnits="1" Start="2022-08-02"/>
    <RoomTypeAllocation End="2022-08-03" NumberOfUnits="0" Start="2022-08-03"/>
    <RoomTypeAllocation End="2022-08-04" NumberOfUnits="0" Start="2022-08-04"/>
    <RoomTypeAllocation End="2022-08-05" NumberOfUnits="0" Start="2022-08-05"/>
    <RoomTypeAllocation End="2022-08-06" NumberOfUnits="3" Start="2022-08-06"/>
    <RoomTypeAllocation End="2022-08-07" NumberOfUnits="0" Start="2022-08-07"/>
    <RoomTypeAllocation End="2022-08-08" NumberOfUnits="0" Start="2022-08-08"/>
    <RoomTypeAllocation End="2022-08-09" NumberOfUnits="0" Start="2022-08-09"/>
    <RoomTypeAllocation End="2022-08-10" NumberOfUnits="0" Start="2022-08-10"/>
</RoomTypeAllocations>

Expected

Codeblock
languagexml
collapsetrue
<RoomTypeAllocations RoomTypePickUpStatus="X">
    <RoomTypeAllocation End="2022-08-02" NumberOfUnits="1" Start="2022-08-01"/>
    <RoomTypeAllocation End="2022-08-05" NumberOfUnits="0" Start="2022-08-03"/>
    <RoomTypeAllocation End="2022-08-06" NumberOfUnits="3" Start="2022-08-06"/>
    <RoomTypeAllocation End="2022-08-10" NumberOfUnits="0" Start="2022-08-07"/>
</RoomTypeAllocations>


RoomTypeAllocation blocks will be grouped for consecutive dates per @NumberOfUnits. This will result in a shorter message. No schema change. Valid for all @RoomTypePickUpStatus supported.PWS-31933.8.X

HTNG_HotelFolioNotifRQ

HTNG_HotelFolioRS

outbound

inbound

onPrem

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | FolioIDs | FolioID

or/and

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | RevenueDetailItems | RevenueDetailItem | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<htng:HTNG_HotelFolioNotifRQ>
	<htng:Folios>
		<htng:Folio>
			<htng:RevenueDetails>
				<htng:RevenueDetail>
					<FolioIDs>
						<FolioID>OResID | xyz <FolioID/>
						<FolioID>OGstID | xyz <FolioID/>


Added the "OResID" and "OGstID" to the FolioID element to display the  "originalResID" and "originalGuestID"  if an item was shifted from one reservation to another.

If an item was not shifted, the information will not be displayed

PWS-31513.8.X

OTA_ProfileCreateRQ 

OTA_ProfileModifyRQ 

inboundonPremOTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | ProfileInfoExtensions | Salutation


Codeblock
languagexml
collapsetrue
<OTA_ProfileModifyRQ>
	<ProfileModify>
			<TPA_Extensions>
				<px:ProfileInfoExtensions>
					<px:PersonInfos>       <px:Salutation ID="1" ID_Context="protelIO" Type="Salutation">Dear Mrs. and Miss. Mustermann</px:Salutation>


When we receive a new salutation, it is now no longer overwritten. If the TPA_Extensions part is completely not in the XML, then the personal salutation is also not touched. In addition, the personal salutation is changed back if there is no personal salutation in the TPA_Extensions part. PWS-31793.8.X

OTA_ProfileCreateRQ 

OTA_ProfileModifyRQ 

outboundOnPremOTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | px:ProfileInfoExtensions | px:PersonInfos | px:Language 


Codeblock
languagexml
collapsetrue
<OTA_ProfileModifyRQ>
	<ProfileModify>
			<TPA_Extensions>
				<px:ProfileInfoExtensions>
					<px:PersonInfos>
						<px:Language DefaultInd="true">en-us</px:Language>


Add the TPA Extension Language to the profile messages.PWS-31503.8.X
OTA_ReadRQinboundOnPremOTA_ReadRQ | ReadRequests | HotelReadRequest | TPA_Extensions | px:ReadRequestExtensions | px:Room | @RoomID


Codeblock
languagexml
collapsetrue
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="PWS-3130" Version="0" EchoToken="PWS-3130" MaxResponses="2">
	<POS>
		<Source>
			<RequestorID ID="3152" Type="10" ID_Context="protelIO"/>
		</Source>
	</POS>
	<ReadRequests>
		<HotelReadRequest>
			<SelectionCriteria ResStatus="In-house"/>
			<Verification>
				<PersonName>
					<Surname>Duck</Surname>
				</PersonName>
			</Verification>
			<TPA_Extensions>
				<px:ReadRequestExtensions xmlns:px="http://protel.io/htng/extensions">
					<px:Room RoomID="303" />
				</px:ReadRequestExtensions>
			</TPA_Extension>
		</HotelReadRequest>
	</ReadRequests>
</OTA_ReadRQ>


Extend the OTA_ReadRQ to search for the RoomIDPWS-31303.8.X

PWS 3.7.X 

Anker
PWS 3.7.X
PWS 3.7.X








OTA_ProfileCreateRQ 

OTA_ProfileModifyRQ 

inboundOnPrem

OTA_ProfileCreateRQ | Profile | Customer | PersonName | MiddleName

OTA_ProfileModifyRQ | ProfileModify | Customer | PersonName | MiddleName


Codeblock
languagexml
collapsetrue
<Customer BirthDate="1980-01-01" Gender="Female">
	<PersonName>
		<GivenName>Doodi</GivenName>
		<MiddleName>Jacksonn</MiddleName>
		<Surname>Joness</Surname>
	</PersonName>
	<Email DefaultInd="true" EmailType="1" ShareMarketInd="No">xgomez+892372@civitfun.com</Email>
	<Address DefaultInd="true" FormattedInd="false" ShareMarketInd="No" Type="1" UseType="6">
		<AddressLine>Calle Dos 2</AddressLine>
		<CityName>Palma</CityName>
		<StateProv>Islas Baleares</StateProv>
		<CountryName Code="ES">Spain</CountryName>
	</Address>
	<CitizenCountryName Code="ES" DefaultInd="true"/>
	<Document DocID="99999999R" DocType="5" EffectiveDate="2015-01-01" ExpireDate="2024-12-31"/>
	<EmployerInfo CompanyShortName="" Department=""/>
</Customer>


Implemented MiddleName for inbound private profilesPWS-31283.7.X

OTA_ProfileCreateRQ 

OTA_ProfileModifyRQ 

outboundOnPrem

OTA_ProfileCreateRQ | Profile | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile 


 OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | px:ProfileInfoExtensions | px:StatisticalInfos | px:ParentProfile 


Codeblock
languagexml
collapsetrue
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:StatisticalInfos>
			<px:ParentProfile Name="Duck AG" ID="181579" ID_Context="protelIO" Type="3"/>
		</px:StatisticalInfos>
	</px:ProfileInfoExtensions>
</TPA_Extensions>


Removed the existing TPA_Extensions 

Codeblock
languagexml
collapsetrue
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">      
     <Master MasterAccountID="181579"/>     
</TPA_Extensions>

and added the new official XSD TPA_Extensions "px:ParentProfile"

PWS-30973.7.X
OTA_HotelResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | Guarantee


Codeblock
languagexml
collapsetrue
<Guarantee GuaranteeType="CC/DC/Voucher">
    <GuaranteesAccepted>
        <GuaranteeAccepted>
            <PaymentCard CardCode="MC" CardType="1" EncryptionKey="hOSJucTz-9QDE-KKKE-qiTa-af8X4oOiNVG" ExpireDate="0123" MaskedCardNumber="XXXXXXXXXXXX5100">
                <CardHolderName>AT</CardHolderName>
            </PaymentCard>
        </GuaranteeAccepted>
    </GuaranteesAccepted>
</Guarantee>


Assigned credit cards will be displayed in the outbound eservation messagePWS-10893.7.X
HTNG_ChargePostingRQinboundOnPremHTNG_ChargePostingRQ | Posting | Transaction | RevenueDetails | RevenueDetail | Account


Codeblock
languagexml
collapsetrue
<RevenueDetails>
	<RevenueDetail Description="Cash Payment" PMSRevenueCode="1" CurrencyCode="AED" Amount="-45.00" SubTypeID="Payment">
		<Account ID="555342188" Type="14" ID_Context="External"/>
	</RevenueDetail>
</RevenueDetails>


Posted Revenue / Payment is possible against External ResID. PWS-31123.7.X
IO_RatePackageNotifRQoutboundOnPrem

IO_RatePackageNotifRQ | Packages | Package | Validity


IO_RatePackageNotifRQ | Packages | Package | PackageItem | Validity


Codeblock
languagexml
collapsetrue
<Validity From="1990-01-01" To="2050-01-01"/>


Remove the time stamp from the Validity element according to our XSDPWS-30923.7.X

PWS 3.6.X 

Anker
PWS 3.6.X
PWS 3.6.X








OTA_HotelAvailNotifRQinboundOnPremOTA_HotelAvailNotifRQ | AvailStatusMessages | AvailStatusMessage | RestrictionStatus


Codeblock
languagexml
collapsetrue
<?xml version='1.0' encoding='utf-8'?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
	<env:Body>
		<OTA_HotelAvailNotifRQ MessageContentCode="3" TimeStamp="2018-12-03T00:00:00.000Z" Version="2">
			<AvailStatusMessages HotelCode="3153">
				<AvailStatusMessage>
					<StatusApplicationControl Start="2021-08-09" End="2021-08-10" RatePlanCode="Ali2" InvTypeCode="CBR"/>
					<RestrictionStatus Restriction="Departure" Status="Close"/>
					<UniqueID Type="16" ID_Context="info.rateboard.rms" ID="2"/>
				</AvailStatusMessage>
				<AvailStatusMessage>
					<StatusApplicationControl Start="2021-08-09" End="2021-08-10" RatePlanCode="Ali2" InvTypeCode="CS"/>
					<RestrictionStatus Restriction="Departure" Status="Close"/>
					<UniqueID Type="16" ID_Context="info.rateboard.rms" ID="2"/>
				</AvailStatusMessage>
			</AvailStatusMessages>
		</OTA_HotelAvailNotifRQ>
	</env:Body>
</env:Envelope>


Implement Close to Departure as a new restriction in OnPremPWS-3012PWS 3.6.X
HTNG_HotelChargePostingRQinboundOnPremHTNG_HotelChargePostingRQ | Posting | Transaction | RevenueDetails | RevenueDetail | @ReferenceID


Codeblock
languagexml
collapsetrue
<HTNG_ChargePostingRQ>
	<Posting ID="1">
		<Transaction TicketID="1">
			<RevenueDetails>
				<RevenueDetail Description="Upsell Article" PMSRevenueCode="1000" ReferenceID="1015" Amount="20.00" SubTypeID="Revenue">
					<ExtendedPrice AmountAfterTax="20.00" DecimalPlaces="2" Quantity="1"/>
					<Account ID="341977-2" Type="16" ID_Context="protelIO"/>
				</RevenueDetail>


With the Attribute @ReferenceID it will be possible to post as well articles. In the Attribute @ReferenceID the Article ID needs to be sent to Protel. In the Attribute @PMSRevenueCode the TAA from the article should be providedPWS-2996PWS 3.6.X
IO_RatePackageNotifRQoutboundOnPremIO_RatePackageNotifRQ | Packages | Package | PackageItem | Calculation


Codeblock
languagexml
collapsetrue
<IO_RatePackageNotifRQ>
	<Packages>
		<Package>
			<PackageItems>
				<PackageItem>
					<Calculation AmountBeforeTax="40" AmountAfterTax="40" Currency="AED" InclusiveInd="true" Recurrence="Daily" Relation="Complex">
						<DaysOfWeek Mon="true" Tue="true" Wed="true" Thu="true" Fri="true" Sat="true" Sun="true"/>


Fix the values for the Recurrence Attribute

Possible Recurrence

  • OnArrival
  • OnDeparture
  • Daily
  • DaysOfWeek
  • Floating
  • Fixed
PWS-3001PWS 3.6.X
OTA_HotelResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | px:ReservationExtensions | px:FixedCharges | px:FixedCharge | px:ServiceDates | px:ServiceDate


Codeblock
languagexml
collapsetrue
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ReservationExtensions>
		<px:FixedCharges>
			<px:FixedCharge Code="KosmetikExtNoR" Recurrence="floating" From="2021-01-05" To="2021-01-12" Quantity="1" RequestedIndicator="true">
				<px:Price CurrencyCode="EUR" SingleAmountAfterTax="25.00"/>
				<px:UniqueID Type="FixedCharge" ID="103604" ID_Context="protelIO"/>
				<px:Item ItemID="75"/>
				<px:InvoiceText>Kosmetik täglich ab 5.1.</px:InvoiceText>
				<px:ServiceDates>
					<px:ServiceDate From="2021-01-05" To="2021-01-07"/>
					<px:ServiceDate From="2021-01-10" To="2021-01-12"/>
				</px:ServiceDates>
			</px:FixedCharge>
		</px:FixedCharges>
	</px:ReservationExtensions>
</TPA_Extensions>


Add the new Element "SerivceDates"

This Element will be displayed for the Recurrence= "floating"

Possible Recurrence

  • OnArrival
  • OnDeparture
  • Daily
  • DaysOfWeek
  • Floating
  • Fixed
PWS-2547PWS 3.6.X
HTNG_HotelFolioRSoutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevnueDetail | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<HTNG_HotelFolioRS>
	<Folios>
		<Folio>
			<RevenueDetails>
				<RevenueDetail>
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>SDate|2017-08-23</FolioID>
                                                <FolioID>InvID|122345</FolioID>
					</FolioIDs>
					<RevenueDetailItems>
						<RevenueDetailItem>
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>SDate|2017-08-23</FolioID>
							</FolioIDs>


Add a short in front of the FolioID Element, to describe what is displayed

Possible values

  • InvID
  • InvNo
  • GstID
  • Code
  • TAAGrp
  • PkgID
  • SDate
PWS-2961PWS 3.6.X
HTNG_HotelFolioNotifRQoutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevnueDetail | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<HTNG_HotelFolioNotifRQ>
	<Folios>
		<Folio>
			<RevenueDetails>
				<RevenueDetail>
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>SDate|2017-08-23</FolioID>
                                                <FolioID>InvID|122345</FolioID>
					</FolioIDs>
					<RevenueDetailItems>
						<RevenueDetailItem>
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>SDate|2017-08-23</FolioID>
							</FolioIDs>


Add a short in front of the FolioID Element, to describe what is displayed

Possible values

  • InvID
  • InvNo
  • GstID
  • Code
  • TAAGrp
  • PkgID
  • SDate
PWS-2961PWS 3.6.X
IO_StatsNotifRQoutboundOnPremIO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSet | RevenueCategorySummaries


Codeblock
languagexml
collapsetrue
    <IO_StatsNotifRQ/>
      <Statistics>
        <Statistic>
          <StatisticApplicationSets>
            <StatisticApplicationSet Start="2021-10-28" End="2021-10-28">
              <StatisticCodes>
                <StatisticCode StatCode="Group" StatCategoryCode="3" />
                <StatisticCode StatCode="1" StatCategoryCode="Pseudo" />
              </StatisticCodes>
              <RevenueCategorySummaries>
                <RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="123" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="126" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="129" CurrencyCode="EUR" Amount="0.00" />
                <RevenueCategorySummary RevenueCategoryCode="1217" CurrencyCode="EUR" Amount="0.00" />
              </RevenueCategorySummaries>


If the all value for the RevenueCategorySummaries is zero, we will not display the ElementPWS-2998PWS 3.6.X

PWS 3.5.X 

Anker
PWS 3.5.X
PWS 3.5.X








HTNG_HotelFolioRSoutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevnueDetail | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<HTNG_HotelFolioRS>
	<Folios>
		<Folio>
			<RevenueDetails>
				<RevenueDetail>
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>SDate|2017-08-23</FolioID>
                                                <FolioID>InvID|122345</FolioID>
					</FolioIDs>
					<RevenueDetailItems>
						<RevenueDetailItem>
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>SDate|2017-08-23</FolioID>
							</FolioIDs>


Add a short in front of the FolioID Element, to describe what is displayed

Possible values

  • InvID
  • InvNo
  • GstID
  • Code
  • TAAGrp
  • PkgID
  • SDate
PWS-2961PWS 3.5.X
HTNG_HotelFolioNotifRQoutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevnueDetail | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<HTNG_HotelFolioNotifRQ>
	<Folios>
		<Folio>
			<RevenueDetails>
				<RevenueDetail>
					<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
						<FolioID>SDate|2017-08-23</FolioID>
                                                <FolioID>InvID|122345</FolioID>
					</FolioIDs>
					<RevenueDetailItems>
						<RevenueDetailItem>
							<FolioIDs xmlns="http://www.opentravel.org/OTA/2003/05">
								<FolioID>SDate|2017-08-23</FolioID>
							</FolioIDs>


Add a short in front of the FolioID Element, to describe what is displayed

Possible values

  • InvID
  • InvNo
  • GstID
  • Code
  • TAAGrp
  • PkgID
  • SDate
PWS-2961PWS 3.5.X
OTA_HotelStayInfoNotifRQoutboundOnPremOTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | RevenueCategory | @RevenueCategoryCode="2000"


Codeblock
languagexml
collapsetrue
<RevenueCategory RevenueCategoryCode="2000">
	<SummaryAmount CurrencyCode="AED" Amount="-122.50"/>
	<RevenueDetails>
		<RevenueDetail ReferenceID="575679481" TransactionDate="2019-08-30" RatePlanCode="0" Description="MASTER CARD" PMSRevenueCode="12" CurrencyCode="AED" Amount="-32.40">
			<FolioIDs>
				<FolioID>InvID|408918</FolioID>
				<FolioID>ResID|2390678</FolioID>
				<FolioID>GstID|5391177</FolioID>
				<FolioID>TAAGrp|PAYMENTS</FolioID>
			</FolioIDs>
		</RevenueDetail>
		<RevenueDetail ReferenceID="575679479" TransactionDate="2019-08-30" RatePlanCode="0" Description="CASH (AED)" PMSRevenueCode="1" CurrencyCode="AED" Amount="-20.0">
			<FolioIDs>
				<FolioID>InvID|408918</FolioID>
				<FolioID>ResID|2390678</FolioID>
				<FolioID>GstID|5391177</FolioID>
				<FolioID>TAAGrp|PAYMENTS</FolioID>
			</FolioIDs>
		</RevenueDetail>
		<RevenueDetail ReferenceID="575679478" TransactionDate="2019-08-30" RatePlanCode="0" Description="DISCOVERY Dollars" PMSRevenueCode="146" CurrencyCode="AED" Amount="-55.10">
			<FolioIDs>
				<FolioID>InvID|408918</FolioID>
				<FolioID>ResID|2390678</FolioID>
				<FolioID>GstID|5391177</FolioID>
				<FolioID>TAAGrp|PAYMENTS</FolioID>
			</FolioIDs>
		</RevenueDetail>
		<RevenueDetail ReferenceID="575679480" TransactionDate="2019-08-30" RatePlanCode="0" Description="JCB CARD" PMSRevenueCode="14" CurrencyCode="AED" Amount="-15.00">
			<FolioIDs>
				<FolioID>InvID|408918</FolioID>
				<FolioID>ResID|2390678</FolioID>
				<FolioID>GstID|5391177</FolioID>
				<FolioID>TAAGrp|PAYMENTS</FolioID>
			</FolioIDs>
		</RevenueDetail>
	</RevenueDetails>


Add a new @RevenueCategoryCode = 2000 for Payments 

needs to be disabled via Xsetup

PWS-3014PWS 3.5.1
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
OutboundOnPremOTA_ProfileModifyRQ | ProfileModify | StatusCode


Codeblock
languagexml
collapsetrue
<ProfileModify RPH="155474" LastModifyDateTime="2021-08-11T15:08:20.1833472+02:00" StatusCode="3" />


Extend the StatusCode for Profiles

1= Marked for deletion

2= anonymized profile 

3=deleted profile

4 = active

PWS-2955PWS 3.5.X
OTA_HotelResNotifRQOutboundOnPrem
  1. OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | px:UserDefinedFieldExtensions
  2. OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | px:TPA_Extensions | px:UserDefinedFieldExtensions
  3. OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | TPA_Extensions | px:UserDefinedFieldExtensions


Codeblock
languagexml
collapsetrue
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:UserDefinedFieldExtensions>
		<px:UserDefinedField Name="BWI Group" Type="Integer">local</px:UserDefinedField>
		<px:UserDefinedField Name="BWI Cancellation Date" Type="Date"/>
		<px:UserDefinedField Name="BWI Cancellation Time" Type="DateTime"/>
		<px:UserDefinedField Name="BWI Groupratecode" Type="String">GRP Test</px:UserDefinedField>
	</px:UserDefinedFieldExtensions>
</TPA_Extensions>


Added UDF information on reservation level (1.), on private profile level (2.) and on company/source/travel agent profile level (3.).PWS-2907PWS 3.5.X
OTA_ProfileModifyoutboundonPrem

OTA_ProfileModifyRQ | ProfileModify | TPA_Extensions | px:ProfileInfoExtensions | PersonInfos | Registration | @LicensePlate


Codeblock
languagexml
collapsetrue
<px:TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:PersonInfos>
			<px:Registration LicensePlate="AB-12345" />
		</px:PersonInfos>
		<px:Salutation ID="1" ID_Context="protelIO" Type="Salutation">Dear Mrs. memari21</px:Salutation>
	</px:ProfileInfoExtensions>
	<px:UserDefinedFieldExtensions>
		<px:UserDefinedField Name="Pet Name" Type="String">pepelolo</px:UserDefinedField>
	</px:UserDefinedFieldExtensions>
</px:TPA_Extensions>


Add the license plate to the outbound profile MessagePWS-2916PWS 3.5.X
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
inboundOnPrem

OTA_ProfileCreateRQ | Profile | CompanyInfo | CompanyName



Codeblock
languagexml
collapsetrue
<OTA_ProfileCreateRQ>
	<UniqueID Type="4" ID="615" ID_Context="External"/>
	<Profile>
		<CompanyInfo>
			<CompanyName CompanyShortName="CKO" Department="DEP">Protel Hotelsoftware GmbH</CompanyName>


with an inboud Profile you can create / change the Department Attribute Information, the Information in the Database where the Department name is stored is "Kunden.abteil" CompanyName | @DepartmentPWS-2855PWS 3.5.X
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
InboundOnPrem

OTA_ProfileModifyRQ | ProfileModify | Comments | Comment
OTA_ProfileCreateRQ | ProfileModify | Comments | Comment


Codeblock
languagexml
collapsetrue
<ProfileModify ShareAllOptOutInd="Yes" ProfileType="1" CreateDateTime="2021-01-20T14:42:00" CreatorID="protelIO" RPH="155522" LastModifyDateTime="2021-09-29T12:34:49" LastModifierID="protel 37" StatusCode="4">
	<Customer Gender="Unknown" Language="ENG">
		<PersonName>
			<GivenName>ali</GivenName>
			<Surname>memari13</Surname>
		</PersonName>
		<Telephone ShareMarketInd="No" PhoneNumber="123456" PhoneLocationType="6" PhoneTechType="1" FormattedInd="false" DefaultInd="true" />
		<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true" UseType="6">
			<AddressLine>str01</AddressLine>
			<StateProv/>
			<CountryName Code="DE">Germany</CountryName>
		</Address>
		<CitizenCountryName DefaultInd="true" Code="DE" />
		<Document />
		<EmployerInfo CompanyShortName="" Department=""/>                    
	</Customer>
	<TPA_Extensions xmlns:px="http://protel.io/htng/extensions" />
	<Comments>
		<Comment Name="Customer_Comment">
			<Text TextFormat="PlainText">Remark visible to all Hotels</Text>
		</Comment>
		<Comment Name="Restaurant_Comment">
			<Text TextFormat="PlainText">Notes to restaurant</Text>
		</Comment>
	</Comments>
</ProfileModify>


Importing Restuarant and Customer notes is possible for OnPrem. There is an extra Xsetup to active/deactive override notes in OnPrem.
pws | override_profile_notes
PWS-2890PWS 3.5.X
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
inboundOnPrem

OTA_ProfileModifyRQ | ProfileModify | Customer | Address


Codeblock
languagexml
collapsetrue
<OTA_ProfileModifyRQ>
	<UniqueID Type="4" ID="615" ID_Context="External"/>
		<ProfileModify ShareAllOptOutInd="Yes" ProfileType="1" CreateDateTime="2021-08-11T12:42:00" 	CreatorID="protel 1" RPH="12" LastModifyDateTime="2021-08-31T09:05:24" LastModifierID="protel 1" StatusCode="4">
			<Customer Gender="Male" BirthDate="1980-10-20" VIP_Indicator="true" Language="de" CustomerValue="V6 – Previous Feedback Guest|0;V7 – Long Stay Guest |2;V8 – Black Listed Guest|2">
				<Address FormattedInd="false" ShareMarketInd="No" Type="1" DefaultInd="true" UseType="6">
					<AddressLine>Main Address 110</AddressLine>
					<CityName>Osterode</CityName>
					<PostalCode>37520</PostalCode>
					<StateProv>Niedersachsen</StateProv>
					<CountryName Code="DE">Germany</CountryName>
				</Address>


It is possible to send inbound Customer profile modify request with AddressLine , CityName and PostCodePWS-2864PWS 3.5.X

PWS 3.4.X 

Anker
PWS 3.4.X
PWS 3.4.X






OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
OutboundOnPremProfile | Outbound | Document element | remove @BirthDate Attribute


Codeblock
languagexml
collapsetrue
<OTA_ProfileModifyRQ>
	<ProfileModify>
		<Customer BirthDate="1980-09-21T00:00:00">
			<Document DocID="M1544474" DocType="2" ExpireDate="2025-10-10"/>
			<Document DocID="M1544474" ExpireDate="2025-10-10"/>
			<Document DocID="M1544474" ExpireDate="2025-10-10"/>
			<Document DocID="M1544474" ExpireDate="2025-10-10"/>


@BirthDate attribute will be removed from this element.PWS-2823PWS 3.4.X
OTA_HotelInvCountNotifRQoutboundOnPremno changes in XML
Send Delta inventory changesPWS-112PWS 3.4.X
HTNG_HotelFolioRS/HTNG_HotelFolioNotifRQoutboundOnPrem

HTNG_HotelFolioNotifRQ | Folios | Folio | @FolioID

HTNG_HotelFolioNotifRQ | Folios | Folio | @InvoiceID


Codeblock
languagexml
collapsetrue
    <HTNG_HotelFolioNotifRQ>
      <UniqueID Type="14" ID="341806" ID_Context="protelIO" />
      <Folios>
        <Folio FolioID="341806-0" FolioGroupingID="Closed" FolioType="Room" InvoiceID="340" GuestPayable="true"/>
        <Folio FolioID="341806-1" FolioGroupingID="Open" FolioType="Room" InvoiceID="0" GuestPayable="true">


@FolioID will always display the ReservationID+Folio

@InvoiceID will always display the InvoiceID as soon as it is created

PWS-2774PWS 3.4.X
OTA_ProfileModifyRQoutboundOnPremOTA_ProfileModifyRQ | ProfileModify | StatusCode


Codeblock
languagexml
collapsetrue
<ProfileModify RPH="155474" LastModifyDateTime="2021-08-11T15:08:20.1833472+02:00" StatusCode="2" />


Extend the StatusCode for Profiles

1= Marked for deletion

2= Lapsed

PWS-1168PWS 3.4.X
IO_StatsNotifRQoutboundOnPremIO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | StatisticApplicationSet | CountCategorySummaries | CountCategorySummary


Codeblock
languagexml
collapsetrue
<StatisticApplicationSet Start="2018-09-12" End="2018-09-12">
	<StatisticCodes/>
	<RevenueCategorySummaries>
		<RevenueCategorySummary RevenueCategoryCode="3" CurrencyCode="EUR" Amount="0.00"/>
		<RevenueCategorySummary RevenueCategoryCode="6" CurrencyCode="EUR" Amount="160.00"/>
		<RevenueCategorySummary RevenueCategoryCode="9" CurrencyCode="EUR" Amount="1000.00"/>
		<RevenueCategorySummary RevenueCategoryCode="17" CurrencyCode="EUR" Amount="1160.00"/>
		<RevenueCategorySummary RevenueCategoryCode="123" CurrencyCode="EUR" Amount="0.00"/>
		<RevenueCategorySummary RevenueCategoryCode="126" CurrencyCode="EUR" Amount="160.00"/>
		<RevenueCategorySummary RevenueCategoryCode="129" CurrencyCode="EUR" Amount="1000.00"/>
		<RevenueCategorySummary RevenueCategoryCode="1217" CurrencyCode="EUR" Amount="1160.00"/>
	</RevenueCategorySummaries>
	<CountCategorySummaries>
		<CountCategorySummary SummaryCount="86" CountCategoryCode="8"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="9"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="10"/>
		<CountCategorySummary SummaryCount="4" CountCategoryCode="11"/>
		<CountCategorySummary SummaryCount="4" CountCategoryCode="12"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="13"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="14"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="15"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="19"/>
		<CountCategorySummary SummaryCount="0" CountCategoryCode="22"/>
	</CountCategorySummaries>
</StatisticApplicationSet>


Add the CountCategorySummary to the property levelPWS-2746PWS 3.4.X

PWS 3.3.X 

Anker
PWS 3.3.X
PWS 3.3.X






HTNG_HotelCheckInNotifRQOutboundOnPremwhole message
HTNG_HotelCheckInNotifRQ implemented for OnPrem and it generates as soon as the room gets check in.PWS-2737PWS 3.3.X
HTNG_HotelCheckOutNotifRQOutboundOnPremwhole message
HTNG_HotelCheckOutNotifRQ implemented for OnPrem and it generates as soon as the room gets check out.PWS-2735PWS 3.3.X

HTNG_HotelFolioNotifRQ

HNTG_HotelFolioRS

outboundonPrem

no changes in XML


GuestPayable = false should be used for all types of payments that have the type DEBITOR assigned.

GuestPayable = true should be used for all types of payments that have the type CC assigned.

PWS-2677PWS 3.3.X
HTNG_HotelCheckOutNotifRQ outboundOnPrem

no changes in XML

HTNG_HotelCheckOutNotifRQ/RS _ OldImplement the HTNG_HotelCheckOutNotifRQ outboundPWS-2735PWS 3.3.X
HTNG_HotelCheckInNotifRQ outboundOnPremno changes in XMLHTNG_HotelCheckInNotifRQ/RS _ OldImplement the HTNG_HotelCheckInNotifRQ outboundPWS-2737PWS 3.3.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

outboundOnPremOTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:UserDefinedFieldExtensions


Codeblock
languagexml
collapsetrue
<OTA_ProfileCreateRQ>
	<Profile>
		<Customer>
			<TPA_Extensions>
				<px:UserDefinedFieldExtensions>
					<px:UserDefinedField Name="Test" Type="Integer">1</px:UserDefinedField>
					<px:UserDefinedField Name="Test_2" Type="String">222</px:UserDefinedField>
				</px:UserDefinedFieldExtensions>
			</TPA_Extensions>


Add the Element px:UserDefinedFieldExtensions to the outbound Profile messagePWS-2704PWS 3.3.X
OTA_HotelResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | TPA_Extension | StayInfo | @RegistrationCode


Codeblock
languagexml
collapsetrue
<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation>
			<ResGuests>
				<ResGuest>
					<TPA_Extensions>
						<px:GuestStayExtensions>
							<px:StayInfo Arrival="2021-07-15T14:19:00" Departure="2021-07-18T08:24:00" RegistrationCode="10006"/>
						</px:GuestStayExtensions>


Add the new Attribute @RegistrationCode to display the Registration NumberPWS-2733PWS 3.3.X
OTA_HotelResNotifRQoutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | Services


Codeblock
languagexml
collapsetrue
<Service ID="1" ID_Context="protelIO" Type="18" ServicePricingType="Per stay" ServiceInventoryCode="Notebook" InventoryBlockCode="Technik" Quantity="1" RequestedIndicator="true">
	<ServiceDetails>
		<TimeSpan Start="pobjres.d1" End="pobjres.d2"/>
		<Comments>
			<Comment Name="RentableObject" >
				<Text TextFormat="PlainText">Notebook</Text>
			</Comment>
		</Comments>
	</ServiceDetails>
</Service>


OTA_HotelResNotifRQ | HotelReservations | HotelReservation | Services | ServiceServiceDetails | Comments | Comment | @Name="RentableObject"PWS-11463.3.X
HTNG_HotelCheckInNotifRQinboundOnPremno 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-26563.3.X

PWS 3.2.X 

Anker
PWS 3.2.X
PWS 3.2.X

OTA_HotelInvBlockNotifRQinboundOnPremno 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-26903.2.X
OTA_HotelAvailNotifRQInboundOnPremno changes in XML


Codeblock
languagexml
collapsetrue
<OTA_HotelAvailNotifRQ MessageContentCode="3" TimeStamp="2018-12-03T00:00:00.000Z" Version="2">
	<AvailStatusMessages HotelCode="3153">
		<AvailStatusMessage>
			<StatusApplicationControl Mon="true" Tue="true" Weds="true" Thur="true" Fri="true" Sat="true" Sun="true" Start="2017-07-04" End="2017-07-06" InvTypeCode="CS" RatePlanCode="Ali1"/>
			<LengthsOfStay>
				<LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="SetMinLOS"/>
			</LengthsOfStay>
			<UniqueID Type="16" ID_Context="info.rateboard.rms" ID="2"/>
		</AvailStatusMessage>
	</AvailStatusMessages>
</OTA_HotelAvailNotifRQ>


Treat the inbound MLOS="1" as a default value and do not set it as a restriction.

  • if there is a previous restriction already set with a higher value for the same room/rate, then it will have to be removed
  • if there is no previous restriction for the room/rate - then no restriction should be set
PWS-26273.2.X
HTNG_HotelCheckInNotifRQ InboundOnPrem
  • HTNG_HotelCheckInNotifRQ|@RetransmissionIndicator
  • HTNG_HotelCheckInNotifRQ|HotelReservation@ResStatus


Codeblock
languagexml
collapsetrue
<?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-2508PWS 3.2.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

OutboundOnPremOTA_ProfileCreateRQ | Profile | TPA_Extenstion | UserDefinedFieldExtensions


Codeblock
languagexml
collapsetrue
...
		<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
			<px:UserDefinedFieldExtensions>
				<px:UserDefinedField Name="Pet Name" Type="String">PEPELOLO</px:UserDefinedField>
				<px:UserDefinedField Name="Car Rental Name" Type="String">Avis</px:UserDefinedField>
			</px:UserDefinedFieldExtensions>
			<px:ProfileInfoExtensions>
				<px:Salutation ID="1" ID_Context="protelIO" Type="Salutation" Value="Dear Mr. PWS2704" />
			</px:ProfileInfoExtensions>
		</TPA_Extensions>
	</ProfileModify>
</OTA_ProfileModifyRQ>


Add the UDF to the TPA_ExtensionPWS-2704PWS 3.2.0

IO_SystemDataRS 

outboundOnPremIO_SystemDataRS | SystemData | Rates | RatePlanGroups | RatePlanGroup | Description


Codeblock
languagexml
collapsetrue
<ns2:RatePlanGroups>
	<ns2:RatePlanGroup ID="108" ID_Context="protelIO" Code="Test" Visible="true" Type="Standard">
		<ns2:Description Language="de_DE">Testrate mit zubuchbaren Paketen</ns2:Description>
	</ns2:RatePlanGroup>
</ns2:RatePlanGroups>


Add the Description to the RatePlanGroupPWS-2692PWS 3.2.0
OTA_HotelResNotifRQoutboundonPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | ReservationExtensions | CancellationInfo


Codeblock
languagexml
collapsetrue
<OTA_HotelResNotifRQ>
	<HotelReservations>
		<HotelReservation ResStatus="Cancelled">
			<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
				<px:ReservationExtensions>
					<px:CancellationInfo ID="14" Type="15" ID_Context="protelIO" Code="Test" Timestamp="2017-09-10T12:25:00" User="protel">Falsches Datum</px:CancellationInfo>
				</px:ReservationExtensions>


Add the TPA_Extension "CancellationInfo"PWS-2658PWS 3.2.0
OTA_ProfileModifyRQ
OTA_ProfileCreateRQ
OTA_ProfileMergeRQ
outboundOnPremTPA_Extensions | ProfileInfoExtensions | StatisticalInfos | @Source


Codeblock
languagexml
collapsetrue
<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-2679PWS 3.2.X
IO_SystemDataRSoutboundOnPrem

Implement the SystemData Msg for OnPremPWS-2222PWS 3.2.X

PWS 3.1

Anker
PWS 3.1
PWS 3.1

HTNG_ChargePostingRQinboundOnPremno 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_ProfileModifyRSoutboundOnPremno changes in XML


Codeblock
languagexml
collapsetrue
...
<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 mappingsPWS-2551PWS 3.1.X
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
outboundOnPremProfile | TPA_Extensions | px:ProfileInfoExtensions | Traces | Trace
Profile | TPA_Extensions | px:ProfileInfoExtensions | Traces | Trace | @TraceBegin


Codeblock
languagexml
collapsetrue
<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-2597PWS 3.1.3
OTA_HotelInvBlockNotifRQoutboundOnPremOTA_HotelInvBlockNotifRQ | InvBlocks | Contacts | Contact


Codeblock
languagexml
collapsetrue
<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 @RPHPWS-2626PWS 3.1.X
OTA_HotelInvBlockNotifRQinbound/outboundOnPremOTA_HotelInvBlockNotifRQ | InvBlocks | Contacts | Contact | @ContactType


Codeblock
languagexml
collapsetrue
<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-2621PWS 3.1.X
OTA_ReadRQoutboundOnPremOTA_ReadRQ | ReadRequests | ReadRequest | Customer | Telephone


Codeblock
languagexml
collapsetrue
<?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-2583PWS 3.1.X
HTNG_HotelCheckInNotifRQinboundOnPremno changes in XML
Extend the Check-In for DayUse ReservationPWS-2509PWS 3.1.X
HTNG_HotelCheckOutNotifRSOutboundOnPremno changes in XML
If HTNG_HotelCheckOutNotifRS contained some errors, the error details would be shown in IFC error message in OnPrem.PWS-2128PWS 3.1.X
OTA_ReadRQ/OTA_ResRetrieveRSInboundOnPremroot


Codeblock
languagexml
collapsetrue
<?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-667PWS 3.1.X
OTA_ResRetrieveRS OutboundOnPremno changes in XML


Codeblock
languagexml
collapsetrue
...
<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-2528PWS 3.1.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

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
languagexml
collapsetrue
<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 CodePWS-2373PWS 3.1.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

OTA_ProfileCreateRQ | Profile | Customer | CustLoyalty | SubAccountBalance | @Balance 

OTA_ProfileModifyRQ | ProfileModify |  | Customer | CustLoyalty | SubAccountBalance | @Balance 


Codeblock
languagexml
collapsetrue
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 CardPWS-2388PWS 3.1.X

OTA_ResRetrieveRS

OutboundOnPremOTA_ResRetrieveRS | Succes


Codeblock
languagexml
collapsetrue
<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-1323PWS 3.1.X
OTA_HotelAvailRQInboundOnPremOTA_HotelAvailRQ | AvailRequestSegments | AvailRequestSegment | HotelSearchCriteria | Criterion | RoomStayCandidates | RoomStayCandidates


Codeblock
languagexml
collapsetrue
<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 possiblePWS-1321PWS 3.1.X
IO_StatsNotifRQoutboundOnPremno changes in XML
Add a config, to configure the days in the after EOD reportPWS-2519PWS 3.1.X
OTA_HotelAvailRSoutboundOnPremno 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-709PWS 3.1.X
HTNG_ChargePostingRSoutbound OnPremno 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-2427PWS 3.1.X
OTA_HotelAvailRSoutboundOnPremno changes in XML
If the inbound OTA_HotelAvailRQ contains filters for RoomIDs, the RS will now only show these roomIDs.PWS-1320PWS 3.1.X
PWSOTA_HotelAvailRQinboundOnPremOTA_HotelAvailRQ | @MaxResponses


Codeblock
languagexml
collapsetrue
<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_HotelAvailRSPWS-1319PWS 3.1.X
OTA_HotelRatePlanNotifRSoutboundOnPremOTA_HotelRatePlanNotifRS | RatePlanCrossRefs | @RequestRatePlanCode
OTA_HotelRatePlanNotifRS | RatePlanCrossRefs | @ResponseRatePlanCode


Codeblock
languagexml
collapsetrue
<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-636PWS 3.1.X
OTA_HotelAvailRQinboundOnPremOTA_HotelAvailRQ | AvailRequestSegments | AvailRequestSegment | HotelSearchCriteria | Criterion | Profiles


Codeblock
languagexml
collapsetrue
<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-2382PWS 3.1.X
OTA_HotelResNotifRQ OutboundOnPremno 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-2514PWS-3.1.X
OTA_HotelAvailRSOutboundOnPrem

OTA_HotelAvailRS  | Errors | Error | @Type

OTA_HotelAvailRS  | Errors | Error | @RecordID

OTA_HotelAvailRS  | Warnings | Warning | @Type

OTA_HotelAvailRS  | Warnings | Warning | @RecordID


Codeblock
languagexml
collapsetrue
<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-695PWS-3.1.X
OTA_HotelInvBlockNotifRSOutboundOnPrem

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
languagexml
collapsetrue
<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_HotelAvailRSPWS-489PWS-3.1.X
HTNG_HotelCheckOutNotifRSOutboundOnPrem

HTNG_HotelCheckOutNotifRS | Errors | Error | @Type

HTNG_HotelCheckOutNotifRS | Warnings | Warning | @Type


Codeblock
languagexml
collapsetrue
...
<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_HotelCheckOutNotifRSPWS-1167PWS-3.1.X
OTA_ProfileCreateRQInboundOnPremno changes in the XML
PWS stop modifying the profile in case of income ProfileCreateRQ for already existing profileID and send back Error.PWS-2504PWS-3.1.X
HTNG_HotelCheckInNotifRSOutboundOnPremHTNG_HotelCheckInNotifRS / Errors / Error
HTNG_HotelCheckInNotifRS / Warnings/ Warning


Codeblock
languagexml
collapsetrue
<?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-1047PWS-3.1.X
OTA_HotelInvBlockNotifRSOutboundOnPremOTA_HotelInvBlockNotifRS | InvBlockCodeRefs | InvBlockCodeRef


Codeblock
languagexml
collapsetrue
<?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-498PWS-3.1.X
HTNG_HotelFolioRSOutboundOnPremHTNG_HotelFolioRS | UniqueID


Codeblock
languagexml
collapsetrue
<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-811PWS-3.1.X
OTA_ReadRQInboundOnPremOTA_ReadRQ  | @ReturnListIndicator


Codeblock
languagexml
collapsetrue
<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-2400PWS-3.1.X
OTA_HotelAvailNotifRSOutboundOnPremOTA_HotelAvailNotifRS | UniqueID


Codeblock
languagexml
collapsetrue
<?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-587PWS-3.1.X

PWS 3.0

Anker
PWS 3.0
PWS 3.0

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

OTA_ProfileReadRS

OTA_HotelResNotifRQ

HNTG_HotelFolioNotifRQ

HNTG_FolioNotifRQ

outboundOnPrem

OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | @Relation


Codeblock
languagexml
collapsetrue
<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
PWS-2628PWS 3.0.11
IO_StatsNotifRQoutboundOnPremIO_StatsNotifRQ | Statistics | Statistic


Codeblock
languagexml
collapsetrue
<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 DayPWS-2596PWS 3.0.9
HTNG_HotelFolioNotifRQoutboundOnPremHTNG_HotelFolioNotifRQ | TPA_Extensions | FolioExtensions | FolioExtension


Codeblock
languagexml
collapsetrue
<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_HotelFolioNotifRQPWS-949PWS 3.0.X
OTA_ProfileMergeRQInbound
Outbound
OnPremno 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-2542PWS 3.0.X
OTA_HotelInvBlockNotifRQOutboundOnPremOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | Contacts


Codeblock
languagexml
collapsetrue
...
<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-551PWS 3.0.X
HTNG_HotelFolioNotifRQ HTNG_HotelFolioRSOutboundOnPrem@FolioGroupingIDTODOAdd 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-2499PWS 3.0.X
OTA_ProfileCreateRQ
OTA_ProfileModifyRQ
OutboundOnPrem @ShareMarketInd no change in xmlAs 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-347PWS 3.0.X
HTNG_HotelCheckOutNotifRSOutboundOnPrem

HTNG_HotelCheckOutNotifRS | TPA_Extensions | DocumentExtensions | DocumentData


Codeblock
languagexml
collapsetrue
<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 ProtelsPWS-2435PWS 3.0.X
OTA_HotelResNotifRQOutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | ReservationExtensions | FixedCharges


Codeblock
languagexml
collapsetrue
<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-2447PWS 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
inboundOnPremHandling if configuration for RS message is missingno change in XML
  1. 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.
  2. 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-2474PWS 3.0.X
OTA_ProfileModifyRQInboundOnPremRQs with missing CustLoyalty elementsno change in XMLMissing not mandatory CustLoyalty attributes no longer result in errorsPWS-2357PWS 3.0.X
IO_RatePackageNotifRQOutboundOnPremAction on PackageItem level implementedno change in XMLWe corrected the Action attribute on PackageItem level to display "CREATE", "UPDATE", DELETED" and "NONE" as expected.PWS-2236
IO_ResModifyNotifRQInboundOnPrem

IO_ResModifyNotifRQ | Reservations | @HotelCode

IO_ResModifyNotifRQ | Reservations | @HotelID 


Codeblock
languagexml
collapsetrue
<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
languagexml
collapsetrue
<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_ResModifyNotifRQInbound OnPremAdding private guest as attached profile implementedno change in XMLWhen 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-2343PWS 3.0.X
OTA_HotelResNotifRQOutboundOnPremHotelReservations | HotelReservation | Services | Service | @RequestedIndicator


Codeblock
languagexml
collapsetrue
<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-853PWS 3.0.X
OTA_HotelResNotifRQOutboundOnPremHotelReservations | 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

(Warnung) 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-2372PWS 3.0.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

InboundOnPrem

OTA_ProfileCreateRQ | Profile | CompanyInfo | ContactPerson | PersonName | NamePrefix

OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | PersonName | NamePrefix


Codeblock
languagexml
collapsetrue
<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-2117PWS 3.0.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

OutboundOnPrem

OTA_ProfileCreateRQ | Profile | CompanyInfo | ContactPerson | PersonName | NamePrefix

OTA_ProfileModifyRQ | ProfileModify | CompanyInfo | ContactPerson | PersonName | NamePrefix


Codeblock
languagexml
collapsetrue
<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 | PersonNamePWS-2495PWS 3.0.X
OTA_HotelInvBlockNotifRQOutboundOnPremOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | BlockDescriptions


Codeblock
languagexml
collapsetrue
<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-2226PWS 3.0.X
OTA_HotelInvBlockNotifRQInboundOnPremOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | BlockDescriptions | BlockDescription | @CreateDateTime


Codeblock
languagexml
collapsetrue
<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 BlocksPWS-759PWS 3.0.X
HTNG_HotelCheckInNotifRQInboundOnPremHTNG_HotelCheckInNotifRQ | POS | Source


Codeblock
languagexml
collapsetrue
<?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
languagexml
collapsetrue
<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-2127PWS 3.0.X
HTNG_HotelChargePostingRQInboundOnPremHTNG_HotelChargePostingRQ | Posting | Transaction | RevenueDetails


Codeblock
languagexml
collapsetrue
<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 IDPWS-2284PWS 3.0.X
OTA_HotelStayInfoNotifRQOutboundOnPremOTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | RevenueCategories | RevenueCategory | RevenueDetails | RevenueDetail | FolioIDs | FolioID


Codeblock
languagexml
collapsetrue
<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-2430PWS 3.0.X
IO_IdentifierRQOutboundOnPremroot Element


Codeblock
languagexml
collapsetrue
<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-1120PWS 3.0.X
OTA_HotelResNotifRQOutboundOnPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate 


Codeblock
languagexml
collapsetrue
...
<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-2385PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPrem

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
languagexml
collapsetrue
<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
PWS-1162PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPrem

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
languagexml
collapsetrue
<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
PWS-942PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | BasicPropertyInfo | @HotelCodeContext 


Codeblock
languagexml
collapsetrue
<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-941PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPrem

HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | UnitPrice | @Type


HTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail |


Codeblock
languagexml
collapsetrue
<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
PWS-945PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPremHTNG_HotelFolioNotifRQ | Folios | Folio | RevenueDetails | RevenueDetail | @DecimalPlaces


Codeblock
languagexml
collapsetrue
<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 
PWS-1017PWS 3.0.X
HTNG_HotelFolioNotifRQOutboundOnPremroot Element


Codeblock
languagexml
collapsetrue
<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-1119PWS 3.0.X
OTA_HotelInvCountNotifRQOutboundOnPremOTA_HotelInvCountNotifRQ | UniqueID


Codeblock
languagexml
collapsetrue
<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-787PWS 3.0.X
OTA_HotelInvCountNotifRQOutboundOnPremroot Element


Codeblock
languagexml
collapsetrue
<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-786PWS 3.0.X
OTA_ReadRQOutboundOnPremRoot Element


Codeblock
languagexml
collapsetrue
...
<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-1116PWS 3.0
OTA_HotelStayInfoNotifRQOutboundOnPremOTA_HotelStayInfoNotifRQ | StayInfos


Codeblock
languagexml
collapsetrue
...
<StayInfos ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" HotelCodeContext="protelIO">
...


Add the Attribute

  • HotelCodeContext="protelIO"
PWS-630PWS 3.0.X
OTA_HotelStayInfoNotifRQOutboundOnPremRoot Element


Codeblock
languagexml
collapsetrue
<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-627PWS 3.0.X
OTA_HotelStatsNotifRQOutboundOnPremOTA_HotelStatsNotifRQ | UniqueID


Codeblock
languagexml
collapsetrue
<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-901PWS 3.0
OTA_HotelStatsNotifRQOutboundOnPremRoot Element


Codeblock
languagexml
collapsetrue
<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-1147PWS 3.0
OTA_HotelStatsNotifRQOutboundOnPremOTA_HotelStatsNotifRQ | Statistics | Statistic


Codeblock
languagexml
collapsetrue
<Statistic ChainCode="HC1" HotelCode="3153" HotelName="protel Front Office Demo, 44269 Dortmund" FiscalDate="2017-06-23" ReportCode="HTNG_PastDailySegmentRoomTypeStatistics_v1">


Add the Attribute 

  • HotelName
PWS-1148PWS 3.0
IO_StatsNotifRQ OutboundOnPrem

IO_StatsNotifRQ | Statistics | Statistic | StatisticApplicationSets | RevenueCategorySummaries RevenueCategorySummary | @RevenueCategoryCode


Codeblock
languagexml
collapsetrue
<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-1163PWS 3.0
OTA_ReadRQInboundOnPremOTA_ReadRQ | ReadRequests | ProfileReadRequest | Company | Address


Codeblock
languagexml
collapsetrue
<?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-2358PWS 3.0