Anda di halaman 1dari 97

HolidayTaxis Development Guide

Version: 1.2 XML Web Services Publication Date: 11th April 2011

HolidayTaxis Development Guide

Page 1 of 97

Contents
INTRODUCTION .................................................................................................................. 5 Changelog ......................................................................................................................... 5 XML REQUESTS AND RESPONSES .................................................................................. 7 Credentials ........................................................................................................................ 7 TEMPLATES ........................................................................................................................ 8 AGENTS ............................................................................................................................... 9 Agents.CreateAgency Method ........................................................................................... 9 Agents.CreateAgency Request ...................................................................................... 9 Agents.CreateAgencyResponse .................................................................................. 11 Agents.GetAgencyStatus Method .................................................................................... 11 Agents.GetAgencyStatus Request ............................................................................... 12 Agents.GetAgencyStatusResponse ............................................................................. 13 PRODUCTS ........................................................................................................................ 14 Products.GetAllDestinations Method ............................................................................... 14 Products.GetAllDestinations Request .......................................................................... 14 Products.GetAllDestinationsResponse......................................................................... 15 Products.GetResortProducts Method .............................................................................. 17 Products.GetResortProducts Request ......................................................................... 18 Products.GetResortProductsResponse........................................................................ 19 Products.GetProductPrice Method .................................................................................. 22 Products.GetProductPrice Request.............................................................................. 22 Products.GetProductPriceResponse ............................................................................ 24 Products.GetProductDetails Method ................................................................................ 25 Products.GetProductDetails Request ........................................................................... 26 Products.GetProductDetailsResponse ......................................................................... 27 Products.GetSupplierResorts Method ............................................................................. 29 Products.GetSupplierResorts Request......................................................................... 29 Products.GetSupplierResortsResponse ....................................................................... 30 BOOKINGS......................................................................................................................... 32 Bookings.GetDepartureAirports Method .......................................................................... 32 Bookings.GetDepartureAirports Request ..................................................................... 32 Bookings.GetDepartureAirportsResponse.................................................................... 33

HolidayTaxis Development Guide

Page 2 of 97

Bookings.GetCardTypes Method ..................................................................................... 34 Bookings.GetCardTypes Request ................................................................................ 34 Bookings.GetCardTypesResponse .............................................................................. 35 Bookings.GetBookingTypes Method ................................................................................ 36 Bookings.GetBookingTypes Request ........................................................................... 36 Bookings.GetBookingTypesResponse ......................................................................... 37 Bookings.CreateBooking Method .................................................................................... 38 Bookings.CreateBooking Request ............................................................................... 39 Bookings.CreateBookingResponse .............................................................................. 44 Bookings.GetBooking Method ......................................................................................... 50 Bookings.GetBooking Request .................................................................................... 50 Bookings.GetBookingResponse................................................................................... 51 Bookings.CancelBooking Method .................................................................................... 51 Bookings.CancelBooking Request ............................................................................... 51 Bookings.CancelBookingResponse ............................................................................. 52 Bookings.GetModifyParameters Method ......................................................................... 53 Bookings.GetModifyParameters Request..................................................................... 53 Bookings.ModifyParametersResponse ........................................................................ 54 Bookings.ModifyBooking Method..................................................................................... 56 Bookings.ModifyBooking Request ................................................................................ 57 Bookings.ModifyBookingResponse .............................................................................. 59 DYNAMIC BOOKINGS ....................................................................................................... 62 DynamicBookings.GetProductPrice ................................................................................. 62 DynamicBookings.GetProductPrice Request ............................................................... 62 DynamicBookings.GetProductPriceResponse ............................................................. 64 DynamicBookings.GetGateways ..................................................................................... 65 DynamicBookings.GetGateways Request .................................................................... 65 DynamicBookings.GetGatewaysResponse .................................................................. 66 DynamicBookings.CreateBooking ................................................................................... 68 DynamicBookings.CreateBooking Request .................................................................. 69 DynamicBookings.CreateBookingResponse ................................................................ 73 DynamicBookings.GetBooking ........................................................................................ 76 DynamicBookings.GetBooking Request ....................................................................... 76 DynamicBookings.GetBookingResponse ..................................................................... 78

HolidayTaxis Development Guide

Page 3 of 97

DynamicBookings.CancelBooking ................................................................................... 78 DynamicBookings.CancelBooking Request ................................................................. 78 DynamicBookings.CancelBookingResponse................................................................ 79 REPORTS .......................................................................................................................... 80 Reports.GetAgencyDetails .............................................................................................. 80 Reports.GetAgencyDetails Request ............................................................................. 80 Reports.GetAgencyDetailsResponse ........................................................................... 81 Reports.GetBookings ...................................................................................................... 82 Reports.GetBookings Request ..................................................................................... 82 Reports.GetBookingsResponse ................................................................................... 83 Reports.GetCommercialAgreements ............................................................................... 85 Reports.GetCommercialAgreements Request ............................................................. 85 Reports.GetCommercialAgreementsResponse ............................................................ 86 Reports.GetCommissionSummary .................................................................................. 87 Reports.GetCommissionSummary Request ................................................................. 87 Reports.GetCommissionSummaryResponse ............................................................... 88 BOOKING VOUCHERS ...................................................................................................... 89 PHP EXAMPLES ................................................................................................................ 90 Products.GetResortProducts Example ............................................................................ 90 Bookings.GetDepartureAirports Example ........................................................................ 91 Bookings.GetBookingTypes Example .............................................................................. 92 DynamicBookings.GetGateways Example ....................................................................... 93 PROCESS FLOW ............................................................................................................... 95 TESTING REQUIREMENTS ............................................................................................... 96 APPENDICES ..................................................................................................................... 97

HolidayTaxis Development Guide

Page 4 of 97

INTRODUCTION
This document is the HolidayTaxis Developers Guide. It is aimed at developers and technical personnel who will be integrating the HolidayTaxis web service. This is reflected in the layout of the document, which covers the submission of data in XML format to HolidayTaxis. As each Service requires particular information to be submitted and this information tends to be grouped within similar areas element blocks and child elements of those blocks in the XML schema, the names of the parent elements will be introduced first. Each element block will then be placed into its context in the schema and its child elements discussed. This includes any restrictions on the format, length and transaction type of each element. Example XML for each element block will be shown. Complete XML example Requests and successful Responses will then be given for each service type. All testing is carried out within the HolidayTaxis staging environment which is periodically updated to match the live products. More information can be found at; https://testserver.holidaytaxis.com/SOAP/1.2 For information on how to set up a test account, please email us on webservices@holidaytaxis.com.

Changelog Version Date 1.0 2005-11-17 Notes Updated NuSoap from v1.86 to v1.94, see http://cvs.sourceforge.net/viewcvs.py/nusoap/lib/nusoap.php for changes. Changed the servers charset encoding from ISO-8859-1 to UTF-8. Modified the Bookings service as "xsd:datetime" does not exist in the W3 schema, correct type should have been "xsd:dateTime". Introduced a new reports service with GetBookings, GetAgencyDetails, GetCommercialAgreements and GetCommissionSummary methods. Modified Bookings.GetBookingTypes method response from Page 5 of 97

HolidayTaxis Development Guide

1.0.1 1.0.2

2006-02-10 2006-03-06

CardTypes:tns:ArrayOfBookingTypes to BookingTypes:tns:ArrayOfBookingTypes. Changed the Bookings.CreateBooking CV2Number in PaymentDetails to be a string instead of an int. Modified all services to have a more unique target namespace. Altered Bookings.GetBooking and Bookings.CreateBooking so that they return the overseas supplier in the ReconfirmationDetails All datetimes now returned in ISO8601 format i.e. 2001-0101T09:00:00. Corrected the 'GetBookingParemeters' typing error in the Bookings WSDL All datetimes only except datetimes passed in ISO8601 format i.e. 2001-01-01T09:00:00. Namespaces between the production and test environments are now all set to be 'https://holidaytaxis.com/webservice'. Amended datetimes so that they all return seconds in the format 2001-01-01T09:00:00. Modified Products.GetResortProducts method so that the ProductImagePath no longer links from a secure domain. Modified Products.GetResortProducts to return additional information regarding night rates and product schedules. Modified certain Bookings/Products service methods to accept a language code. Defined all services input/output parameters nillibility. Added an additional parameter, OrderReference, for Bookings.CreateBookings and Bookings.GetBooking expected in the GeneralDetails and GeneralConfirmationDetails sections. NumberOfPassengers is now changed to NumberOfAdults, NumberOfChildren and NumberOfInfants. Dynamic bookings added (initially uk transfers only) . Included both unit price and total price in request and response for Bookings.CreateBooking and Products.GetProductPrice. Now returns correct number of vehicles in Bookings.CreateBooking. Total number of passengers used in calculations now includes infants for non per_person products (in Bookings.CreateBooking and Products.GetProductPrice). Now expects NumberOfVehiclesRequired to always be 1 for per_person products (in Bookings.CreateBooking and Products.GetProductPrice) Switched debugging off in Reports.php (prevents potential Page 6 of 97

1.0.3

2007-01-16

1.0.4 1.0.5

2007-04-27 2007-12-11

1.0.6 1.1

2009-03-13 2009-05-19

HolidayTaxis Development Guide

memory exhausted errors) 1.1 1.2 2010-02-03 2011-04-06 Added link to TransfersXML terms and conditions within the GetBooking and CreateBookings responses. Modify booking functionality added. New GetModifyParameters and ModifyBooking methods added to Bookings service. Removed DepartureDatetime from all outbound details datasets as no longer used. Added GetSupplierResorts method to Products service. Changed GetResortProducts method so now has optional SupplierId in request and incudes ResortId in response.

XML REQUESTS AND RESPONSES


There are certain features of the Request and Response that are global to all HolidayTaxis web services these elements are covered in this section. Others are only used for a particular Service or group of Services these elements will be covered within the documentation for that Service. In the Request, the Credential element block is required for all HolidayTaxis Services and will be the first element block in the request. Credentials Child Elements of Credentials Description Type Affiliate code as advised String (Max 5 by HolidayTaxis characters) Password as advised by String (Max 50 HolidayTaxis characters) ISO3166 Country code String for language

Element AffiliateCode Password Language

Required Yes Yes No

Example XML Request with Credentials and Elements <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:type="xsd:string">en</Language> </Credentials>

HolidayTaxis Development Guide

Page 7 of 97

When your account is set up, HolidayTaxis will advise you of your affiliate code and password.

TEMPLATES
The following five templates and methods are currently available; Agents.php CreateAgency GetAgencyStatus Products.php GetAllDestinations GetResortProducts GetProductPrice GetProductDetails Bookings.php GetDepartureAirports GetCardTypes GetBookingTypes CreateBooking GetBooking CancelBooking DynamicBookings.php GetProductPrice GetGateways CreateBooking GetBooking CancelBooking Reports.php GetAgencyDetails GetBookings GetCommercialAgreements HolidayTaxis Development Guide Page 8 of 97

GetCommissionSummary

AGENTS
Agents.CreateAgency Method This will create an account within our system marked as pending approval. To make a booking on an agency account please advise that you have created an agent so we can approve this for you on our staging environment. Please email webservices@holidaytaxis.com.

Agents.CreateAgency Request Agents.CreateAgency Element Blocks Credentials CreateAgencyParameters Child Elements of CreateAgencyParameters Element Name Description Type AgencyReference An identifier you String (Max 50 provide that internally characters) maps the account AgencyName Name of the Agency String (Max 100 characters) TradingName Name of the agency if String (Max 100 no trading name characters) ABTANumber ABTA number String (Max 20 characters) ContactName Name of person within String (Max 50 the agency designated characters) as the primary contact Address1 Agency address 1 String (Max 50 characters) Address2 Agency address 2 String (Max 50 characters) Address3 Agency address 3 String (Max 50 characters) Address4 Agency address 4 String (Max 50 characters) PostalCode Agency postcode String (Max 50 HolidayTaxis Development Guide

Required Yes

Yes Yes Yes Yes

Yes Yes No No Yes Page 9 of 97

TelephoneNumber FaxNumber EmailAddress

Agency contact telephone number Agency fax number Must match /^.+@.+..+$/

characters) String (Max 50 characters) String (Max 50 characters) String (Max 100 characters)

Yes No Yes

Example XML Request for Agents.CreateAgency POST /SOAP/1.2/Agents.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#CreateAgency" Content-Length: 1524 <?xml version="1.0" encoding=" UTF-8"?> <SOAP-ENV:Envelope SOAP ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:CreateAgency xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <CreateAgencyParameters xsi:type="tns:CreateAgencyParameters"> <AgentReference xsi:type="xsd:string">TEST</AgentReference> <AgencyName xsi:type="xsd:string">Test Agency</AgencyName> <TradingName xsi:type="xsd:string">Test Agency</TradingName> <ABTANumber xsi:type="xsd:string">1234</ABTANumber> <ContactName xsi:type="xsd:string">Mr Test</ContactName> <Address1 xsi:type="xsd:string">Test</Address1> <Address2 xsi:type="xsd:string">Test</Address2> <Address3 xsi:type="xsd:string">Test</Address3> <Address4 xsi:type="xsd:string">Test</Address4> <PostalCode xsi:type="xsd:string">Test</PostalCode> <TelephoneNumber xsi:type="xsd:string">Test</TelephoneNumber> <FaxNumber xsi:type="xsd:string">Test</FaxNumber> <EmailAddress xsi:type="xsd:string">Test@Test.com</EmailAddress> HolidayTaxis Development Guide Page 10 of 97

</CreateAgencyParameters> </tns:CreateAgency> </SOAP-ENV:Body></SOAP-ENV:Envelope> Agents.CreateAgencyResponse Agents.CreateAgencyResponse Element Blocks


o

return Value True/ False Type Boolean

Element Name return

Example XML Response for Agents.CreateAgency HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Fri, 15 May 2009 14:51:14 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 475 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding=" UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body> <ns1:CreateAgencyResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <return xsi:type="xsd:boolean">true</return> </ns1:CreateAgencyResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Agents.GetAgencyStatus Method This method will call what applications are approved and which are pending approval. If Agent Reference is blank, the service will return the status for all Agents under the Affiliate.

HolidayTaxis Development Guide

Page 11 of 97

Agents.GetAgencyStatus Request Agents.CreateAgencyStatus Element Blocks Credentials o AgentReference

Element Name Description Type AgentReference The identifier you String (Max 50 provided that internally characters) maps the account Example XML Request for Agents.GetAgencyStatus

Required No

POST /SOAP/1.2/Agents.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetAgencyStatus" Content-Length: 801 <?xml version="1.0" encoding=" UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetAgencyStatus xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <AgentReference xsi:type="xsd:string"></AgentReference> </tns:GetAgencyStatus> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

HolidayTaxis Development Guide

Page 12 of 97

Agents.GetAgencyStatusResponse Agents.GetAgencyStatusResponse Element Blocks AgencyStatus (ArrayOfAgencyStatus) Child Elements of AgencyStatus Element Name Value AgentReference Agent reference entered by affiliate Status Active/ InActive/ Pending Approval Type String String (Max 50 characters)

Example XML Response for Agents.GetAgencyStatus HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Fri, 15 May 2009 17:40:17 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 31144 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding=" UTF-8"?> <SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetAgencyStatusResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <AgencyStatus xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:AgencyStatus[212]"> <item xsi:type="tns:AgencyStatus"> <AgentReference xsi:type="xsd:string">Agent1</AgentReference> <Status xsi:type="xsd:string">Active</Status> </item> <item xsi:type="tns:AgencyStatus"> <AgentReference xsi:type="xsd:string">Agent2</AgentReference> <Status xsi:type="xsd:string">InActive</Status> </item <item xsi:type="tns:AgencyStatus"> HolidayTaxis Development Guide Page 13 of 97

<AgentReference xsi:type="xsd:string">Agent3</AgentReference> <Status xsi:type="xsd:string">Pending Approval</Status> </item> </AgencyStatus> </ns1:GetAgencyStatusResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

