Version: 1.2 XML Web Services Publication Date: 11th April 2011
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
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
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
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
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
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.
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>
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
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
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.
Page 11 of 97
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>
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
AirportCode AirportName
Child Elements of Resorts Value HolidayTaxis Resort Id HolidayTaxis Airport or Port Id HolidayTaxis Airport Group or Country Id Resort Name
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.
Page 17 of 97
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
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
Int
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
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
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
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
Page 22 of 97
BookingTypeId
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
Yes Yes No
Int
No
InboundPickupDatetime
Date and time of inbound (return) pick-up. This should allow for 150 minutes check-in time plus the returned TransferMinutes
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
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.
Page 25 of 97
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>
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
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
<?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.
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
Page 29 of 97
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>
Page 30 of 97
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
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
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
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.
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
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
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
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"/>
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
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
Required No
UnitPrice
No
Yes
TotalPrice
Float
Yes
ProductId BookingTypeId
Int Int
Yes Yes
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
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
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
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
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>
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
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
LeadPassengersForename
Always returned
LeadPassengersSurname
Always returned
LeadPassengersEmailAddress
Always returned
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
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
Bookings.CancelBooking Method The Bookings.CancelBooking method will cancel the booking of the booking reference entered.
Bookings.CancelBooking Request
Type String
Required Yes
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
Value Returns True if booking cancelled successfully or False if booking already cancelled or already travelled
Type Boolean
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.
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
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>
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
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
Page 55 of 97
xsi:type="xsd:string">123</AccommodationTelephoneNumber><Instructions xsi:type="xsd:string"> Please note that it is <span style="font-weight: bold;">COMPULSORY </span>and <span style="font-weight: bold;">EXTREMELY </span>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.<br><br>To ensure that you get the correct vehicle please ensure your driver is aware of your name before you show him your booking voucher. <p>Terms and Conditions: <a href="http://www2.holidaytaxis.com/about/terms.php">www2.holidaytaxis.com/ about/terms.php</a></p></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.
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
Int
String (Max 10 characters) String (Max 50 characters) String (Max 50 characters) Page 57 of 97
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.
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
Element Name
Status
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
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>
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.
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
Page 62 of 97
ReturnDatetime
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
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)
GatewayTypeId
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
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
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
Yes
Yes
Yes
Page 69 of 97
LeadPassengersEmailAddress
Email address
LeadPassengersMobileTelephoneNumber
Yes
Yes
OrderReference TotalPrice
VehicleTypeId
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
DestinationAirport
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
No
SpecialInstructions
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
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})$/
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
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
SpecialInstructions BookingStatus
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.
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>
Page 77 of 97
DynamicBookings.CancelBooking The DynamicBookings.CancelBooking method cancels the booking of the booking reference entered.
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>
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.
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
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>
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
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
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>
Page 83 of 97
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
Page 84 of 97
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>
Page 85 of 97
Reports.GetCommercialAgreementsResponse
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
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
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.
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>'; }
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
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);
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
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); ?>
Page 94 of 97
PROCESS FLOW
Credentials (Required for all methods) AffiliateCode Password Language (Optional)
GetAllDestinations
GetResortProducts
Also returns all product information for the airport and resort.
ProductId
BookingTypeId
GetBookingTypes
OutboundArrivalDateTime InboundPickupDatetime AgentReference (Optional)
GetProductPrice
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
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.
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
Page 97 of 97