Versionen im Vergleich

Schlüssel

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

The purpose of this page is to inform you about upcoming changes within our OTA/HTNG implementation for both property management systems. Please note that the changes are divided into onPrem and pAir PMS changes. onPrem changes won't be rolled out globally at the date that is mentioned in the table below whilst pAir Updates will always be rolled out for all customers in one step. 

Please note that the XML of the examples are shortened for a clear arrangement. The full sample message can be found on the documentation page for the message.

Release dates pAIR LIVE Environment

VersionRelease date
23
24.
24
46
2023
2024-
06
12-
14
11
23
24.
22
42
2023
2024-
05
11-
31
13
23
24.
20
42
2023
2024-
05-1723.182023-05-0323.162023-04-1923.142023-04-0523.122023-03-2223.102023-03-0823.082023-02-2223.062023-02-0823.042023-01-2523.022023-01-1122.502022-12-2222.482022-11-30

Release dates PWS (onPrem) LIVE Environment

11-06  NO regular Release
24.422024-10-30 NO regular Release
24.422024-10-16 NO regular Release
24.382024-09-30
24.382024-09-18 NO regular Release
24.362024-09-04 - IPA update will be now every 4 weeks
24.342024-08-21
24.322024-08-07 NO regular Release
24.302024-07-24 NO regular Release
24.292027-07-17
24.282024-07-10 NO regular Release
24.262024-06-26 NO regular Release
24.242024-06-12
24.222024-05-29
24.202024-05-15
24.18NO regular Release on Wednesday 01.05.2024 due to public Holiday in Germany
24.162024-04-17
24.142024-04-03
24.122024-03-20
24.102024-03-06
24.082024-02-21
24.062024-02-07
24.042024-01-24
24.022024-01-10


Release dates PWS (onPrem) LIVE Environment

VersionRelease date
3.192024-10
3.182024-05-22*
3.172024-03-06
3.162023-12-20

*: delayed

Release dates ESB (I/O) LIVE Environment

VersionRelease date
2.6.32024-11-06
2.6.22024-09-25
2.6.12024-08-21
2.6.02024-07-15
2.5.32024-06-10
2.5.22024-05-15
2.5.12024-04-10
2.5.02024-02-26




TBA IDS

TBA ESB
Bulk Export from SMP UIoutbound

OnPrem

pAir

n/ano schema changeEach bulk job can be of maximum 2 years timespan. If it is necessary to have longer time span - more bulk jobs should be created.SMP-2928TBA
Bulk Export from SMP UIoutbound

OnPrem

pAir

n/ano schema change

#1

For one destination - only one bulk job can be running.

Any further bulk jobs for the same destination will be saved in the sequence - but it will not start unless all previous jobs are finalized (cancelled, completed).

#2 

If the queue for a destination in BULK mode exceeds 10K messages, no new bulk job should start. 

Any further bulk jobs for the same destination will be saved in the sequence - but it will not start unless the queue in BULK mode for the destination drops under 10K messages.

IO-82292.5.4








TBA PWS
OTA_ReadRQ/OTA_ResRetrieveRSinboundonPremiseextend the Reservation search by roomtypes


Codeblock
languagexml
collapsetrue
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="PWS-3822_LJ_01" TimeStamp="2021-08-26T10:10:00Z">
	<POS>
		<Source>
			<RequestorID ID="3151" Type="10
VersionRelease date3.142023-06-213.132023-04-123.122023-02-153.112022-12-073.102022-10-24
Affected MessageDirection from protelPMSPathExampleSummaryInternal referenceVersionTBA IDSTBA PWSHTNG_HotelCheckOutNotifRQInboundonPremHTNG_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"/>
			<BookingChannel Type="4" Primary="true"/>
		</
HotelReservation>
Source>
	</POS>
	<ReadRequests>
		<HotelReadRequest>
			
</HotelReservations> </HTNG_HotelCheckOutNotifRQ> </soapenv:Body> </env:Envelope>When true, indicates the message is being re-sent. This can be apply for the CO guest who need to reprint the invoice. pws-3542TBA

OTA_ProfileModifyRQ

In/OutboundonPremProfileModify | Customer | TPA_Extensions | ProfileInfoExtensions | PersonInfos | Registration
Codeblock
languagexml
collapsetrue
<px:Registration BirthCountry="IT" BirthPlace="CALVIGNASCO" LicensePlate="35347444" /> 
We will implement guest BirthCountry & BirthPlace in profile messages, both inbound and outbound.PWS-3571TBAIO_SystemDataRSOutboundonPremIO_SystemDataRS | Reservations | DefaultValues
<SelectionCriteria Start="2017-10-10" End="2017-10-10" ResStatus="Reserved"/>
			<TPA_Extensions>
				<px:ReadRequestExtensions xmlns:px="http://protel.io/htng/extensions">
					<px:Room RoomTypeCode="Cl-Twin"/>
				</px:ReadRequestExtensions>
			</TPA_Extensions>
		</HotelReadRequest>
	</ReadRequests>
</OTA_ReadRQ>


In the ReadRQ it is now possible to request the RoomType in addition to the time period and reservation status.PWS-3822TBA
TBA IPA

IO_SystemDataRS

outboundpAir

no schema change

but we will expand for pAir the attributes

  • @AgeFrom
  • @AgeTo
  • @AgeQualifyingCode

no schema change

In the pAir SystemData in Rate Configuration you can define  Discount Groups. With the extension for pAir  we send the attributes

  • @AgeFrom
  • @AgeTo
  • @AgeQualifyingCode

IPA-1467

TBA

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

outbound / inbound pAir

no schema change

no schema change

no change in the Schema.

Export @LoyalLevel value with the string label the way it is defined by the user instead of the PMS SystemData ID 


IPA-1277

TBA

OTA_HotelResNotifRQ

OTA_ProfileCreateRQ 

OTA_ProfileModifyRQ 

OTA_HotelStayInfoNotifRQ 

outbound / inboundpAir

OTA_ProfileModifyRQ | ProfileModify | Customer | Document


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
<OTA_ProfileCreateRQ>
	<Profile>
		<Customer>
			<Document DocIssueLocation="Dortmund_22" DocID="123456" DocType="4" EffectiveDate="2018-12-12" ExpireDate="2050-12-31" DocIssueAuthority="1234"/>
		</Customer>
	</Profile>
</OTA_ProfileCreateRQ>


To be legal in Austria, a new Attribute is added to the Document Element with the label "Issuing Authorities"

IPA-1369

TBA
IO_SystemDataRQinboundpAir

IO_SystemDataRQ | Request | Rates 


Codeblock
languagexml
collapsetrue
    <p:Request xmlns:p="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-3573TBAOTA_HotelResNotifRQinboundonPremOTA_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-3556

TBATBA IPAESB 323 AnkerESB 323ESB 323HTNG_ChargePostingRSoutbound

onPrem

pAir

 HTNG_ChargePostingRS | Errors | Error
Codeblock
languagexml
collapsetrue
<Errors>
                <Error Code="188" Type="1" ShortText="Transaction error - please report. Incomplete Posting flow. Please check the guest folio before a retry."/>
            </Errors>
If no RS is generated by the PMS service within ~55 seconds, then:
  • the ESB will not do retries itself
  • the ESB will generate a generic RS to inform the sender of the RQ about the failure.

