BA Priced Availability Web Service

Priced Availability Web Service
Interface Specification
Last updated: 06th January 2009
No part of this document may be reproduced or adapted in any form, including photocopying or storing it by electronic means, except as is necessary
for the purpose of the recipient's dealings with British Airways, without the written permission of British Airways Information Management (Im).
Any copies made of any part of this document shall include the notice: “Copyright © British Airways Plc”.
No information contained in this
document shall be disclosed to any third party without the written permission of British Airways.
Table of Contents
1
Introduction
3
2
Interface Design
3
2.1
Request and Response Object elements
2.1.1 WSDL & Schemas
2.1.2 OTA Request and Response
Request
Response
3
Accessing the GetPricedAvailability service
3.1
3.2
3.3
3.4
3.5
3.6
4
Returning the customer to ba.com
4.1
5
Information required to implement this service
Support Details
URL to access this web service
Sample SOAP Request to access this web service
Sample SOAP Response
Sample SOAP Response with errors
Deeplinking into ba.com selling process
Frequently Asked Questions
5.1
FAQs
4
4
4
5
5
7
7
7
8
8
9
14
17
17
21
21
2
1 Introduction
BA has developed a web service called Priced Availability Web Service (PAWS), based on
OTA_AirLowFareSearchGateway_V1, that allows 3rd parties access to real time fares and availability for
A-B journey types (i.e. direct one-way flights) and A-B-A journey types (i.e. direct return flights).
Please note that screen scraping of ba.com for flight priced availability is not permitted. IP addresses that
engage in screen scraping activity will be blocked.
2 Interface Design
This web service is called with the following inputs:
For AB journey:










CompanyShortName
ID
DepartureDateTime (Outbound)
LocationCode (Origin - Outbound)
LocationCode (Destination - Outbound)
Cabin (economy, business, first)
Cabin Subtype (premium, only used in conjunction with economy when requesting Premium
Economy class)
PassengerTypeQuantity (Adult)
PassengerTypeQuantity (Children)
PassengerTypeQuantity (Infant)
Additionally for ABA journey:



DepartureDateTime (Inbound)
LocationCode (Origin- Inbound)
LocationCode (Destination – Inbound)
For requests with the same outbound and inbound date, a standard “Minimum Connection Time” of 90
minutes will be used. That is, only flight combinations will be returned where the departure time of the
inbound flight is more than 90 minute later than the arrival time of the outbound flight.
The output data this service returns includes:
For AB journey:
 DepartureDateTime (Outbound)
 ArrivalDateTime (Outbound)
 FlightNumber (Outbound)
 DepartureAirport (Outbound)
 ArrivalAirport (Outbound)
 CabinCode (Outbound)
 ResBookDesigCode (Outbound) (Booking Class)
 PassengerTypeQuantity (always 1 Adult)
 BaseFare
 Taxes, fees, charges and surcharges
 CurrencyCode
 TotalFare (Total Price: ie. BaseFare plus Taxes, Fees, Charges and Surcharges)
Additionally for ABA journey:



DepartureDateTime (Inbound)
ArrivalDateTime (Inbound)
FlightNumber (Inbound)
3




DepartureAirport (Inbound)
ArrivalAirport (Inbound)
CabinCode (Inbound)
ResBookDesigCode (Inbound) (Booking Class)
Assumptions/Limitations:










