Versionen im Vergleich

Schlüssel

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

...

protel uses protel I/O to route incoming and outbound data messages. Messages can be delivered to protel I/O from an HTTPS endpoint. protel I/O provides different endpoints for synchronous and asynchronous SOAP 1.2 messages to accommodate WSDL requirements. protel I/O is using the Version 'OTA 2011A' for the OTA messages.




Security, Access, and Authentication

Security is important to you and protel. All messages must be authenticated using protel IO’s secure authentication processes. To ensure the source of messages are valid, all messages flowing to and from protel are checked. Messages are verified by protel I/O. Access to the API is only permitted through SSL (secure sockets layer). For HTNG messaging, all messages will utilize the HTNG 1.2 SOAP header.



Authentication of Inbound messages

Direction Vendor to protel. All messages require a protel provided Bearer Token (whether RQ or RS!).

The Authentication token must be submitted in HTTP headers.

Protel will provide you with your bearer token at the time we commence testing. When requesting a test environment protel will provide you with a token at that time.



Format of HTTP Headers

In order to process your incoming requests, all of your messages must contain headers inside the HTTP headers

...

Codeblock
languagexml
titleHeader Format
Content-Type: application/soap+xml
SOAPAction: OTA_HotelResNotifRQ
Authorization: Bearer C6MmpEFjRRSy288V1-DEMO-hGETMBImNJhFzv5
CorrelationID: RES#047616#UPDATE#000025#1594029290242#546D

SOAPAction

Messages sent to Protel IO (ESB)


OTAHTNGIO
RequestsoapAction SOAPAction "http://htng.org/PWSWG/2010/12/OTA_HotelResNotifRQ_SubmitRequest"SOAPAction : "http://htng.org/PWSWG/2010/12/HTNG_HotelCheckInNotifRQ_SubmitRequest"soapAction SOAPAction : "IO_StatsNotifRQ
ResponsesoapAction : "OTA_HotelResNotifRQ"soapAction : "HTNG_HotelCheckInNotifRS"soapAction : "IO_StatsNotifRS"

Message received from ESB

soapAction : "http://htng.org/PWSWG/2010/12/OTA_HotelResNotifRQ_SubmitRequest"http://htng.org/PWSWG/2010/12/HTNG_HotelCheckInNotifRQ_SubmitRequest"
OTAHTNGIORequestSOAPAction : "soapAction : "IO_StatsNotifRQResponsesoapAction : "http://htng.org/PWSWG/2010/12/OTA_HotelResNotifRQ_SubmitResponseOTA_HotelResNotifRS"SOAPAction : "http://htng.org/PWSWG/2010/12/HTNG_HotelCheckInNotifRS_SubmitResponse"soapAction SOAPAction : "IO_StatsNotifRS"

Format of SOAP Environment

...

ElementNamespaceDescriptionOccurrence
Envelopehttp://www.w3.org/2003/05/soap-envelope-Mandatory
Envelope / Headerhttp://www.w3.org/2003/05/soap-envelopeContains the SOAP headers of the messageMandatory
Envelope / Header / Actionhttp://protel.io/soapThe required action (Message name) e.g. "OTA_HotelResNotifRQ"Optional
Envelope / Header / CorrelationIDhttp://protel.io/soapThe CorrelationID of the message you are sending to identify the transaction (protel namespace)Mandatory
Envelope / Header / Sourcehttp://protel.io/soapThe Source of the message (Only outbound from protel to vendor)Optional
Envelope / Header / CorrelationIDhttp://htng.org/PWSWG/2007/02/AsyncHeadersThe CorrelationID of the message you are sending to identify the transaction (HTNG namespace)Mandatory
Envelope / Header / Targethttp://protel.io/soap

The desired target service name of the message

- ONLY for SYNC messages

For message/s to protel PMS the correct values are:

  • io.protel.air - for protel Cloud PMS
  • io.protel.onpremise - for protel onPremise PMS
  • io.protel.pms - for either of the two above. The value is an alias that is valid for either of the PMSes
MandatoryOptional
Envelope / Bodyhttp://www.w3.org/2003/05/soap-envelopeThe HTNG/OTA/IO messageMandatory

...

The Content-Type needs to be added in the HTTP Header with the value "application/soap+xml". 

Please note that depending on the message group used, the ACK has some differences between the standard OTA/HTNG and the protel extension IO message types:

Codeblock
languagexml
titleExample ACK for HTNG/OTA message type
<?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">RES#045627#CREATE#000002#1575294717780#6244XXX<>%1$s</htnga:CorrelationID>
		<htnga:RelatesToCorrelationID xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders">RES#045627#CREATE#000002#1575294717780#6244XXX<>%1$s</htnga:RelatesToCorrelationID>
	</env:Header>
	<env:Body>
		<ns:HTNG_AcknowledgeReceipt xmlns:ns="http://htng.org/2014B"/>
	</env:Body>
</env:Envelope>


Codeblock
languagexml
titleExample ACK for IO message type
<?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">%1$s</htnga:CorrelationID>
		<htnga:RelatesToCorrelationID xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders">%1$s</htnga:RelatesToCorrelationID>
	</env:Header>
	<env:Body>
		<io:IOAcknowledgeRS CorrelationID="%1$s" xmlns:io="http://protel.io/soap">
        	<io:Success>true</io:Success>
        </io:IOAcknowledgeRS>
	</env:Body>
</env:Envelope>


protel I/O Connection Endpoints

Connecting to TEST


Connecting to PROD

SystemEndpointVariantURLComments
ESBAsynchronous APISOAP 1.2

https://service.protel.io/services/ProtelApiService.ProtelApiServiceHttpsSoap12Endpoint

Default Endpoint

Synchronous APISOAP 1.2

https://service.protel.io/services/ProtelApiSyncService.ProtelApiSyncServiceHttpsSoap12Endpoint


Asynchronous API (CD-Proxy-Ireland)SOAP 1.2https://pci.protel.net/cd-proxy-io/pci/1/io/reservationsEndpoint for all inbound OTA_HotelResNotifRQ messages
Asynchronous API (CD-Proxy-Sydney)SOAP 1.2https://pci-sydney.protel.net/cd-proxy-io/pci/1/io/reservationsEndpoint for all inbound OTA_HotelResNotifRQ messages for protel Customers located in Sydney
WSDLSOAP 1.2https://wsdl.protel.io/services/ProtelApiService?wsdl


NAT Gateway IP Addresses

EnvironmentNAT Gateway - Out
ESB TEST34.249.236.99
ESB PROD34.248.234.12

Circular Message Flow


The circular message flow prevents a message loop between Integration Partner and Protel.

It is applicable for message types which the PMS accepts in both directions In/Out (e.g. OTA_ProfileModifyRQ, OTA_HotelResNotifRQ, etc.)

Sample:

The Integration Partner sends an OTA_ProfileModifyRQ message to Protel. This profile is modified in the PMS and then sent again as OTA_ProfileModifyRQ by the PMS. The Integration Partner will also modify the profile again and send it back to Protel, thus creating an endless loop. 



Image Added



To stop this endless loop, we have implemented the "Caused-By CorrelationID". The "Caused-By CorrelationID" is automatically added to the outbound messages by the PMS if a modification has been made due to an inbound message. Based on the "Caused-By CorrelationID", our ESB knows to which Ontegration Partner the message does not have to be sent. 


Image Added