! The RQ should not be automatically retried - the posting itself could have happened, yet for some reason - no RS could have been generated by the PMS service (e.g. fiscalization error).

IO-7390ESB 323PWS 3.13.X AnkerPWS 3.13.XPWS 3.13.XIO_ResModifyNotifRQinbound onPremIO_ResModifyNotifRQ | Reservations | Reservation | ProfileReferences | ProfileReferenceUse 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
>
        <p:UniqueID Type="10" ID="2575" ID_Context="protelIO"/>
        <p:Rates IncludeInvisible="true or false"/>
    </p:Request>


The vendor should be able to tell us in the RQ with the attribute IncludeInvisible="true or false" which rates he wants to see.

  • If we do not receive a restriction in the RQ, we send out all data by default
  • If we receive the restriction IncludeInvisible="true", we send all rates (like default)
  • If we receive the restriction IncludeInvisible="false", we send all rates that are currently valid 

IPA-1404

TBA
IO_SystemDataRSoutboundpAir 

IO_SystemDataRS | SystemData | Rates | RatePlans | RatePlan


Codeblock
languagexml
collapsetrue


The vendor should be able to tell us in the RQ with the attribute IncludeInvisible="true or false" which rates he wants to see.

  • If we do not receive a restriction in the RQ, we send out all data by default
  • If we receive the restriction IncludeInvisible="true", we send all rates (like default)
  • If we receive the restriction IncludeInvisible="false", we send all rates that are currently valid 

IPA-1403

TBA

PWS 3.19.X 

Anker
PWS 3.19.X
PWS 3.19.X

OTA_HotelResNotifRQ

inbound

OnPrem

no schema changes


We will no longer import fixed charges with inbound OTA_HotelResNotifRQ. This can only be done with IO_ResModifyNotifRQ.

PWS-3810

3.19.0

OTA_HotelResNotifRQ

inbound

OnPrem

no schema changes


Implemented the import of the attributes CommunicationChannel and TravelReason.

PWS-3820

3.19.0

OTA_HotelRatePlanNotifRQ

inbound

OnPrem

no schema changes


  • Overlay = All data is overwritten 
  • Delta = Only the specified data record in the RQ is adjusted. All other data remains unchanged. 

PWS-3821

3.19.0

IO_SystemDataRQ

inbound

OnPrem

IO_SystemDataRQ | Request | Rates @IncludeInvisible


Codeblock
languagexml
collapsetrue
<p:IO_SystemDataRQ xmlns:p="http://protel.io/soap" TimeStamp="2020-08-20T07:15:51.4023488Z" Version="1.000" CorrelationID="IncludeInvisible">
	<p:Request xmlns:p="http://protel.io/soap">
		<p:UniqueID Type="10" ID="3152" ID_Context="protelIO"/>
		<p:Rates IncludeInvisible="true"/>
	</p:Request>
</p:IO_SystemDataRQ>


To shorten the RS message we implemented a new attribute to exclude information about expired rates. If this new attribute is not provided, the RS message will contain information about all rates as before  (default=true). If the new attribute is sent with "false", the RS message will no longer contain information about expired rates.

PWS-3805
PWS-3806

3.19.0

IO_SystemDataRS

outbound

OnPrem

IO_SystemDataRS | SystemData | Reservations | GuestRelationTypes | GuestRelationType 


Codeblock
<ns2:IO_SystemDataRS>
	<ns2:SystemData>
		<ns2:Reservations>
			<ns2:GuestRelationTypes>
				<ns2:GuestRelationType Code="BRO" ID="1" ID_Context="protelIO" Visible="true">
					<ns2:Name Language="en">Brother</ns2:Name>
				</ns2:GuestRelationType>


Added the GuestRelationType to the SystemDataRS.

PWS-3835

3.19.0

PWS 3.17.X 

Anker
PWS 3.17.X
PWS 3.17.X

OTA_HotelInvBlockNotifRQ

outboundOnPremOTA_HotelInvBlockNotifRQ | InvBlocks | InvBlock | RoomTypes | RoomType | RatePlans | RatePlan@TaxInclusive


Codeblock
languagexml
collapsetrue
<RatePlan CurrencyCode="EUR" End="2100-01-01" MaxGuestApplicable="9999" RatePlanCode="StdRateExclTax" Start="1980-01-01" TaxInclusive="false">


Flag is linked to the system setup for rate values. If the PWS is set to send "net values only", the attribute will be send with "false". If the system is set up to send "gross values only" OR "net and gross values", the attribute will be send with "true".PWS-37293.17.0

HTNG_HotelRoomStatusUpdateNotifRQ

outbound / inboundOnPrem


Message implemented for outbound and inbound processing.PWS-3202
PWS-3246
3.17.0

PWS 3.16.X 

Anker
PWS 3.16.X
PWS 3.16.X

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

outbound

OnPrem

OTA_ProfileCreateRQ | Profile | Customer | Document

OTA_ProfileModifyRQ | ProfileModify | Customer | Document

no schema change

With OnPrem 23.060 it will be possible to store more than one travel document per profile so that the outbound profile messages may contain more than one document element.

PWS-3723

3.16.0

OTA_HotelResNotifRQ

outbound

OnPrem

HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | RelatedTraveler | TPA_Extensions | px:GuestStayExtensions | px:StayInfo


Codeblock
languagexml
collapsetrue
<RelatedTraveler BirthDate="2006-03-05">
	<UniqueID ID="181493" ID_Context="protelIO" Type="1"/>
	<PersonName Language="de">
		<NamePrefix/>
		<GivenName>Tick</GivenName>
		<MiddleName/>
		<Surname>Duck</Surname>
		<Document DocID="987654321" DocType="5"/>
	</PersonName>
	<TPA_Extensions>
		<px:GuestStayExtensions>
			<px:StayInfo PrimaryInd="false" RelationToPrimary="Neffe / Nichte"/>
		</px:GuestStayExtensions>
	</TPA_Extensions>
</RelatedTraveler>


The legal requirements in Spain stipulate that additional guests can be related to the main guest.

The relationship to the main guest can soon be transferred by the additional attribute with.

This is for example important  for police reports.

PWS-3697

3.16.0

OTA_HotelResNotifRQ

outbound

OnPrem

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | px:Traces


No change in XML, but traces from the past (before the current PMS business date) are no longer sent.

PWS-3676

3.16.0

OTA_ProfileModifyRQ

outbound

OnPrem

OTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:ProfileExtensions | px:PersonInfos | px:Registration | px:Occupation


Codeblock
collapsetrue
<TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
    <px:ProfileInfoExtensions>
        <px:PersonInfos>
            <px:MarketingCodes>
                <px:Code DefaultInd="false" DisplaySequence="0" ID="3" ID_Context="protelIO" Type="MARKETINGCODE">Wintergast</px:Code>
            </px:MarketingCodes>
            <px:Registration BirthCountry="DE" BirthPlace="Oberhausen">
                <px:Occupation>Polizist</px:Occupation>
            </px:Registration>
            <px:Language DefaultInd="true">en</px:Language>
        </px:PersonInfos>
        <px:Salutation ID="1" ID_Context="protelIO" Type="Salutation">Sehr geehrte Frau Werner</px:Salutation>
    </px:ProfileInfoExtensions>
</TPA_Extensions>


The attribute occupation was added. 

PWS-3714