PRODUCTS
Products.GetAllDestinations Method The Products.GetAllDestinations method is the first part of the booking process and will return all countries, airports, ports and resorts that HolidayTaxis cover along with the identifiers needed for Products.GetResortProducts. This method is the largest payload of all calls and we recommend that you cache locally.

Products.GetAllDestinations Request Products.GetAllDestinations Element Blocks Credentials Example XML Request for Products.GetAllDestinations POST /SOAP/1.2/Products.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.2 (1.94) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetAllDestinations" Content-Length: 741 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetAllDestinations xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> HolidayTaxis Development Guide Page 14 of 97

<AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> </tns:GetAllDestinations> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Products.GetAllDestinationsResponse Products.GetAllDestinationsResponse Element Blocks AirportGroups (ArrayOfAirportGroups) Airports (ArrayOfAirports) Resorts (ArrayOfResorts) Child Elements of AirportGroups Value Type HolidayTaxis Airport Group or Int Country Id HolidayTaxis Airport Group or String (Max 50 Country Id characters) Child Elements of Airports Value HolidayTaxis Airport or Port Id HolidayTaxis Airport Group or Country Id IATA code Name of airport or port

Element Name AirportGroupId AirportGroupName

Element Name AirportId AirportGroupId

Type Int Int

AirportCode AirportName

String (Max 3 characters) String (Max 50 characters)

Element Name ResortId AirportId AirportGroupId ResortName

Child Elements of Resorts Value HolidayTaxis Resort Id HolidayTaxis Airport or Port Id HolidayTaxis Airport Group or Country Id Resort Name

Type Int Int Int String (Max 50 characters) Page 15 of 97

HolidayTaxis Development Guide

Example XML Response for Products.GetAllDestinations HTTP/1.2 200 OK Date: Mon, 18 May 2009 08:51:01 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 1131140 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetAllDestinationsResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <AirportGroups xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:AirportGroups[66]"> <item xsi:type="tns:AirportGroups"> <AirportGroupId xsi:type="xsd:int">39</AirportGroupId> <AirportGroupName xsi:type="xsd:string">Abu Dhabi</AirportGroupName> </item> <item xsi:type="tns:AirportGroups"> <AirportGroupId xsi:type="xsd:int">11</AirportGroupId> <AirportGroupName xsi:type="xsd:string">Austria</AirportGroupName> </item> <item xsi:type="tns:AirportGroups"> <AirportGroupId xsi:type="xsd:int">15</AirportGroupId> <AirportGroupName xsi:type="xsd:string">USA</AirportGroupName> </item> </AirportGroups> <Airports xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:Airports[374> <item xsi:type="tns:Airports"> <AirportId xsi:type="xsd:int">189</AirportId> <AirportGroupId xsi:type="xsd:int">39</AirportGroupId> <AirportCode xsi:type="xsd:string">AUH</AirportCode> <AirportName xsi:type="xsd:string">Abu Dhabi</AirportName> </item> <item xsi:type="tns:Airports"> <AirportId xsi:type="xsd:int">76</AirportId> <AirportGroupId xsi:type="xsd:int">11</AirportGroupId> <AirportCode xsi:type="xsd:string">INN</AirportCode> HolidayTaxis Development Guide Page 16 of 97

<AirportName xsi:type="xsd:string">Innsbruck</AirportName> </item> <item xsi:type="tns:Airports"> <AirportId xsi:type="xsd:int">284</AirportId> <AirportGroupId xsi:type="xsd:int">15</AirportGroupId> <AirportCode xsi:type="xsd:string">MCI</AirportCode> <AirportName xsi:type="xsd:string">Kansas City International Airport, MCI</AirportName> </item> </Airports> <Resorts xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:Resorts[4297]"> <item xsi:type="tns:Resorts"> <ResortId xsi:type="xsd:int">2764</ResortId> <AirportId xsi:type="xsd:int">189</AirportId> <AirportGroupId xsi:type="xsd:int">39</AirportGroupId> <ResortName xsi:type="xsd:string">Abu Dhabi</ResortName> </item> <item xsi:type="tns:Resorts"> <ResortId xsi:type="xsd:int">4055</ResortId> <AirportId xsi:type="xsd:int">76</AirportId> <AirportGroupId xsi:type="xsd:int">11</AirportGroupId> <ResortName xsi:type="xsd:string">Alpbach</ResortName> </item> <item xsi:type="tns:Resorts"> <ResortId xsi:type="xsd:int">5632</ResortId> <AirportId xsi:type="xsd:int">284</AirportId> <AirportGroupId xsi:type="xsd:int">15</AirportGroupId> <ResortName xsi:type="xsd:string">Downtown Kansas city</ResortName> </item> </Resorts> </ns1:GetAllDestinationsResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope> Products.GetResortProducts Method

You can call Products.GetResortProducts using the values that returned from the Products.GetAllDestinations response. This will return the product information and ProductId needed for Products.GetProductPrice for the AirportGroupId, AirportId and ResortId entered. When modifying a booking, you can call Products.GetResortProducts with SupplierId to find all available products for a specified resort.

HolidayTaxis Development Guide

Page 17 of 97

Products.GetResortProducts Request Products.GetResorts Element Blocks Credentials ResortProductParameters

Element Name AgentReference

AirportGroupId

AirportId

ResortId

SupplierId DateRequired

Child Elements of ResortProductParameters Description Type The identifier you provided String (Max 50 that internally maps the characters) account As returned in the Int GetAllDestinations response As returned in the Int GetAllDestinations response As returned in the Int GetAllDestinations response HolidayTaxis Supplier Id Int Date and time of transfer DateTime (ISO8601 format 20090601T09:00:00.)

Required No

Yes

Yes

Yes

No No

Example XML Request for Products.GetResortProducts POST /SOAP/1.2/Products.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetResortProducts" Content-Length: 1080 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> HolidayTaxis Development Guide Page 18 of 97

<SOAP-ENV:Body> <tns:GetResortProducts xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <ResortProductParameters xsi:type="tns:ResortProductParameters"> <AgentReference xsi:type="xsd:string"></AgentReference> <AirportGroupId xsi:type="xsd:int">1</AirportGroupId> <AirportId xsi:type="xsd:int">1</AirportId> <ResortId xsi:type="xsd:int">1</ResortId> <SupplierId xsi:type="xsd:int">1</ SupplierId> <DateRequired xsi:type="xsd:dateTime"></DateRequired> </ResortProductParameters> </tns:GetResortProducts> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Products.GetResortProductsResponse Products.GetResortProductsResponse Element Blocks ResortProducts (ArrayOfResortProducts) NightRates (ArrayOfNightRates) Schedules (ArrayOfSchedules) Child Elements of ResortProducts Value Holidaytaxis product Id True is the product is a shuttle transfer True if the resort destination requires the full address True if night rates apply to the products. See below True if the products run to scheduled dates and times. See below HolidayTaxis Resort Id Name of resort Name of airport or port Type of vehicle Full description of the product

Child Element ProductId PerPerson RequiresAddress HasNightSupplement HasSchedule

Type Int Boolean Boolean Boolean Boolean

ResortId ResortName AirportName ProductType ProductDescription

Int String String String String Page 19 of 97

HolidayTaxis Development Guide

ProductImagePath ProductImageHeight ProductImageWidth TransferMinutes MinPax

MaxPax

The full path to the image should you require to use it The height of the image The width of the image The transfer time in minutes of the product Minimum amount of passengers for the vehicle. Returns Nil if the product is a shuttle transfer Maximum amount of passenger for the vehicle. Returns Nil if the product is a shuttle transfer Currency code. GBP for example One-way price for the product Return price for the product

String Int Int Int Int

Int

CurrencyCode SinglePrice ReturnPrice

String Float Float

Child Element TimeFrom TimeTo SinglePrice ReturnPrice

Child Elements of NightRates Value The time the night rate for the product starts The time the night rate for the product ends The one-way night rate price The return night rate price

Type String String Float Float

Child Element TimeFrom TimeTo Mon Tue Wed Thu Fri Sat Sun

Child Elements of Schedules Value The time the schedule for the product starts The time the schedule for the product ends True/ False True/ False True/ False True/ False True/ False True/ False True/ False

Type String String Boolean Boolean Boolean Boolean Boolean Boolean Boolean

HolidayTaxis Development Guide

Page 20 of 97

Example XML Response for Products.GetResortProducts HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Mon, 18 May 2009 11:19:49 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 15344 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding=" UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetResortProductsResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <ResortProducts xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:ResortProducts[9]"> <item xsi:type="tns:ResortProducts"> <ProductId xsi:type="xsd:int">234073</ProductId> <PerPerson xsi:type="xsd:boolean">true</PerPerson> <RequiresAddress xsi:type="xsd:boolean">false</RequiresAddress> <HasNightSupplement xsi:type="xsd:boolean">false</HasNightSupplement> <HasSchedule xsi:type="xsd:boolean">false</HasSchedule> <ResortId xsi:type="xsd:int">254</ResortId> <ResortName xsi:type="xsd:string">Cambrils</ResortName> <AirportName xsi:type="xsd:string">Reus (Costa Dorada)</AirportName> <ProductType xsi:type="xsd:string">Shuttle Transfer</ProductType> <ProductDescription xsi:type="xsd:string">Shuttles are a cheap, quick and effective way of travelling to and from your accommodation in a city or country you may be unfamiliar with. When using a pre booked shuttle service you instantly have the security of knowing how you will arrive directly at your accommodation. Please be aware that there may be a wait for your shuttle at the airport since they run to a schedule, Maximum wait time 1 hour. Transfer times are estimated and can depend on traffic and the number of stops enroute.</ProductDescription> HolidayTaxis Development Guide Page 21 of 97

<ProductImagePath xsi:type="xsd:string">https://www.htxdev.com/shared/images/producttypes/sh uttletransfer_1.jpg</ProductImagePath> <ProductImageHeight xsi:type="xsd:int">50</ProductImageHeight> <ProductImageWidth xsi:type="xsd:int">50</ProductImageWidth> <TransferMinutes xsi:type="xsd:int">30</TransferMinutes> <MinPax xsi:nil="true" xsi:type="xsd:int"/> <MaxPax xsi:nil="true" xsi:type="xsd:int"/> <CurrencyCode xsi:type="xsd:string">GBP</CurrencyCode> <SinglePrice xsi:type="xsd:float">19.00</SinglePrice> <ReturnPrice xsi:type="xsd:float">28.00</ReturnPrice> <NightRates xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:NightRates[0]"></NightRates> <Schedules xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:Schedules[0]"></Schedules> </item> </ResortProducts> </ns1:GetResortProductsResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope> Products.GetProductPrice Method

The Products.GetProductPrice method will return the correct price when provided with ProductId, dates, times and BookingTypeId which is explained in the Bookings section.

Products.GetProductPrice Request

Products.GetProductPrice Element Blocks Credentials ProductPriceParameters

Element Name AgentReference

ProductId

Child Elements of ProductPriceParameters Description Type Provide agent String (Max reference to based 50 price on agency characters) margins As returned in the Int GetAllDestinations response

Required No

Yes

HolidayTaxis Development Guide

Page 22 of 97

BookingTypeId

NumberOfVehiclesRequired NumberOfAdults NumberOfChildren

NumberOfInfants

OutboundArrivalDatetime

1 = Return Transfer 2 = Outbound only 3 = Inbound only The number of vehicles required The number of Adults travelling The number of children travelling between the ages of 2 and 12. Enter 0 if none The number of infants travelling between the ages of 0 and 2. Enter 0 if none Date and time of outbound pick-up

Int

Yes

Int Int Int

Yes Yes No

Int

No

DateTime (ISO8601 format 20090601T09:00:00. ) DateTime (ISO8601 format 20090608T09:00:00. ).

Yes depending on the BookingTypeId

InboundPickupDatetime

Date and time of inbound (return) pick-up. This should allow for 150 minutes check-in time plus the returned TransferMinutes

Yes depending on the BookingTypeId

Example XML Request for Products.GetProductPrice POST /SOAP/1.2/Products.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#ProductPrice" Content-Length: 1404 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" HolidayTaxis Development Guide Page 23 of 97

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetProductPrice xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <ProductPriceParameters xsi:type="tns:ProductPriceParameters"> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> <ProductId xsi:type="xsd:int">234073</ProductId> <BookingTypeId xsi:type="xsd:int">1</BookingTypeId> <NumberOfVehiclesRequired xsi:type="xsd:int">1</NumberOfVehiclesRequired> <NumberOfAdults xsi:type="xsd:int">2</NumberOfAdults> <NumberOfChildren xsi:type="xsd:int">2</NumberOfChildren> <NumberOfInfants xsi:type="xsd:int">0</NumberOfInfants> <OutboundArrivalDatetime xsi:type="xsd:dateTime">2009-06-01T09:00:00 </OutboundArrivalDatetime> <InboundPickupDatetime xsi:type="xsd:dateTime">2009-06-08T09:00:00 </InboundPickupDatetime> </ProductPriceParameters> </tns:GetProductPrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Products.GetProductPriceResponse Products.GetProductPriceResponse Element Blocks ProductPrice Element Name ProductId Value The product Id will be updated if the entered product id no longer exists. NewProduct will be True True/ False True if night rates are applicable, else False The per person or per vehicle price Type Int

NewProduct NightRate UnitPrice

Boolean Boolean Float

HolidayTaxis Development Guide

Page 24 of 97

TotalPrice

The unit price multiplied by Float the number of passengers if per person = True or number of vehicles Example XML Response for Products.GetProductPrice HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Mon, 18 May 2009 13:48:52 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 740 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><ns1:GetProductPriceResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <ProductPrice xsi:type="tns:ProductPrice"> <ProductId xsi:type="xsd:int">234073</ProductId> <NewProduct xsi:type="xsd:boolean">false</NewProduct> <NightRate xsi:type="xsd:boolean">false</NightRate> <UnitPrice xsi:type="xsd:float">19.00</UnitPrice> <TotalPrice xsi:type="xsd:float">76.00</TotalPrice> </ProductPrice> </ns1:GetProductPriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Products.GetProductDetails Method

The Products.GetProductDetails method will return the product details for the product Id entered. These details include our supplier details along with telephone numbers, arrival and departure instructions.

HolidayTaxis Development Guide

Page 25 of 97

Products.GetProductDetails Request Products.GetProductDetails Element Blocks Credentials o ProductId

Element Name ProductId

Description HolidayTaxis product Id

Type Int

Required Yes

Example XML Request for Products.GetProductDetails POST /SOAP/1.2/Products.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetProductDetails" Content-Length: 788 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetProductDetails xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <ProductId xsi:type="xsd:int">234073</ProductId> </tns:GetProductDetails> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

HolidayTaxis Development Guide

Page 26 of 97

Products.GetProductDetailsResponse Products.GetProductPriceResponse Element Blocks ProductDetails Element Name ProductId AirportGroupName AirportName ResortName Vehicle PerPerson MinPax MaxPax TransferMinutes OverseasSupplier EmergencyNumber Value HolidayTaxis product Id Country Airport Resort name Type of vehicle True/ False 0 if PerPerson = True 0 if PerPerson = True Transfer time in minutes The name of our supplier The telephone number of the supplier in case of emergencies The telephone number to confirm your return leg The supplier office opening hours from Monday to Friday The supplier office opening hours on Saturdays The supplier office opening hours on Sundays The suppliers arrival instructions at the airport The suppliers departure instructions for your inbound journey Type Int String String String String Boolean Int Int Int String String

ReconfirmationNumber OfficeHoursMonFri

String String

OfficeHoursSun

String

OfficeHoursSun ArrivalInstructions DepartureInstructions

String String String

Example XML Response for Products.GetProductDetails HTTP/1.2 200 OK Date: Mon, 18 May 2009 15:14:56 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 3687 HolidayTaxis Development Guide Page 27 of 97

