Holiday Extras - Lounge Booking XML Interface

Contents

Introduction

Purpose

This document will defines the XML interface to the Holiday Extras lounge booking engine.

Scope

This document defines:


Format

Each interface is described in terms of:

  1. Table of variables
  2. XML request
  3. XML reply

Access

Access to the XML interface is restricted by Holiday Extras. Your sales contact at Holiday Extras will be responsible for setting up access.


Address

You will need to contact Holiday Extras for access to the servers.


Requests

Lounges has 3 request codes:

Request code 1 - AVAILABILITY
Availabilty request for all car parks for given location/time period.
Request code 4 - BOOKING (DIRECT)
Direct booking
Request code 5 - BOOKING (AGENT)
Agent booking

Request 1 - Availability

Request

Input parameters
Parameter DescriptionMandatory Values/Format
Agent  
- ABTANumberThe agent's ABTA Number or Holiday Extras code YAlphaNumeric
- PasswordThe agent's passwordN (Direct) - Y (Agent)N,Y
- InitialsThe agent's initialsY2-3 CHARS
Itinerary  
- ArrivalDateArrival date at the loungeYDDMonYY
- ArrivalTimeArrival time at the loungeYHHMM
- LocationAirport codeYAlphaNumeric
- AdultsNumber of adultsNNumeric
- ChildrenNumber of childrenNNumeric
- InfantsNumber of infantsNNumeric
XML Request
<API_Request System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000003" RequestCode="1"> <Agent> <ABTANumber>WEB1</ABTANumber> <Password></Password> <Initials>XYZ</Initials> </Agent> <Itinerary> <ArrivalDate>20Dec07</ArrivalDate> <ArrivalTime>0730</ArrivalTime> <Location>LGW</Location> <Adults>2</Adults> <Children>0</Children> <Infants>0</Infants> </Itinerary> </API_Request> 

XML Reply

<?xml version="1.0"?> <API_Reply System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000003" RequestCode="1" Result="OK"> <Lounge l="1"> <LoungeCode>LGWSAS</LoungeCode> <LoungeName>Servisair Lounge</LoungeName> <Price>20.00</Price> <CCardSurchargePercent>1.50</CCardSurchargePercent> <CCardSurchargeAmount>1.50</CCardSurchargeAmount> </Lounge> <Pricing> <CCardSurchargePercent>1.50</CCardSurchargePercent> <CCardSurchargeMin>1.50</CCardSurchargeMin> <CCardSurchargeMax>4.00</CCardSurchargeMax> </Pricing> </API_Reply> 

Request 4 - Booking (Direct/Intermediary)

Request

Input parameters
Parameter DescriptionMandatoryValues/Format
Agent  
- ABTANumberThe agent's ABTA Number or Holiday Extras code YAlphaNumeric
- PasswordThe agent's passwordN (Direct) - Y (Agent)N,Y
- InitialsThe agent's initialsY2-3 CHARS
Itinerary  
- ArrivalDateArrival date at the loungeYDDMonYY
- ArrivalTimeArrival time at the loungeYHHMM
- LoungeCode Lounge codeY
- AdultsNumber of adultsYNumeric
- ChildrenNumber of childrenYNumeric
- InfantsNumber of infantsYNumeric
ClientDetails    
- Title Client's titleY2-4 CHARS
- Initial Client's initialY2-3 CHARS
- Surname Client's surnameY 
- Address (a=1 to 3) Up to 3 address linesY 
- Town Y (note 2) 
- County Y (note 2) 
- Postcode YAlphaNumeric
- Country N 
- DayPhoneDaytime phone numberY (note 3)Numeric
- EvePhoneEvening phone numberY (note 3)Numeric
- Fax Fax numberNNumeric
- EmailEmail addressYAlphaNumeric(@)
- CustomerRef Customer referenceNAlphaNumeric
- DataProtection Allow future contact?YY/N/T/A (note 4)
PaymentDetails    
- CardNumber  YNumeric
- ExpiryDate  YMMYY
- StartDate  Y (note 5) MMYY
- IssueNumber  Y (note 5) Numeric
- Cardholder  YName

Note 1: Only mandatory if the corresponding RequestFlag parameter in Car Park Availability reply record is set to Y.

Note 2: At least one of Town or County is required.

Note 3: At least one of DayPhone or EvePhone is required.

Note 4: Values for data protection flag are:
Y = Holiday Extras only can use data
N = Nobody can use data
T = Third party only can use data
A = Holiday Extras and third party can use data

Note 5: Only mandatory if required for type of card used for payment.