3.16.0

IO_ResModifyNotifRQ

inbound

OnPrem

IO_ResModifyNotifRQ | Reservations | Reservation | ProfileReferences | ProfileReference

@RelationToPrimary

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.0IO_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.0IO_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.0IO_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.0HTNG_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
<p:IO_ResModifyNotifRQ xmlns:p="http://protel.io/soap" CorrelationID="UseCase11b" TimeStamp="2018-12-29T15:20:35.985Z" Version="1.00">
    <p:Reservations HotelCode="3152">
        <p:Reservation ArrivalDate="2018-11-11">
            <p:UniqueID ID="345474" Type="
14
Reservation" ID_Context="
protelIO"/></RevenueDetail></RevenueDetails>
Protel_IO"/>
            <p:ProfileReferences>
                <p:ProfileReference ID_Context="protelIO" Type="Customer" ID="181491" RelationToPrimary="Son" Action="CREATE"/>
            </p:ProfileReferences>
        </p:Reservation>
    </p:Reservations>
</p:IO_ResModifyNotifRQ>


The legal requirements in Spain stipulate that additional guests can be related to the main guest.

The relationship to the main guest can be transferred by the additional attribute for UseCase 11b only.

The relation is for example important for police reports. 

PWS-3700

3.16.0

OTA_HotelResNotifRQ

OTA_HotelStayInfoNotifRQ

OTA_ProfileCreateRQ 

OTA_ProfileCreateRQ

outbound

OnPrem

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration |  | px:DocumentInfos | px:DocumentInfo

OTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration |  | px:DocumentInfos | px:DocumentInfo

OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration |  | px:DocumentInfos | px:DocumentInfo

OTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration  |  px:DocumentInfos | px:DocumentInfo


Codeblock
languagexml
collapsetrue
<Customer>
    <TPA_Extensions>
    ....
        <ProfileInfoExtensions>
        ....
            <PersonInfos>
            ....           
                <Registration BirthDate="1980-01-06" BirthCountry="MA">
                    <Occupation>Mechanic</Occupation>
                    <DocumentInfos>                 
                      <DocumentInfo RPH="665554444" ID_Context="SNDS" ID="120-24440-GV0" Type="DocumentIdentifier"/>
                    </DocumentInfos>
                </Registration> 
            </PersonInfos>
        </ProfileInfoExtensions> 
    </TPA_Extensions>
</Customer>


Due to Spanish legal requirements (Police reports), we extend the TPA extensions in the Customer  element with DocumentInfo for the support number  of Spanish documents.

PWS-3712

3.16.0

OTA_HotelResNotifRQ

OTA_ProfileCreateRQ 

OTA_ProfileCreateRQ 

inbound

OnPrem 

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration |  | px:DocumentInfos | px:DocumentInfo

OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration |  | px:DocumentInfos | px:DocumentInfo

OTA_ProfileModifyRQ | ProfileModify | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration  |  px:DocumentInfos | px:DocumentInfo


Codeblock
languagexml
collapsetrue
<Customer>
    <TPA_Extensions>
    ....
        <ProfileInfoExtensions>
        ....
            <PersonInfos>
            ....           
                <Registration BirthDate="1980-01-06" BirthCountry="MA">
   
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.0IPA 23.22 AnkerIPA 23.22IPA 23.22OTA_HotelResNotifRQ OutboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | TPA_Extensions | ReservationExtensions | Traces
Codeblock
languagexml
collapsetrue
<TPA_Extensions>
	<px:ReservationExtensions xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns5="http://www.w3.org/2011/03/ws-evt">
		<px:ReservationStatus Code="G" ID="5" ID_Context="protelIO" Name="Guaranteed" RPH="198382"/>
		<px:ReservationCode Code="CONF" ID="319" ID_Context="protelIO" Language="en_US" Name="Conference" Type="TravelReason">Conference</px:ReservationCode>
		<px:ReservationCode Code="Fax" ID="44" ID_Context="protelIO" Language="en_US" Name="Facsimile" Type="CommunicationChannel">Facsimile</px:ReservationCode>
		<px:FixedCharges/>
		<px:Traces>
			<px:Trace TraceBegin="2021-03-17T16:00:00+02:00" TraceDepartment="ACC" TraceEnd="2021-03-17T16:00:00+02:00">Trace Template 333</px:Trace>
			<px:Trace TraceBegin="2021-03-18T16:00:00+02:00" TraceDepartment="ACC" TraceEnd="2021-03-18T16:00:00+02:00">Trace Template 444</px:Trace>
			<px:Trace TraceBegin="2021-03-19T16:00:00+02:00" TraceDepartment="ACC" TraceEnd="2021-03-19T16:00:00+02:00">Trace Template 222</px:Trace>
			<px:Trace TraceBegin="2021-03-18T16:00:00+02:00" TraceDepartment="F&B" TraceEnd="2021-03-18T16:00:00+02:00">Trace Template 123</px:Trace>
			<px:Trace TraceBegin="2021-03-19T16:00:00+02:00" TraceDepartment="F&B" TraceEnd="2021-03-19T16:00:00+02:00">Trace Template 123</px:Trace>
		</px:Traces>
	</px:ReservationExtensions>
</TPA_Extensions>
Trace information will be added to the ReservationExtensions element of the reservation.IPA-122423.22OTA_ProfileModifyRQOutboundpAirProfileModify | TPA_Extensions | ProfileInfoExtensions | Traces
Codeblock
languagexml
collapsetrue
<px:TPA_Extensions xmlns:px="http://protel.io/htng/extensions">
	<px:ProfileInfoExtensions>
		<px:Traces>
			<px:Trace TraceBegin="2017-09-01T00:00:00" TraceDepartment="Direction">Test-Trace</px:Trace>
		</px:Traces>
	</px:ProfileInfoExtensions>
</px:TPA_Extensions>
Trace information will be added to the ProfileInfoExtensions of the guests.IPA-122423.22OTA_ProfileModifyRQIn/OutboundpAirProfileInfoExtensions | 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>
We will implement two Tax1,2 attributes in the profile messages.IPA-1220, IPA-122123.22HTNG_ChargePostingRQInboundpAirHTNG_ChargePostingRQ | Posting | Transaction | RevenueDetails | RevenueDetail  @SubTypeIDno change in XML structure
  1. For the HTNG_ChargePostingRQ in inbound messages deposit payments are now only processed in a KSV-compliant manner.
    If packages ("Batches") are transmitted as well, a corresponding warning is then issued that no packages can be processed.
    For payments to reservations in the future only the @SubTypeID "Deposit" can be used, we do not support @SubTypeID "Payment" for not checked in reservations. 
IPA-120123.22IO_SystemDataRSOutboundpAirIO_SystemDataRS | Reservations | DefaultValues Codeblock
languagexml
<?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"> <htng:CorrelationID xmlns:htng="http://htng.org/PWSWG/2007/02/AsyncHeaders">CorrelationID123</htng:CorrelationID> </soapenv:Header> <soapenv:Body xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <ns2:IO_SystemDataRS xmlns:ns2="http://protel.io/soap" xmlns:ns3="http://www.opentravel.org/OTA/2003/05" CorrelationID="CorrelationID123" EchoToken="CorrelationID123" TimeStamp="2021-01-19T12:16:21Z" Version="1.000">
            
