This document will defines the XML interface to the Holiday Extras lounge booking engine.
This document defines:
Each interface is described in terms of:
Access to the XML interface is restricted by Holiday Extras. Your sales contact at Holiday Extras will be responsible for setting up access.
You will need to contact Holiday Extras for access to the servers.
Lounges has 3 request codes:
| Parameter | Description | Mandatory | Values/Format |
|---|---|---|---|
| Agent | |||
| - ABTANumber | The agent's ABTA Number or Holiday Extras code | Y | AlphaNumeric |
| - Password | The agent's password | N (Direct) - Y (Agent) | N,Y |
| - Initials | The agent's initials | Y | 2-3 CHARS |
| Itinerary | |||
| - ArrivalDate | Arrival date at the lounge | Y | DDMonYY |
| - ArrivalTime | Arrival time at the lounge | Y | HHMM |
| - Location | Airport code | Y | AlphaNumeric |
| - Adults | Number of adults | N | Numeric |
| - Children | Number of children | N | Numeric |
| - Infants | Number of infants | N | Numeric |
<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 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>
| Parameter | Description | Mandatory | Values/Format |
|---|---|---|---|
| Agent | |||
| - ABTANumber | The agent's ABTA Number or Holiday Extras code | Y | AlphaNumeric |
| - Password | The agent's password | N (Direct) - Y (Agent) | N,Y |
| - Initials | The agent's initials | Y | 2-3 CHARS |
| Itinerary | |||
| - ArrivalDate | Arrival date at the lounge | Y | DDMonYY |
| - ArrivalTime | Arrival time at the lounge | Y | HHMM |
| - LoungeCode | Lounge code | Y | |
| - Adults | Number of adults | Y | Numeric |
| - Children | Number of children | Y | Numeric |
| - Infants | Number of infants | Y | Numeric |
| ClientDetails | |||
| - Title | Client's title | Y | 2-4 CHARS |
| - Initial | Client's initial | Y | 2-3 CHARS |
| - Surname | Client's surname | Y | |
| - Address (a=1 to 3) | Up to 3 address lines | Y | |
| - Town | Y (note 2) | ||
| - County | Y (note 2) | ||
| - Postcode | Y | AlphaNumeric | |
| - Country | N | ||
| - DayPhone | Daytime phone number | Y (note 3) | Numeric |
| - EvePhone | Evening phone number | Y (note 3) | Numeric |
| - Fax | Fax number | N | Numeric |
| Email address | Y | AlphaNumeric(@) | |
| - CustomerRef | Customer reference | N | AlphaNumeric |
| - DataProtection | Allow future contact? | Y | Y/N/T/A (note 4) |
| PaymentDetails | |||
| - CardNumber | Y | Numeric | |
| - ExpiryDate | Y | MMYY | |
| - StartDate | Y (note 5) | MMYY | |
| - IssueNumber | Y (note 5) | Numeric | |
| - Cardholder | Y | Name |
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.
<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 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>
| Parameter | Description | Mandatory | Values/Format |
|---|---|---|---|
| Agent | |||
| - ABTANumber | The agent's ABTA Number or Holiday Extras code | Y | AlphaNumeric |
| - Password | The agent's password | N (Direct) - Y (Agent) | N,Y |
| - Initials | Initials | Y | 2-3 CHARS |
| Itinerary | |||
| - ArrivalDate | Date of Arrival | Y | DDMonYY |
| - ArrivalTime | Time of Arrival | Y | HHMM |
| - Lounge Code | Lounge Code | Y | |
| - Adults | Number of adults | Y | Numeric |
| - Children | Number of children | Y | Numeric |
| - Infants | Number of infants | Y | Numeric |
| Client Details | |||
| -Title | Title of customer | Y | 2-4 CHARS |
| -Initial | Initial of Customer | Y | 1 CHAR |
| -Surname | Customer Surname | Y |
<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 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>
The status of a request is indicated by the 'Result' attribute of the 'API_Reply' node. There are two types of error message.
<?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>
<?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>
| 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 |