2.1
This service will support both AB and ABA journey types.
This service does not support journeys that involve taking connecting flights. However it does support
flights that have a stop within the same flight number (eg. LHR-SYD).
The cheapest available price for one Adult will be returned for each flight combination on the
requested day. This price will be based on the availability for all seated passengers (ie. total number
of Adults and Children).
Returns only direct BA operated or marketed flights. If the flight is a codeshare flight, the BA
marketing code and flight number, along with the operating carrier name, will be returned.
Flight durations will not be supplied. It is assumed they can be determined from the supplied
departure and arrival times.
The service only supports specific dates for searching flights (i.e. it will not return prices for dates
either side of the specified date)
The user request won’t be validated by this service before sending the request to the host layer
(except the basic XML schema validations) so an error will be returned if a request is sent for journey
types / routes not supported by this service.
Airport code and City codes are accepted in the request for origin or destination stations.
e.g. LON, LHR, LGW, LCY..etc are accepted.
Economy, Premium Economy, Business and First cabins are accepted.
If there is no availability on the requested dates on either outbound or inbound (or both), an Error
XML will be returned with a message “No seats available on the requested itinerary”.
Request and Response Object elements
2.1.1 WSDL & Schemas
WSDL
 The WSDL contains the webservice definition of datatypes, request/response messages and
schemas.
Schemas
 Here are the main schemas used in the webservice.
