Low Fare Shopping (Synchronous)
AirReqRsp.xsd
Low Fare Shopping (Synchronous)
Low Fare Shopping serves as a fare shopper tool for users who want to check prices for a general itinerary. It is best suited for fare-driven travelers. A number of modifiers can be added to the Low Fare Shopping request to return specified responses. These modifiers include: time period, included or excluded carriers, private fare modifiers, and passenger types.
Low Fare Shopping functionality combines air availability and a fare quote request to return the lowest available fares for a specified itinerary, using origin/destination and date information. Fares are available for one-way, round-trip, and multi-city travel. Low Fare Shopping does not require a booked itinerary to return fare data.
If a client is provisioned for RCS, a Low Fare Shopping search can include an aggregated search for both fare and Rail itineraries that meet the requested search parameters.
If a search is more oriented toward scheduling or availability than lowest fare options, an Air Availability request followed by an Air Pricing request can be made as an alternative to a Low Fare Shopping transaction.
Note: Search from multiple PCCs in a single LowFareSearchRequest is not supported.
Schema
Located in Air.xsd:
Request
Use LowFareSearchReq in AirReqRsp.xsd to make a Low Fare Shopping request.
- Enter the minimum required data:
Information to identify the requestor, sent in BillingPointOfSaleInfo @OriginApplication.
The Origin and Destination city/airport codes using typeLocation.
A departure or arrival date. The maximum days in advance for a search is 361.
A departure or arrival time.
Requests for multi-destination journeys that contain three or more destinations follow the same structure and logic as one-way or round-trip journeys.
Universal API automatically detects whether a location in a shop request is an Airport or City code by specifying the city or airport code in the in the @CityOrAirport attribute and indicating "true" or "false" whether the code in PreferCity is true = city or false = airport. For example, <CityOrAirport Code="GRU" PreferCity="true" />
Each instance of SearchAirLeg represents a request for a discrete leg of an air trip and identifies the departure and arrival dates, times, and locations for each leg of the trip:
Notes:
A Passenger Type Code (PTC), sent in SearchPassenger @Code.
Note: If an age is included in the request, it is not sent for adult (ADT) passengers. Age is sent for all other PTCs if specified in the request. See Low Fare Shopping with Passenger Types for details.
- Enter additional modifiers to narrow the search results. Because Low Fare Shopping combines both air availability and faring, availability and/or pricing modifiers can be used to narrow the request parameters.
- ACH, RCS, and Flex Shopping/Flex Explore do not support the MetaOptionIdentifier attribute.
- Please contact your Travelport Support representative for information about this modifier.
- @ExcludeOpenJawAirport: This attribute is available at the Itinerary level for Worldspan only.
- @MaxLayoverDuration: This attribute is available at the Itinerary level for Worldspan only.
- @MaxJourneyTime: As of Air v32.0, this attribute restricts results to itineraries that are less than the maximum journey time (in hours). To restrict the journey time of segment legs, use SearchAirLeg/AirLegModifiers@MaxJourneyTime. This filter applies to 1G and 1V only.
- @SupplierCode="AC"
- @Type="RFB"
- @Code is set to the corporate reward ID number
- @ProviderCode="ACH"
- easyJet (U2) offers negotiated fare discounts. The Corporate ID is supplied to the agency upon negotiated discount with easyJet.
- To use the Corporate ID, specify the following attribute values in ContractCodes/ContractCode:
@SupplierCode="U2"
@Code is set to the Corporate ID number
@ProviderCode="ACH"
- To use the Corporate ID, specify the following attribute values in ContractCodes/ContractCode:
- Is the same as the Faring agency, the same PCC is used for all plating carrier validation.
- Is different from the Faring agency, the Ticketing agency is used for all plating carrier validation.
- Is Blank then the Faring agency is used as the ticketing agency.
-
If Filtered Fare Rules are desired in the response, send FareRulesFilterCategory/CategoryCode values. This option returns rules for the requested categories, which can be displayed in a matrix to provide users with an overview of the rule options available for a specific fare. A subsequent Air Pricing or Fare Rules request can then be made to obtain the full rules text.
- If using the Travelport Search Control Console (SCC) or Content Optimizer - Air (COA), it is optional to use LowFareSearchReq to activate or override the SCC / COA filters.
Show details
For customers using SCC or COA, attributes were added to LowFareSearchReq for Galileo (1G), Apollo (1V), and Worldspan (1P) in release 19.2, as follows:Release 19.2
SCC and COA is used by agency administrators to create business rules for filtering certain air shopping results. Two optional attributes allow SCC / COA users to either activate or override these filters:
- ChannelID, which activates an SCC / COA filter for a portion of travelers served by the agency PCC, such as a specific corporation or group.
- NSCC, which is used to bypass or override a specific SCC / COA rule.
These attributes were added to AirFareDisplayReq and to the AirPricingModifiers element in LowFareSearchReq, LowFareSearchAsynchReq, and AirPriceReq for Galileo (1G), Apollo (1V), and Worldspan (1P). They were also added to AirCreateReservationReq and AvailabilitySearchReq in release 17.1 for 1G and 1V.
Only one attribute can be used in a single request, either ChannelID or NSCC. If both are used together, or if an SCC / COA rule is violated, Universal API does not send the transaction response and returns an error.
Note the following:
- ChannelID: Four-character alphanumeric string. Values should be uppercase for 1G and 1V; lowercase values for 1P (if supported for that transaction) may or may not be processed so uppercase is recommended. If an invalid user ID and a valid attribute value are sent, the message AGENT NOT AUTHORISED is returned. In the case of an invalid ID format, the following messages are returned:
- 1G: INVALID MODIFIER
- 1V: INVALID INPUT
- 1P: The attribute is ignored and a successful response is returned.
- NSCC: Valid values for the rule type identifer number to be sent are 000 to 999. If an invalid user ID and a valid attribute value are sent, the message AGENT NOT AUTHORISED is returned. In the case of an invalid ID format, the following messages are returned:
- 1G: INVALID MODIFIER
- 1V: INVALID INPUT
- 1P: ERR10 INVALID
Note: If your client application does not use SCC or COA, do not use these attributes. Please contact your Travelport representative if you would like additional information.
SCC and COA is not applicable to Airline Content Hub (ACH).
- LowFareSearchReq can be used to request a split ticketing search. Refer to Split Ticketing Search for more information.
RouteHappy AmenitiesRoutehappy amenity content, including Seat, Wi-Fi, Power, Entertainment, Food, Beverage, Aircraft, and Layout, is returned in schema version 53 of the Shop, Price, Book and Retrieve responses when the ReturnAmenities="true" attribute is included in the request.
Sample
LowFareSearch request showing how amenities can be requested, and a LowFareSearch response showing the amenities being returned.
Note: Response has been truncated to save space.
CopyLow Fare Search RouteHappy Amenities
Request
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<air:LowFareSearchReq TargetBranch="XXXXXX" ReturnAmenities="true" ReturnBrandedFares="true" TraceId="XXXXXXXXXX" AuthorizedBy="XXXXXX" SolutionResult="false" xmlns:air="http://www.travelport.com/schema/air_v53_0" xmlns:com="http://www.travelport.com/schema/common_v53_0">
<com:BillingPointOfSaleInfo OriginApplication="UAPI"/>
<air:SearchAirLeg>
<air:SearchOrigin>
<com:CityOrAirport Code="DSM"/>
</air:SearchOrigin>
Response
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<air:LowFareSearchRsp TraceId="XXXXXXXXXX" TransactionId="XXXXXXXXXX" ResponseTime="606" DistanceUnits="MI" CurrencyType="AUD" xmlns:air="http://www.travelport.com/schema/air_v53_0" xmlns:common_v53_0="http://www.travelport.com/schema/common_v53_0">
<air:FlightDetailsList>
<air:FlightDetails Key="FGNaGIyrGDKAXdAAAAAAAA==" Origin="DSM" Destination="ORD" DepartureTime="2024-11-01T18:20:00.000-05:00" ArrivalTime="2024-11-01T19:50:00.000-05:00" FlightTime="90" TravelTime="268" Equipment="CRJ" DestinationTerminal="3"/>
...
<air:AirSegmentList>
<air:AirSegment Key="FGNaGIyrGDKAWdAAAAAAAA==" Group="0" Carrier="AA" FlightNumber="6082" Origin="DSM" Destination="ORD" DepartureTime="2024-11-01T18:20:00.000-05:00" ArrivalTime="2024-11-01T19:50:00.000-05:00" FlightTime="90" Distance="302" ETicketability="Yes" Equipment="CRJ" ChangeOfPlane="false" ParticipantLevel="Secure Sell" LinkAvailability="true" PolledAvailabilityOption="Polled avail exists" OptionalServicesIndicator="false" AvailabilitySource="A" AvailabilityDisplayType="Fare Shop/Optimal Shop">
<air:CodeshareInfo>AIR WISCONSIN AS AMERICAN EAGLE</air:CodeshareInfo>
<air:AirAvailInfo ProviderCode="1G"/>
<air:FlightDetailsRef Key="FGNaGIyrGDKAXdAAAAAAAA=="/>
</air:AirSegment>
...
<air:AmenitiesList>
<air:Amenities Key="uuid-b333172e-4fdb-40a5-95a5-e24d699636d8" LanguageCode="EN">
<air:Text Type="Aircraft">CRJ (smaller regional jet)</air:Text>
<air:Text Type="Power">No power outlet</air:Text>
<air:Text Type="Seat">79 cm seat pitch</air:Text>
<air:Text Type="Wi-Fi">No Wi-Fi</air:Text>
<air:Text Type="Entertainment">No entertainment</air:Text>
<air:Text Type="Food">Snacks provided</air:Text>
<air:Text Type="Layout">2-2 seat layout</air:Text>
<air:Text Type="Beverage">Alcohol (fee) & beverages provided</air:Text>
</air:Amenities>
...
<air:Option Key="FGNaGIyrGDKADgAAAAAAAA==" TravelTime="P0DT4H28M0S">
<air:BookingInfo BookingCode="V" BookingCount="9" CabinClass="Economy" FareInfoRef="FGNaGIyrGDKAseAAAAAAAA==" SegmentRef="FGNaGIyrGDKAWdAAAAAAAA==" AmenitiesRef="uuid-b333172e-4fdb-40a5-95a5-e24d699636d8"/>
<air:BookingInfo BookingCode="V" BookingCount="9" CabinClass="Economy" FareInfoRef="FGNaGIyrGDKAseAAAAAAAA==" SegmentRef="FGNaGIyrGDKAYdAAAAAAAA==" AmenitiesRef="uuid-65f8f7d1-c15f-42a9-ae98-cd7cb168b14f"/>
<air:Connection SegmentIndex="0"/>
</air:Option>See RouteHappy Amenities for complete details and warnings.
@SolutionResult@SolutionResult is used to request Air Pricing Solutions or Air Price Points in the response. The default is "false," which returns AirPricePointList. A response contains either AirPricePointList or AirPricingSolution, but not both. The prices in the response are the same, regardless of whether AirPricePointList or AirPricingSolution is returned.
See Air Pricing Solutions and Low Fare Shopping by Air Price Points for details.
Inhibit Rich Content and Branding in the responseRich Content and Branding can be inhibited for Worldspan and ACH providers in the Low Fare Shopping and Asynchronous Low Fare Shopping responses by setting LowFareSearch(Asynch)Req @ReturnBrandedFares="false". If a request contains both ReturnBrandedFares="false" and ReturnUpsellFare="true" for providers 1P, or ACH, the ReturnUpsellFare value is ignored and a warning is returned.
@ReturnUpsellFareSet @ReturnUpsellFare="true" to return Upsell details. Brand details are returned by default. See Rich Content and Branding in the Low Fare Shopping Response for more details.
Note: @ReturnUpsellFare is ignored if it is used with flexible shopping searches.
Prefer Complete Itinerary (ACH ONLY)PreferCompleteItinerary is available for ACH only.
MetaOptionIdentifierUse the MetaOptionIdentifier to produce a smaller price matrix and return less content, resulting in a lower processing cost.
Valid values are “00” thru “99”or “D” for default when Meta Option is requested. A 00-99 value invokes the e-Pricing Meta shop process. Currently, all values from 00-99 behave the same.
Notes:
AirLegModifiersAnchor Flight DataThe option to return anchor flights was added for Worldspan (1P) only.
An anchor flight is one specific flight (airline code, flight number, date, origin, and destination) specified to be returned in the response. For example, if a user wants to check if flight number BA234 is available, then only BA234 is returned in the shop response and no other flights are returned. Anchor flight(s) may be applied to any leg in the shop request and multiple anchor flights may be submitted.
Include AnchorFlightData @AirlineCode and @FlightNumber to return anchor flights in the response. Set @ConnectionIndicator="true" to search for a connected flight.
See Low Fare Shopping Air Search Modifiers for more details.
AirSearchModifiersAirSearchModifiers contains flight-related criteria that can be used to narrow a search response, such as preferred carriers and connecting cities, flight types, ticket types, and flexible dates, times, and airports.
See Low Fare Shopping Air Search Modifiers for more details.
AirPricingModifiersAirPricingModifiers contains fare-related criteria that can be used to narrow a search response, such as passenger type, cabin class, loyalty programs, and fare types. It also contains pricing-related criteria, such as fare restrictions, booking codes, permitted cabins, and negotiated rates. See Low Fare Shopping Air Pricing Modifiers for more details.
@CurrencyType
The CurrencyType in AirPricingModifiers is passed to the provider, which affects the currency that is returned for Equivalent Base Price, Base Price, Taxes, and Total Price. The CurrencyType modifier specifies the currency that is to be used for settlement. The provider may restrict which currencies are available based on a variety of factors including origin, destination, and agency location. The requested currency is reflected in the EquivalentBasePrice, BasePrice, Taxes, and TotalPrice, if it is available.
This modifier applies only to Air Pricing requests. If sent for Low Fare Shopping requests, @ReturnServices is ignored.
Air Canada rewards for business is supported, which allows the small and medium enterprise (SME) corporate reward ID number to be passed to ACH. This ID is used to recognize discounted and optional fares in Air v29.0 and later.
To use the corporate reward ID, specify the following attribute values in AccountCodes/AccountCode:
/ContractCodes
For ATPCO carriers, if a contract code is required for an airline or agency private fare, one or more codes can be added using the ContractCodes/ContractCode @Code. Both the supplier's contract code and the provider code must be specified.
For ACH carriers, the supplier code, contract code, and provider code must be included.
For all carriers, the Contract Code applies to the entire journey, not to an individual flight segment.
@ReturnFareAttributes Release 17.4
In Release 17.4 (Air v42.0 and later), the optional Boolean attribute @ReturnFareAttributes was added to support requesting the return of any optional services that are part of a branded fare. True requests the return of optional services; False requests that no optional services be returned. See Rich Content and Branding in the Low Fare Shopping Response for details on the optional services returned in FareInfoList/FareInfo/FareAttributes.
NOTE: This feature is in Alpha-testing and you need to be provisioned to activate it. Contact your Travelport API representative to activate this feature.
The ManualFareAdjustment element and its attributes can be used to provide increments or discounts to a fare using a percentage or amount. See Manual Fare Adjustments for details.
Note: Worldspan (1P) refer to manual fare adjustment as custom discount pricing.
Pseudo City Code details as follows:
Point of SalePointOfSale includes Pseudo City Code (PCC) and branch data for the transaction. If PointOfSale is not specified on the request, the user's Credentials are used to determine point of sale information. If PointOfSale data is specified, it overrides the default data in Credentials. A separate Point of Sale can be used for redistribution, which allows the requestor to use another travel provider's PCC. Redistribution requires a prior agreement between the requestor and the travel provider.
It is supported by Galileo (1G), Apollo (1V), and Worldspan (1P).
TicketingAgencyThe Ticketing agency PCC is either the faring PCC or another affiliated PCC. The TicketingAgency modifier overrides the PCC of the Ticketing agency found in the AAT table (set up during provisioning). The Ticketing agency PCC is used for all plating carrier validation. If the Ticketing agency:
EnablePointToPointSearchIf EnablePointToPointSearch and/or EnablePointToPointAlternates are set to 'true', a Point-to-Point search is returned with alternate fare and/or route options.
FormOfPaymentFor Worldspan only, the optional element FormOfPayment can be used to return airline service fees (OB-F ticketing fees only) in the response. To return OB-F fees, FormOfPayment @Type must be either Credit or Debit, and @Number and @ExpDate are mandatory (placeholder credit card details must be provided, as the credit card the passenger will use has not been determined at the time of the Low Fare Shopping request).
Note: The Enumeration child element is not currently in use.
Rail Requests
If a client is provisioned for RCS, a Low Fare Shopping search can include an aggregated search for both Air fare and Rail itineraries that meet the requested search parameters. For rail requests, LowFareSearchReq is mapped to RailAvailabilitySearchReq in the Rail service.
By default, applicable rail itineraries are included in the responses. If Rail responses are not desired, the RCS provider can be excluded from the request.
See Rail Low Fare Shopping for details.
Response
A Low Fare Search response is returned in LowFareSearchRsp.
An unsuccessful LowFareSearchRsp message returns a generic error message.
A successful LowFareSearchRsp message returns flights with price options and rail journeys or rail segments with price offers. The amount and type of data included can vary by the supplier and provider.
Aggregated Response: Depending on your provisioning, a Low Fare Shopping response can contain aggregated data with GDS (i.e., Apollo, Galileo, and Worldspan), Air Content Hub (i.e., Low Cost Carrier), and rail data. To determine where the data for a particular air segment in the response originated, look in AirSegment/AirAvailInfo @ProviderCode.
NextResultReferenceA search response may contain a NextResultReference if the provider has additional response data that was not returned in that call. This reference token from the provider can be used in a subsequent request to obtain this additional data.
The number of itineraries returned varies by provider, and can also be affected by any contractual agreements between the provider and the agency or travel provider.
FareNoteListFareNoteList contains optional Fare Notes, which are free-text responses from the supplier associated to a specific fare. The Key attribute matches a specific FareNote to its associated fare in AirPricingSolution.
FlighDetailsListFlightDetailsList returns specific details about a flight, such as origin and destination, departure and arrival times, flight times, distance, and on-time performance.
Typically there will be only one FlightDetails element per segment to describe the details of the flight. However, some carriers combine multiple flights into one marketable segment, which is depicted with two FlightDetails elements.
AirSegmentListAirSegmentList returns specific details about available air segments, such as carrier, flight number, origin and destination, departure and arrival times, flight times, e-ticketability, participant level, and link availability.
Codeshare data returned in the AirSegmentList/AirSegment @SegmentRemark displays the same Segment Remark information in the Air Price responses (AirPriceRsp/AirItinerary/AirSegment @SegmentRemark), so that the operating carrier (codeshare) name displays, as well as the Segment Remark for the connecting flight (Worldspan [1P] only). Release 18.3
Polled Availability Option may be returned in AirSegment to indicate the precise source within the host system of the returned data. The AvailabilitySource in the LowFareSearchRsp is for Travelport troubleshooting purposes only. Contact your Travelport support representative for further explanation if required.
During shop, flight detail information is not returned from Galileo and Apollo for flights that have stops. Therefore, Universal API constructs these flight details based on the information available.
Depending on your provisioning, you may get flight details for direct flights with stops returned in AirSegmentList/AirSegment/FlightDetails without arrival time, departure time, flight time, and origin and destination terminal. Also, for flights with more than one stop, only two flight details are returned:
- One for the segment origin to the first intermediate stop.
- One for the last intermediate stop to the segment destination.
If you are not receiving intermediate flight details through Galileo and Apollo, you can retrieve complete flight details by sending AirPriceReq by setting AirPriceReq@CheckFlightDetails="true".
The group number in Universal API is:
- Derived from the Worldspan (1P) “Trip Association Number (TAN)” that is returned in the response.
- Populated based on the flights that are returned, for Galileo and Apollo. If there are connecting flights, the same number is assigned to multiple groups to indicate the connecting flights.
Notes: This functionality is:
- Available only for Air Pricing Solutions. Air Price Points does not support it.
- Available based on provisioning. Please contact your Support representative for details.
HostTokenListIf sessioned (stateful) transactions were used by the provider or supplier, HostTokenList contains a list of all session tokens associated with the air or rail segments. ACH and RCS suppliers require the HostToken in the LFS response to be sent in the Air Pricing request.
APIRequirementsListSome carriers require certain traveler information (such as traveler gender, date of birth, or nationality) or documents to be sent in the Air Create Reservation request for a successful booking. If any traveler information is required, this information is indicated in APIRequirementsList, which returns any requirements for booking. For example, if APIRequirementsList/APIRequirements@NationalityIndicator="true", then the carrier requires AirCreateReservationReq/BookingTraveler@Nationality to be specified.
Air Pricing Solution
AirPricingSolution is the container that references combinations of availability and pricing responses. For brevity, only one instance of a particular fare or availability is listed in the Low Fare Shopping response, even though the same fare or availability may be referenced multiple times by multiple providers and suppliers.
- For Galileo and Apollo: AirPricingSolution returns a complete itinerary and price.
- For ACH: AirPricingSolution returns a list of flights and prices for each leg of the itinerary, or pricing for complete itineraries when PreferCompleteItinerary=”true” and SolutionResult=”true”. Because Universal API combines ACH flights, some combinations are returned that may not be bookable, due to supplier restrictions.
AirPricingSolution is returned in the response when @SolutionResult is "true". If SolutionResult is "false", AirPricePointsList is returned in the response. The default for @SolutionResult is "false".
A response contains either AirPricingSolution or AirPricePointList, not both. The prices in the response are the same, regardless of which is returned. See Low Fare Shopping by Air Price Points for more details.
Note: For Worldspan, if SolutionResult="true", BaggageAllowance is not returned in FareInfo. Therefore, use SolutionResult="false" to return BaggageAllowance.
/AirSegmentRefEach instance of an AirSegmentRef refers to an available air segment, which can be found in each Pricing Solution at the journey level: AirPricingSolution/Journey/AirSegmentRef. For Price Points, please see Low Fare Shopping by Air Price Points. Details for all possible air segments are returned in AirSegmentList.
Note: Because the same air segment data can be returned from multiple providers, a ProviderCode is not included with air segment data. However, the ProviderCode is required for a subsequent Air Pricing request, and can be obtained from AirPricingSolution or AirPricingInfo.
/AirSegmentEach possible AirSegment is contained in the AirSegmentList. It is not always apparent which segments can substitute for other segments in this list, and the AirPricingSolution or AirPricePointList should be consulted to choose from various combinations of segments. The AirSegmentRef element in each pricing solution or price point will tie back to a segment in the AirSegmentList, such that crude matching can be done to figure out segments that can be substituted.
An Availability Source may be returned in AirSegment to indicate the precise source within the host system of the returned data.
A Polled Availability Option may be returned in AirSegment to indicate the precise source within the host system of the returned data.
/Blacklisted
The European Union maintains a blacklist of airlines it deems unsafe and which are therefore banned from servicing points to, from, and within the European Community. If a blacklisted marketing carrier is returned in the response, an indicator displays in AirSegment/Blacklisted.
/JourneyFor a single segment with no connection, the travel time is equal to the flight time (FlightDetails @TravelTime and AirSegment @TravelTime).
The Journey element in LowFareSearchRsp/AirPricingSolution contains a TravelTime attribute and corresponding AirSegmentRef values.
The TravelTime attribute indicates the travel time, in duration, for the entire journey. The travel time is determined by calculating the difference between the departure time of the first segment and the arrival time of the last segment for that particular entire set of connections. For example:
<Journey TravelTime="655">
<AirSegmentRef Key="1T"/>
<AirSegmentRef Key="3T"/>
</Journey>
<Journey TravelTime="685">
<AirSegmentRef Key="5T"/>
<AirSegmentRef Key="7T"/>
</Journey>
/AirPricingInfo/PricingMethod
AirPricingInfo includes the Pricing Method attribute to support Fare Guarantee (Galileo) and Fare Status (Apollo) responses per passenger, with the values:
- GuaranteedUsingAirlinePrivateFare
- Airline
- AutoUsingPrivateFare
A pricing method with a value of GuaranteedUsingAirlinePrivateFare may also occur, which indicates that a guaranteed Agency Private Fare was used with no rules override.
Universal API displays private fares as “Airline private fare” or “Agency private fare” for the Galileo and Apollo providers. Worldspan and Airline Content Hub display all private fares as "Private Fare".
/FareInfoRef
Each instance of AirPricingInfo/FareInfoRef references a returned fare. AirPricingInfo contains both FareInfo and FareInfoRef elements. Because the same fares can be returned several times for different itineraries, and to minimize the size of the search results, the FareInfos are stored in the FareInfoList container and referenced from the AirPricingInfo in the context of LowFareSearchRsp.
Combining data from AirSegmentRef and FareInfoRef provides full availability/pricing data for each Air Pricing Solution. This approach is taken to eliminate the replication of elements in the Air Pricing Solutions. They reference the segments they need, and multiple Air Pricing Solutions can reference the same element.
In Air v34 and later, the @BookingCount attribute was added to LowFareSearchRsp/AirPricingSolution/AirPricingInfo/BookingInfo and LowFareSearchRsp/AirPricePointList/AirPricePoint/BookingInfo to ensure that booking counts correspond to the correct pricing solution. This attribute replaces the @BookingCounts attribute in LowFareSearchRsp/AirSegmentList/AirSegment/AirAvailInfo/BookingCodeInfo, which became optional in v34.0 and later.
Galileo (1G) and Apollo (1V) provide a tax breakdown in TaxInfo per tax code. Depending on your provisioning, Worldspan (1P) may also provide a tax breakdown in TaxInfo per tax code. Please contact your Travelport Support representative for details.
With a provider of 1P, for taxes like ZP and XF that have a tax breakdown, Universal API maps:
- One AirPricingSolution/AirPricingInfo/TaxInfo with @Category and @Amount. The Amount is the total amount of all ZP or XF taxes.
- A TaxDetail with @Amount and @OriginAirport for the tax breakdown. The Amount is the amount of one ZP or XF tax.
<air:TaxInfo Category="ZP" Amount="USD7.80"
<air:TaxDetail Amount="USD3.90" OriginAirport="TPA"/>
<air:TaxDetail Amount="USD3.90" OriginAirport="CLT"/>
</air:TaxInfo>
/ConnectionIf a Connection/SegmentIndex is returned in the response it indicates a connection between two or more air segments. The Connection indicator must be used when Pricing and Booking to ensure the flights are sold correctly and a sell failure does not occur. See Air Segment Connection Logic for more details.
@Cat35Indicator Release 17.3With release 17.3 (Air v42.0 and later), for Galileo (1G) and Apollo (1V) only, the optional Boolean attribute Cat35Indicator was added to LowFareSearchRsp/AirPricingSolution/AirPricingInfo. A value of true indicates the fare is associated with a Cat35 rule. False indicates the fare does not have a Cat35 rule.
For GDS providers, such as Galileo and Worldspan, one AirPricingSolution node is typically returned for a complete itinerary; this node references all requested segments which are typically fared as a single unit. ACH responses typically return two AirPricingSolution nodes for a complete round-trip itinerary, which reflects the Low Cost Carrier model of offering separate availability/pricing for the respective outbound and inbound segments of a trip.
Air Itinerary Solution
For ACH responses, an AirItinerarySolutionRef may also be returned in AirPricingSolution. AirItinerarySolution is the container for specific air segment references, and groups outbound and inbound segments, respectively.
Many Low Cost Carriers in ACH return only single, one-way fares, which requires the user to select two Air Pricing Solutions from a list of multiple fare options to complete a round-trip itinerary. Each instance of AirItinerarySolutionRef references a single one-way trip. References from both the first group (inbound) and the second group (outbound) in AirItinerarySolution are required for a round-trip itinerary.
AirItinerarySolution are typically returned for ACH responses, but not GDS responses.
Rich Content and Branding
The response may also contain Brand details for the fares. See Rich Content and Branding in the Low Fare Shopping Response for details on the BrandList and FareInfoList elements, which return branded fare information.
Rail Response Data
See Rail Low Fare Shopping for more details.
Next Steps
While the Low Fare Shopping response frequently returns all of the necessary information to perform an Air Booking, it is strongly recommended, and in some instances required, to confirm the fare data in an LFS response with an Air Pricing request for the selected Air Pricing Solution.
Important! An Air Pricing request is required for Low Cost Carriers (LCCs) before Air Booking.
Depending on the data source, some LFS responses may return cached fare data that does not contain the most current information. However, Air Pricing returns the most current available data for fares.
Also some Low Cost Carriers on ACH may return only partial pricing data in a Low Fare Shopping response; these responses may exclude taxes or other fees. Therefore, an Air Pricing transaction is required to return complete pricing information.
Also, for brevity, Low Fare Shopping responses do not return Fare Rules. Therefore, a Fare Rules follow-on request is also recommended using FareInfoList/FareInfo/FareRuleKey from LowFareSearchRsp. Fare rules in text format also return in the price response when @FareRuleType="long" or "short" is sent in the price request. Structured rules are currently not supported in AirPriceReq. To obtain structured fare rules, please use the FareRules transaction.
Exceptions
In addition to the exceptions listed below for general Low Fare Shopping functionality, exceptions for requests and responses for search and pricing modifiers are listed in their respective topics.
Galileo returns booking counts for multiple classes of service for each flight. For example: <AirAvailInfo BookingCounts="F9|A9|S9|Y9|W9|B9|H9|M9|N9|K9|L9|Q9|V9|G9|O9"/> In Air v34 and later, this information is in the AirPricingInfo or AirPricePoint BookingCount attribute.
In AirPricingInfo/FareInfo @PrivateFare, private fares display as “Airline private fare” or “Agency private fare”. This implementation is backwards compatible with earlier Air schema versions.
Galileo supports:
-
A maximum of eight origins and destinations, respectively.
-
Multi-city searches for Low Fare Shopping.
-
A different currency type for each element in the response (Base/Total/Tax). A decimal place indicator is returned for each amount element.
-
Equivalent currency, in which the point-of-sale currency is not equal to the currency of the filed fare.
- Spanish Resident Fare functionality.
Galileo does not support:
- MaxNumberOfExpertSolutions. If a request is sent to Galileo that includes the modifier, a warning is returned: MaxNumberOfExpertSolutions is not supported by the requested Provider.
In AirPricingInfo/FareInfo @PrivateFare, private fares display as “Airline private fare” or “Agency private fare”.
Apollo supports:
- Spanish Resident Fare functionality.
Apollo does not support:
- A pricing method with a value of GuaranteedUsingAirlinePrivateFare to indicate that a guaranteed Agency Private Fare was used with no rules override.
- MaxNumberOfExpertSolutions. If a request is sent to Apollo that includes the modifier, a warning is returned: MaxNumberOfExpertSolutions is not supported by the requested Provider.
Worldspan supports:
- A maximum of six SearchAirLeg elements in a request. If this number is exceeded a General Air Service error (3000) is returned with the following faultstring: TRIP MAXIMUM EXCEEDED.
- An option that returns the number of seats available in the class of service needed to book each flight. In other words, Worldspan returns the booking class of service. For example: <AirAvailInfo BookingCounts="T9"/> In Air v34 and later, this information is in the AirPricingInfo or AirPricePoint BookingCount attribute.
-
MaxNumberOfExpertSolutions to specify the number of desired solutions to return in the response. A maximum of four characters are supported. If more than four characters are provided, a warning is returned: MaxNumberOfExpertSolutions with more than 4 digits is not permissible by requested provider.
-
Direct Access or neutral availability. Neutral availability is the default, which means the Worldspan provider applies its default availability logic. With neutral availability, Worldspan first accesses the supplier using the highest level of participation contracted between Worldspan and that supplier. For suppliers that maintain a Direct Access relationship with Worldspan, the first attempt to access a supplier will be through Direct Access. If Direct Access is desired, set @AllowDirectAccess="true" in SearchAirLeg/AirLegModifiers. AllowDirectAccess can be set in any AirLegModifiers element, but the first element is preferred. If AllowDirectAccess is not set or is false, neutral availability is used. The AvailabilitySource in the LowFareSearchRsp is tied to the AllowDirectAccess attribute and is for Travelport troubleshooting purposes only.
- AirSearchModifiers/@ExcludeOpenJawAirport to specify that only the same departure and arrival airport(s) are returned when multi-airport codes are involved. Any open-jaw results where multiple airports are within same city are excluded. The attribute is only supported at the itinerary level.
- AirSearchModifiers/MaxLayoverDuration
to specify the maximum duration, in minutes, for layovers:
- @Domestic (US and Canada).
- @Gateway (US/Canada to outside of the US or Canada).
- @International (e.g., Dubai to London).
For example, a request from MCI to LON with ExcludeOpenJawAirport set to "true" would ONLY allow return flights from LHR if the arrival is in LHR. Other airports in London or elsewhere would not be included.
Note: An Open Jaw is typically defined as travel that is essentially of a round-trip nature, except that the outward point of arrival and the inward point of departure are not the same, or the outward point of departure and the inward point of arrival are not the same. In the definition, "the same" means the same location, not the same airport.
The maximum layover time will be applied to all applicable layover types in the trip. It will not be verified if the option is not specified in the request.
The attribute is only supported at the itinerary level.
Note: MaxLayoverDuration displays in the schema for the Air Availability request, but it is ignored if it is included in the request.
Worldspan does not support the following request data:
- Point of Sale: If any value is provided in this element in the request, it is ignored, and a warning is sent in the response: "Separate PointOfSale not supported by provider".
- Plating carrier: If a plating carrier is provided in the request, the request is submitted without the Plating Carrier, and a warning is sent in the response.
- Spanish Resident Fare functionality.
- AirSearchModifiers@MaxJourneyTime
Worldspan returns the following in the response:
- NVB/NVA dates
- Complete Flight Details for each leg in a trip, including the actual equipment code (change of gauge).
- Currency: The currency returned in the response is determined by the travel provider's identifier (SID). A decimal place indicator is not returned for currency.
- All private fares as "Private Fare".
Note: This implementation is backwards compatible with earlier Air schema versions.
Worldspan does not support the following response data:
- Link Availability
- Polled Availability Option/Inside Availability
- Air Price Points
- BaggageAllowance within FareInfo when SolutionResult="true" in the request. To return BaggageAllowance, use LowFareSearch by PricePoints by sending SolutionResult="false" in the request.
By default, Worldspan returns alternate airports in the same metro area. This default can be modified by changing the typeSearchLocation parameters in SearchOrigin or SearchDestination.
For a more complete list of functionality available from various ACH carriers, see ACH Carriers Functionality. Because functionality for carriers may be subject to change, always confirm functionality directly with the ACH carrier before implementation.
- PreferCompleteItinerary is available for ACH only. This indicator specifies whether ACH details are returned as:
- Pricing solutions for each SearchAirLeg element in the request. (PreferCompleteItinerary=false)
- Pricing for the entire requested itinerary, for which Universal API attempts to combine single-carrier results. (PreferCompleteItinerary=true; the default)
- ACH supports multi-city and open jaw
searches for Low Fare Shopping.
- With support for Multi-City, ACH now supports sending a RefNumber in the request. The RefNumber allows the client application to more easily track the segments in the response:
- In the ACH Low Fare Shopping Request, assign each OriginDestinationInformation element a unique RefNumber starting with "0".
- In the Low Fare Shopping Response, use the PricedItinerary @OriginDestinationRefNumber to map to the Group number and the RouteList Group number in the response.
- For subsequent Air Pricing requests, ACH carriers require:
- The HostToken from the Low Fare Shopping response.
ACH-specific Host tokens are returned in AirPricingSolution/AirPricingInfo/BookingInfo @HostTokenRef.
<BookingInfo BookingCode="Y" CabinClass="Economy" FareInfoRef="11T" SegmentRef="6T" HostTokenRef="8T"/>
Tokens in AirSegment/HostTokenRef are returned for Carrier-Specific Availability.
- Both
the FareBasis code and
BookingCode from the Low Fare Shopping response.
For Easyjet (U2), the FareBasis and BookingCode are the same code. - The class of service (ClassOfService).
Because ClassOfService is not returned in AirSegment for ACH, it must be taken from BookingCode in AirPricingSolution. - A normalized Air Pricing Solutions structure returns AirPricingSolution elements for only one set of flights per leg. Previously, all available flights were returned. Similar data is now also available in for Low Fare Shopping by Air Price Point.
- Some ACH carriers require loyalty details to be included in the entire shopping flow (Shop/Price/Book).
- Some Low Cost Carriers return fare-related remarks, such as a summary of rules for Fare Families, in the FareRemarkList element. FareRemarkList supports one or more FareRemarks, which can include free text or URLs. The FareInfo/FareRemarkRef element has a Key that references the FareRemark, with one Key for each FareRemark returned from ACH for a particular ticket designator code.
For Low Cost Carriers in applicable markets, FareRemarksList can be suppressed in the Universal API configuration at either the Agency or Branch level. Fare Remarks can suppressed at:
- The Agency level to remove FareRemarkList in responses for all child Branches of the Agency Code.
- The Branch level to remove FareRemarkList in responses for specific Branch Codes (Target Branches) within an Agency Code.
Contact your Travelport representative for more information.
- In Air v35.0 and later, the @ConsolidateFareRemarks attribute, when set to True, provides a consolidated list of fare remarks instead of returning an individual fare remark for each fare. Available only for Air Canada.
- Most Low Cost Carriers (LLCs) in ACH offer only Economy fares. Some LCCs support the display of cabin class in the shop response. Other LCCs support the display of fare family, instead of cabin class, in shop response.
- ACH does not return optional service details in the Low Fare Shopping response. The OptionalServicesIndicator is false for ACH-only segments, even though the option may be supported. A follow-up Air Pricing request is required to obtain optional services on ACH carriers.
- Booking counts and the number of available seats are not supported by all ACH suppliers.
- If the number of available seats is returned by the supplier, Universal API returns the supplier's number (which may be 3 digits).
- If the number of available seats is not returned by the supplier, Universal API calculates the available seats based on the number of passengers specified in the request. More seats may be available.
- Amounts are returned in the currency of the first departure city. At booking, the customer is charged in the foreign currency.
- The CurrencyType attribute should be used to obtain Approximate Base and Approximate Total fares in the requested currency; it displays an indicative price without changing the underlying transaction. The CurrencyType change for other providers does not affect ACH. ApproximateBasePrice and ApproximateTotalPrice are impacted by the CurrencyType.
- ACH carriers may not return tax details in a Low Fare Shopping response, or may include the taxes in the base fare. A subsequent Air Pricing request may be needed to return a breakdown of the tax details.
- ACH displays all private fares as "Private Fare".
- ACH does not support:
- PermittedBookingCodes or ProhibitedBookingCodes in AirSearchModifiers. If these modifiers are used, a warning message is sent in the response.
- ACH does not support search modifiers at the Air Leg level. If any AirLegModifiers are sent in an ACH request, a warning is returned and the request is processed without the modifiers. The exception is AirLegModifiers/PreferredCabins, which, when sent, applies the cabin preferences to all legs in the request.
- Equivalent Currency
- MaxNumberOfExpertSolutions modifier for ACH and ACH/Worldspan aggregated responses.
- Spanish Resident Fare functionality.
- By default, ACH returns alternate airports in the same metro area. This default can be modified by changing the typeSearchLocation parameters in SearchOrigin or SearchDestination.
- AirSearchModifiers@MaxJourneyTime is not valid.
See Rail Low Fare Shopping for rail-specific details.