Content-Type: text/xml; charset=UTF-8

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><ns1:GetProductDetailsResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <ProductDetails xsi:type="tns:ProductDetails"> <ProductId xsi:type="xsd:int">234073</ProductId> <AirportGroupName xsi:type="xsd:string">Spain (Mainland)</AirportGroupName> <AirportName xsi:type="xsd:string">Reus (Costa Dorada)</AirportName> <ResortName xsi:type="xsd:string">Cambrils</ResortName> <Vehicle xsi:type="xsd:string">Shuttle Transfer</Vehicle> <PerPerson xsi:type="xsd:boolean">true</PerPerson> <MinPax xsi:nil="true" xsi:type="xsd:int"/> <MaxPax xsi:nil="true" xsi:type="xsd:int"/> <TransferMinutes xsi:type="xsd:int">30</TransferMinutes> <OverseasSupplier xsi:type="xsd:string">Viajes Anubis SA - Costa Brava/Reus</OverseasSupplier> <EmergencyNumber xsi:type="xsd:string">(0034) 902 11 29 27</EmergencyNumber> <ReconfirmationNumber xsi:type="xsd:string">(0034) 90211 2927 / (0034) 66230 5999 </ReconfirmationNumber> <OfficeHoursMonFri xsi:type="xsd:string">09:30 - 13:30 / 16:00 19:30</OfficeHoursMonFri> <OfficeHoursSat xsi:type="xsd:string">10:00 - 13:00 / 17:00 19:00</OfficeHoursSat> <OfficeHoursSun xsi:type="xsd:string">Closed</OfficeHoursSun> <ArrivalInstructions xsi:type="xsd:string"> Once you have collected your luggage, please make your way to the arrivals hall where your driver will be waiting holding a sign with your name and/or the Holiday Taxis / Viajes Anubis logo. Please identify yourself by showing him a copy of your booking voucher. KEY COLLECTION - Should you require a key collection or any other alternative journey other than the airport transfer booked, you may be charged a supplemental amount locally. In the unlikely event you should have any difficulty in locating your designated driver. - please call our emergency helpline where an English speaking representative will help you. (If calling from a mobile, the international dialling code must be dialed. If calling from a land line there is no need.) </ArrivalInstructions> <DepartureInstructions xsi:type="xsd:string">Please note that it is COMPULSORY HolidayTaxis Development Guide Page 28 of 97

and EXTREMELY important that you call to arrange your return pick up time at least 24 hours prior to your departure within office hours before your departure transfer. We cannot accept any responsibility for clients who are not collected on time and subsequently miss their return flight if details of the booking have changed and we have not been advised accordingly or if you have not called to arrange your pick up time. To ensure that you get in the correct vehicle, please make sure that the driver is aware of your name before you show your booking voucher. </DepartureInstructions> </ProductDetails> </ns1:GetProductDetailsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Products.GetSupplierResorts Method The Products.GetSupplierResorts method will return a list of all resorts with a specified SupplierId. This can be used when modifying a booking to provide a list of valid resorts for update.

Products.GetSupplierResorts Request Products.GetSupplierResorts Element Blocks Credentials SupplierResortParameters

Element Name AgentReference

AirportGroupId

AirportId

SupplierId DateRequired

Child Elements of SupplierResortParameters Description Type The identifier you provided String (Max 50 that internally maps the characters) account As returned in the Int GetAllDestinations response As returned in the Int GetAllDestinations response HolidayTaxis Supplier Id Int Date and time of transfer DateTime (arrival or pickup (ISO8601

Required No

Yes

Yes

Yes Yes

HolidayTaxis Development Guide

Page 29 of 97

depending on booking type)

format 20090601T09:00:00.)

Example XML Request for Products.GetSupplierResorts POST /SOAP/1.2/Products.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetSupplierResorts" Content-Length: 1111 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"><SOAPENV:Body><tns:GetSupplierResorts xmlns:tns="https://holidaytaxis.com/webservice"><Credentials xsi:type="tns:Credentials"><AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode><Password xsi:type="xsd:string">MyPassword</Password><Language xsi:type="xsd:string"></Language></Credentials><SupplierResortParameters xsi:type="tns:SupplierResortParameters"><AgentReference xsi:type="xsd:string">MyAgent</AgentReference><AirportGroupId xsi:type="xsd:int">4</AirportGroupId><AirportId xsi:type="xsd:int">22</AirportId><SupplierId xsi:type="xsd:int">10844</SupplierId><DateRequired xsi:type="xsd:dateTime">2011-0531T21:40:00</DateRequired></SupplierResortParameters></tns:GetSupplierResort s></SOAP-ENV:Body></SOAP-ENV:Envelope>

Products.GetSupplierResortsResponse Bookings.GetSupplierResortsResponse Element Blocks SupplierResorts (ArrayOfSupplierResorts)

HolidayTaxis Development Guide

Page 30 of 97

Element Name ResortId ResortName

Value HolidayTaxis Resort Id Name of resort

Type Int String (Max 50 characters)

Example XML Response for Bookings.GetSupplierResorts HTTP/1.1 200 OK Date: Mon, 11 Apr 2011 10:26:10 GMT Server: Apache X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 7743 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"><SOAPENV:Body><ns1:GetSupplierResortsResponse xmlns:ns1="https://holidaytaxis.com/webservice"><SupplierResorts xsi:type="SOAPENC:Array" SOAP-ENC:arrayType="tns:SupplierResorts[10]"><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">4888</ResortId><ResortName xsi:type="xsd:string">Adele</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">222</ResortId><ResortName xsi:type="xsd:string">Aghia Galini</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">223</ResortId><ResortName xsi:type="xsd:string">Aghia Pelegia</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">254</ResortId><ResortName xsi:type="xsd:string">Agia Marina</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">224</ResortId><ResortName xsi:type="xsd:string">Agios Nikolaos</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">1588</ResortId><ResortName xsi:type="xsd:string">Almyrida</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">225</ResortId><ResortName xsi:type="xsd:string">Ammoudara</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">226</ResortId><ResortName xsi:type="xsd:string">Analypsis</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId xsi:type="xsd:int">227</ResortId><ResortName xsi:type="xsd:string">Anissara</ResortName></item><item xsi:type="tns:SupplierResorts"><ResortId HolidayTaxis Development Guide Page 31 of 97

xsi:type="xsd:int">228</ResortId><ResortName xsi:type="xsd:string">Bali</ResortName></item></SupplierResorts></ns1:GetSuppli erResortsResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

BOOKINGS
Bookings.GetDepartureAirports Method

The Bookings.GetDepartureAirports method will return a list of all departure airports and AirportId, however any valid AirportId returned from Products.GetAllDestinations will be acceptable.

Bookings.GetDepartureAirports Request

Bookings.GetDepartureAirports Element Blocks Credentials

Example XML Request for Bookings.GetDepartureAirports POST /SOAP/1.2/Bookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetDepartureAirports" Content-Length: 746 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetDepartureAirports xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> HolidayTaxis Development Guide Page 32 of 97

</Credentials> </tns:GetDepartureAirports> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Bookings.GetDepartureAirportsResponse

Bookings.GetDepartureAirportsResponse Element Blocks DepartureAirports (ArrayOfDepartureAirports)

Element Name AirportId AirportName

Value HolidayTaxis airport Id Name of airport

Type Int String (Max 50 characters)

Example XML Response for Bookings.GetDepartureAirports HTTP/1.2 200 OK Date: Mon, 18 May 2009 16:53:32 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 6445 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetDepartureAirportsResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <DepartureAirports xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:DepartureAirports[38 ]"> <item xsi:type="tns:DepartureAirports"> <AirportId xsi:type="xsd:int">40</AirportId> <AirportName xsi:type="xsd:string">Birmingham (UK)</AirportName> </item> . <item xsi:type="tns:DepartureAirports"> <AirportId xsi:type="xsd:int">50</AirportId> HolidayTaxis Development Guide Page 33 of 97

<AirportName xsi:type="xsd:string">Gatwick (UK)</AirportName> </item> </DepartureAirports> </ns1:GetDepartureAirportsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Bookings.GetCardTypes Method Bookings.GetCardTypes returns cards that we currently support when making a consumer direct booking.

Bookings.GetCardTypes Request Bookings.GetCardTypes Element Blocks Credentials

Example XML Request for Bookings.GetCardTypes POST /SOAP/1.2/Bookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetCardTypes" Content-Length: 735 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetCardTypes xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> </tns:GetCardTypes> </SOAP-ENV:Body> HolidayTaxis Development Guide Page 34 of 97

</SOAP-ENV:Envelope> Bookings.GetCardTypesResponse Bookings.GetCardTypesResponse Element Blocks CardTypes (ArrayOfCardTypes) Element Name CardType Value Visa, Mastercard etc Type String (Max 50 characters)

Example XML Response for Bookings.GetCardTypes HTTP/1.2 200 OK Date: Mon, 18 May 2009 20:09:31 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 921 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetCardTypesResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <CardTypes xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:CardTypes[4]"> <item xsi:type="tns:CardTypes"> <CardType xsi:type="xsd:string">Visa</CardType> </item> <item xsi:type="tns:CardTypes"> <CardType xsi:type="xsd:string">Mastercard</CardType> </item> <item xsi:type="tns:CardTypes"> <CardType xsi:type="xsd:string">Maestro</CardType> </item> <item xsi:type="tns:CardTypes"> <CardType xsi:type="xsd:string">Visa Debit card</CardType> </item> HolidayTaxis Development Guide Page 35 of 97

</CardTypes> </ns1:GetCardTypesResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Bookings.GetBookingTypes Method

The Bookings.GetBookingTypes method returns a list of the booking types and BookingTypeId we currently support. Return only Single Outbound Only Single Inbound Only You will need to pass one of these ids when you call the Products.GetProductPrice method. Bookings.GetBookingTypes Request

Bookings.GetBookingTypes Element Blocks Credentials

Example XML Request for Bookings.GetBookingTypes POST /SOAP/1.2/Bookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetBookingTypes" Content-Length: 741 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetBookingTypes xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> HolidayTaxis Development Guide Page 36 of 97

<AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> </tns:GetBookingTypes> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Bookings.GetBookingTypesResponse

Bookings.GetBookingTypesResponse Element Blocks BookingTypes (ArrayOfBookingTypes)

Element Name BookingTypeId BookingType

Value 1, 2, or 3 1 = Return Transfer 2 = Single outbound only 3 = Single inbound only

Type Int Int

Example XML Response for Bookings.GetBookingTypes HTTP/1.2 200 OK Date: Tue, 19 May 2009 08:58:01 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 1052 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetBookingTypesResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <BookingTypes xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:BookingTypes[3]"> <item xsi:type="tns:BookingTypes"> <BookingTypeId xsi:type="xsd:int">1</BookingTypeId> <BookingType xsi:type="xsd:string">Return transfer</BookingType> HolidayTaxis Development Guide Page 37 of 97

</item> <item xsi:type="tns:BookingTypes"> <BookingTypeId xsi:type="xsd:int">2</BookingTypeId> <BookingType xsi:type="xsd:string">Single outbound only</BookingType> </item> <item xsi:type="tns:BookingTypes"> <BookingTypeId xsi:type="xsd:int">3</BookingTypeId> <BookingType xsi:type="xsd:string">Single inbound only</BookingType> </item> </BookingTypes> </ns1:GetBookingTypesResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Bookings.CreateBooking Method

The Bookings.CreateBooking method varies depending on the type of booking you are making and has the following Elements Blocks. Credentials (Always required) GeneralDetails (Required) OutboundDetails (Required if BookingTypeId = 1 or 2) InboundDetails (Required if BookingTypeId = 1 or 3) PaymentDetails (Required if AgentReference is blank within the General Details section) Please note that all Elements Blocks should be parsed in the order above within the request regardless of any nil values. If the transfer is an Outbound only the InboundDetails Element Block request should be parsed as; <InboundDetails xsi:nil="true" xsi:type="tns:InboundDetails"/> If the transfer is an Inbound only the OutboundDetails Element Block request should be parsed as; <OutboundDetails xsi:nil="true" xsi:type="tns:OutboundDetails"/> If an AgentReference is entered within the GeneralDetails Element Block, the PaymentDetails Parent Element request should be parsed as; <PaymentDetails xsi:nil="true" xsi:type="tns:PaymentDetails"/>

HolidayTaxis Development Guide

Page 38 of 97

Test payments can be made by using the card number: 1000350000000007 and CV2: 547

Bookings.CreateBooking Request Bookings.CreateBooking Element Blocks Credentials GeneralDetails OutboundDetails InboundDetails PaymentDetails

Element Name AgentReference

OrderReference

Child Elements of GeneralDetails Description The identifier of your agent you provided to HolidayTaxis Your reference The per person or per vehicle price The unit price multiplied by the number of passengers if per person = True or number of vehicles HolidayTaxis Product Id 1 = Return Transfer 2 = Single outbound only 3 = Single inbound only

Type String (Max 50 characters)

Required No

UnitPrice

String (Max 50 characters) Float

No

Yes

TotalPrice

Float

Yes

ProductId BookingTypeId

Int Int

Yes Yes

HolidayTaxis Development Guide

Page 39 of 97

NumberOfVehiclesRequired

NumberOfAdults NumberOfChildren

NumberOfInfants

LeadPassengersTitle

Number of vehicles required Number of adults Number of children between the ages of 2 and 12 Number of infants between the ages of 0 and 2 Mr, Mrs, Miss and Dr etc First name

Int

Yes

Int Int

Yes No

Int

No

LeadPassengersForename

LeadPassengersSurname

Last name

LeadPassengersEmailAddress

Email address

LeadPassengersMobileTelephoneNumber Contact phone number

String (Max 10 characters) String (Max 50 characters) String (Max 50 characters) String (Max 100 characters) String (Max 50 characters)

Yes

Yes

Yes

Yes

No

Child Elements of OutboundDetails Description Type The departure Int AirportId of the airport you are flying from FlightNumber The outbound String (Max flight number 20 characters) ArrivalDatetime The arrival date DateTime and time at the (ISO8601 destination airport. format 20090601T09:12:00.) AccommodationName Name of String (Max accommodation 50 characters) Element Name DepartureAirportId HolidayTaxis Development Guide

Required Yes

Yes Yes

Yes

Page 40 of 97

AccommodationAddress1

AccommodationAddress2 AccommodationAddress3

Address 1. Only required when GetResortProduct s returns True for RequiresAddress Address 2 Address 3

String (Max Yes/ No 50 characters)

AccommodationTelephoneNumber Accommodation telephone number

String (Max No 50 characters) String (Max No 50 characters) String (Max No 50 characters)

Child Elements of InboundDetails Element Name Description Type ArrivalAirportId The arrival AirportId Int of the airport you are flying to FlightNumber The inbound flight String (Max number 20 characters) DepartureDatetime The departure date DateTime and time from the (ISO8601 airport format 2009-0608T09:00:0 0.) PickupDatetime This must be at DateTime least 150 minutes (ISO8601 plus the transfer format time before the 2009-06DepartureDateTime 08T12:00:0 0.) AccommodationName Name of String (Max accommodation 50 characters) AccommodationAddress1 Address 1. Only String (Max required when 50 GetResortProducts characters) returns True for RequiresAddress AccommodationAddress2 Address 2 String (Max 50 characters) AccommodationAddress3 Address 3 String (Max 50 characters) HolidayTaxis Development Guide

Required Yes

Yes

Yes

Yes

Yes

Yes/ No

No

No

Page 41 of 97

AccommodationTelephoneNumber Accommodation telephone number

String (Max 50 characters)

No