<ns2:Success/>
     <Occupation>Mechanic</Occupation>
             
<ns2:SystemData
 
ChainCode="n/a"
 
HotelCode="2575" HotelID="2000043" HotelName="protel_IO_Testhotel_pAir_2000043">
     <DocumentInfos>                 
                    
<ns2:UniqueID ID
  <DocumentInfo RPH="
2575
665554444" ID_Context=
"protelIO
"SNDS" ID="120-24440-GV0" Type="
10
DocumentIdentifier"/>
                
<ns2:Reservations>
    </DocumentInfos>
                
<ns2:DefaultValues ArrivalTime="14:00:00" DepartureTime="11:00:00" >
</Registration> 
            </PersonInfos>
      
</ns2:Reservations>
  
</
ns2:SystemData>
ProfileInfoExtensions> 
    
</
ns2:IO
TPA_
SystemDataRS>
Extensions>
</
soapenv:Body> </env:Envelope>The default arrival / departure time which is set by hotel can be displayed in the reservation section of IO_SystemDataRSIPA-123123.22IPA 23.14 AnkerIPA 23.14IPA 23.14OTA_HotelResNotifRQInboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | Services | Service
Customer>


Due to Spanish legal requirements (Police reports), we extend the TPA extensions in the Customer  element with DocumentInfo for the support number  of a Spanish documents.

PWS-3713

3.16.0

OTA_ProfileCreateRQ

OTA_ProfileCreateRQ 


inbound

OnPrem

no change in xml


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 were attached to the reservation will be removed from it.IPA-119723.14IPA 23.12  AnkerIPA 23.14IPA 23.14HTNG_ChargePostingRQInboundpAirHTNG_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>
We will add a new value 'Deposit' to the SubTypeID attribute.IPA-119123.12

HTNG_HotelCheckOutNotifRQ

InboundpAir

HTNG_HotelCheckOutNotifRQ | RetransmissionIndicator

Codeblock
languagexml
collapsetrue
<htng:HTNG_HotelCheckOutNotifRQ xmlns:htng="http://htng.org/2014B" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:px="http://protel.io/htng/extensions" CorrelationID="IOTEC_4058_05" EchoToken="IOTEC_4058_05" RetransmissionIndicator="true" Version="1" PrimaryLangID="de-DE" Timestamp="2020-07-06T14:41:54">
			<POS>
				<Source TerminalID="Code2Order">
					<RequestorID Type="10" ID="2787" ID_Context="protelIO"/>
				</Source>
			</POS>
			<htng:Room RoomID="110"/>
			<htng:HotelReservations>
				<HotelReservation ResStatus="Checked out">
					<UniqueID ID="198184" ID_Context="protelIO" Type="14"/>
				</HotelReservation>
			</htng:HotelReservations>
		</htng:HTNG_HotelCheckOutNotifRQ>
When true, indicates the message is being re-sent. This can be apply for the CO guest who need to reprint the invoice. IPA-119623.12PWS 3.12.X  AnkerPWS 3.12.XPWS 3.12.XOTA_HoteResNotifRQoutboundonPremOTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGlobalInfo | HotelReservationIDs | HotelReservationID
<Customer Gender="Male" BirthDate="2020-01-01" VIP_Indicator="true" Language="de" CustomerValue="ECA - 10%|0;VIP|2">
	<PersonName>
		<NamePrefix>Herr</NamePrefix>
		<GivenName>Donald</GivenName>
		<Surname>Duck</Surname>
	</PersonName>
	<CitizenCountryName DefaultInd="true" Code="DE"/>
	<Document DocID="123456798" DocIssueLocation="" DocType="2" EffectiveDate="2020-01-01" ExpireDate="2030-01-01"/>
	<Document DocID="963852" DocType="1" EffectiveDate="2021-10-10"/>
</Customer>


With OnPrem version 23.060 and higher it is possible to send more than one document per profile.

PWS-3651

3.16.0

OTA_HotelResNotifRQ

OTA_ProfileCreateRQ

OTA_ProfileCreateRQ 

outbound / inbound

OnPrem

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | LicensePlate


OTA_ProfileCreateRQ | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:ProfileInfoExtensions | px:PersonInfos | px:Registration | LicensePlate

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


Codeblock
languagexml
collapsetrue
<px:ProfileInfoExtensions>
    <px:PersonInfos>
        <px:Registration BirthCountry="DE" BirthPlace="Entenhausen">
            <LicensePlate>ENT-DD 1</LicensePlate>
        </px:Registration>
    </px:PersonInfos>
</px:ProfileInfoExtensions>


Corrected the xml to follow the schema.

PWS-3711

3.16.0

ESB 323

Anker
ESB 323
ESB 323








HTNG_ChargePostingRSoutbound

onPrem

pAir

 HTNG_ChargePostingRS | Errors | Error


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_ChargePostingRQ

InboundOnPrem

HTNG_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.XOTA_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.XOTA_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.XPWS 3.11.X 
<Errors>
                <Error Code="188" Type="1" ShortText="Transaction error - please report. Incomplete Posting flow. Please check the guest folio before a retry."/>
            </Errors>


If no RS is generated by the PMS service within ~55 seconds, then:
  • the ESB will not do retries itself
  • the ESB will generate a generic RS to inform the sender of the RQ about the failure.

! The RQ should not be automatically retried - the posting itself could have happened, yet for some reason - no RS could have been generated by the PMS service (e.g. fiscalization error).

IO-7390ESB 323

IPA 24.38

Anker
IPA 24.38
IPA 24.38









OTA_HotelResNotifRQ

inboundpAir

no schema change

no schema change

Handling for CC-Cards

  • inbound @CardCode Attribute needs to be configured in the pAir SystemData that it can be used for Payment Posting or Deposit Posting
  • Case-insensitive is working for the @CardCode Attribute
    • CardCode in the SystemData: "Mastercard" → inbound CardCode "MasterCard"
    • CardCode in the SystemData: "Mastercard" → inbound CardCode "mastercards"
  • Detokenize Card Number is always possible

→ Important for Hotels → all possible inbound CardCodes needs to be configured in the System Data (if a vendor is sending "Mastercard (virtual credit card)" it needs to be configured in the SystemData)
→ Important for Vendor → discuss with the Hotels with CardCode are configured in their System Data.

IPA-1568

24.38

IPA 24.29

Anker
IPA 24.29
IPA 24.29









IO_SystemDataRS 


IO_ResModifyNotifRQ


OTA_HotelResNotifRQ



outbound


outbound


outbound / inbound

pAir

no schema change

no schema change

If the new Xsetup (Guest Relation with Primary) is set for the relations of the guests to the main guest, the various GuestRelationTypes can be queried from the system data via IO_SystemDataRS and sent via IO_ResModifyNotifRQ and OTA_HotelResNotifRQ with the attribute @RelationToPrimary.NGPR-8321 / IOTEC-599924.29

IPA 24.24

Anker
IPA 24.24
IPA 24.24









IO_InvoiceFiscalizeRQ 

IO_InvoiceFiscalizeNotifRQ

outboundpAir

IO_InvoiceFiscalizeRQ | Invoice | AdditionalText


Codeblock
languagexml
collapsetrue
<p:AdditionalText>test 123 </p:AdditionalText>




Due to the legal requirements in Romania, we are extend the invoice element with a new element for the additional text  for invoices.