XML Request
<API_Request System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000005" RequestCode="4"> <Agent> <ABTANumber>WEB1</ABTANumber> <Password></Password> <Initials>XYZ</Initials> </Agent> <Itinerary> <ArrivalDate>20Dec07</ArrivalDate> <ArrivalTime>0800</ArrivalTime> <LoungeCode>LGWSAS</LoungeCode> <Adults>2</Adults> <Children>0</Children> <Infants>0</Infants> </Itinerary> <ClientDetails> <Title>Mr</Title> <Initial>J</Initial> <Surname>Smith</Surname> <Address a="1">Flat 6</Address> <Address a="2">28 Main Street</Address> <Town>Maidenhead</Town> <County>Berks</County> <Postcode>SL6 3DJ</Postcode> <EvePhone>01628 654321</EvePhone> <Email>jsmith@aol.com</Email> <Confirmation>N</Confirmation> <DataProtection>Y</DataProtection> </ClientDetails> <PaymentDetails> <CardNumber>4111111111111111</CardNumber> <ExpiryDate>0909</ExpiryDate> <Cardholder>Mr J Smith</Cardholder> </PaymentDetails> </API_Request>

XML Reply

<?xml version="1.0"?> <API_Reply System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000005" RequestCode="4" Result="OK"> <Booking> <BookingRef>A8AZD</BookingRef> </Booking> <Itinerary> <ArrivalDate>20Dec07</ArrivalDate> <ArrivalTime>0800</ArrivalTime> <LoungeCode>LGWSAS</Duration> <Adults>2</CarParkCode> <Children>0</NumberOfPax> <Infants>0</NumberOfPax> </Itinerary> <ClientDetails> <Title>MR</Title> <Initial>J</Initial> <Surname>SMITH</Surname> <Address a="1">FLAT 6</Address> <Address a="2">28 MAIN STREET</Address> <Town>MAIDENHEAD</Town> <County>BERKS</County> <Postcode>SL6 3DJ</Postcode> <EvePhone>01628 654321</EvePhone> <Email>JSMITH@AOL.COM</Email> <DataProtection>Y</DataProtection> </ClientDetails> <Pricing> <TotalPrice>20.00</TotalPrice> <AmountPaid>21.50</AmountPaid> <CCardSurchargePercent>1.50</CCardSurchargePercent> <CCardSurchargeAmount>1.50</CCardSurchargeAmount> <Margin>8.51</Margin> </Pricing> </API_Reply>

Request 5 - Booking (Agent)

Request

Input parameters
ParameterDescriptionMandatory Values/Format
Agent   
- ABTANumberThe agent's ABTA Number or Holiday Extras code YAlphaNumeric
- PasswordThe agent's passwordN (Direct) - Y (Agent)N,Y
- InitialsInitialsY2-3 CHARS
Itinerary   
- ArrivalDateDate of ArrivalYDDMonYY
- ArrivalTimeTime of ArrivalYHHMM
- Lounge CodeLounge CodeY
- AdultsNumber of adultsYNumeric
- ChildrenNumber of childrenYNumeric
- InfantsNumber of infantsYNumeric
Client Details    
-TitleTitle of customerY2-4 CHARS
-InitialInitial of CustomerY 1 CHAR
-SurnameCustomer SurnameY 
XML Request
<API_Request System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000006" RequestCode="5"> <Agent> <ABTANumber>TRAIN</ABTANumber> <Password>TRAIN</Password> <Initials>XYZ</Initials> </Agent> <Itinerary> <ArrivalDate>20Dec07</ArrivalDate> <ArrivalTime>0800</ArrivalTime> <LoungeCode>LGWSAS</LoungeCode> <Adults>2</Adults> <Children>0</Children> <Infants>0</Infants> </Itinerary> <ClientDetails> <Title>Mr</Title> <Initial>J</Initial> <Surname>Smith</Surname> </ClientDetails> </API_Request>

XML Reply

<?xml version="1.0"?> <API_Reply System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000006" RequestCode="5" Result="OK"> <Booking> <BookingRef>A8AZF</BookingRef> </Booking> <Itinerary> <ArrivalDate>20Dec07</ArrivalDate> <ArrivalTime>0800</ArrivalTime> <LoungeCode>LGWSAS</LoungeCode> <Adults>2</Adults> <Children>0</Children> <Infants>0</Infants> </Itinerary> <ClientDetails> <Title>MR</Title> <Initial>J</Initial> <Surname>SMITH</Surname> </ClientDetails> </API_Reply>

Errors

The status of a request is indicated by the 'Result' attribute of the 'API_Reply' node. There are two types of error message.

  1. INVALID - The data input was invalid
  2. ERROR - The data was valid, but no availability etc

Invalid

<?xml version="1.0"?> <API_Reply System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000003" RequestCode="1" Result="INVALID"> <Error> <ErrorCode>1501</ErrorCode> <ErrorMessage>Invalid ArrivalDate</ErrorMessage> </Error> </API_Reply>

Error

<?xml version="1.0"?> <API_Reply System="ABC" Version="1.0" Product="Lounge" Customer="A" Session="000000003" RequestCode="1" Result="ERROR"> <Error> <ErrorCode>0071</ErrorCode> <ErrorMessage>Retrospective bookings not permitted</ErrorMessage> </Error> </API_Reply>

Appendix

Error codes

 

Application Error Messages

 

Error Code

Error Message

0000

<other error message>

0001

Unfortunately, We do not offer the product you have selected at this airport!

0002

<availability error message>

Not available try a hotel with parking

0003

Agent Ref Not On File