Child Element of PaymentDetails Element Name Description Type CardHoldersTitle Mr, Mrs, Miss and String (Max Dr etc 10 characters) CardHoldersForename First name as on String (Max bank statement 50 characters) CardHoldersSurname Last name as on String (Max bank statement 50 characters) CardHoldersContactNumber Contact telephone String (Max number 50 characters) CardHoldersAddress1 Address 1 as on String (Max bank statement 50 characters) CardHoldersAddress2 Address 2 as on String (Max bank statement 50 characters) CardHoldersAddress3 Address 3 String (Max 50 characters) CardHoldersPostalCode Postcode as on String (Max bank statement 50 characters) CardType As returned in String (Max GetCardTypes 50 characters) CardNumber Required String that String must pass the Luhn Mod 10 credit card check CV2Number 3 or 4 digit security String (Max 4 number on the back characters) of the card NameOnCard Cardholders name String (Max 50 characters) IssueNumber Required when Int card type is Switch/ Maestro CardStartMonthYear must match /^([0String 9]{2})\/([0-9]{2}|[09]{4})$/ CardExpiryMonthYear must match /^([0String 9]{2})\/([0-9]{2}|[09]{4})$/ Example XML Request for Bookings.CreateBooking

Required Yes Yes Yes Yes Yes Yes No Yes Yes Yes

Yes

Yes Yes

No

Yes

HolidayTaxis Development Guide

Page 42 of 97

POST /SOAP/1.2/Bookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#CreateBooking" Content-Length: 3213 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><tns:CreateBooking xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <GeneralDetails xsi:type="tns:GeneralDetails"> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> <OrderReference xsi:type="xsd:string"></OrderReference> <UnitPrice xsi:type="xsd:float">19</UnitPrice> <TotalPrice xsi:type="xsd:float">76</TotalPrice> <ProductId xsi:type="xsd:int">234073</ProductId> <BookingTypeId xsi:type="xsd:int">1</BookingTypeId> <NumberOfVehiclesRequired xsi:type="xsd:int">1</NumberOfVehiclesRequired> <NumberOfAdults xsi:type="xsd:int">2</NumberOfAdults> <NumberOfChildren xsi:type="xsd:int">2</NumberOfChildren> <NumberOfInfants xsi:type="xsd:int"></NumberOfInfants> <LeadPassengersTitle xsi:type="xsd:string">Mr</LeadPassengersTitle> <LeadPassengersForename xsi:type="xsd:string">Test</LeadPassengersForename> <LeadPassengersSurname xsi:type="xsd:string">Test</LeadPassengersSurname> <LeadPassengersEmailAddress xsi:type="xsd:string">test@test.com</LeadPassengersEmailAddress> <LeadPassengersMobileTelephoneNumber xsi:type="xsd:string"></LeadPassengersMobileTelephoneNumber> </GeneralDetails> <OutboundDetails xsi:type="tns:OutboundDetails"> <DepartureAirportId xsi:type="xsd:int">50</DepartureAirportId> <FlightNumber xsi:type="xsd:string">3456</FlightNumber> <ArrivalDatetime xsi:type="xsd:dateTime">2009-06HolidayTaxis Development Guide Page 43 of 97

01T15:00:00</ArrivalDatetime> <AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName> <AccommodationAddress1 xsi:type="xsd:string"></AccommodationAddress1> <AccommodationAddress2 xsi:type="xsd:string"></AccommodationAddress2> <AccommodationAddress3 xsi:type="xsd:string"></AccommodationAddress3> <AccommodationTelephoneNumber xsi:type="xsd:string"></AccommodationTelephoneNumber> </OutboundDetails> <InboundDetails xsi:type="tns:InboundDetails"> <ArrivalAirportId xsi:type="xsd:int">50</ArrivalAirportId> <FlightNumber xsi:type="xsd:string">1234</FlightNumber> <DepartureDatetime xsi:type="xsd:dateTime">2009-0608T12:00:00</DepartureDatetime> <PickupDatetime xsi:type="xsd:dateTime">2009-0608T08:00:00</PickupDatetime> <AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName> <AccommodationAddress1 xsi:type="xsd:string"></AccommodationAddress1> <AccommodationAddress2 xsi:type="xsd:string"></AccommodationAddress2> <AccommodationAddress3 xsi:type="xsd:string"></AccommodationAddress3> <AccommodationTelephoneNumber xsi:type="xsd:string"></AccommodationTelephoneNumber> </InboundDetails> <PaymentDetails xsi:nil="true" xsi:type="tns:PaymentDetails"/> </tns:CreateBooking> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Bookings.CreateBookingResponse Bookings.CreateBookingResponse Element Blocks GeneralConfirmationDetails OutboundConfirmationDetails InboundConfirmationDetails ReconfirmationDetails

HolidayTaxis Development Guide

Page 44 of 97

Child Elements of GeneralConfirmationDetails Element Name Value BookingReference Always returned AgentReference Only returned if created in the request OrderReference Only returned if created in the request Returns CONFIRMED, AMENDED or CANCELLED ISO4217 currency codes which is always returned Always returned Always returned Always returned Always returned Always returned Returns True if the price is based on PerPerson Always returned Always returned Always returned Always returned Always returned Always returns the destination airport Always returns the resort name Always returns the name of the product, for example Standard Taxi Always returned Always returns the string value of the BookingTypeId. For example, Return, Outbound only or Inbound only Always returned

BookingStatus

Type String String (Max 50 characters) String (Max 50 characters) String

CurrencyCode UnitPrice TotalPrice DateBooked BookingTypeId NumberOfVehicles PerPerson NumberOfAdults NumberOfChildren NumberOfInfants MinimumNumberOfPassengers MaximumNumberOfPassengers AirportName

String (Max 3 characters) Float Float DateTime Int Int Boolean Int Int Int Int Int String (Max 50 characters) String (Max 50 characters) String (Max 50 characters) Int String (Max 50 characters)

ResortName

ProductType

TransferMinutes BookingType

LeadPassengersTitle

String (Max 10 characters) Page 45 of 97

HolidayTaxis Development Guide

LeadPassengersForename

Always returned

LeadPassengersSurname

Always returned

LeadPassengersEmailAddress

Always returned

LeadPassengersMobileTelephoneNumber Always returned if provided

String (Max 50 characters) String (Max 50 characters) String (Max 100 characters) String (Max 50 characters)

Child Elements of OutboundConfirmationDetails Element Name Value Type DepartureAirportName Always returned String (Max 50 characters) FlightNumber Always returned String (Max 20 characters) ArrivalDatetime Always returned DateTime AccommodationName Always returned String (Max 50 characters) AccommodationAddress1 Always returned if provided String (Max 50 characters) AccommodationAddress2 Always returned if provided String (Max 50 characters) AccommodationAddress3 Always returned if provided String (Max 50 characters) AccommodationTelephoneNumber Always returned if provided String (Max 50 characters) Instuctions Always returned Blob/ Text Child Elements of InboundConfirmationDetails Element Name Value Type ArrivalAirportName Always returned String (Max 50 characters) FlightNumber Always returned String (Max 20 characters) DepartureDatetime Always returned DateTime PickupDatetime Always returned DateTime AccommodationName Always returned String (Max 50 characters) AccommodationAddress1 Always returned if provided String (Max 50 characters) HolidayTaxis Development Guide Page 46 of 97

AccommodationAddress2

Always returned if provided String (Max 50 characters) AccommodationAddress3 Always returned if provided String (Max 50 characters) AccommodationTelephoneNumber Always returned if provided String (Max 50 characters) Instuctions Always returned Blob/ Text Child Elements of ReconfirmationConfirmationDetails Element Name Value Type OverseasSupplier Always returned String (Max 50 characters) EmergencyNumber Always returned String (Max 50 characters) ReconfirmationNumber Always returned String (Max 50 characters) OfficeHoursMonFri Always returned String (Max 50 characters) OfficeHoursSat Always returned String (Max 50 characters) OfficeHoursSun Always returned String (Max 50 characters) Example XML Response for Bookings.CreateBooking HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Tue, 19 May 2009 17:13:30 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 6303 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><ns1:CreateBookingResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <GeneralConfirmationDetails xsi:type="tns:GeneralConfirmationDetails"> HolidayTaxis Development Guide Page 47 of 97

<BookingReference xsi:type="xsd:string">751008</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> <OrderReference xsi:nil="true" xsi:type="xsd:string"/> <BookingStatus xsi:type="xsd:string">CONFIRMED</BookingStatus> <CurrencyCode xsi:type="xsd:string">GBP</CurrencyCode> <UnitPrice xsi:type="xsd:float">19.00</UnitPrice> <TotalPrice xsi:type="xsd:float">76.00</TotalPrice> <DateBooked xsi:type="xsd:dateTime">2009-05-19T18:13:20</DateBooked> <BookingTypeId xsi:type="xsd:int">1</BookingTypeId> <NumberOfVehicles xsi:type="xsd:int">4</NumberOfVehicles> <PerPerson xsi:type="xsd:boolean">true</PerPerson> <NumberOfAdults xsi:type="xsd:int">2</NumberOfAdults> <NumberOfChildren xsi:type="xsd:int">2</NumberOfChildren> <NumberOfInfants xsi:nil="true" xsi:type="xsd:int"/> <MinimumNumberOfPassengers xsi:nil="true" xsi:type="xsd:int"/> <MaximumNumberOfPassengers xsi:nil="true" xsi:type="xsd:int"/> <AirportName xsi:type="xsd:string">Reus (Costa Dorada)</AirportName> <ResortName xsi:type="xsd:string">Cambrils</ResortName> <ProductType xsi:type="xsd:string">Shuttle Transfer</ProductType> <TransferMinutes xsi:type="xsd:int">30</TransferMinutes> <BookingType xsi:type="xsd:string">Return transfer</BookingType> <LeadPassengersTitle xsi:type="xsd:string">Mr</LeadPassengersTitle> <LeadPassengersForename xsi:type="xsd:string">Test</LeadPassengersForename> <LeadPassengersSurname xsi:type="xsd:string">Test</LeadPassengersSurname> <LeadPassengersEmailAddress xsi:type="xsd:string">test@test.com</LeadPassengersEmailAddress> <LeadPassengersMobileTelephoneNumber xsi:nil="true" xsi:type="xsd:string"/> </GeneralConfirmationDetails> <OutboundConfirmationDetails xsi:type="tns:OutboundConfirmationDetails"> <DepartureAirportName xsi:type="xsd:string">Gatwick(UK)</DepartureAirportName> <FlightNumber xsi:type="xsd:string">1234</FlightNumber> <ArrivalDatetime xsi:type="xsd:dateTime"> 2009-06-01T12:00:00</ArrivalDatetime> <AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName> <AccommodationAddress1 xsi:nil="true" xsi:type="xsd:string"/> <AccommodationAddress2 xsi:nil="true" xsi:type="xsd:string"/> <AccommodationAddress3 xsi:nil="true" xsi:type="xsd:string"/> <AccommodationTelephoneNumber xsi:nil="true" xsi:type="xsd:string"/> <Instructions xsi:type="xsd:string"> Once you have collected your luggage, please make your way to the arrivals hall where your driver will be waiting holding a sign with your name and/or the Holiday Taxis / Viajes Anubis logo. Please identify yourself by showing him a copy of your booking voucher. KEY COLLECTION - Should you require a key collection or any other alternative journey other than the HolidayTaxis Development Guide Page 48 of 97

airport transfer booked, you may be charged a supplemental amount locally. In the unlikely event you should have any difficulty in locating your designated driver: - please call our emergency helpline where an English speaking representative will help you. (If calling from a mobile, the international dialling code must be dialed. If calling from a land line there is no need.). Terms and Conditions: http://www.holidaytaxis.com/about/conditions/ </Instructions> </OutboundConfirmationDetails> <InboundConfirmationDetails xsi:type="tns:InboundConfirmationDetails"> <ArrivalAirportName xsi:type="xsd:string">Gatwick (UK)</ArrivalAirportName> <FlightNumber xsi:type="xsd:string">425364</FlightNumber> <DepartureDatetime xsi:type="xsd:dateTime"> 2009-06-08T12:00:00</DepartureDatetime> <PickupDatetime xsi:type="xsd:dateTime"> 2009-06-08T08:00:00</PickupDatetime> <AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName> <AccommodationAddress1 xsi:nil="true" xsi:type="xsd:string"/> <AccommodationAddress2 xsi:nil="true" xsi:type="xsd:string"/> <AccommodationAddress3 xsi:nil="true" xsi:type="xsd:string"/> <AccommodationTelephoneNumber xsi:nil="true" xsi:type="xsd:string"/> <Instructions xsi:type="xsd:string"> Please note that it is COMPULSORY and EXTREMELY important that you call to arrange your return pick up time at least 24 hours prior to your departure within office hours ONLY before your departure transfer. We cannot accept any responsibility for clients who are not collected on time and subsequently miss their return flight if details of the booking have changed and we have not been advised accordingly or if you have not called to arrange your pick up time. To ensure that you get in the correct vehicle, please make sure that the driver is aware of your name before you show your booking voucher. Terms and Conditions: http://www.holidaytaxis.com/about/conditions/ </Instructions> </InboundConfirmationDetails> <ReconfirmationDetails xsi:type="tns:ReconfirmationDetails"> <OverseasSupplier xsi:type="xsd:string"> Viajes Anubis SA - Costa Brava/Reus</OverseasSupplier> <EmergencyNumber xsi:type="xsd:string"> (0034) 902 11 29 27</EmergencyNumber> <ReconfirmationNumber xsi:type="xsd:string"> (0034) 90211 2927 / (0034) 66230 5999</ReconfirmationNumber> <OfficeHoursMonFri xsi:type="xsd:string"> 09:30 - 13:30 / 16:00 - 19:30</OfficeHoursMonFri> <OfficeHoursSat xsi:type="xsd:string"> 10:00 - 13:00 / 17:00 - 19:00</OfficeHoursSat> <OfficeHoursSun xsi:type="xsd:string">Closed</OfficeHoursSun> </ReconfirmationDetails> HolidayTaxis Development Guide Page 49 of 97

</ns1:CreateBookingResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Bookings.GetBooking Method The GetBooking method returns all the information of a booking that would be returned in Bookings.CreateBookingResponse. Bookings.GetBooking Request Bookings.GetBooking Element Blocks Credentials GetBookingParameters

Element Name BookingReference AgentReference

Child Elements of GetBookingParameters Description Type Must be in the format /^.\w+\String .\d+?$/ An identifier that maps to an String (Max agency account 50 characters)

Required Yes No

Example XML Request for Bookings.GetBooking POST /SOAP/1.2/Bookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetBooking" Content-Length: 939 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetBooking xmlns:tns="https://holidaytaxis.com/webservice"> HolidayTaxis Development Guide Page 50 of 97

<Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <GetBookingParameters xsi:type="tns:GetBookingParameters"> <BookingReference xsi:type="xsd:string">751008</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> </GetBookingParameters> </tns:GetBooking> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Bookings.GetBookingResponse

The GetBooking response is the same as the Bookings.CreateBookingResponse.

Bookings.CancelBooking Method The Bookings.CancelBooking method will cancel the booking of the booking reference entered.

Bookings.CancelBooking Request

Bookings.CancelBooking Element Blocks Credentials o BookingReference

Element Name BookingReference

Description Must be in the format /^.\w+\.\d+?$/

Type String

Required Yes

Example XML Request for Bookings.CancelBooking

HolidayTaxis Development Guide

Page 51 of 97

POST /SOAP/1.2/Bookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#CancelBooking" Content-Length: 806 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:CancelBooking xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <BookingReference xsi:type="xsd:string">751008</BookingReference> </tns:CancelBooking> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Bookings.CancelBookingResponse Bookings.CancelBookingResponse Element Blocks o return

Element Name return

Value Returns True if booking cancelled successfully or False if booking already cancelled or already travelled

Type Boolean

Example XML Response for Bookings.CancelBooking


HTTP/1.2 200 OK Date: Wed, 20 May 2009 10:45:15 GMT

HolidayTaxis Development Guide