IPA-1367TBA

IO_InvoiceFiscalizeRQ 

IO_InvoiceFiscalizeNotifRQ

outboundpAir

IO_InvoiceFiscalizeRQ | Invoice | InvoiceFormat


Codeblock
languagexml
collapsetrue
<p:InvoiceFormat>ItemsSortDate</p:InvoiceFormat>


Due to the legal requirements in Romania, we are expanding the invoice element with a new element for the invoice format for invoices.

IPA-1365TBA
IO_SystemDataRSoutboundpAir

IO_SystemDataRS | SystemData | Accounting | InvoiceFormat


Codeblock
languagexml
collapsetrue
                    <ns2:InvoiceFormats>
                        <ns2:InvoiceFormat Code="ItemsSortDate">
                            <ns2:Description Language="en_US">Single items, sort by date</ns2:Description>
                        </ns2:InvoiceFormat>
                        <ns2:InvoiceFormat Code="ItemsSortGuest">
                            <ns2:Description Language="en_US">Single items, sort by guest</ns2:Description>
                        </ns2:InvoiceFormat>
                        <ns2:InvoiceFormat Code="ItemsSortRoom">
                            <ns2:Description Language="en_US">Single items, sort by room</ns2:Description>
                        </ns2:InvoiceFormat>
                        <ns2:InvoiceFormat Code="ItemsSortCrs">
                            <ns2:Description Language="en_US">Single items, sort by CRS number</ns2:Description>
                        </ns2:InvoiceFormat>
                        <ns2:InvoiceFormat Code="ItemsGroupCode">
AnkerPWS 3.11.XPWS 3.11.XIO_StatsNotifRQoutboundOnPrem

IO_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.XOTA_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"/>
<ns2:Description Language="en_US">Combine identical items</ns2:Description>
            
</Rate>
            
<Rate AlternateCurrencyInd="true" EffectiveDate="2019-09-11" ExpireDate="2019-09-12" RateTimeUnit="Day" UnitMultiplier="1" CachedIndicator="true">
</ns2:InvoiceFormat>
                       
<Base AmountAfterTax="2.00" CurrencyCode="EUR"/
 <ns2:InvoiceFormat Code="ItemsGroupDate">
            
</Rate>
        
</Rates>
    
</RoomRate>
    
<RoomRate
<ns2:Description 
EffectiveDate
Language="
2019-09-12" ExpireDate="2019-09-13" NumberOfUnits="1" RatePlanCode="ADVOV BB" RoomTypeCode="SSV">
en_US">Combine identical items and dates</ns2:Description>
              
<Rates>
          </ns2:InvoiceFormat>
  
<Rate
 
AlternateCurrencyInd="false"
 
EffectiveDate="2019-09-12"
 
ExpireDate="2019-09-13"
 
RateTimeUnit="Day"
 
UnitMultiplier="1">
                
<Base AmountAfterTax="1.00" CurrencyCode="BGN"/>
 <ns2:InvoiceFormat Code="ItemsGroupGuest">
              
</Rate>
              
<Rate
<ns2:Description 
AlternateCurrencyInd
Language="
true
en_US"
EffectiveDate="2019-09-12" ExpireDate="2019-09-13" RateTimeUnit="Day" UnitMultiplier="1">
>Combine identical items and guest</ns2:Description>
                      
<Base
 
AmountAfterTax="2.00" CurrencyCode="EUR"/>
 </ns2:InvoiceFormat>
            
</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.XIPA 23.10 AnkerIPA 23.10IPA 23.10OTA_HotelAvailRSOutboundpAirOTA_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
<ns2:InvoiceFormat Code="ItemsGroupRoom">
                            <ns2:Description Language="en_US">Combine identical items and rooms</ns2:Description>
                        </ns2:InvoiceFormat>
                        <ns2:InvoiceFormat Code="ItemsGroupCrs">
                            <ns2:Description Language="en_US">Combine identical items and CRS number</ns2:Description>
              
xmlns:px="http://protel.io/htng/extensions"
 
End="2019-02-03"
 
Start="2019-02-01">
        </ns2:InvoiceFormat>
    
<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.

IPA-118323.10IPA 23.06 AnkerIPA 23.06IPA 23.06

OTA_HotelInvCountNotifRQ

OutboundpAirN/AN/A

pAir will no longer send in LIVE mode historical data changes related to inventory.

Historical data resync is achievable only through BULK job option.

23.06
ns2:InvoiceFormats>


Due to the legal requirements in Romania, we are expanding the Accounting element with a new element for the invoice format for invoices.

IPA-1365TBA

IO_InvoiceFiscalizeRQ

IO_InvoiceFiscalizeNotifRQ

outboundpAir

no schema change

no schema change

no change in the Schema.

To be legal in Portugal, an IO_InvoiceFiscalizeRQ needs to be triggered as soon as an Proforma or Info Invoice is created.

IPA-1345

24.24

IPA 24.20

Anker
IPA 24.20
IPA 24.20









OTA_HotelResNotifRQOTA_HotelStayInfoNotifRQOTA_ResRetrieveRSHTNG_HotelCheckInNotifRQHTNG_HotelCheckOutNotifRQ 

outboundpAir

HotelReservation | ResGuests |  ResGuest | TPA_Extensions | px:GuestStayExtensions | px:StayInfo


@CheckedIn

@CheckedOut 

OTA_ProfileModifyRQInbound
OutboundpAirOTA_ProfileModifyRQ | ProfileModify | Customer | CustLoyalty


Codeblock
languagexml
collapsetrue
<CustLoyalty MembershipID="Mem-123456" RPH="11" PrimaryLoyaltyIndicator="false" AllianceLoyaltyLevelName="Test" LoyalLevel="GOLD" SignupDate="2017-09-01" EffectiveDate="2017-09-01" ExpireDate="2017-09-01" ShareMarketInd="No" ShareSyncInd="No">
	<SubAccountBalance Type="Points" Balance="200"/>
</CustLoyalty>
Added guestMemberCard fields to the CustLoyalty element in the profile outbound.IPA-1168
IPA-116923.06IO_RatePackageNotifRQOutboundpAirIO_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" 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.

IPA-117923.06IPA 23.04  AnkerIPA 23.04IPA 23.04HTNG_ChargePostingRQInboundpAirHTNG_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="2787" Type="10" ID_Context="protelIO"/>
			<BookingChannel Type="4" Primary="true"/>
		</Source>
	</POS>
	<PropertyInfo HotelCode="2787"/>
	<Posting ID="7">
		<RevenueCenter Description="Kiosk" ID="99">
			<Terminal ID="Kiosk"/>
		</RevenueCenter>
		<Transaction TicketID="120">
			<RevenueDetails>
				<RevenueDetail Description="Cash" PMSRevenueCode="1" CurrencyCode="AED" Amount="-100" SubTypeID="Payment">
					<Account ID="342443" Type="14" ID_Context="protelIO"/>
				</RevenueDetail>
			</RevenueDetails>
		</Transaction>
	</Posting>
</HTNG_ChargePostingRQ>
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.IPA-116623.04IPA 23.02  AnkerIPA 23.02IPA 23.02

IO_ResModifyNotifRQ