2.1.2 OTA Request and Response
4
Note: In the HTTP header that acompanies your soap request please ensure you set :
SOAPAction: ""
Request
Service Input Parameters
Input Parameters
Type
OTA_AirLowFareSearchR
Q
Request object
Schema Definition
(http://www.ba.com/schema/)
OTA_AirLowFareSearchRQ.xsd
Optional/
Compulsory
Schema Definition
(http://www.ba.com/schema/)
Optional/
Compulsory
C
OTA_AirLowFareSearchRQ Data Fields
Field Type
Data Type
CompanyShortName
CompanyNameType
/POS/Source/RequestorID/Compan
yName/@CompanyShortName
C
ID
UniqueID_Type
/POS/Source/RequestorID/@ID
C
DepartureDateTime
TimeInstantType
/OriginDestinationInformation/Depar
tureDateTime
C
LocationCode
LocationType
/OriginDestinationInformation/Origin
Location/@LocationCode
C
LocationCode
LocationType
/OriginDestinationInformation/Destin
ationLocation/@LocationCode
C
LocationCode
LocationType
/OriginDestinationInformation/Origin
Location/@LocationCode
C
LocationType
/OriginDestinationInformation/Destin
ationLocation/@LocationCode
C
Cabin
CabinType
/TravelPreferences/CabinPref/@Ca
bin
C
CabinSubtype
StringLength1to64
/TravelPreferences/CabinPref/@Ca
binSubType
O
PassengerTypeQuantity
PassengerTypeQuanti
tyType
/TravelerInfoSummary/AirTravelerA
vail/PassengerTypeQuantity
C
PassengerTypeQuantity
PassengerTypeQuanti
tyType
/TravelerInfoSummary/AirTravelerA
vail/PassengerTypeQuantity
C
PassengerTypeQuantity
PassengerTypeQuanti
tyType
/TravelerInfoSummary/AirTravelerA
vail/PassengerTypeQuantity
C
(For return journey)
LocationCode
(For return journey)
(For premium economy)
Response
Service Input Parameters
Input Parameters
Response object
Type
OTA_AirLowFareSearchRS
Schema Definition
(http://www.ba.com/schema/)
OTA_AirLowFareSearchRS
Optional/
Compulsory
Schema Definition
(http://www.ba.com/schema/)
Optional/
Compulsory
C
OTA_AirLowFareSearchRS Data Fields
Field Type
Data Type
5
TransactionIdentifier
StringLength1to32
OTA_AirLowFareSearchRS/
TransactionIdentifier
C
ArrivalDateTime
DateTime
/PricedItineraries/PricedItinerary/AirI
tinerary/OriginDestinationOptions/Or
iginDestinationOption/FlightSegment
/@ArrivalDateTime
C
DepartureDateTime
DateTime
/PricedItineraries/PricedItinerary/AirI
tinerary/OriginDestinationOptions/Or
iginDestinationOption/FlightSegment
/@DepartureDateTime
C
FlightNumber
FlightNumberType
/PricedItineraries/PricedItinerary/AirI
tinerary/OriginDestinationOptions/Or
iginDestinationOption/FlightSegment
/@FlightNumber
C
LocationCode
StringLength1to8
/PricedItineraries/PricedItinerary/AirI
tinerary/OriginDestinationOptions/Or
iginDestinationOption/FlightSegment
/DepartureAirport@/LocationCode
LocationCode
StringLength1to8
/PricedItineraries/PricedItinerary/AirI
tinerary/OriginDestinationOptions/Or
iginDestinationOption/FlightSegment
/ArrivalAirport/@LocationCode
C
CabinCode
AlphaLength1
/PricedItineraries/PricedItinerary/AirI
tinerary/OriginDestinationOptions/Or
iginDestinationOption/FlightSegment
/TPA_Extensions/CabinInfo/@Cabin
Code
C
BaseFare/ Amount
Money
/PricedItineraries/PricedItinerary/AirI
tineraryPricingInfo/ItinTotalFare/Bas
eFare/@Amount
C
Tax/ Amount
Money
/PricedItineraries/PricedItinerary/AirI
tineraryPricingInfo/ItinTotalFare/Tax
es/Tax/@Amount
C
TotalFare/ Amount
Money
/PricedItineraries/PricedItinerary/AirI
tineraryPricingInfo/ItinTotalFare/Tot
alFare/@Amount
C
TotalFare/
CurrencyCode
AlphaLength3
/PricedItineraries/PricedItinerary/AirI
tineraryPricingInfo/ItinTotalFare/Tot
alFare/@CurrencyCode
C
PassengerTypeQua
ntity/ Code
String
/PricedItineraries/PricedItinerary/AirI
tineraryPricingInfo/PTC_FareBreakd
owns/PTC_FareBreakdown/Passen
gerTypeQuantity/@Code
C
Quantity
nonNegativeInteger
/PricedItineraries/PricedItinerary/AirI
tineraryPricingInfo/PTC_FareBreakd
owns/PTC_FareBreakdown/Passen
gerTypeQuantity/@Quantity
C
6
3 Accessing the GetPricedAvailability service
3.1
Information required to implement this service
In order to be set-up to use this service, please provide the following information;
Company Name
Company website address (URL)
CompanyShortName (used for logging and
validations purposes) Case Sensitive, maximum
16 AlphaNumeric characters.
IP address(es) that will use the service
(include those that are used for test as well as for
production)
Host name
Estimated volume of requests per day
Will requests be sent in Batch or Real Time?
If Batch, please advise preferred time between
00:30 and 05:30 for data download
Technical Contact name / telephone / email
details
Commercial Contact name / telephone / email
details
For Marketing Partners and Affiliates
In Europe, Asia-Pacific or UK and Ireland please contact Stephanie Small ([email protected]) at
Neo@Ogilvy.
In the United States please contact Judy Goldfarb ([email protected]) or Melissa Fernandez
([email protected]) at British Airways.
For all other users please contact Tim Holt ([email protected]) in the ba.com Business Integration team at
British Airways.
Your request will be added to the ba.com Operational Support portfolio.
Once actioned you will be assigned the Username and Password required in the message header. These
must be used, along with the CompanyShortName in the request.
Please test the service is working correctly and validate the fares returned by comparing the price returned
using a request on ba.com. Note section 3.6 with example errors.
If there is a difference the please review the method in which the data string is being sent.
3.2
Support Details - Reporting faults and issues with British Airways API, PAWS
7
Send an email to:

[email protected]
The email subject should be:

“Company name – PAWS issue”
The email should include the following:

Your name and Company

Your contact Telephone Number (including full dialling code)

Full Location inc. country, town, building

System / Technology / Hardware involved

Number of users affected
Short summary of the problem:

Error / System Message: Please put in the specific error message received.

Details of actions leading to problem / question (commands issued, buttons clicked etc.)

Example SOAP of request being sent (including username and password to connect to service.

Example of any response received from the service.
Additional

3.3
Attachments of screenshots displaying the error would also be useful
URL to access this web service
https://services.ba.com/webservices/gateway/CAPOSkyWSLive/AirLowFareSearchServic
e
3.4
Sample SOAP Request to access this web service (one-way journey)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://www.opentravel.org/OTA/2003/05">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsswssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-11707096" xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>USERID</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<OTA_AirLowFareSearchRQ xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05"
Version="2.008">
<POS>
<Source >
<RequestorID Type="7" ID="BA.com_Direct">
<CompanyName CompanyShortName=”PARTNER"/>
8
</RequestorID>
</Source>
</POS>
<OriginDestinationInformation>
<DepartureDateTime>2008-08-06T07:15:00+00:00</DepartureDateTime>
<OriginLocation LocationCode="LHR"/>
<DestinationLocation LocationCode="CDG"/>
</OriginDestinationInformation>
<TravelPreferences>
<CabinPref Cabin="Economy"/>
</TravelPreferences>
<TravelerInfoSummary>
<AirTravelerAvail>
<PassengerTypeQuantity Code="ADT" Quantity="1"/>
<PassengerTypeQuantity Code="CHD" Quantity="2"/>
<PassengerTypeQuantity Code="INF" Quantity="0"/>
</AirTravelerAvail>
</TravelerInfoSummary>
</OTA_AirLowFareSearchRQ>
</soapenv:Body>
</soapenv:Envelope>
3.5
Sample SOAP Response (one-way journey)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<a:OTA_AirLowFareSearchRS EchoToken="esbserv-clx20az01-sb1-583831188143657663"
TransactionIdentifier="PARTNER" Version="1.0" xmlns:a="http://www.opentravel.org/OTA/2003/05"
xmlns:ns="http://www.ba.com/wsdl/availabilitymanagerv1"
xmlns:tns="http://www.ba.com/schema/availabilitymanager/tGetAvailabilityV2">
<a:Success/>
<a:PricedItineraries>
<a:PricedItinerary SequenceNumber="1">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T08:25:00" DepartureDateTime="2008-0806T06:15:00" FlightNumber="0302" ResBookDesigCode="M">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="319"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="71" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="113.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="71" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="113.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
9
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
<a:PricedItinerary SequenceNumber="2">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T09:40:00" DepartureDateTime="2008-0806T07:20:00" FlightNumber="0304" ResBookDesigCode="K">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="321"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
<a:PricedItinerary SequenceNumber="3">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T16:25:00" DepartureDateTime="2008-0806T14:05:00" FlightNumber="0314" ResBookDesigCode="K">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="319"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
10
<a:PassengerFare>
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
<a:PricedItinerary SequenceNumber="4">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T17:05:00" DepartureDateTime="2008-0806T14:45:00" FlightNumber="0316" ResBookDesigCode="K">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="319"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
<a:PricedItinerary SequenceNumber="5">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T18:30:00" DepartureDateTime="2008-0806T16:15:00" FlightNumber="0318" ResBookDesigCode="K">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="321"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
11
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="92" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="134.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
<a:PricedItinerary SequenceNumber="6">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T19:20:00" DepartureDateTime="2008-0806T17:00:00" FlightNumber="0322" ResBookDesigCode="H">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="321"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="137" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="179.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="137" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="179.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
<a:PricedItinerary SequenceNumber="7">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T22:30:00" DepartureDateTime="2008-0806T20:15:00" FlightNumber="0326" ResBookDesigCode="H">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="320"/>
12
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="137" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="179.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="137" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="179.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
<a:PricedItinerary SequenceNumber="8">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T13:00:00" DepartureDateTime="2008-0806T10:45:00" FlightNumber="0308" ResBookDesigCode="B">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="321"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="166" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="208.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="166" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="208.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
13
<a:PricedItinerary SequenceNumber="9">
<a:AirItinerary>
<a:OriginDestinationOptions>
<a:OriginDestinationOption>
<a:FlightSegment ArrivalDateTime="2008-08-06T21:15:00" DepartureDateTime="2008-0806T18:55:00" FlightNumber="0324" ResBookDesigCode="B">
<a:DepartureAirport LocationCode="LHR" Terminal="unknown"/>
<a:ArrivalAirport LocationCode="CDG"/>
<a:OperatingAirline CompanyShortName="British Airways"/>
<a:Equipment AirEquipType="320"/>
<a:MarketingAirline Code="BA"/>
<a:TPA_Extensions>
<a:CabinInfo CabinCode="M" CabinName="Euro Traveller"/>
</a:TPA_Extensions>
</a:FlightSegment>
</a:OriginDestinationOption>
</a:OriginDestinationOptions>
</a:AirItinerary>
<a:AirItineraryPricingInfo>
<a:ItinTotalFare>
<a:BaseFare Amount="166" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="208.2" CurrencyCode="GBP"/>
</a:ItinTotalFare>
<a:PTC_FareBreakdowns>
<a:PTC_FareBreakdown>
<a:PassengerTypeQuantity Code="ADT" Quantity="1"/>
<a:FareInfo>
<a:PassengerFare>
<a:BaseFare Amount="166" CurrencyCode="GBP"/>
<a:Taxes>
<a:Tax Amount="42.2" CurrencyCode="GBP" TaxCode="TOTALTAX"/>
</a:Taxes>
<a:TotalFare Amount="208.2" CurrencyCode="GBP"/>
</a:PassengerFare>
</a:FareInfo>
</a:PTC_FareBreakdown>
</a:PTC_FareBreakdowns>
</a:AirItineraryPricingInfo>
</a:PricedItinerary>
</a:PricedItineraries>
</a:OTA_AirLowFareSearchRS>
</soapenv:Body>
</soapenv:Envelope>
3.6
Example SOAP Response with errors
(1)
1.
Error Message
Reason
System busy - please try later
Maximum allowable transaction limit is exceeded
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
</soap:Header>
<soapenv:Body>
<ns10:OTA_AirLowFareSearchRS Version="1.0" xmlns:ns10="http://www.opentravel.org/OTA/2003/05">
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error Code="191" Type="3">System busy - please try later</Error>
</Errors>
</ns10:OTA_AirLowFareSearchRS>
</soapenv:Body>
</soapenv:Envelope>
(2)
2.
Error Message
Reason
Required consolidator name field missing
CompanyShortName is missing from the transaction
request
14
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
</soap:Header>
<soapenv:Body>
<ns10:OTA_AirLowFareSearchRS Version="1.0" xmlns:ns10="http://www.opentravel.org/OTA/2003/05">
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error Code="321" Type="10">Required consolidator name field missing</Error>
</Errors>
</ns10:OTA_AirLowFareSearchRS>
</soapenv:Body>
</soapenv:Envelope>
(3)
3.
Error Message
Reason
Invalid transaction request
Transaction identifier field contains an invalid
CompanyShortName name
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
</soap:Header>
<soapenv:Body>
<ns10:OTA_AirLowFareSearchRS Version="1.0" xmlns:ns10="http://www.opentravel.org/OTA/2003/05">
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error Code="195" Type="4">Invalid transaction request</Error>
</Errors>
</ns10:OTA_AirLowFareSearchRS>
</soapenv:Body>
</soapenv:Envelope>
(4)
4.
Error Message
Reason
System currently unavailable
When the Priced Availability Web Service is down
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
</soap:Header>
<soapenv:Body>
<ns10:OTA_AirLowFareSearchRS Version="1.0" xmlns:ns10="http://www.opentravel.org/OTA/2003/05">
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error Code="187" Type="1">System currently unavailable</Error>
</Errors>
</ns10:OTA_AirLowFareSearchRS>
</soapenv:Body>
</soapenv:Envelope>
(5)
5.
Error Message
Reason
Undetermined error - please report
When the system returns an unknown error
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
</soap:Header>
<soapenv:Body>
<ns10:OTA_AirLowFareSearchRS Version="1.0" xmlns:ns10="http://www.opentravel.org/OTA/2003/05">
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error Code="197" Type="1">Undetermined error - please report</Error>
</Errors>
</ns10:OTA_AirLowFareSearchRS>
</soapenv:Body>
</soapenv:Envelope>
[6)
6.
Error Message
No seats available for the requested itinerary
15
Reason
When there is no availability for the requested cabin or
for the requested number of seats or for the requested
dates or when the origin/destination airport code is
invalid or routing not supported by this service.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
</soap:Header>
<soapenv:Body>
<ns3231:OTA_AirLowFareSearchRS Version="1.0" xmlns:ns3231="http://www.opentravel.org/OTA/2003/05">
<Errors xmlns="http://www.opentravel.org/OTA/2003/05">
<Error Code="322" Type="3">No seats available for the requested itinerary</Error>
</Errors>
</ns3231:OTA_AirLowFareSearchRS>
</soapenv:Body>
</soapenv:Envelope>
16
4 Returning the customer to ba.com
4.1
Deeplinking into ba.com selling process
A customer can be directly ‘deep linked’ back into the ba.com selling process for the specific journey and
dates in the following way. This methodology applies to journeys that are within the scope of the web service.
–
Main URL
• http://www.britishairways.com or http://www.ba.com/
Following are the deep link details for returning a customer, who has requested either a direct oneway or return journey, to either;



Plan your journey page (initial input page)
Calendar page (offering lowest fares +/- 3 days of requested date
Flight list page (offering lowest fares on the specific requested dates)
Affiliate string
For tracking with Affiliate Window you must add:
 The Affiliate Window tracking string
 The BA URL
Example URL(Replace !!!id!!! with your ID):
http://www.awin1.com/awclick.php?mid=2601&id=!!!id!!!&p=http://ba.com/travel/fx?eId=111009&from=LHR&t
o=JFK&ad=2&cabin=J&depDate=29/11/09&retDate=14/12/09&myDatesAreFixedSelected=true
Building British Airways Deep Links
It is possible to create deep links to direct customers to 4 different parts of the flight selling process on
ba.com. These are:
1. Plan your journey page (a pre-populated form for customers to search for flights)
2. Calendar page (showing the prices for 3 days either side of the requested dates)
3. Flight list page (showing all available flights on the exact dates requested)
4. Fare quote page (showing the final details once a date and flight have been selected)
1. Plan your journey
Start with the string: http://ba.com/travel/fx?
Then add the following URL parameters:
 eId=1110011
 from=XXX, where XXX is the airport or city code or a name string that matches an airport or city, e.g.
LON or London
 to=XXX, as from
 ad=n, where n is the number of adults (value must be from 1 to 9)
 ch=n, where n is the number of children (value from 0 to 9 or omit if not needed)
 inf=n, where n is the number of infants (value from 0 to 9 and must not exceed the number of adults,
omit if not needed)
 cabin=M (economy), W (premium economy), J (business/club), F (first)
 depDate=dd/mm/yy
 retDate=dd/mm/yy (omit this parameter for one-way journeys)
 myDatesAreFixedSelected=true will tick the “My dates are fixed box” (omit this parameter if not
required)
 restrictionType=LOWEST or FLEXIBLE (when omitted the default is lowest)
 journeyType=OWFLT shows that this is a one-way flight (omit if linking to a return flight)
17
Examples:
1. Return journey from LHR to JFK, 29th November to 14th December 2009 for 2 adults in business class,
dates are fixed.
http://ba.com/travel/fx?eId=1110011&from=LHR&to=JFK&ad=2&cabin=J&depDate=29/11/09&retDate=14/12/
09&myDatesAreFixedSelected=true
2. One-way journey from LON to MAD, 29th November, 1 adult, 1 child, 1 infant in economy, looking for
flexible tickets.
http://ba.com/travel/fx?eId=1110011&from=LON&to=MAD&ad=1&ch=1&inf=1&cabin=M&depDate=29/11/09&
restrictionType=FLEXIBLE&journeyType=OWFLT
2. Calendar page
Start with the string: http://ba.com/travel/fx?
Then add the following URL parameters:
 eId=111009
 from=XXX, where XXX is the airport or city code or a name string that matches an airport or city, e.g.
LON or London
 to=XXX, as from
 ad=n, where n is the number of adults (value must be from 1 to 9)
 ch=n, where n is the number of children (value from 0 to 9 or omit if not needed)
 inf=n, where n is the number of infants (value from 0 to 9 and must not exceed the number of adults,
omit if not needed)
 cabin=M (economy), W (premium economy), J (business/club), F (first)
 depDate=dd/mm/yy
 retDate=dd/mm/yy (omit this parameter for one-way journeys)
 restrictionType=LOWEST or FLEXIBLE (this must be specified)
Examples:
1. Return journey from LHR to JFK, 29th November to 14th December 2009 for 2 adults in business class.
http://ba.com/travel/fx?eId=111009&from=LHR&to=JFK&ad=2&cabin=J&depDate=29/11/09&retDate=14/12/0
9&restrictionType=LOWEST
2. One-way journey from LON to MAD, 29th November, 1 adult, 1 child, 1 infant in economy, looking for
flexible tickets.
http://ba.com/travel/fx?eId=111009&from=LON&to=MAD&ad=1&ch=1&inf=1&cabin=M&depDate=29/11/09&r
estrictionType=FLEXIBLE
3. Flight list page
Start with the string: http://ba.com/travel/fx?
Then add the following URL parameters:
 eId=111009
 from=XXX, where XXX is the airport or city code or a name string that matches an airport or city, e.g.
LON or London
 to=XXX, as from
 ad=n, where n is the number of adults (value must be from 1 to 9)
 ch=n, where n is the number of children (value from 0 to 9 or omit if not needed)
 inf=n, where n is the number of infants (value from 0 to 9 and must not exceed the number of adults,
omit if not needed)
 cabin=M (economy), W (premium economy), J (business/club), F (first)
 depDate=dd/mm/yy
 retDate=dd/mm/yy (omit this parameter for one-way journeys)
 myDatesAreFixedSelected=true
 restrictionType=LOWEST or FLEXIBLE (this must be specified)
Examples:
18
1. Return journey from LHR to JFK, 29th November to 14th December 2009 for 2 adults in business class.
http://ba.com/travel/fx?eId=111009&from=LHR&to=JFK&ad=2&cabin=J&depDate=29/11/09&retDate=14/12/0
9&myDatesAreFixedSelected=true&restrictionType=LOWEST
2. One-way journey from LON to MAD, 29th November, 1 adult, 1 child, 1 infant in economy, looking for
flexible tickets.
http://ba.com/travel/fx?eId=111009&from=LON&to=MAD&ad=1&ch=1&inf=1&cabin=M&depDate=29/11/09&
myDatesAreFixedSelected=true&restrictionType=FLEXIBLE
4. Fare quote page
Start with the string: http://ba.com/travel/fx?
Then add the following URL parameters:
 eId=111054
 data= this consists of a 6-character string defining the journey and then a 24-character string for
each of the segments to be flown.
The 6 character string to define the journey is:
o 1=F (fare quote page)
o 2=number of adults (from 1 to 9)
o 3=number of children (from 0 to 9)
o 4=number of infants (from 0 to 9 must not exceed number of adults)
o 5=F (flexible tickets) or L (lowest price)
o 6=T (Executive Club points earning fares only) or F (any fare)
The 24-character string(s) are constructed as:
o 1-8: departure date in the format ddmmyyyy
o 9-12: departure time in the format hhmm
o 13-16: flight number (using leading zeros to pad to 4 digits if necessary)
o 17: cabin code for the segment (M, W, J, F)
o 18-20: departure airport 3-letter IATA code
o 21-23: destination airport 3-letter IATA code
o 24: T (outbound) or F (inbound)
 p= 3-letter currency code and original price quoted (e.g. GBP150.50). This is an optional value which
will show a warning to the customer if the final price is higher than the price quoted.
 e=FE
 c= original cabin class requested (M, W, J, F)
Examples:
1. Return journey from LHR to JFK, 29th November to 14th December 2009 for 2 adults in business class.
Flying out on the BA0175 at 11:00 and returning on the BA0174 at 19:01.
http://ba.com/travel/fx?eId=111054&data=F200LF2911200911000175JLHRJFKT1412200919010174JJFKLH
RF&p=GBP2215&e=FE&c=J
2. One-way journey from LON to MAD, 29th November, 1 adult, 1 child, 1 infant in economy, looking for
flexible tickets. Flying from Gatwick on the BA2466 at 14:10.
http://ba.com/travel/fx?eId=111054&data=F111FF2911200914102466JLGWMADT&p=GBP1001.50&e=FE&
c=M
Bypassing the global gateway (for customers without a ba.com cookie)
The easiest way to bypass a customers the global gateway page is to specify a country and language in the
start of the URL string for the deep link.
e.g.
Instead of http://ba.com/travel/fx?
for UK_English use: http://ba.com/travel/fx/en_gb?
for USA_English use: http://ba.com/travel/fx/en_us?
for Germany_German use: http://ba.com/travel/fx/de_de?
for France_French use: http://ba.com/travel/fx/fr_fr?
19
etc.
You can find out all of the combinations of language_country codes by visiting ba.com and changing your
country using the link on the main navigation.
This will automatically associate the link to a country and language, however it will also override any cookie
that the customer may have if they are an existing ba.com customer.
20
5 Frequently Asked Questions
5.1
FAQs
Q: What additional features does the new Priced Availability Web Service offer?
A: The latest release of the Priced Availability Web Service offers the following new features:
• AB one-way journeys
• OTA standard request and response
• Multiple airport codes for city query (e.g. ‘LON’ will return as many airports as applicable - LHR, LGW
and LCY)
• Fare based on availability for the total number of passengers in the request.
Q: Can I continue to use the same username I was using previously to access the new service?
A: New access rules have been set up. You will be assigned a new Username and Password for the service.
You will also need to use your CompanyShortName, determined by you. This CompanyShortName must be
specified in the access request and be no more than 16 alpha/numeric characters. See section 3.1.
Q: Can I change the Username and/or Password that has been issued by British Airways?
A: The Username and/or Password can only be changed by contacting your BA representative. This will be
treated as a new request and will follow the same process as outlined in section 3.1 for setting up new
access.
Q: Who do I advise of any IP address changes?
A: Please contact the relevant British Airways contact at least 2 weeks prior to any IP address updates to
ensure continuity of service. See section 3.1 for contact details.
Q: Can I request connecting journey information from the new service?
A: The Priced Availability Web Service does not return any connecting journey (ABC journey type i.e. GLA –
LHR – JFK) information.
Q: Can I screen scrape ba.com for connecting journey information?
A: British Airways must protect the operational integrity of ba.com, and therefore no longer allows 3rd party
sites to screen scrape the website. Any sites screen scraping ba.com will be blocked.
Q: Are there any alternative ways I can access connecting journey information?
A: Suppliers such as Amadeus (MetaPricer) and ITA (QPX) offer solutions that can provide a wider scope of
journey information. For further information please visit the websites of these suppliers - Amadeus,
www.amadeus.com; ITA, www.itasoftware.com .
.
Q: Can I query the service for any particular number of days either side of the specific date search? (e.g. +/-7
days)
A: No the request is for a specific single outbound/inbound date only.
Q: How do I get prices and availability for premium economy cabins?
A: For premium economy it is necessary to enter the cabin type as economy with the sub-type premium e.g.
<TravelPreferences>
<CabinPref Cabin="Economy" CabinSubtype = 'Premium'/>
</TravelPreferences>
* * * * * * * * * * * * * *
21