Page 52 of 97

Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 472 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body><ns1:CancelBookingResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <return xsi:type="xsd:boolean">true</return> </ns1:CancelBookingResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Bookings.GetModifyParameters Method The Bookings.GetModifyParameters method returns the majority of the booking details required to modify a booking. It is similar to the Bookings.GetBooking method except that it returns ModifyParameters instead of ReconfirmationConfirmationDetails. These parameters can be used as input to the ModifyBooking method to update the booking.

Bookings.GetModifyParameters Request Bookings.GetModifyParameters Element Blocks Credentials GetBookingParameters

Example XML Request for Bookings.GetModifyParameters


POST /SOAP/1.2/Bookings.php HTTP/1.0

Host: testserver.holidaytaxis.com:443
User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetModifyParameters" Content-Length: 953

HolidayTaxis Development Guide

Page 53 of 97

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"><SOAPENV:Body><tns:GetModifyParameters xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <GetBookingParameters xsi:type="tns:GetBookingParameters"><BookingReference xsi:type="xsd:string">HTX-751008</BookingReference><AgentReference xsi:type="xsd:string">MyAgent</AgentReference></GetBookingParameters></tns:GetModif yParameters></SOAP-ENV:Body></SOAP-ENV:Envelope>

Bookings.ModifyParametersResponse Bookings.ModifyParametersResponse Element Blocks GeneralConfirmationDetails OutboundConfirmationDetails InboundConfirmationDetails ModifyParameters

Element Name AirportGroupId AirportId ResortId ProductId SupplierId DepartureAirportId

ArrivalAirportId

Child Elements of ModifyParameters Value Type Always returned Int Always returned Int Always returned Int Always returned Int Always returned Int Returned if booking type is Int Return Transfer or Outbound only Returned if booking type is Int Return Transfer or Inbound only

Example XML Response for Bookings.GetModifyParameters


HTTP/1.1 200 OK Date: Fri, 08 Apr 2011 14:04:18 GMT

HolidayTaxis Development Guide

Page 54 of 97

Server: Apache X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 4518 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"><SOAPENV:Body><ns1:GetModifyParametersResponse xmlns:ns1="https://holidaytaxis.com/webservice"><GeneralConfirmationDetails xsi:type="tns:GeneralConfirmationDetails"><BookingReference xsi:type="xsd:string">HTX751008</BookingReference><AgentReference xsi:type="xsd:string">MyAgent</AgentReference><OrderReference xsi:nil="true" xsi:type="xsd:string"/><BookingStatus xsi:type="xsd:string">CONFIRMED</BookingStatus><CurrencyCode xsi:type="xsd:string">GBP</CurrencyCode><UnitPrice xsi:type="xsd:float">41.00</UnitPrice><TotalPrice xsi:type="xsd:float">41.00</TotalPrice><DateBooked xsi:type="xsd:dateTime">2011-0223T14:00:14</DateBooked><BookingTypeId xsi:type="xsd:int">3</BookingTypeId><NumberOfVehicles xsi:type="xsd:int">1</NumberOfVehicles><PerPerson xsi:type="xsd:boolean">false</PerPerson><NumberOfAdults xsi:type="xsd:int">2</NumberOfAdults><NumberOfChildren xsi:type="xsd:int">0</NumberOfChildren><NumberOfInfants xsi:type="xsd:int">0</NumberOfInfants><MinimumNumberOfPassengers xsi:type="xsd:int">1</MinimumNumberOfPassengers><MaximumNumberOfPassengers xsi:type="xsd:int">4</MaximumNumberOfPassengers><AirportName xsi:type="xsd:string">Crete Heraklion Airport</AirportName><ResortName xsi:type="xsd:string">Malia</ResortName><ProductType xsi:type="xsd:string">Private Transfer</ProductType><TransferMinutes xsi:type="xsd:int">45</TransferMinutes><BookingType xsi:type="xsd:string">Single return only</BookingType><LeadPassengersTitle xsi:type="xsd:string">Mr</LeadPassengersTitle><LeadPassengersForename xsi:type="xsd:string">Test</LeadPassengersForename><LeadPassengersSurname xsi:type="xsd:string">Test</LeadPassengersSurname><LeadPassengersEmailAddress xsi:type="xsd:string">test@test.com</LeadPassengersEmailAddress><LeadPassengersMo bileTelephoneNumber xsi:nil="true" xsi:type="xsd:string"/></GeneralConfirmationDetails><OutboundConfirmationDetails xsi:nil="true" xsi:type="tns:OutboundConfirmationDetails"/><InboundConfirmationDetails xsi:type="tns:InboundConfirmationDetails"><ArrivalAirportName xsi:type="xsd:string">Aberdeen Airport</ArrivalAirportName><FlightNumber xsi:type="xsd:string">345</FlightNumber><DepartureDatetime xsi:type="xsd:dateTime">2011-05-01T20:00:00</DepartureDatetime><PickupDatetime xsi:type="xsd:dateTime">2011-05-01T12:00:00</PickupDatetime><AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName><AccommodationAddress1 xsi:type="xsd:string">Address 1</AccommodationAddress1><AccommodationAddress2 xsi:nil="true" xsi:type="xsd:string"/><AccommodationAddress3 xsi:nil="true" xsi:type="xsd:string"/><AccommodationTelephoneNumber

HolidayTaxis Development Guide

Page 55 of 97

xsi:type="xsd:string">123</AccommodationTelephoneNumber><Instructions xsi:type="xsd:string"> Please note that it is &lt;span style=&quot;font-weight: bold;&quot;&gt;COMPULSORY &lt;/span&gt;and &lt;span style=&quot;font-weight: bold;&quot;&gt;EXTREMELY &lt;/span&gt;important to reconfirm your return transfer time at least 24 hours prior to your departure within office hours ONLY before your departure transfer to confirm your pick up. The pick up time is printed on your confirmation is estimated only and will be confirmed when you call. We cannot accept any responsibility for clients who are not collected on time and subsequently miss their return flight if details of the booking have changed and we have not been advised accordingly.&lt;br&gt;&lt;br&gt;To ensure that you get the correct vehicle please ensure your driver is aware of your name before you show him your booking voucher. &lt;p&gt;Terms and Conditions: &lt;a href=&quot;http://www2.holidaytaxis.com/about/terms.php&quot;&gt;www2.holidaytaxis.com/ about/terms.php&lt;/a&gt;&lt;/p&gt;</Instructions></InboundConfirmationDetails><ModifyPar ameters xsi:type="tns:ModifyParameters"><AirportGroupId xsi:type="xsd:int">4</AirportGroupId><AirportId xsi:type="xsd:int">22</AirportId><ResortId xsi:type="xsd:int">244</ResortId><ProductId xsi:type="xsd:int">287903</ProductId><SupplierId xsi:type="xsd:int">10844</SupplierId><DepartureAirportId xsi:nil="true" xsi:type="xsd:int"/><ArrivalAirportId xsi:type="xsd:int">38</ArrivalAirportId></ModifyParameters></ns1:GetModifyParametersRe sponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

Bookings.ModifyBooking Method The Bookings.ModifyBooking method is used to update a booking. Please note that if the modification results in a price change, this method will only work for agents paying by account or direct debit. Making a modification is a two step process. The first step is to call ModifyBooking with the details of the updated booking and the NoUpdate flag set to true. This will return the total price for the modified booking without saving the changes. The second step is to repeat the call but this time with the NoUpdate flag set to false and confirming the new price in the ConfirmTotalPrice parameter. If this value is correct, the updates will then be saved. If you wish to change the resort, you will need to call the GetSupplierResorts method to get a list of available resorts. To find valid products for these resorts, you will need to call the GetResortProducts method including the SupplierId parameter.

HolidayTaxis Development Guide

Page 56 of 97

Bookings.ModifyBooking Request

Bookings.ModifyBooking Element Blocks Credentials ModifyGeneralDetails OutboundDetails (Required if BookingTypeId = 1 or 2) InboundDetails (Required if BookingTypeId = 1 or 3)

Child Elements of ModifyGeneralDetails Value Must be in the format /^.\w+\.\d+?$/ AgentReference The identifier of your agent you provided to HolidayTaxis ResortId HolidayTaxis ResortId ProductId HolidayTaxis Product Id BookingTypeId 1 = Return Transfer 2 = Single outbound only 3 = Single inbound only NumberOfVehiclesRequired Number of vehicles required NumberOfAdults Number of adults NumberOfChildren Number of children between the ages of 2 and 12 NumberOfInfants Number of infants between the ages of 0 and 2 LeadPassengersTitle Mr, Mrs, Miss and Dr etc LeadPassengersForename First name Element Name BookingReference LeadPassengersSurname Last name

Type String

String (Max 50 characters)

Int Int Int

Int Int Int

Int

String (Max 10 characters) String (Max 50 characters) String (Max 50 characters) Page 57 of 97

HolidayTaxis Development Guide

LeadPassengersEmailAddress

Email address

LeadPassengersMobileTelephoneNumber Contact phone number UserNotes Optional user notes on modification ConfirmTotalPrice Total price for Float modified booking this must match the new price before modifications will be saved. NoUpdate Set to true to obtain Boolean updated price without saving. Set to false and confirm total price to save changes.

String (Max 100 characters) String (Max 50 characters) String

Example XML Request for Bookings.ModifyGeneralDetails


POST /SOAP/1.2/Bookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#ModifyBooking" Content-Length: 3315 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"><SOAP-ENV:Body><tns:ModifyBooking xmlns:tns="https://holidaytaxis.com/webservice"><Credentials xsi:type="tns:Credentials"><AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode><Password xsi:type="xsd:string">MyPassword</Password><Language xsi:type="xsd:string"></Language></Credentials><ModifyGeneralDetails xsi:type="tns:ModifyGeneralDetails"><BookingReference xsi:type="xsd:string">HTX1479047</BookingReference><AgentReference xsi:type="xsd:string">MyAgent</AgentReference><Language xsi:type="xsd:string"></Language><ResortId xsi:type="xsd:int">254</ResortId><ProductId xsi:type="xsd:int">287913</ProductId><BookingTypeId xsi:type="xsd:int">1</BookingTypeId><NumberOfVehiclesRequired xsi:type="xsd:int">1</NumberOfVehiclesRequired><NumberOfAdults

HolidayTaxis Development Guide

Page 58 of 97

xsi:type="xsd:int">2</NumberOfAdults><NumberOfChildren xsi:type="xsd:int">1</NumberOfChildren><NumberOfInfants xsi:type="xsd:int">0</NumberOfInfants><LeadPassengersTitle xsi:type="xsd:string">Mr</LeadPassengersTitle><LeadPassengersForename xsi:type="xsd:string">Test</LeadPassengersForename><LeadPassengersSurname xsi:type="xsd:string">Test</LeadPassengersSurname><LeadPassengersEmailAddress xsi:type="xsd:string">test@test.com</LeadPassengersEmailAddress><LeadPassengersMo bileTelephoneNumber xsi:type="xsd:string">123456</LeadPassengersMobileTelephoneNumber><UserNotes xsi:type="xsd:string">test notes</UserNotes><ConfirmTotalPrice xsi:type="xsd:float"></ConfirmTotalPrice><NoUpdate xsi:type="xsd:boolean">true</NoUpdate></ModifyGeneralDetails><OutboundDetails xsi:type="tns:OutboundDetails"><DepartureAirportId xsi:type="xsd:int">39</DepartureAirportId><FlightNumber xsi:type="xsd:string">123</FlightNumber><ArrivalDatetime xsi:type="xsd:dateTime">201105-31T21:40:00</ArrivalDatetime><AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName><AccommodationAddress1 xsi:type="xsd:string"></AccommodationAddress1><AccommodationAddress2 xsi:type="xsd:string"></AccommodationAddress2><AccommodationAddress3 xsi:type="xsd:string"></AccommodationAddress3><AccommodationTelephoneNumber xsi:type="xsd:string"></AccommodationTelephoneNumber></OutboundDetails><InboundDe tails xsi:type="tns:InboundDetails"><ArrivalAirportId xsi:type="xsd:int">39</ArrivalAirportId><FlightNumber xsi:type="xsd:string">345</FlightNumber><DepartureDatetime xsi:type="xsd:dateTime">2011-06-14T22:40:00</DepartureDatetime><PickupDatetime xsi:type="xsd:dateTime">2011-06-14T19:10:00</PickupDatetime><AccommodationName xsi:type="xsd:string"> My Hotel </AccommodationName><AccommodationAddress1 xsi:type="xsd:string"></AccommodationAddress1><AccommodationAddress2 xsi:type="xsd:string"></AccommodationAddress2><AccommodationAddress3 xsi:type="xsd:string"></AccommodationAddress3><AccommodationTelephoneNumber xsi:type="xsd:string"></AccommodationTelephoneNumber></InboundDetails></tns:ModifyB ooking></SOAP-ENV:Body></SOAP-ENV:Envelope>

Bookings.ModifyBookingResponse

Bookings.ModifyBookingResponse Element Blocks ModifyStatus GeneralConfirmationDetails OutboundConfirmationDetails InboundConfirmationDetails

Element Name

Child Elements of ModifyStatus Value Type Page 59 of 97

HolidayTaxis Development Guide

Status

PriceChange UserNotes ChangeNoteHTML

Return status: 0 not updated 1 - updated Amount price has/will change due to modification. User change notes Auto-generated note listing what has changed (as HTML)

Int

Int String String

Example XML Response for Bookings.ModifyBooking


HTTP/1.1 200 OK Date: Fri, 08 Apr 2011 14:17:53 GMT Server: Apache X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 6135 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"><SOAPENV:Body><ns1:ModifyBookingResponse xmlns:ns1="https://holidaytaxis.com/webservice"><ModifyStatus xsi:type="tns:ModifyStatus"><Status xsi:type="xsd:int">0</Status><PriceChange xsi:type="xsd:float">237.00</PriceChange><UserNotes xsi:type="xsd:string">test notes</UserNotes><ChangeNoteHTML xsi:type="xsd:string">Vehicle Type was &apos;Private Transfer (1 - 4)&apos; and is now &apos;Private Transfer (1 - 4)&apos;&lt;br /&gt;Resort was &apos;Malia&apos; and is now &apos;Agia Marina&apos;&lt;br /&gt;Children was &apos;0&apos; and is now &apos;1&apos;&lt;br /&gt;Mobile no was &apos;&apos; and is now &apos;123456&apos&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Price Change -&lt;br /&gt;Old Price: &amp;pound;41.00, New Price: &amp;pound;278.00&lt;br /&gt;Old Net Price: &amp;pound;40.00, New Net Price: &amp;pound;278.00&lt;br /&gt;(Unit price recalculated to &amp;pound;278.00)&lt;br /&gt;</ChangeNoteHTML></ModifyStatus><GeneralConfirmationDetails xsi:type="tns:GeneralConfirmationDetails"><BookingReference xsi:type="xsd:string">HTX1479047</BookingReference><AgentReference xsi:type="xsd:string">MyAgent</AgentReference><OrderReference xsi:nil="true" xsi:type="xsd:string"/><BookingStatus xsi:type="xsd:string">AMENDED</BookingStatus><CurrencyCode xsi:type="xsd:string">GBP</CurrencyCode><UnitPrice xsi:type="xsd:float">278.00</UnitPrice><TotalPrice xsi:type="xsd:float">278.00</TotalPrice><DateBooked xsi:type="xsd:dateTime">2011-0223T14:00:14</DateBooked><BookingTypeId xsi:type="xsd:int">1</BookingTypeId><NumberOfVehicles xsi:type="xsd:int">1</NumberOfVehicles><PerPerson

HolidayTaxis Development Guide

Page 60 of 97