InboundpAirIO_ResModifyNotifRQ | Reservations | Reservation | Packages | Package
<TPA_Extensions>
    <px:GuestStayExtensions>
        <px:StayInfo Arrival="2024-02-27T09:13:06+01:00" CheckedIn="2024-04-26T09:13:06+02:00" CheckedOut="2024-05-02T15:12:21+02:00" Departure="2024-02-28T15:12:21+01:00" PrimaryInd="true" Role="BookerAndArrivingGuest" Status="Checked out"/>
        <px:TelephoneSetting ClassOfService="3"/>
    </px:GuestStayExtensions>
</TPA_Extensions> 


To be legal compliant for police reports we added  new attributes in the StayInfo Element 

@CheckedIn = date and time for the logged checkin for the reservation 

@CheckedOut = date and time for the logged checkout for the reservation 

IPA-1392

24.20

OTA_HotelResNotifRQ

outbound / inboundpAir

px:ReservationExtensions | px:ProcessingInstructions | px:ResGuests |

@FullOverlay

@Role



Codeblock
languagexml
titleOverlay profiles
collapsetrue
<px:ReservationExtensions>
    <px:ProcessingInstructions>
        <px:ResGuests FullOverlay="true" Role="LinkedProfile"/>
    </px:ProcessingInstructions>


Extending the handling of list of profiles linked to a reservation:

  • If px:ProcessingInstructions | px:ResGuests | @FullOverlay="true", then the list of profiles provided in the inbound RQ msg will completely replace those existing in the PMS for the designated @Role. This allows to use intentional removal of existing profiles linked to a reservation. 
  • Else - if the new element is missing or the @FullOverlay="false" - the current existing logic remains - profiles are appended to the reservation.

! Caution - If the vendor does not have the intention to remove a profile from a reservation - then this element should not be sent inbound !

IPA-1387

24.20








IPA 24.14

Anker
IPA 24.14
IPA 24.14








IO_InvoiceFiscalizeRQ

IO_InvoiceFiscalizeNotifRQ

outboundpAir

IO_InvoiceFiscalizeRQ | Invoice


Codeblock
languagexml
collapsetrue
<p:Invoice BusinessDate="2022-08-09" ExternallyFiscalized="false" FiscalCode="gg12cc" FiscalCodeID="2" FiscalCodeName="Test_AB" FiscalDate="2024-03-27T08:31:34+01:00" Fiscalized="true" InvoiceCode="RE_23" InvoiceDate="2024-03-27T08:31:34+01:00" InvoiceID="34" Open="false" PastEndOfDay="false" SystemFiscalCode1="AA" SystemFiscalCode2="bb" SystemFiscalCode3="cc" Type="Reservation" User="Julia W" UserTaxNo="" Void="false">



Due to legal requirements in Portugal, we are expanding 
the invoice element with the attributes from the fiscal code in the systemdata:


@SystemFiscalCode1 for ATCUD

@SystemFiscalCode2 for NIF

@SystemFiscalCode3 for SAFT


IPA-135024.14

IO_InvoiceFiscalizeRQ

IO_InvoiceFiscalizeNotifRQ

outboundpAir

IO_InvoiceFiscalizeRQ | Invoice | InvoiceRecipient | AccountingInfos


Codeblock
languagexml
collapsetrue
<IO_ResModifyNotifRQ xmlns="http://protel.io/soap" CorrelationID="" EchoToken="" PrimaryLangID="de-DE" Timestamp="2022-01-27T12:40:14" Version="1">
	<Reservations HotelCode="2991">
		<Reservation>
			<UniqueID ID="20996" ID_Context="protelIO" Type="Reservation"/>
			<Packages>
				<Package Action="CREATE" Code="GuestLaundry" Recurrence="Daily">
					<UniqueID ID="334" ID_Context="protelIO" Type="18"/>
				</Package>
			</Packages>
		</Reservation>
	</Reservations>
</IO_ResModifyNotifRQ>
Inbound IO_ResModifyNotifRQ now accept the PackageID instead of it's name to Create/Delete the package from a reservation.IPA-114923.02IPA 22.50  AnkerIPA 22.50IPA 22.50IO_SystemDataRSOutboundpAirIO_SystemDataRS | SystemData | Accounting | PaymentMethods | PaymentMethod 
<p:InvoiceRecipient ProfileID="919" ProfileType="Corporation">
	<p:FirstName/>
	<p:LastName>Agenzia delle Entrate</p:LastName>
	<p:Language>it_IT</p:Language>
	<p:Notes/>
	<p:Gender/>
	<p:TaxNumber>06363391001</p:TaxNumber>
	<p:AccountingInfos CompanyRegNumber="987654321" FiscalUID="1234567890" PublicAdministrationInd="false" SplitPaymentInd="false" Tax1="06363391001" Tax2="06363391001"/>
</p:InvoiceRecipient>



We extend the AccountingInfos with the attributes 

@FiscalUID

@CompanyRegNumber

IPA-1380

24.14

IO_InvoiceFiscalizeNotifRQ 

IO_InvoiceFiscalizeRQ

outboundpAir

IO_InvoiceFiscalizeRQ | Invoice | InvoiceRecipient | AccountingInfos

 

Codeblock
languagexml
collapsetrue
<p:InvoiceRecipient ProfileID="1234" ProfileType="Customer">
	<p:FirstName>Jessica</p:FirstName>
	<p:LastName>Alba</p:LastName>
	<p:BirthDate>1980-10-10</p:BirthDate>
	<p:Gender>F</p:Gender>
	<p:Addresses/>
	<p:AccountingInfos PublicAdministrationInd="true" SplitPaymentInd="true"/>
</p:InvoiceRecipient>


Due to legal requirements in Italy, we extend 
the AccountingInfos with the attributes 

@PublicAdministrationInd

@SplitPaymentInd

IPA-136324.14

OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

outbound

inbound

pAir

Customer | TPA_Extensions | px:ProfileInfoExtensions  | px:AccountingInfos

 

Codeblock
languagexml
collapsetrue
<px:ProfileInfoExtensions>
	<px:AddressTypes/>
</px:ContactDetails>
</px:PersonInfos>
<px:AccountingInfos CompanyRegNumber="98711654321" FiscalUID="1525234567890"/>
</px:ProfileInfoExtensions>


We extend the AccountingInfos with the attributes 

@FiscalUID

@CompanyRegNumber

IPA-1377

IPA-1378

24.14

OTA_HotelResNotif

outbound

inbound


pAir

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos

 

Codeblock
languagexml
collapsetrue
<ns2:PaymentMethod Code="1005" Group="CC" ID="12" ID_Context="protelIO" IsAccountReceivable="false" Visible="true">
	<ns2:Name Language="en_US">Mastercard</ns2:Name>
</ns2:PaymentMethod>
The value of @Code attribute replaced with the PLU (TAA number) of the PaymentMethod item. It was already the shortname of the MOP item.IPA-115822.50OTA_ProfileModifyRQinboundpAir
<px:ProfileInfoExtensions>
	<px:AddressTypes/>
</px:ContactDetails>
</px:PersonInfos>
<px:AccountingInfos CompanyRegNumber="98711654321" FiscalUID="1525234567890"/>
</px:ProfileInfoExtensions>


We extend the AccountingInfos with the attributes 

@FiscalUID

@CompanyRegNumber

IPA-1377

IPA-1378

24.14
OTA_HotelStayInfoNotifRQoutboundpAir

OTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile

OTA_ProfileModifyRQ | ProfileModify

| Customer | TPA_Extensions | px:ProfileInfoExtensions | px:

StatisticalInfos | px:ParentProfile

AccountingInfos


Codeblock
languagexml
title
TPA_ExtensionsIPA 22.48 AnkerIPA 22.48IPA 22.48HTNG_HotelFolioRQinboundpAirHTNG_HotelFolioRQ | 

UniqueID

collapsetrue
<TPA_Extensions>
    <px:ProfileInfoExtensions>
        <px:StatisticalInfos>
            <px:ParentProfile ID="24886" ID_Context="protelIO" Name="protel" Type="3"/>
        </px:StatisticalInfos>
    </px:ProfileInfoExtensions>
</TPA_Extensions>
Enable attaching a profile as "Parent profile" inbound. The functionality can be used only with existing protel PMS profile IDsIPA-114522.50
<px:ProfileInfoExtensions>
	<px:AddressTypes/>
</px:ContactDetails>
</px:PersonInfos>
<px:AccountingInfos CompanyRegNumber="98711654321" FiscalUID="1525234567890"/>
</px:ProfileInfoExtensions>



We extend the AccountingInfos with the attributes 

@FiscalUID

@CompanyRegNumber

IPA-1377

24.14

IPA 24.12

Anker
IPA 24.12
IPA 24.12








OTA_HotelResNotifRQoutbound / inboundpAir

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | TPA_Extensions | px:GuestStayExtensions | px:StayInfo

 

Codeblock
languagexml
collapsetrue
<?xml version='1.0' encoding='utf-8'?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <s:Header xmlns:s="http://www.w3.org/2003/05/soap-envelope"> </s:Header> <s:Body xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <HTNG_HotelFolioRQ xmlns="http://htng.org/2014B" EchoToken="IPA_1138_31" Version="0" CorrelationID="IPA_1138_31"> <POS> <Source xmlns="http://www.opentravel.org/OTA/2003/05"> <RequestorID ID="2787" Type="10
<TPA_Extensions>
    <px:GuestStayExtensions>
        <px:StayInfo Arrival="2024-02-07T12:00:00+01:00" Departure="2024-02-08T12:00:00+01:00" PrimaryInd="true" Role="LinkedProfile" Status="Reserved"/>
        <px:TelephoneSetting ClassOfService="3"/>
    </px:GuestStayExtensions>
</TPA_Extensions>


There is now a new function in the PMS so that the PrimaryInd= true attribute can be used to specify the profile of the leading company OR the travel agency within the same reservation.



IPA-1357

IPA-1358

24.12

IPA 24.08

Anker
IPA 24.08
IPA 24.08









IO_SystemDataRS

outboundpAirIO_SystemDataRS | SystemData | Reservations | GuestRelationTypes | GuestRelationType 


Codeblock
languagexml
collapsetrue
<ns2:GuestRelationTypes>
	<ns2:GuestRelationType Code="Abuelo" ID="1" ID_Context="protelIO"
/> <BookingChannel Type
 PrimaryInd="
4
false" 
Primary
Visible="true"
/
>
		
</Source>
<ns2:Name Language="es_ES">Abuelo</ns2:Name>
	</
POS>
ns2:GuestRelationType>
	
<UniqueID ID
<ns2:GuestRelationType Code="
3584
Abuela" 
Type
ID="
36
2" ID_Context="protelIO"
/
 PrimaryInd="false" Visible="true">
		
</HTNG_HotelFolioRQ>
<ns2:Name Language="es_ES">Abuela</ns2:Name>
	</
s
ns2:
Body> </env:Envelope>In order to receive the Folio Item for a GroupReservation in pAir, we accept Type="36" as GroupMaster and sends back folio items accordingly. 
In this case ID should be the GroupMaster ResID.
Since the GroupMaster ResID is needed for this case, vendors should know the ResID before sending in the FolioRQ. To do this, vendors need to be subscribed for IO_ResGroupNotifRQ Otherwise.IPA-114222.48OTA_HotelResNotifRQoutboundpAirOTA_HotelResNotifRQ | HotelReservations | HotelReservation | RoomStays | RoomStay | RoomRates | RoomRate | Rates | Rate | TPA_Extensions | px:RateAmountExtensions 

Currently:

Codeblock
languagexml
titleRateAmountExtensions
collapsetrue
<TPA_Extensions>
    <px:RateAmountExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="29.13" AmountBeforeTax="29.13" CurrencyCode="USD" RevenueCategoryCode="0"/>
        <px:RateAmount AmountAfterTax="7.33" AmountBeforeTax="7.00" CurrencyCode="USD" RevenueCategoryCode="3"/>
        <px:RateAmount AmountAfterTax="21.24" AmountBeforeTax="21.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="187.56" AmountBeforeTax="159.00" CurrencyCode="USD" RevenueCategoryCode="9"/>
        <px:RateAmount AmountAfterTax="245.26" AmountBeforeTax="216.13" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:RateAmountExtensions>
    <px:FixedChargesAmountsExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:FixedChargesAmountsExtensions>
</TPA_Extensions> 

Expected:

Codeblock
languagexml
titleRateAmountExtensions
collapsetrue
<TPA_Extensions>
    <px:RateAmountExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="29.13" AmountBeforeTax="29.13" CurrencyCode="USD" RevenueCategoryCode="0"/>
        <px:RateAmount AmountAfterTax="7.33" AmountBeforeTax="7.00" CurrencyCode="USD" RevenueCategoryCode="3"/>
        <px:RateAmount AmountAfterTax="8.24" AmountBeforeTax="8.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="187.56" AmountBeforeTax="159.00" CurrencyCode="USD" RevenueCategoryCode="9"/>
        <px:RateAmount AmountAfterTax="232.26" AmountBeforeTax="203.13" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:RateAmountExtensions>
    <px:FixedChargesAmountsExtensions AlternateCurrencyInd="false" End="2022-07-17" Start="2022-07-17">
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="6"/>
        <px:RateAmount AmountAfterTax="13.00" AmountBeforeTax="13.00" CurrencyCode="USD" RevenueCategoryCode="17"/>
    </px:FixedChargesAmountsExtensions>
</TPA_Extensions> 

If a fixed charge is set as part of Rate code, it will be included in the RateAmountExtensions as  RevenueCategoryCode= (6,17)

If a fixed charges is added on top of the Rate code, then it will be included only in the in the FixedChargesAmountsExtensions as RevenueCategoryCode= (6,17)

IPA-116022.48
GuestRelationType>
	<ns2:GuestRelationType Code="Padre" ID="3" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Padre</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Madre" ID="4" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Madre</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Tio" ID="5" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Tio</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Tia" ID="6" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Tia</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Tutor Legal" ID="7" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Tutor Legal</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Hijo" ID="8" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Hijo</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Hija" ID="9" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Hija</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Nieto" ID="10" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Nieto</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Nieta" ID="11" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Nieta</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Sobrino" ID="12" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Sobrino</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Sobrina" ID="13" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Sobrina</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Primo" ID="14" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Primo</ns2:Name>
	</ns2:GuestRelationType>
	<ns2:GuestRelationType Code="Prima" ID="15" ID_Context="protelIO" PrimaryInd="false" Visible="true">
		<ns2:Name Language="es_ES">Prima</ns2:Name>
	</ns2:GuestRelationType>