Agent information not setup

Invalid End Date

0004

Car Park <car park code> not on file

Car Park Not On File <car park code>

0005

Hotel code not present on KFHS01

0006

Problem with room allocation, please call ABC

0007

No rooms requested

0008

Maximum of 5 room types may be requested

0009

Please enter duration required

0010

Please enter a valid duration period

0011

Please enter no of parking spaces needed

0012

<pricing error message>

0013

Call ABC for a parking group price

0014

There are only <number> spaces available

0015

No parking spaces exceeds total no rooms

0016

Max allocation for <room code> is <number>

0017

Only <max rooms> <room code> allowed per booking

0018

Max no of adults in room <room code> is <number>

0019

Max no of occupants in room <room code> is <number>

0020

Max number of children in room <room code> is <number>

0021

Max number of infants in room <room code> is <number>

0022

Enter number of occupants for <room code> room

0023

Please enter quantity for <room code> room

0024

Call ABC to request more <room code> rooms

0025

<room code> room is on request- Call ABC to book

0026

Call ABC for a group offer on <room code> rooms

0027

Only <number> <room code> rooms available

0028

Only 5 room types permitted per booking

0029

No Hotel Allocation Details for Criteria

0030

Use Mr,Mrs,Miss,Ms,Mstr,Mr/s,Dr,Rev,Prof,Sir

0031

Please enter client's first initial

0032

Please enter client's surname

0033

Arrival not Allowed on a <day of the week>

0034

Min Stay for <day of the week> Arrivals: <number> days

0035

Max Stay for <day of the week> Arrivals: <number> days


 

 

Application Error Messages

 

Error Code

Error Message

0036

Insufficient rooms available

0040

Invalid information type

0041

Invalid request

0042

Invalid Time

0043

Site code not found

0044

Invalid option entered

0045

No lounges available at <site code> for this time and date

0046

Our allocation is full - Clients MAY turn up at the Airport and pay the full gate price for parking. There will be space available

ABC's Allocation full - Clients MAY turn up at the Airport and pay Full Gate Price. There will be space available

0050

End Date is before Start Date

0051

Invalid Booking Number

0052

Invalid Agent Ref.

0053

Agent Ref. is incorrect for this Booking

0054

Sorry. Cannot display Transfer Bookings

0055

Invalid Rail Booking

0056

Cannot cancel bookings in training mode

0057

Booking <booking reference> not on file

0058

Please Call ABC on 0800 414141 to cancel

Please Call Holiday Extras on 0800 414141 to cancel

0059

BOOKING ALREADY CANCELLED ON <date>

Booking already cancelled on <date>

0060

Please advise your customer that a cancellation fee of <amount> will apply

0061

There is no charge for cancelling this booking

0062

Enter an agent ref. for the cancellation

0063

BOOKING MAY NOT BE CANCELLED UNTIL TICKET IS RETURNED!

0070

INVALID PASSWORD; PLEASE RE-ENTER.

Invalid password; please re-enter.

0071

Retrospective bookings not permitted

0072

Hotel only available for bookings with Parking

0074

Car Park not bookable within <number> days

0075

Hotel on Stop Sale ...

0076

Arrival Date is within 24 hours, Call ABC to Cancel

 

 

 

XML Error Messages – 10xx

 

Error Code

Error Message

1001

Coach details missing from API response

1002

Invalid end date in API response

1003

Invalid number of chars per line

1004

Invalid number of lines

1005

Invalid number of rooms in API response

1006

Invalid segment type

1007

Invalid start date in API response

1009

Missing request terminator

1010

Product code not setup

1011

Requested information not available

1012

XML API not enabled - $$

1013

Unrecognised system

1014

Invalid product code

1015

Invalid request code

1016

Invalid XML request message

1017

Invalid request message header

1018

Missing or invalid System attribute

1019

Missing or invalid Version attribute

1020

Missing or invalid Product attribute

1021

Missing or invalid Customer attribute

1022

Unrecognised Customer attribute

1023

Missing of invalid Session attribute

1024

Invalid Session attribute

1025

Missing or invalid RequestCode attribute

1026

Invalid RequestCode attribute

1027

Invalid XML segment

1028

Invalid character escape sequence

1029

Not an XML request

1030

Unable to access XML request

1031

Invalid system name

1032

Requested product not supported

 

 

 

XML Error Messages – 11xx

 

Error Code

Error Message

1100

Invalid Cancel Booking API response

1101

Invalid Hotel Agent Booking API response

1102

Invalid Hotel Availability API response

1103

Invalid Hotel Availability by Room Type API response

1104

Invalid Hotel Direct Booking API response

1105

Invalid Hotel Info API response

1106

Invalid Hotel Pricing API response

1107

Invalid Hotel Product Info API response

1108

Invalid Hotel Room Availability API response

1109

Invalid Hotel With Parking Room Availability API response

1110

Invalid Hotel with Coach Agent Booking API response

1111

Invalid Hotel with Coach Availability API response

1112

Invalid Hotel with Coach Direct Booking API response

1113

Invalid Hotel with Coach Info API response