xsi:type="xsd:boolean">false</PerPerson><NumberOfAdults xsi:type="xsd:int">2</NumberOfAdults><NumberOfChildren xsi:type="xsd:int">1</NumberOfChildren><NumberOfInfants xsi:type="xsd:int">0</NumberOfInfants><MinimumNumberOfPassengers xsi:type="xsd:int">1</MinimumNumberOfPassengers><MaximumNumberOfPassengers xsi:type="xsd:int">4</MaximumNumberOfPassengers><AirportName xsi:type="xsd:string">Crete Heraklion Airport</AirportName><ResortName xsi:type="xsd:string">Agia Marina</ResortName><ProductType xsi:type="xsd:string">Private Transfer</ProductType><TransferMinutes xsi:type="xsd:int">120</TransferMinutes><BookingType xsi:type="xsd:string">Return transfer</BookingType><LeadPassengersTitle xsi:type="xsd:string">Mr</LeadPassengersTitle><LeadPassengersForename xsi:type="xsd:string">Test</LeadPassengersForename><LeadPassengersSurname xsi:type="xsd:string">Test</LeadPassengersSurname><LeadPassengersEmailAddress xsi:type="xsd:string">test@test.com</LeadPassengersEmailAddress><LeadPassengersMo bileTelephoneNumber xsi:type="xsd:string">123456</LeadPassengersMobileTelephoneNumber></GeneralConfirm ationDetails><OutboundConfirmationDetails xsi:type="tns:OutboundConfirmationDetails"><DepartureAirportName xsi:type="xsd:string">Belfast International Airport</DepartureAirportName><FlightNumber xsi:type="xsd:string">123</FlightNumber><ArrivalDatetime xsi:type="xsd:dateTime">201105-31T21:40:00</ArrivalDatetime><AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName><AccommodationAddress1 xsi:type="xsd:string"></AccommodationAddress1><AccommodationAddress2 xsi:type="xsd:string"></AccommodationAddress2><AccommodationAddress3 xsi:type="xsd:string"></AccommodationAddress3><AccommodationTelephoneNumber xsi:type="xsd:string"></AccommodationTelephoneNumber></OutboundConfirmationDetails> <InboundConfirmationDetails xsi:type="tns:InboundConfirmationDetails"><ArrivalAirportName xsi:type="xsd:string">Belfast International Airport</ArrivalAirportName><FlightNumber xsi:type="xsd:string">345</FlightNumber><DepartureDatetime xsi:type="xsd:dateTime">2011-06-14T22:40:00</DepartureDatetime><PickupDatetime xsi:type="xsd:dateTime">2011-06-14T19:10:00</PickupDatetime><AccommodationName xsi:type="xsd:string">My Hotel</AccommodationName><AccommodationAddress1 xsi:type="xsd:string"></AccommodationAddress1><AccommodationAddress2 xsi:type="xsd:string"></AccommodationAddress2><AccommodationAddress3 xsi:type="xsd:string"></AccommodationAddress3><AccommodationTelephoneNumber xsi:type="xsd:string"></AccommodationTelephoneNumber></InboundConfirmationDetails>< ModifyParameters xsi:type="tns:ModifyParameters"><AirportId xsi:type="xsd:int">22</AirportId><ResortId xsi:type="xsd:int">254</ResortId><ProductId xsi:type="xsd:int">287913</ProductId><DepartureAirportId xsi:type="xsd:int">39</DepartureAirportId><ArrivalAirportId xsi:type="xsd:int">39</ArrivalAirportId></ModifyParameters></ns1:ModifyBookingResponse ></SOAP-ENV:Body></SOAP-ENV:Envelope>

HolidayTaxis Development Guide

Page 61 of 97

DYNAMIC BOOKINGS
Dynamic bookings are based on the UK only and prices dynamically between the pick-up and destination postcodes. DynamicBookings.GetProductPrice The DynamicBookings.GetProductPrice method is used to get a product price.

DynamicBookings.GetProductPrice Request DynamicBookings.GetProductPrice Element Blocks Credentials ProductPriceParameters

Child Element of ProductPriceParameters Description Type An identifier that maps to an String (Max 50 agency account characters) PickupAddress1 The pick-up address or String (Max 50 airport etc characters) PickupAddress2 Address 2 String (Max 50 characters) PickupTown The pick-up town or city String (Max 50 characters) PickupPostcode The pick-up postcode String (Max 50 characters) DestinationAddress1 The destination address or String (Max 50 airport etc characters) DestinationAddress2 Address 2 String (Max 50 characters) DestinationTown The destination town or city String (Max 50 characters) DestinationPostcode The postcode of the String (Max 50 destination characters) PickupDatetime The date and time of the pick- DateTime up (ISO8601 format 20090601T09:00:00.) Element Name AgentReference HolidayTaxis Development Guide

Required No Yes No Yes Yes Yes No Yes Yes Yes

Page 62 of 97

ReturnDatetime

Required if return journey

NumberOfPassengers Total number of passengers travelling

DateTime (ISO8601 format 20090608T09:00:00.) Int

No

Yes

Example XML Request for DynamicBookings.GetProductPrice POST /SOAP/1.2/DynamicBookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetCardTypes" Content-Length: 1629 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetProductPrice xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <ProductPriceParameters xsi:type="tns:ProductPriceParameters"> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> <PickupAddress1 xsi:type="xsd:string">Gatwick Airport</PickupAddress1> <PickupAddress2 xsi:type="xsd:string"></PickupAddress2> <PickupTown xsi:type="xsd:string">Gatwick</PickupTown> <PickupPostcode xsi:type="xsd:string">RH6 0JH</PickupPostcode> <DestinationAddress1 xsi:type="xsd:string">1 The Test</DestinationAddress1> <DestinationAddress2 xsi:type="xsd:string">Test Street</DestinationAddress2> <DestinationTown xsi:type="xsd:string">Test</DestinationTown> <DestinationPostcode xsi:type="xsd:string">AB11AB</DestinationPostcode> <PickupDatetime xsi:type="xsd:dateTime">2009-06-01T09:00:00</PickupDatetime> <ReturnDatetime xsi:type="xsd:dateTime">2009-06-08T09:00:00</ReturnDatetime> <NumberOfPassengers xsi:type="xsd:int">2</NumberOfPassengers> </ProductPriceParameters> </tns:GetProductPrice> HolidayTaxis Development Guide Page 63 of 97

</SOAP-ENV:Body> </SOAP-ENV:Envelope> DynamicBookings.GetProductPriceResponse DynamicBookings.GetProductPriceResponse Element Blocks ProductPrice (ArrayOfProductPrice)

Element Name VehicleTypeId VehicleName TotalPrice CurrencyCode

Child Elements of ProductPrice Value Type Always returned Int Always returned String (Max 50 characters) Always returned Float Always returned String

Example XML Response for DynamicBookings.GetProductPrice HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Wed, 20 May 2009 11:35:54 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 1097 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><ns1:GetProductPriceResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <ProductPrice xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:ProductPrice[2]"> <item xsi:type="tns:ProductPrice"> <VehicleTypeId xsi:type="xsd:int">2</VehicleTypeId> <VehicleName xsi:type="xsd:string">Standard saloon</VehicleName> <TotalPrice xsi:type="xsd:float">113.97</TotalPrice> HolidayTaxis Development Guide Page 64 of 97

<CurrencyCode xsi:type="xsd:string">GBP</CurrencyCode> </item> <item xsi:type="tns:ProductPrice"> <VehicleTypeId xsi:type="xsd:int">9</VehicleTypeId> <VehicleName xsi:type="xsd:string">VIP transfer</VehicleName> <TotalPrice xsi:type="xsd:float">172.01</TotalPrice> <CurrencyCode xsi:type="xsd:string">GBP</CurrencyCode> </item> </ProductPrice> </ns1:GetProductPriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> DynamicBookings.GetGateways The DynamicBookings.GetGateways method will return a list of UK airports, ports, stations and hotels. DynamicBookings.GetGateways Request DynamicBookings.GetGateways Element Blocks Credentials

Example XML Request for DynamicBookings.GetGateways POST /SOAP/1.2/DynamicBookings.php HTTP/1.0 Host: www.htxdev.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetGateways" Content-Length: 733 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetGateways xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> HolidayTaxis Development Guide Page 65 of 97

<Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> </tns:GetGateways> </SOAP-ENV:Body> </SOAP-ENV:Envelope> DynamicBookings.GetGatewaysResponse DynamicBookings.GetGatewaysResponse Element Blocks Gateways (ArrayOfGateways)

Element Name GatewayTypeCode

GatewayTypeId

GatewayId GatewayIdentifier Gateway Address1 Address2 Area AreaCode Active

Child Elements of GatewayTypes Value Type AIR = Airport String (Max 10 STN = Station characters) PRT = Port CTY = City HTL = Hotel 1 = Airport Int 3 = Station 2 = Port 4 = City 5 = Hotel Unique identifier for the Int Gateway IATA code if airport String (Max 10 characters) Gateway name String (Max 150 characters) Gateway address String (Max 150 characters) Gateway address String (Max 150 characters) Gateway town or city String (Max 150 characters) Postal code String (Max 150 characters) Always returned Boolean

HolidayTaxis Development Guide

Page 66 of 97

Example XML Response for DynamicBookings.GetGateways HTTP/1.2 200 OK Date: Wed, 20 May 2009 13:09:19 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 519917 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"><SOAPENV:Body><ns1:GetGatewaysResponse xmlns:ns1="https://holidaytaxis.com/webservice"><Gateways xsi:type="SOAPENC:Array" SOAP-ENC:arrayType="tns:ArrayOfGateways[6]"><item xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:Gateways[41]"> <item xsi:type="tns:Gateways <GatewayTypeCode xsi:type="xsd:string">AIR</GatewayTypeCode> <GatewayId xsi:type="xsd:int">8</GatewayId> <GatewayTypeId xsi:type="xsd:int">1</GatewayTypeId> <GatewayIdentifier xsi:type="xsd:string">BRS</GatewayIdentifier> <Gateway xsi:type="xsd:string">Bristol Intl</Gateway> <Address1 xsi:type="xsd:string">Bristol Intl Airport</Address1> <Address2 xsi:type="xsd:string">Bristol</Address2> <Area xsi:type="xsd:string">Bristol</Area> <AreaCode xsi:type="xsd:string">BS48 3DY</AreaCode> <Active xsi:type="xsd:int">1</Active> </item> <item xsi:type="tns:Gateways"> <GatewayTypeCode xsi:type="xsd:string">STN</GatewayTypeCode> <GatewayId xsi:type="xsd:int">124</GatewayId> <GatewayTypeId xsi:type="xsd:int">3</GatewayTypeId> <GatewayIdentifier xsi:nil="true" xsi:type="xsd:string"/> <Gateway xsi:type="xsd:string">Clapham Junction</Gateway> <Address1 xsi:type="xsd:string">Clapham Junction Station</Address1> <Address2 xsi:nil="true" xsi:type="xsd:string"/> <Area xsi:type="xsd:string">London</Area> <AreaCode xsi:type="xsd:string">SW11 2HT</AreaCode> <Active xsi:type="xsd:int">1</Active> </item> <item xsi:type="tns:Gateways"> <GatewayTypeCode xsi:type="xsd:string">PRT</GatewayTypeCode> <GatewayId xsi:type="xsd:int">73</GatewayId> HolidayTaxis Development Guide Page 67 of 97

<GatewayTypeId xsi:type="xsd:int">2</GatewayTypeId> <GatewayIdentifier xsi:nil="true" xsi:type="xsd:string"/> <Gateway xsi:type="xsd:string">Dover - Western Docks</Gateway> <Address1 xsi:type="xsd:string">Dover - Western Docks</Address1> <Address2 xsi:type="xsd:string">Western Docks</Address2> <Area xsi:type="xsd:string">Dover</Area> <AreaCode xsi:type="xsd:string">CT17 9TF</AreaCode> <Active xsi:type="xsd:int">1</Active> </item> <item xsi:type="tns:Gateways"> <GatewayTypeCode xsi:type="xsd:string">CTY</GatewayTypeCode> <GatewayId xsi:type="xsd:int">134</GatewayId> <GatewayTypeId xsi:type="xsd:int">4</GatewayTypeId> <GatewayIdentifier xsi:nil="true" xsi:type="xsd:string"/> <Gateway xsi:type="xsd:string">Edinburgh City Centre</Gateway> <Address1 xsi:nil="true" xsi:type="xsd:string"/> <Address2 xsi:nil="true" xsi:type="xsd:string"/> <Area xsi:type="xsd:string">Edinburgh City Centre</Area> <AreaCode xsi:type="xsd:string">EH1</AreaCode> <Active xsi:type="xsd:int">1</Active> </item> <item xsi:type="tns:Gateways"> <GatewayTypeCode xsi:type="xsd:string">HTL</GatewayTypeCode> <GatewayId xsi:type="xsd:int">164</GatewayId> <GatewayTypeId xsi:type="xsd:int">5</GatewayTypeId> <GatewayIdentifier xsi:nil="true" xsi:type="xsd:string"/> <Gateway xsi:type="xsd:string">Ambassadors Hotel</Gateway> <Address1 xsi:type="xsd:string">Ambassadors Hotel</Address1> <Address2 xsi:type="xsd:string">16 Collingham Road</Address2> <Area xsi:type="xsd:string">London</Area> <AreaCode xsi:type="xsd:string">SW5 0LX</AreaCode> <Active xsi:type="xsd:int">1</Active> </item> </Gateways> </ns1:GetGatewaysResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

DynamicBookings.CreateBooking The DynamicBookings.CreateBooking method has the following Element Blocks. Credentials (Required) PassengerDetails (Required) GeneralDetails (Required) HolidayTaxis Development Guide Page 68 of 97

PaymentDetails (Required if AgentReference is blank within the Passenger Details section) Please note that all Element Blocks should be parsed in the order above within the request regardless of any nil values. If an AgentReference is entered within the PassengerDetails Element Block, the PaymentDetails Element Blocks request should be parsed as; <PaymentDetails xsi:nil="true" xsi:type="tns:PaymentDetails"/> Test payments can be made by using the card number: 1000350000000007 and CV2: 547

DynamicBookings.CreateBooking Request DynamicBookings.CreateBooking Element Blocks Credentials PassengerDetails GeneralDetails PaymentDetails

Child Elements of PassengerDetails Element Name Description NumberOfPassengers Total number of passengers travelling LeadPassengersTitle Mr, Mrs, Miss and Dr etc

Type Int

Required Yes

LeadPassengersForename

First name

LeadPassengersSurname

Last name

String (Max 10 character s) String (Max 50 character s) String (Max 50 character s)

Yes

Yes

Yes

HolidayTaxis Development Guide

Page 69 of 97

LeadPassengersEmailAddress

Email address

LeadPassengersMobileTelephoneNumber

Contact phone number

String (Max 100 character s) String (Max 50 character s)

Yes

Yes

Element Name AgentReference

OrderReference TotalPrice

VehicleTypeId

PickupAddress1 PickupAddress2 PickupTown PickupPostcode PickupAirport

PickupTerminal PickupFlightNo DestinationAddress1 DestinationAddress2 DestinationTown DestinationPostcode

Child Elements of GeneralDetails Description Type The identifier of your agent String (Max 50 you provided to characters) HolidayTaxis Your reference String (Max 50 characters) The total price returned in Float Dynamic Bookings. GetProductPrice that matches the VehicleTypeId As returned in Int DynamicBookings. GetProductPrice The pick-up address or String (Max 50 airport etc characters) Address 2 String (Max 50 characters) The pick-up town or city String (Max 50 characters) The pick-up postcode String (Max 50 characters) IATA Code as an alternative String to the pick up address if an airport Required if an airport pick String up with a terminal Required if an airport pick String up The destination address or String (Max 50 airport etc characters) Address 2 String (Max 50 characters) The destination town or city String (Max 50 characters) The postcode of the String (Max 50

Required No

No Yes

Yes

Yes No Yes Yes No

No No Yes No Yes Yes Page 70 of 97

HolidayTaxis Development Guide

DestinationAirport

DestinationTerminal DestinationFlightNo PickupDatetime

destination IATA Code as an alternative to the destination address if an airport Required if an airport destination with a terminal Required if an airport destination The date and time of the pick-up

characters) String

No

