Channel XML API Documentation
Introduction
Levart uses a subset of the Open Travel Alliance (OTA) XML specifications for the Channel API. Levart currently uses the "2015B" version of the specifications for this implementation. The full OTA documentation including all schemas can be downloaded from http://www.opentravel.org/Specifications/Default.aspx
The OTA XML messages are implemented over the SOAP v1.2 protocol over a secure TLS 1.2 or higher connection.
The messages are also protected with HTTP Basic authentication (via HTTP header) that are unique per-property. The Basic authentication username should also be the same as the HotelCode element.
The username (HotelCode) and password will be supplied to you for access in the introductory email from Levart.
Levart also provides a WSDL (Web Services Definition Language) file that describes the usage of the XML web services over SOAP including all XML schemas.
A single endpoint is supported for sending of rate/inventory updates and issuing the Room/Rates request.
Messages Supported
Booking Rule Notif
Cancellation Notif
Inventory Count Notif
Ping Request
Rate Amount Notif
Reservation Mod Notif
Reservation Notif
Room/Rate Request
SOAP/OTA Diagram
SOAP Message Structure
POST /servers/changeme.html HTTP/1.1
Host: secure.levartdistributionsystems.com.au
Content-type: application/soap+xml; charset=utf-8
Authorization: Basic aHR0cHdhdGNoOmY=
SoapAction: PingRQ
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>UserHere</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PasswordHere</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
// OTA XML REQUEST HERE e.g. OTA_PingRQ message
</soapenv:Body>
</soapenv:Envelope>
HTTP/1.1 200 OK
Date: Wed, 10 Feb 2016 03:02:55 GMT
Server: Apache
Connection: close
Content-Type: application/soap+xml
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
// OTA XML RESPONSE HERE e.g. OTA_PingRS message
</soapenv:Body>
</soapenv:Envelope>
More reading: https://en.wikipedia.org/wiki/SOAP
Generic Error Response (OTA_ErrorRS)
You may get an OTA_ErrorRS message in return instead of the expected OTA message if an error occurs early on in the parsing or authorization process.
<OTA_ErrorRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://secure.levartdistributionsystems.com.au/html/schema/OTA/2015B/OTA_ErrorRS.xsd"
TimeStamp="2020-06-19T22:21:23+08:00" Target="Production" Version="1.0"
Status="NotProcessed"
ErrorMessage="Messages must be authenticated via HTTP Basic" />
Specification for OTA_ErrorRS
Element | Num | Description |
---|---|---|
OTA_ErrorRS | 1 | Root element |
@Status | 1 | Always 'NotProcessed' on all OTA_ErrorRS messages. |
@Version | 1 | Current Version 1.0 |
@TimeStamp | 1 | Date and time of the transaction in ISO 8601 format e.g. 2016-01-28T15:15:00+08:00 |
@ErrorMessage | 1 | Error message description |
Levart Interface Contact
Name | Rick Anderson |
---|---|
Position | Project Manager |
rick@levart.com.au | |
Phone | +61 8 9382 8001 |