16.1 FlightPrice Overview
16.1 FlightPrice
Version
Version | Description | Release Status | Pre-Live Date | Live Date |
---|---|---|---|---|
1.0 | Decimal point correction for currency | |||
0.9 | Implementation of a new IT Fare Product | TBC | ||
0.8 | Updated fare product names | |||
0.7 | Updated cabin upsell option changes | |||
0.6 | Updated changes related to fare products | |||
0.5 | Updated MultiCity Itinerary changes | |||
0.4 | Updated Leisure Fare changes | |||
0.3 | Updated Price Class changes | |||
0.2 | Updated FlightPriceRS with journey duration elements | |||
0.1 | FlightPrice – Interface Specification |
Introduction
This service provides IATA Accredited Travel Agents, new retailers and Service Providers the ability to quote (price) for flights for the selected itinerary as per IATA NDC schema standards. It returns price quote for the selected flights, fare rules for each fare component and product attributes. It also returns Ticket Upsell (increase ticket flexibility) and Cabin Upsell (upgrade to the next available cabin) options, if applicable.
AirShopping Webservice
Interface Design
This web service is called with the following inputs:
- List of flight segments and for each flight segment the departure airport, arrival airport, flight number, booking class (selling class) and cabin name etc
- Number of anonymous passengers with passenger type
- Number of known passengers with passenger type, name and FQTV details
- Optional customer’s billing country
- Leisure Fare Type
The output data this service returns include:
- List of PricedFlightOffers where each PricedFlightOffer contains
- The total amount for the requested itinerary per passenger type
- Fare and Tax split per passenger type with tax breakdown
- Fare rules for each fare component
- Product attributes per flight segment where applicable
- Baggage allowance (hand baggage allowance and ticketed checked baggage allowance)
- Price class details
- Fare basis code for each passenger type and for each flight segment
- Payment Time Limit (Ticket Time Limit), if applicable
- List of AirlineOffers where each AirlineOffer contains
- Fare rules for each fare component where applicable
- Cabin Upsell option (upgrade to next cabin) price per passenger type, if applicable
- Fare and Tax split per passenger type with tax breakdown
- Product attributes per flight segment where applicable
- Baggage allowance (hand baggage allowance and ticketed checked baggage allowance)
- Fare basis code for each passenger type and for each flight segment
Payment options
List of applicable payment cards with surcharge, if applicable
Mandatory and optional payment card details that should be specified when making a payment
Mandatory and optional billing address details that should be specified when making a payment
- Seat lead in price for all flights in the itinerary, if applicable
Mandatory Headers
In order to access our API, you will need to pass the following two headers for each call
Web Service URLs
General Message Elements
Field Type | Data Type | Schema Definition (http://www.ba.com/schema/) | Optional/Mandatory | Comments |
---|---|---|---|---|
Party |
|
| M | |
Sender |
|
| M | Message sender information |
TravelAgencySender | M | Specify the travel agency details Populate TravelAgencySender section only if the request is originated by the Travel Agent | ||
Name | Party/Sender/TravelAgencySender/Name | O | Travel agency name Example: ABC Note: This is an optional element in NDC schema. BA will neither use nor validate this element even if it was passed | |
Contacts | O | This is an optional element in NDC schema but for calling BA service this must be passed with requesting agent’s email address only if the requesting agent is an IATA agent Note: Agent contact will only be used in OrderCreate service. Therefore it is up to the client to pass agent email address in AirShopping, FlightPrice and SeatAvailability services | ||
Contact | M | |||
EmailContact | O | This is an optional element in NDC schema but for calling BA service (OrderCreate) this must be passed, if the requesting agent is an IATA agent. This is important as the eTicket confirmation email will only be sent to this email address for IATA agent’s bookings For non-IATA agents, this element need not be passed as the eTicket confirmation email will only be sent to the customer’s email address. However, BA will record this email address to the booking if provided for non-IATA agents | ||
Address | Party/Sender/TravelAgencySender/Contacts/Contact/EmailContact/Address | M | Travel agency’s email address Example: abc@tc.com This is the requesting agent’s email address | |
OtherIDs | O | Specify Non-IATA agent details Note: This is an optional element in NDC schema but for calling BA services this must be passed if the requesting agent is a non- IATA agent | ||
OtherID | Party/Sender/TravelAgencySender/OtherIDs/OtherID | M | Non-IATA agent code Example: 01010101 | |
IATA_Number | Party/Sender/TravelAgencySender/IATA_Number | O | Travel agent’s IATA number Example: 12345678 Note: This is an optional element in NDC schema but for calling BA services this must be passed if the requesting agent is an IATA agent | |
AgencyID | Party/Sender/TravelAgencySender/AgencyID | M | Travel agency name Example: ABC Note: This is a mandatory element in NDC schema but BA will neither use nor validate this element. Suggestion is to pass travel agency name | |
CorporateSender | Specify corporate details Populate CorporateSender section only if the request is originated by the Corporate | |||
Contacts | O | This is an optional element in NDC schema. Populate this section with the requesting corporate’s email address only if the corporate is directly creating a booking with BA via NDC Services Do not populate this section if Travel Management Company (TMC) is creating a booking on behalf of the corporate Note: Corporate contact will only be used in OrderCreate service. Therefore it is up to the client to pass corporate email address in AirShopping, FlightPrice and SeatAvailability services | ||
Contact | M | |||
EmailContact | O | This is an optional element in NDC schema but for calling BA service (OrderCreate) this must be passed, if the corporate is directly creating a booking with BA via NDC Services and the corporate has an IATA number. This is important as the eTicket confirmation email will only be sent to this email address for IATA agent’s bookings For corporates that have non-IATA number, this element need not be passed as the eTicket confirmation email will only be sent to the customer’s email address. However, BA will record this email address to the booking if provided for non-IATA corporates | ||
Address | Party/Sender/CorporateSender/Contacts/Contacts/EmailContact/Address | M | Corporate’s email address Example: abc@tc.com This is the requesting corporate’s email address | |
ID | Party/Sender/CorporateSender/ID | M | Corporate’s JBID Example: IN3642FR Unique ID provided by BA | |
IATA_Number | Party/Sender/CorporateSender/IATA_Number | O | Corporate’s IATA or non-IATA number Example: 12345678 Do not populate this section if Travel Management Company (TMC) is creating a booking on behalf of the corporate Note: This is an optional element in NDC schema. Populate this element with the requesting corporate’s IATA or non-IATA number only if the corporate is directly creating booking with BA via NDC Services | |
Participants | O | Specify Service Provider details Note: This is an optional element in NDC schema but if the calling client is a Service Provider then Participants details must be populated. If the calling client is not a Service Provider then Participants details should not be populated. | ||
Participant | M | |||
TravelAgencyParticipant | O | Populate this section only if the participant is a Travel Management Company (TMC) and is creating a booking for the corporate customer i.e request is originated by the corporate | ||
SequenceNumber (Attribute) | Party/Participants/Participant/TravelAgencyParticipant/SequenceNumber (Attribute) | M | Unique number Example: 2 Note: It is recommended that each participant increment the sequence number by 1. Example: If participant 1 gives sequence number as “2” participant 2 is advised to give sequence number as “3” | |
Contacts | O | This is an optional element in NDC schema. Populate this section with the requesting agent’s (TMC’s) email address only if the requesting agent is an IATA agent Note: Agent contact will only be used in OrderCreate service. Therefore it is up to the client to pass agent email address in AirShopping, FlightPrice and SeatAvailability services | ||
Contact | M | |||
EmailContact | O | This is an optional element in NDC schema but for calling BA service (OrderCreate) this must be passed, if the requesting agent (TMC) is an IATA agent. This is important as the eTicket confirmation email will only be sent to this email address for IATA agent’s bookings For non-IATA agents, this element need not be passed as the eTicket confirmation email will only be sent to the customer’s email address. However, BA will record this email address to the booking if provided for non-IATA agents (TMCs) | ||
Address | Party/Participants/Participant/TravelAgencyParticipant/Contacts/Contact/ EmailContact/Address | M | Travel agency’s(TMC’s) email address Example: abc@tc.com This is the requesting agent’s email address | |
OtherIDs | O | Specify Non-IATA agent details Note: This is an optional element in NDC schema but for calling BA services this must be passed if the requesting agent (TMC) is a non- IATA agent | ||
OtherID | Party/Participants/Participant/TravelAgencyParticipant/OtherIDs/OtherID | M | TMC’s Non-IATA agent code Example: 01010101 | |
IATA_Number | Party/Participants/Participant/TravelAgencyParticipant/IATA_Number | O | Travel agent’s (TMC’s) IATA number Example: 12345678 Note: This is an optional element in NDC schema but for calling BA services this must be passed if the requesting agent (TMC) is an IATA agent | |
AgencyID | Party/Participants/Participant/TravelAgencyParticipant/AgencyID | M | Travel agency name Example: ABC Note: This is a mandatory element in NDC schema but BA will neither use nor validate this element. A suggestion is to pass travel agency name | |
AggregatorParticipant | O | Populate this section only if the calling client is a Service Provider | ||
SequenceNumber (Attribute) | Party/Participants/Participant/AggregatorParticipant/ SequenceNumber (Attribute) | M | Unique number Example: 2 Note: It is recommended that each participant increments the sequence number by 1. Example: If participant 1 gives sequence number as “2” participant 2 is advised to give sequence number as “3” | |
Name | Party/Participants/Participant/AggregatorParticipant/Name | O | Service Provider name Example: XYZ Note: This is an optional element in NDC schema. BA will neither use nor validate this element even if it was passed | |
AggregatorID | Party/Participants/Participant/AggregatorParticipant/AggregatorID | M | Service Provider ID provided by BA Example: 00123456 All BA NDC services will validate this ID and allow only if the AggregatorID provided is valid |
Example Agency and Service Provider Data
General Usage Guidelines
The AirShopping Service:
- The service returns the total price, fare, and tax with tax break down and fare rules for the requested itinerary for all passengers in PricedFlightOffer. This is the most enriched offer. Cabin Upsell is returned in AirlineOffer.
- Cabin Upsell option –. Cabin upsell option is returned in AirlineOffer. The service returns both one way and return journey cabin upsell offers. Example: If the requested itinerary is LHR-AMS Economy then cabin upsell option will be returned for LHR-AMS in Business, if applicable. Similarly, if the requested journey is LHR-AMS-LHR in Economy then cabin upsell option will be returned for LHR-AMS in Business and AMS-LHR in Business. Cabin upsell option is returned with total price, base fare and total tax with break down along with fare rules for each passenger type. If the client were to choose cabin upsell option then they have all information to construct OrderCreateRQ and create a booking.
- Ticket Upsell option - Offer to increase the ticket flexibility.Please note that ticket upsell option will not be returned in FlightPriceRS.
- An example FlightPrice response for a long haul return journey in Economy cabin in V selling class, which is a restricted fare. Assume Cabin Upsell option is applicable
FlightPrice request: LHR-JFK-LHR, both O/B and I/B in V selling class in Economy cabin
FlightPrice response: In total 1 PricedFlightOffer and 1 AirlineOffer will be returned
PricedFlightOffer 1 – Total fare, tax with tax breakdown for all passengers for the requested itinerary along with fare rule and product attributes
AirlineOffer 1 - Total fare and tax with tax breakdown for all passengers along with fare rules and product attributes to upgrade return journey (LHRJFK and JFKLHR) in the next available cabin (Premium Economy cabin in this case), if applicable - Please note that although the list of applicable cards remain the same for both PricedFlightOffer (requested itinerary) and AirlineOffer (cabin upsell offer) some credit cards may not incur a card surcharge if the customer has chosen to book cabin upsell offer. This is clearly indicated in the response by associating each card with an offer id (PricedFlightOffer or AirlineOffer or Both)
- The service will return prices in the currency of the agent’s country. Please note that the penalty fee will still be returned in the currency of the country where the journey commences Example, if an agent from Paris making a request for LHR-NYC then both AirShopping and FlightPrice service will return prices in Euro (based on agent’s country) and penalty fee in GBP.
- The service returns price quote in the next available selling class of the same cabin if the requesting selling class was sold out. A warning message will be returned in this scenario to inform the customer of the change in the selling class.
- The total price returned by the FlightPrice service is the amount to be charged for the flights. The booking will not succeed even if there is a penny difference.
- FlightPrice service returns seat lead in price for all flights (if applicable) in the itinerary. If for any of the flights seat lead in price is not returned, it means seats can’t be purchased on that flight
- In FlightPriceRS, the secure flight flag is returned for each flight segment – Client should pass the APIS details (DOB and Gender) in OrderCreateRQ, if this Boolean was returned as “true” for at least one of the flight segment.
- In FlightPriceRS, applicable payment cards that the client can use in OrderCreateRQ are returned. Applicable payment cards are decided based on agent’s country and customers billing country. If customer’s billing country is not specified in FlightPriceRQ then applicable payment cards will be returned based on agents country only
- The service also returns Payment Time Limit (also known as Ticket Time Limit) if applicable. This is the deadline by which a commitment to pay must be made for the confirmed items in an offer as agreed with the airline. This is also called as Ticket Time Limit, as tickets will only be issued once payment is made.
- The service will not return Cabin Upsell option for MultiCity/Stopover, open jaw Itineraries, itineraries containing mixed cabins (e.g. LHRJFK in Economy and JFKLHR in Premium Economy)
- The service will not return Cabin Upsell option for corporates and agents eligible for private fares.
- The service now supports the below Leisure Fare types
- Clients can only request one Leisure Fare type per request. If more than one Leisure Fare is requested then the service will apply the first Leisure Fare type it finds from the list
- Inclusive Tour
- Humanitarian
- Marine
- Contact Bulk
- Private Fare Adult
Clients will be able to request any of the above Leisure Fare types via FlightPrice
- The service returns error if the requested Leisure fare is not available i.e the service will not default to the published fare if the requested leisure fare is not available
- The service rejects request and returns error, if the agent is not eligible to request for leisure fare types
- BA offers different fare products within Economy cabin. For short haul routes, Basic, Plus and Plus Flex products are offered. Please note that the fare product name is subject to change and the number of fare products being returned may also vary based on the route and availability
- BA offers different fare products within Economy cabin only and the name will wary based on the journey haul type
- For short haul journeys the below fare products are offered
- Basic
- Plus
- Plus Flex
- For long haul journeys the below fare products are offered
- Basic
- Standard
- Standard Flex
- The service expects clients to always pass the fare basis code in OrderCreateRQ when creating a booking in order to quote the correct fare product for the itinerary even if the request is for a non-Economy cabin
General
- The service returns prices in exact decimal value based on the currency (e.g. GBP will be returned at 2 decimals, while JPY will be returned at integer level only).
- The service checks if the agent calling the service has the right to create BA bookings. If the agent does not have such authority then the service will not proceed and will return an error.
- The service checks if the requesting Travel Management Company (TMC) is allowed to service the corporate and returns error if it is not allowed.
- The service returns responses in the agent’s preferred language. If the agent’s preferred language is not supported by BA or the agent’s preferred language is not passed in the request then the default language will be used, which is English. Please see section 7 for the languages that are supported by BA.
- Air Passenger Duty (APD) no longer applies to passengers aged between 12 and under 16 years old travelling in Economy after 1st March 2016. For travel on or after this date, BA need to know if anyone in this age range is travelling so that APD is not charged for them. Therefore, it is advised for clients to provide passenger’s age in all BA NDC services so that the service will know the passenger is a young adult and won’t charge APD.