String String DateTime (ISO8601 format 2009-0601T09:00:00.) DateTime (ISO8601 format 2009-0608T09:00:00.) String (Max 250 characters)

No No Yes

ReturnDatetime

Required if return journey

No

SpecialInstructions

For example, extra luggage, child seats or wheelchairs etc

No

Child Elements of PaymentDetails Element Name Description Type CardHoldersTitle Mr, Mrs, Miss and Dr String (Max etc 10 characters) CardHoldersForename First name as on bank String (Max statement 50 characters) CardHoldersSurname Last name as on bank String (Max statement 50 characters) CardHoldersContactNumber Contact telephone String (Max number 50 characters) CardHoldersAddress1 Address 1 as on bank String (Max statement 50 characters) CardHoldersAddress2 Address 2 as on bank String (Max statement 50 characters) CardHoldersAddress3 Address 3 String (Max 50 characters) CardHoldersPostalCode Postcode as on bank String (Max statement 50 characters) CardType As returned in String (Max GetCardTypes 50 characters) CardNumber Required String that String must pass the Luhn Mod 10 credit card check CV2Number 3 or 4 digit security String (Max 4 number on the back of characters) HolidayTaxis Development Guide

Required Yes Yes Yes Yes Yes Yes No Yes Yes Yes

Yes

Page 71 of 97

NameOnCard IssueNumber CardStartMonthYear

the card Cardholders name Required when card type is Switch/ Maestro must match /^([09]{2})\/([0-9]{2}|[09]{4})$/ must match /^([09]{2})\/([0-9]{2}|[09]{4})$/

String (Max Yes 50 characters) Int Yes String No

CardExpiryMonthYear

String

Yes

Example XML Request for DynamicBookings.CreateBooking POST /SOAP/1.2/DynamicBookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#CreateBooking" Content-Length: 2363 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:CreateBooking xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <PassengerDetails xsi:type="tns:PassengerDetails"> <NumberOfPassengers xsi:type="xsd:int">4</NumberOfPassengers> <LeadPassengersTitle xsi:type="xsd:string">Mr</LeadPassengersTitle> <LeadPassengersForename xsi:type="xsd:string">Test</LeadPassengersForename> <LeadPassengersSurname xsi:type="xsd:string">Test</LeadPassengersSurname> <LeadPassengersEmailAddress xsi:type="xsd:string">test@test.com</LeadPassengersEmailAddress> <LeadPassengersMobileTelephoneNumber HolidayTaxis Development Guide Page 72 of 97

xsi:type="xsd:string">123456789</LeadPassengersMobileTelephoneNumber> </PassengerDetails> <GeneralDetails xsi:type="tns:GeneralDetails"> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> <OrderReference xsi:type="xsd:string"></OrderReference> <TotalPrice xsi:type="xsd:float">160.50</TotalPrice> <VehicleTypeId xsi:type="xsd:int">9</VehicleTypeId> <PickupAddress1 xsi:type="xsd:string">5 Test Street</PickupAddress1> <PickupAddress2 xsi:type="xsd:string"></PickupAddress2> <PickupTown xsi:type="xsd:string">Test Town</PickupTown> <PickupPostcode xsi:type="xsd:string">AB1 1AB</PickupPostcode> <PickupAirport xsi:type="xsd:string"></PickupAirport> <PickupTerminal xsi:type="xsd:string"></PickupTerminal> <PickupFlight xsi:type="xsd:string"></PickupFlight> <DestinationAddress1 xsi:type="xsd:string"></DestinationAddress1> <DestinationAddress2 xsi:type="xsd:string"></DestinationAddress2> <DestinationTown xsi:type="xsd:string"></DestinationTown> <DestinationPostcode xsi:type="xsd:string"></DestinationPostcode> <DestinationAirport xsi:type="xsd:string">LGW</DestinationAirport> <DestinationTerminal xsi:type="xsd:string">North</DestinationTerminal> <DestinationFlight xsi:type="xsd:string">1234</DestinationFlight> <PickupDatetime xsi:type="xsd:dateTime">2009-06-07T12:00:00</PickupDatetime> <ReturnDatetime xsi:type="xsd:dateTime">2009-06-12T12:00:00</ReturnDatetime> <SpecialInstructions xsi:type="xsd:string"></SpecialInstructions> </GeneralDetails> <PaymentDetails xsi:nil="true" xsi:type="tns:PaymentDetails"/> </tns:CreateBooking> </SOAP-ENV:Body> </SOAP-ENV:Envelope> DynamicBookings.CreateBookingResponse DynamicBookings.CreateBookingResponse Element Blocks GeneralConfirmationDetails PassengerConfirmationDetails

Child Elements of PassengerConfirmationDetails Element Name Value Type NumberOfPassengers Always returned Int LeadPassengersTitle Always returned String (Max 10 characters) LeadPassengersForename Always returned String (Max 50 characters) HolidayTaxis Development Guide Page 73 of 97

LeadPassengersSurname LeadPassengersEmailAddress

Always returned Always returned

LeadPassengersMobileTelephoneNumber Always returned

String (Max 50 characters) String (Max 100 characters) String (Max 50 characters)

Child Elements of GeneralConfirmationDetails Element Name Value Type BookingReference Always returned String AgentReference Always returned if provided String (Max 50 characters) OrderReference Always returned if provided String (Max 50 characters) CurrencyCode ISO currency code String (Max 3 characters) TotalPrice Always returned Float DateBooked Always returned DateTime VehicleTypeId Always returned Int VehicleType Standard or executive etc String PickupAddress1 Always returned String (Max 50 characters) PickupAddress2 Always returned if provided String (Max 50 characters) PickupTown Always returned String (Max 50 characters) PickupPostcode Always returned String (Max 50 characters) PickupAirport Always returned if provided String PickupTerminal Always returned if provided an String airport pick up with a terminal PickupFlightNo Always returned if provided String DestinationAddress1 Always returned String (Max 50 characters) DestinationAddress2 Always returned if provided String (Max 50 characters) DestinationTown Always returned String (Max 50 characters) DestinationPostcode Always returned String (Max 50 characters) DestinationAirport Always returned if provided String DestinationTerminal Always returned if provided String DestinationFlightNo Always returned if provided String PickupDatetime Always returned DateTime (ISO8601 format 2009-06HolidayTaxis Development Guide Page 74 of 97

ReturnDatetime

Always returned if provided

SpecialInstructions BookingStatus

Always returned if provided Returns CONFIRMED, AMENDED or CANCELLED

01T09:00:00.) DateTime (ISO8601 format 2009-0608T09:00:00.) String (Max 250 characters) String

Example XML Response for DynamicBookings.CreateBooking HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Wed, 20 May 2009 17:01:13 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 2538 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:CreateBookingResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <PassengerConfirmationDetails xsi:type="tns:PassengerConfirmationDetails"> <NumberOfPassengers xsi:type="xsd:int">4</NumberOfPassengers> <LeadPassengersTitle xsi:type="xsd:string">Mr</LeadPassengersTitle> <LeadPassengersForename xsi:type="xsd:string">Test</LeadPassengersForename> <LeadPassengersSurname xsi:type="xsd:string">Test</LeadPassengersSurname> <LeadPassengersEmailAddress xsi:type="xsd:string">test@test.com</LeadPassengersEmailAddress> <LeadPassengersMobileTelephoneNumber xsi:type="xsd:string">123456789</LeadPassengersMobileTelephoneNumber> </PassengerConfirmationDetails> <GeneralConfirmationDetails xsi:type="tns:GeneralConfirmationDetails"> <BookingReference xsi:type="xsd:string">758812</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> <OrderReference xsi:nil="true" xsi:type="xsd:string"/> <CurrencyCode xsi:type="xsd:string">GBP</CurrencyCode> HolidayTaxis Development Guide Page 75 of 97

<TotalPrice xsi:type="xsd:float">160.50</TotalPrice> <DateBooked xsi:type="xsd:dateTime">2009-06-01T13:42:03</DateBooked> <VehicleTypeId xsi:type="xsd:int">9</VehicleTypeId> <VehicleType xsi:type="xsd:string">VIP transfer</VehicleType> <PickupAddress1 xsi:type="xsd:string">5 Test Street</PickupAddress1> <PickupAddress2 xsi:nil="true" xsi:type="xsd:string"/> <PickupTown xsi:type="xsd:string">Test Town</PickupTown> <PickupPostcode xsi:type="xsd:string">AB1 1AB</PickupPostcode> <PickupAirport xsi:nil="true" xsi:type="xsd:string"/> <PickupTerminal xsi:nil="true" xsi:type="xsd:string"/> <PickupFlight xsi:nil="true" xsi:type="xsd:string"/> <PickupDatetime xsi:type="xsd:dateTime">2009-06-07T12:00:00</PickupDatetime> <DestinationAddress1 xsi:type="xsd:string">London Gatwick Airport</DestinationAddress1> <DestinationAddress2 xsi:nil="true" xsi:type="xsd:string"/> <DestinationTown xsi:type="xsd:string">Gatwick</DestinationTown> <DestinationPostcode xsi:type="xsd:string">RH6 0JH</DestinationPostcode> <DestinationAirport xsi:type="xsd:string">LGW</DestinationAirport> <DestinationTerminal xsi:type="xsd:string">North Terminal</DestinationTerminal> <DestinationFlight xsi:type="xsd:string">1234</DestinationFlight> <ReturnDatetime xsi:type="xsd:dateTime">2009-06-12T12:00:00</ReturnDatetime> <SpecialInstructions xsi:nil="true" xsi:type="xsd:string"/> <BookingStatus xsi:type="xsd:string">CONFIRMED</BookingStatus> </GeneralConfirmationDetails> </ns1:CreateBookingResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> DynamicBookings.GetBooking The DynamicBookings.GetBooking method returns all the information of a booking that would be returned in DynamicBookings.CreateBookingResponse.

DynamicBookings.GetBooking Request DynamicBookings.GetBooking Element Blocks Credentials GetBookingParameters

HolidayTaxis Development Guide

Page 76 of 97

Child Elements of GetBookingParameters Element Name Description Type BookingReference Must be in the format /^.\w+\String .\d+?$/ AgentReference An identifier that maps to an String (Max agency account 50 characters) Example XML Request for DynamicBookings.GetBooking POST /SOAP/1.2/DynamicBookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetBooking" Content-Length: 939

Required Yes No

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><tns:GetBooking xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <GetBookingParameters xsi:type="tns:GetBookingParameters"> <BookingReference xsi:type="xsd:string">755338</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent</AgentReference> </GetBookingParameters> </tns:GetBooking> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

HolidayTaxis Development Guide

Page 77 of 97

DynamicBookings.GetBookingResponse The DynamicBookings.GetBooking response is the same as the DynamicBookings.CreateBookingResponse.

DynamicBookings.CancelBooking The DynamicBookings.CancelBooking method cancels the booking of the booking reference entered.

DynamicBookings.CancelBooking Request DynamicBookings.CancelBooking Element Blocks Credentials o BookingReference

Element Name BookingReference

Description Must be in the format /^.\w+\.\d+?$/

Type String

Required Yes

Example XML Request for DynamicBookings.CancelBooking POST /SOAP/1.2/DynamicBookings.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#CancelBooking" Content-Length: 806 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:CancelBooking xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> HolidayTaxis Development Guide Page 78 of 97

<AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <BookingReference xsi:type="xsd:string">755338</BookingReference> </tns:CancelBooking> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

DynamicBookings.CancelBookingResponse DynamicBookings.CancelBookingResponse Element Blocks PassengerDetails o return

Element Name return

Value Returns True if booking cancelled successfully or False if booking already cancelled or already travelled

Type Boolean

Example XML Response for DynamicBookings.CancelBooking HTTP/1.2 200 OK Date: Thu, 21 May 2009 13:45:01 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 472 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:CancelBookingResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <return xsi:type="xsd:boolean">true</return> </ns1:CancelBookingResponse> HolidayTaxis Development Guide Page 79 of 97

</SOAP-ENV:Body></SOAP-ENV:Envelope>

REPORTS
Reports.GetAgencyDetails The Reports.GetAgencyDetails method will return all agencies registered under the affiliate code.

Reports.GetAgencyDetails Request Reports.GetAgencyDetails Element Blocks Credentials

Example XML Request for Reports.GetAgencyDetails POST /SOAP/1.2/Reports.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetAgencyDetailsResults" Content-Length: 743 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><tns:GetAgencyDetails xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> </tns:GetAgencyDetails> </SOAP-ENV:Body> </SOAP-ENV:Envelope> HolidayTaxis Development Guide Page 80 of 97

Reports.GetAgencyDetailsResponse Reports.GetAgencyDetailsResponse Element Blocks GetAgencyDetailsResults (ArrayOfGetAgencyDetailsResults)

Child Elements of GetAgencyDetailsResults Element Name Value Type AgentReference Always returned String (Max 50 characters) Active True/ False Boolean AgencyName Always returned String (Max 50 characters) ContactName Always returned String (Max 50 characters) ContactTelephone Always returned String (Max 50 characters) ContactEmailAddress Always returned String (Max 100 characters) MarkupMinimum Always returned Float MarkupPercentage The percentage that Float products will be markup by. If used in conjunction with the MarkupMinimum it will use the higher of the two values Example XML Response for Reports.GetAgencyDetails
HTTP/1.2 200 OK Date: Thu, 21 May 2009 13:54:35 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 122143 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetAgencyDetailsResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <GetAgencyDetailsResults xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:GetAgencyDetailsResults[212]"> <item xsi:type="tns:GetAgencyDetailsResults"> <AgentReference xsi:type="xsd:string">MyAgent1</AgentReference>

HolidayTaxis Development Guide

Page 81 of 97

<Active xsi:type="xsd:boolean">true</Active> <AgencyName xsi:type="xsd:string">MyTravelAgent1</AgencyName> <ContactName xsi:type="xsd:string">Mr Test1 </ContactName> <ContactTelephone xsi:type="xsd:string">01234567890</ContactTelephone> <ContactEmailAddress xsi:type="xsd:string">test1@myagency1.com</ContactEmailAddress> <MarkupMinimum xsi:type="xsd:float">0.00</MarkupMinimum> <MarkupPercentage xsi:type="xsd:float">0.00</MarkupPercentage> </item> <item xsi:type="tns:GetAgencyDetailsResults"> <AgentReference xsi:type="xsd:string">MyAgent2</AgentReference> <Active xsi:type="xsd:boolean">true</Active> <AgencyName xsi:type="xsd:string">MyTravelAgent2</AgencyName> <ContactName xsi:type="xsd:string">Mr Test2 </ContactName> <ContactTelephone xsi:type="xsd:string">01234567892</ContactTelephone> <ContactEmailAddress xsi:type="xsd:string">test1@myagency2.com</ContactEmailAddress> <MarkupMinimum xsi:type="xsd:float">0.00</MarkupMinimum> <MarkupPercentage xsi:type="xsd:float">0.00</MarkupPercentage> </item> </GetAgencyDetailsResults> </ns1:GetAgencyDetailsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Reports.GetBookings The Reports.GetBookings method will return all bookings within the dates selected. Reports.GetBookings Request Reports.GetBookings Element Blocks Credentials BookingsSearch

Element Name DateFrom

Child Elements of BookingsSearch Description Type DateTime (ISO8601 format DateTime 2009-06-01T09:00:00.) DateTime (ISO8601 format 2009-06-08T09:00:00.) Booked/ Arrival/ Departure Date Based on Live/ Cancelled DateTime String String

Required Yes

DateTo DateBasedOn BookingStatus

Yes Yes Yes Page 82 of 97

HolidayTaxis Development Guide