</ns2:GuestRelationTypes>


Due to legal requirements in Spain, we are expanding the GuestRelationTypeselement with the attributes for the relationship types.IPA-135324.08

IPA 24.02

Anker
IPA 24.02
IPA 24.02









OTA_ProfileCreateRQ

OTA_ProfileModifyRQ

outbound

inbound

pAir

Customer | TPA_Extensions | px:ProfileInfoExtensions  | px:AccountingInfos


Codeblock
languagexml
collapsetrue
<Customer>
	<TPA_Extensions>
    ....
        <ProfileInfoExtensions>
            ....         
                <px:AccountingInfos PublicAdministrationInd="true" SplitPaymentInd="true"/>
		</ProfileInfoExtensions>
	</TPA_Extensions>
</Customer>


Due to legal requirements in Italy, we extend 
the AccountingInfos with the attributes 

@PublicAdministrationInd

@SplitPaymentInd


IPA-1346

IPA-1339

24.02

OTA_HotelResNotif

outbound

inbound


pAir

OTA_HotelResNotifRQ | HotelReservations | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile | Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos

HTNG_HotelRoomStatusSearchRQ

inbound
pAir
Codeblock
languagexml
collapsetrue
<HTNG_HotelRoomStatusSearchRQ xmlns="http://htng.org/2014B" xmlns:ota="http://www.opentravel.org/OTA/2003/05" CorrelationID="Test_RoomStatus36" EchoToken="IPA_1137_01" TimeStamp="2019-03-12T16:30:47Z" Version="1.0">
	<POS>
		<Source>
			<RequestorID Type="10" ID="2787" ID_Context="protelIO"/>
		</Source>
	</POS>
	<PropertyInfo HotelName="protel.IO TestHotel25 pAir" HotelCode="2787" HotelCodeContext="protelIO"/>
	<Room RoomID="107"/>
</HTNG_HotelRoomStatusSearchRQ>
The Room Status Search message can be used to obtain a list of rooms having a set of characteristics that the requestor is interested in. This can be done for a single room or a group of rooms, depending on the search criteria. The result then can be used, for example, to synchronize information between systems that need updated housekeeping statuses.IPA-113722.48HTNG_HotelRoomStatusSearchRSoutboundpAir


Codeblock
languagexml
collapsetrue
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">
	<S:Header>
		<p:Source xmlns:p="http://protel.io/soap" Module="backline" ModuleVersion="2022-11-28T09:55:36 (QA)" Product="protelAir" ProductVersion="2250.0.71659-SNAPSHOT" Service="io.protel.air"/>
		<p:CorrelationID xmlns:p="http://protel.io/soap">IPA_1137_03</p:CorrelationID>
	</S:Header>
	<S:Body>
		<ns2:HTNG_HotelRoomStatusSearchRS xmlns:ns2="http://htng.org/2014B" xmlns:ns3="http://protel.io/soap" xmlns:ns4="http://www.w3.org/2005/08/addressing" xmlns:ns5="http://www.w3.org/2011/03/ws-evt" xmlns:ns6="http://www.opentravel.org/OTA/2003/05" CorrelationID="IPA_1137_03" EchoToken="IPA_1137_03" PrimaryLangID="en" TimeStamp="2022-11-28T10:58:38Z" Version="1">
			<ns2:Success/>
			<ns2:RoomInformationList>
				<ns2:RoomInformation>
					<ns2:Room RoomID="106">
						<ns2:RoomType IsRoom="true" NumberOfUnits="1" RoomID="106" RoomType="Standard Room" RoomTypeCode="STND">
							<ns6:RoomDescription Name="Description">
								<ns6:Text TextFormat="PlainText">Standard Room</ns6:Text>
							</ns6:RoomDescription>
						</ns2:RoomType>
						<ns2:HKStatus>OFF_MARKET</ns2:HKStatus>
						<ns2:TPA_Extensions>
							<px:RoomStatusExtensions xmlns:px="http://protel.io/htng/extensions">
								<px:HouseKeepingInfo RoomStatus="2"/>
							</px:RoomStatusExtensions>
						</ns2:TPA_Extensions>
					</ns2:Room>
				</ns2:RoomInformation>
			</ns2:RoomInformationList>
		</ns2:HTNG_HotelRoomStatusSearchRS>
	</S:Body>
</S:Envelope>
The Room Status Search message can be used to obtain a list of rooms having a set of characteristics that the requestor is interested in. This can be done for a single room or a group of rooms, depending on the search criteria. The result then can be used, for example, to synchronize information between systems that need updated housekeeping statuses.
<Customer>
	<TPA_Extensions>
    ....
        <ProfileInfoExtensions>
            ....         
                <px:AccountingInfos PublicAdministrationInd="true" SplitPaymentInd="true"/>
		</ProfileInfoExtensions>
	</TPA_Extensions>
</Customer>


Due to legal requirements in Italy, we extend 
the AccountingInfos with the attributes 

@PublicAdministrationInd

@SplitPaymentInd


IPA-1346

IPA-1339

24.02
OTA_HotelStayInfoNotifRQoutboundpAir

OTA_HotelStayInfoNotifRQ | StayInfos | StayInfo | HotelReservation | ResGuests | ResGuest | Profiles | ProfileInfo | Profile| Customer | TPA_Extensions | px:ProfileInfoExtensions | px:AccountingInfos


Codeblock
languagexml
collapsetrue
<Customer>
	<TPA_Extensions>
    ....
        <ProfileInfoExtensions>
            ....         
                <px:AccountingInfos PublicAdministrationInd="true" SplitPaymentInd="true"/>
		</ProfileInfoExtensions>
	</TPA_Extensions>
</Customer>


Due to legal requirements in Italy, we extend 
the AccountingInfos with the attributes 

@PublicAdministrationInd

@SplitPaymentInd


IPA-133924.02
OTA_HotelAvailNotifRQ

outbound

inbound

pAir

OTA_HotelAvailNotifRQ |

@MessageContentCode

no changes in xml - new values for MessageContentCode

We use the value 4 for the restrictions on rate group level.

IPA-133424.02
OTA_ResRetrieveRS outboundpAir

OTA_ResRetrieveRS | ReservationsList | HotelReservation |
TPA_Extensions | px:ReservationGroupExtensions| px:GroupInfo| 

@GroupName
@GroupID
@PrimaryInd

ResGuests | ResGuest |  TPA_Extensions | px:ReservationGroupExtensions | px:GroupInfo| 

@GroupName
@GroupID
@PrimaryInd



Codeblock
collapsetrue
<TPA_Extensions>
  <px:ReservationGroupExtensions >
    <px:GroupInfo GroupName="Viaggi in Stile SpA -2022-01-17" GroupID="113" PrimaryInd="true" />
  </px:ReservationGroupExtensions >
</TPA_Extensions>


Due to Italian legal requirements (Police reports and Tourism Statistics), we're extending the schema to be able to export information about groups: group name, group ID and group leader.
On reservation level, PrimaryInd="true" will be shown for the reservation containing the group leader profile, all other reservations of this group will be shown with PrimaryInd="false".

On profile/resguest level,  PrimaryInd="true" will be shown for the group leader profile, all other profiles of this group will be shown with PrimaryInd="false".

IPA-104024.02
IPA-113722.48