bookings or both Example XML Request for Reports.GetBookings POST /SOAP/1.2/Reports.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetBookings" Content-Length: 1028 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetBookings xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <BookingsSearch xsi:type="tns:GetBookingsSearch"> <DateFrom xsi:type="xsd:dateTime">2009-01-31T00:00:00</DateFrom> <DateTo xsi:type="xsd:dateTime">2009-03-31T00:00:00</DateTo> <DateBasedOn xsi:type="xsd:string">BKD</DateBasedOn> <BookingStatusxsi:type="xsd:string"></BookingStatus> </BookingsSearch> </tns:GetBookings> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Reports.GetBookingsResponse Reports.GetBookingsResponse Element Blocks GetBookingsResults (ArrayOfGetBookingsResults)

HolidayTaxis Development Guide

Page 83 of 97

Element Name BookingReference AgentReference Status LeadName DateOfTravel CostPrice

Child Elements of GetBookingResults Value Type Always returned String (Max 50 characters) Always returned String (Max 50 characters) Always returned LIVE or String CANX Always returned String (Max 50 characters) Always returned String (Max 50 characters) Always returned Float

Example XML Response for Reports.GetBookings


HTTP/1.2 100 Continue HTTP/1.2 200 OK Date: Thu, 21 May 2009 15:49:05 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 18482 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetBookingsResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <GetBookingsResults xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:GetBookingsResults[45]"> <item xsi:type="tns:GetBookingsResults"> <BookingReference xsi:type="xsd:string">123456</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent1</AgentReference> <Status xsi:type="xsd:string">LIVE</Status> <Leadname xsi:type="xsd:string">Mr Test1</Leadname> <DateOfTravel xsi:type="xsd:dateTime">2009-02-01T19:05:00</DateOfTravel> <CostPrice xsi:type="xsd:float">16.00</CostPrice> </item> <item xsi:type="tns:GetBookingsResults"> <BookingReference xsi:type="xsd:string">123457</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent2</AgentReference> <Status xsi:type="xsd:string">LIVE</Status> <Leadname xsi:type="xsd:string">Mr Test2</Leadname> <DateOfTravel xsi:type="xsd:dateTime">2009-02-01T19:05:00</DateOfTravel> <CostPrice xsi:type="xsd:float">42.00</CostPrice> </item> </GetBookingsResults>

HolidayTaxis Development Guide

Page 84 of 97

</ns1:GetBookingsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Reports.GetCommercialAgreements The Reports.GetCommercialAgreements method will return the initial commercial agreement dates and terms. Reports.GetCommercialAgreements Request Reports.GetCommercialAgreements Element Blocks Credentials

Example XML Request for Reports.GetCommercialAgreements POST /SOAP/1.2/Reports.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetCommercialAgreementsResults" Content-Length: 757 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body><tns:GetCommercialAgreements xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> </tns:GetCommercialAgreements> </SOAP-ENV:Body></SOAP-ENV:Envelope>

HolidayTaxis Development Guide

Page 85 of 97

Reports.GetCommercialAgreementsResponse

Reports.GetCommercialAgreements Element Blocks GetCommercialAgreementsResults (ArrayOfGetCommercialAgreementsResults)

Child Elements of GetCommercialAgreements Element Name Value Type Description Always returned String (Max 50 characters) StartDate DateTime (ISO8601 format DateTime 2008-06-08T09:00:00.) EndDate AgreementPayment AgreementFixed DateTime (ISO8601 format 2009-06-08T09:00:00.) Always returned If true then the AgreementPayment is a fixed value else it is a percentage DateTime Float Boolean

Example XML Response for Reports.GetCommercialAgreements HTTP/1.2 200 OK Date: Thu, 21 May 2009 16:54:55 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 1021 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV: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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetCommercialAgreementsResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <GetCommercialAgreementsResults xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:GetCommercialAgreementsResults[1]"> HolidayTaxis Development Guide Page 86 of 97

<item xsi:type="tns:GetCommercialAgreementsResults"> <Description xsi:type="xsd:string">Initial Agreement</Description> <StartDate xsi:type="xsd:dateTime">2004-07-01T00:00:00</StartDate> <EndDate xsi:type="xsd:dateTime">2009-12-31T23:59:59</EndDate> <AgreementPayment xsi:type="xsd:float">1.00</AgreementPayment> <AgreementFixed xsi:type="xsd:boolean">true</AgreementFixed> </item> </GetCommercialAgreementsResults> </ns1:GetCommercialAgreementsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Reports.GetCommissionSummary The Reports.GetCommissionSummary method will return a commission summary for all bookings within the month and year selected. Reports.GetCommissionSummary Request Reports.GetCommissionSummary Element Blocks Credentials o MonthYear

Element Name MonthYear

Description Must be MM/YYYY format

Type String

Required Yes

Example XML Request for Reports.GetCommissionSummary POST /SOAP/1.2/Reports.php HTTP/1.0 Host: testserver.holidaytaxis.com:443 User-Agent: NuSOAP/0.7.3 (1.114) Content-Type: text/xml; charset=UTF-8 SOAPAction: "https://holidaytaxis.com/webservice#GetCommissionSummaryResults" Content-Length: 803 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPHolidayTaxis Development Guide Page 87 of 97

ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetCommissionSummary xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:nil="true" xsi:type="xsd:string"/> </Credentials> <MonthYear xsi:type="xsd:string">01/2009</MonthYear> </tns:GetCommissionSummary> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Reports.GetCommissionSummaryResponse

Reports.GetCommissionSummary Element Blocks GetCommissionSummaryResults (ArrayOfGetCommissionSummaryResults) Element Name BookingReference AgentReference Child Elements of GetCommissionSummary Value Type HolidayTaxis booking String (Max 50 characters) reference The reference of the agent String (Max 50 characters) that made the booking The date the booking was fulfilled Always returned Agreed commission rate DateTime (ISO8601 format 2009-06-08T09:00:00.) Float Float

FullfillmentDate CommercialRate Commission

Example XML Response for Reports.GetCommissionSummary


HTTP/1.2 200 OK Date: Thu, 21 May 2009 17:11:22 GMT Server: Apache X-Powered-By: PHP/5.2.9-pl2-gentoo X-SOAP-Server: NuSOAP/0.7.3 (1.114) Content-Length: 115191 Content-Type: text/xml; charset=UTF-8 <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

HolidayTaxis Development Guide

Page 88 of 97

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <ns1:GetCommissionSummaryResponse xmlns:ns1="https://holidaytaxis.com/webservice"> <GetCommissionSummaryResults xsi:type="SOAP-ENC:Array" SOAPENC:arrayType="tns:GetCommissionSummaryResults[313]"> <item xsi:type="tns:GetCommissionSummaryResults"> <BookingReference xsi:type="xsd:string">577118</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent1</AgentReference> <FullfillmentDate xsi:type="xsd:dateTime">2009-02-10T16:30:00</FullfillmentDate> <CommercialDate xsi:nil="true" xsi:type="xsd:float"/> <Commission xsi:type="xsd:float">1.00</Commission> </item><item xsi:type="tns:GetCommissionSummaryResults"> <BookingReference xsi:type="xsd:string">582181</BookingReference> <AgentReference xsi:type="xsd:string">MyAgent2</AgentReference> <FullfillmentDate xsi:type="xsd:dateTime">2009-02-07T08:00:00</FullfillmentDate> <CommercialDate xsi:nil="true" xsi:type="xsd:float"/> <Commission xsi:type="xsd:float">1.00</Commission> </item> </GetCommissionSummaryResults> </ns1:GetCommissionSummaryResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

BOOKING VOUCHERS
Booking vouchers should be sent out by you to your agents and customers. The information to send in the booking voucher is returned in Bookings.CreateBookingResponse. A sample booking voucher can be viewed at https://testserver.holidaytaxis.com/SOAP/confirmation.html.

HolidayTaxis Development Guide

Page 89 of 97

PHP EXAMPLES
Products.GetResortProducts Example
<?php $header[] = "SOAPAction: http://holidaytaxis.com"; $header[] = "MIME-Version: 1.0"; $header[] = "Content-type: text/xml; charset=utf-8"; $soap = '<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns: GetResortProducts xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:type="xsd:string">en</Language> </Credentials> <ResortProductParameters xsi:type="tns:ResortProductParameters"> <AgentReference xsi:type="xsd:string"></AgentReference> <AirportGroupId xsi:type="xsd:int">1</AirportGroupId> <AirportId xsi:type="xsd:int">1</AirportId> <ResortId xsi:type="xsd:int">1</ResortId> <DateRequired xsi:type="xsd:dateTime"></DateRequired> </ResortProductParameters> </tns:GetResortProducts> </SOAP-ENV:Body> </SOAP-ENV:Envelope>'; $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL, 'https://testserver.holidaytaxis.com/SOAP/1.2/Products.php'); // set url to post to curl_setopt($ch, CURLOPT_POSTFIELDS, utf8_encode($soap) ); // add request curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); // run the whole process if (curl_errno($ch)) { echo '<h2>Error</h2><pre>' . curl_error($ch) . '</pre>'; }

HolidayTaxis Development Guide

Page 90 of 97

else { // Display the request and response $return_str .= '<h2>SOAP Request</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($soap, ENT_QUOTES) . '</textarea>'; $return_str .= '<h2>SOAP Response</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($result, ENT_QUOTES) . '</textarea>'; echo $return_str; } curl_close($ch); ?>

Bookings.GetDepartureAirports Example
<?php $header[] = "SOAPAction: http://holidaytaxis.com"; $header[] = "MIME-Version: 1.0"; $header[] = "Content-type: text/xml; charset=utf-8"; $soap = '<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetDepartureAirports xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:type="xsd:string">en</Language> </Credentials> </tns:GetDepartureAirports> </SOAP-ENV:Body> </SOAP-ENV:Envelope>'; $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL, 'https://testserver.holidaytaxis.com/SOAP/1.2/Bookings.php'); // set url to post to curl_setopt($ch, CURLOPT_POSTFIELDS, utf8_encode($soap) ); // add request curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); // run the whole process

HolidayTaxis Development Guide

Page 91 of 97

if (curl_errno($ch)) { echo '<h2>Error</h2><pre>' . curl_error($ch) . '</pre>'; } else { // Display the request and response $return_str .= '<h2>SOAP Request</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($soap, ENT_QUOTES) . '</textarea>'; $return_str .= '<h2>SOAP Response</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($result, ENT_QUOTES) . '</textarea>'; echo $return_str; } curl_close($ch); ?>

Bookings.GetBookingTypes Example
<?php $header[] = "SOAPAction: http://holidaytaxis.com"; $header[] = "MIME-Version: 1.0"; $header[] = "Content-type: text/xml; charset=utf-8"; $soap = '<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetBookingTypes xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:type="xsd:string">en</Language> </Credentials> </tns:GetBookingTypes> </SOAP-ENV:Body> </SOAP-ENV:Envelope>'; $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL, 'https://testserver.holidaytaxis.com/SOAP/1.2/Bookings.php'); // set url to post to curl_setopt($ch, CURLOPT_POSTFIELDS, utf8_encode($soap) ); // add request curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

HolidayTaxis Development Guide

Page 92 of 97

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); // run the whole process if (curl_errno($ch)) { echo '<h2>Error</h2><pre>' . curl_error($ch) . '</pre>'; } else { // Display the request and response $return_str .= '<h2>SOAP Request</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($soap, ENT_QUOTES) . '</textarea>'; $return_str .= '<h2>SOAP Response</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($result, ENT_QUOTES) . '</textarea>'; echo $return_str; } curl_close($ch); ?>

DynamicBookings.GetGateways Example
<?php $header[] = "SOAPAction: http://holidaytaxis.com"; $header[] = "MIME-Version: 1.0"; $header[] = "Content-type: text/xml; charset=utf-8"; $soap = '<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 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" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="https://holidaytaxis.com/webservice"> <SOAP-ENV:Body> <tns:GetGateways xmlns:tns="https://holidaytaxis.com/webservice"> <Credentials xsi:type="tns:Credentials"> <AffiliateCode xsi:type="xsd:string">MyAffiliateCode</AffiliateCode> <Password xsi:type="xsd:string">MyPassword</Password> <Language xsi:type="xsd:string">en</Language> </Credentials> </tns:GetGateways> </SOAP-ENV:Body> </SOAP-ENV:Envelope>'; $ch = curl_init(); // initialize curl handle

HolidayTaxis Development Guide

Page 93 of 97

curl_setopt($ch, CURLOPT_URL, 'https://testserver.holidaytaxis.com/SOAP/1.2/DynamicBookings.php'); // set url to post to curl_setopt($ch, CURLOPT_POSTFIELDS, utf8_encode($soap) ); // add request curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); // run the whole process if (curl_errno($ch)) { echo '<h2>Error</h2><pre>' . curl_error($ch) . '</pre>'; } else { // Display the request and response $return_str .= '<h2>SOAP Request</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($soap, ENT_QUOTES) . '</textarea>'; $return_str .= '<h2>SOAP Response</h2>'; $return_str .= '<textarea cols="70" rows="12" readonly>' . htmlspecialchars($result, ENT_QUOTES) . '</textarea>'; echo $return_str; } curl_close($ch); ?>

HolidayTaxis Development Guide

Page 94 of 97

PROCESS FLOW
Credentials (Required for all methods) AffiliateCode Password Language (Optional)

Key: Request Response

Also returns AirportGroupName AirportName AirportCode ResortName

GetAllDestinations

AirportGroupId AirportId ResortId

AgentReference (Optional) DateRequired (Optional)

GetResortProducts

Also returns all product information for the airport and resort.

ProductId

BookingTypeId

GetBookingTypes
OutboundArrivalDateTime InboundPickupDatetime AgentReference (Optional)

GetProductPrice

NumberOfVehicles NumberOfAdults NumberOfChildren NumberOfInfants DepartureAirportId ArrivalAirportId

UnitPrice TotalPrice ProductId

GetDepartureAirports
GeneralConfirmationDetails OutboundConfirmationDetails InboundConfirmationDetails ReconfirmationDetails

CreateBooking

GeneralDetails

OutboundDetails

OutboundDetails

AgentReference (Optional) DepartureAirportId ArrivalAirportId OrderReference (Optional) FlightNumber FlightNumber BookingTypeId DepartureDatetime DepartureDatetime NumberOfVehicles ArrivalDatetime PickupDatetime NumberOfAdults AccommodationName AccommodationName NumberOfChildren AccommodationAddress1 AccommodationAddress1 NumberOfInfants AccommodationAddress2 AccommodationAddress2 LeadPassengersTitle AccommodationAddress3 AccommodationAddress3 LeadPassengersForename AccommodationTelephone AccommodationTelephone Number Number LeadPassengersSurname LeadPassengersEmailAddress LeadPassengersMobileTelephone Number PaymentDetails are required if no AgentReference is entered

HolidayTaxis Development Guide

Page 95 of 97

TESTING REQUIREMENTS
When you have been set up with a test account, the minimum requirement for testing the HolidayTaxis web service is as follows; Products.GetAllDestinations o Please note that this method has the largest payload and we recommend that this is cached locally. You will also need to map the HolidayTaxis destinations and resorts to your own. For more information, please email us on webservices@holidaytaxis.com. Products.GetResortProducts o Test the information returned from GetAllDestinations to return the ProductId. Products.GetProductPrice o Test for per person and per vehicle pricing with the ProductIds returned in GetResortProducts. Bookings.CreateBooking o Test different product types and destinations as well as multiple pax bookings. Booking Voucher o Booking vouchers should be sent out by you to your agents and customers. The information to send in the booking voucher is returned in Bookings.CreateBookingResponse. o A sample booking voucher can be viewed at https://testserver.holidaytaxis.com/SOAP/confirmation.html. o Please send a copy of your booking voucher to us on webservices@holidaytaxis.com.

HolidayTaxis Development Guide

Page 96 of 97

APPENDICES
If you already have a HolidayTaxis XML web services account and wish to upgrade to version 1.2, please email us on webservices@holidaytaxis.com. More information and sample clients can be found at; https://testserver.holidaytaxis.com/SOAP/1.2

HolidayTaxis Development Guide

Page 97 of 97

Anda mungkin juga menyukai