Air Pricing
AirReqRsp.xsd
Low Fare Shop > Air Pricing OR
Air Availability > Air Pricing
Air Pricing provides the lowest available price for an itinerary specified in the request, taking into account all cabin classes (class of service) that are currently available on the flights that make up the itinerary.
An Air Pricing request is:
-
Required to obtain fare information for an Air Itinerary selected for an Air Availability.
-
Strongly recommended, and in some cases required, to confirm up-to-date fare data from a Low Fare Shopping response.
Important! An Air Pricing request is required for Low Cost Carriers (LCCs) before Air Booking.
Schema
Located in Air.xsd:
Request
-
Enter the minimum required data for AirPriceReq to make a Air Pricing request.
- The airline code and flight number.
- Origin and destination airport code.
- A departure date and time.
- An arrival date and time.
- Booking class.
- Passenger type code (default is Adult). SearchPassenger can be used to specify Passenger Type Codes (PTCs), if there are any passengers in the itinerary that are not the default Adult (ADT) passengers.
- Age is never sent for ADT, even if an age is included.
- Age is sent for all other PTCs only when the age is specified in the request.
- Galileo and Apollo limit each PNR to six PTC types. Use of an age with a PTC makes that PTC unique. For example, C08 and C12 are processed as two distinct child PTCs.
- Host token and Fare Basis Code (required by ACH).
-
For Worldspan (1P), include the AirReservationLocatorCode to re-price a booking by taking into account the initial booking date and time.
Required data for repricingA Universal Record Import or Retrieve should be sent first to get the complete PNR details with segments and other information.
When the Air Pricing request includes segment details, the SearchPassenger element, and the 1P AirResrvationLocatorCode (PNR), the existing booking is priced by taking into account the initial booking date and time.
- AirPriceReq/AirItinerary/AirSegment is used for segment selection and is mandatory.
- AirPriceReq/SearchPassenger is used for PTC selection and is mandatory.
-
AirPriceReq/AirPricingModifiers@FaresIndicator indicates whether only public fares should be returned or a specific type of private fares.
- PublicFaresOnly
- PrivateFaresOnly
- AgencyPrivateFaresOnly
- AirlinePrivateFaresOnly
- PublicAndPrivateFares
- NetFaresOnly – for pure Private Fares or net fares
- AllFares – returns public and/or private and/ or net fare or a combination, whichever is cheaper
- AirPriceReq/AirPricingModifiers@AccountCodeFaresOnly indicates whether or not the private fares returned should be restricted to only those specific to the input account code.
- AirPriceReq/AirPricingModifiers/AccountCodes/AccountCode is used to get Private Fares and/or net fares with a specific account code.
- AirPriceReq/AirPricingModifiers@CurrencyType is used for currency override.
- AirPriceReq/AirPricingModifiers@PlatingCarrier overrides the default plating carrier. Overriding the default carrier can be subject to ADMs.
Refer to Storing a Price within Universal Record Modify for information on how to store a re-priced segment in an existing Universal Record.
-
Optional. Enter HostToken and @HostTokenRef to aid with pricing and booking of branded fares.
- Host Token: Retains the exact fare during the book transaction that was returned in the AirPrice response.
- Brand Tier: Reprices the fare during the book transaction to get the best fare within the desired brand.
- When both brand tier and a fare host token are sent in a pricing request, the brand tier is used and the fare host token is ignored. A warning is returned: The fare HostToken has been ignored. The BrandTier has been applied.
- In a price response, a brand tier and fare host token may be returned. If you copy and paste the entire pricing solution into the Air Booking or Universal Record Modify transaction without removing either the brand tier or the fare host token, then the fare host token is ignored.
- To use the host token instead of the brand tier, remove the brand tier from the Air Booking or Universal Record Modify request in Universal.xsd v43.0 and later. Release 18.1
- The Host Token should be used in the Air Price and Air Booking requests for both branded and non-branded fares.
- AirPricingSolution/AirPricingInfo/BookingInfo @HostTokenRef
- AirPricingSolution/HostToken
-
Enter additional optional data to refine the response.
Optional Data
Description
@ReturnAmenities Routehappy 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. N
@CheckFlightDetails
Set to true to return flight details. Default is false.
More information- @CheckFlightDetails returns up to 22 in-flight services.
Depending on provisioning, @CheckFlightDetails may be ignored and a warning may be returned:
Please contact your Travelport Support representative for more information.
Specify if no, short, or long fare rules should be returned.
More informationIdentifies the type of fare rules that should be returned in the response. If empty or 'none', no fare rules are returned. Otherwise, 'long' (complete) or 'short' (abridged) fare rules can be specified. If an account code is included in the request, private fares rules are returned for that account.
A full set of non-truncated data returns in the FareRules and AirPrice response when the request sends the FareRuleType="long" element. This allows agencies to display a full rules-set to travelers, and they can make an educated decision when selecting fares associated to their itineraries. U
Note: If the full set of rules exceeds the 180K limit, the following messages return:
-
"TOO MANY TEXT LINES - TEXT TRUNCATED" warning message
-
"DO A CATEGORY SPECIFIC TEXT ENTRY" prompt message
@SplitPricing Indicates whether the AirSegments should be priced together (false) or separately (true). Refer to Split Ticketing Search for more information.
@CheckOBFees If true, Universal API checks for OB Fees charged by the carrier. If OB Fees are present, AirPriceRsp returns the details in AirPriceRsp/AirPriceResult/AirPricingSolution/FeeInfo. Default is false.
Price Open Segments Open segments are air segments that do not specify the flight number. Open segments may or may not include the travel date, and are typically used to secure a fare even though the traveler is not certain of one or more travel dates. Open segments can be booked, modified, and ticketed the same way as regular air segments. Prior to travel, they are exchanged for a ticket with complete flight details.
More informationThe following attributes and values are supported for Open Segments in AirSegment:
-
@OpenSegment="true" (required)
-
@DepartureTime (optional)
If @DepartureTime is included, it should only include the date and not the time. The time value in @DepartureTime is returned as "T00:00:00.000" in the response.
-
@ArrivalTime (optional)
If @ArrivalTime is included, it should only include the date and not the time. The time value in @ArrivalTime is returned as “0:00:00” in the response.
-
@FlightTime (optional)
-
@TravelTime (optional)
-
@ClassOfService (optional)
Regardless of the status that is included in the request to Universal API, open segments are passed to providers as follows:
- Galileo and Apollo providers are sent Status="NO".
- Worldspan provider is sent Status="PS".
Error and Warning Responses
An error response is returned if:
- A request with OpenSegment set to "true" includes a FlightNumber value. @FlightNumber is not supported in the request and is not returned in the response.
- A request is sent without a FlightNumber value and OpenSegment is not set to "true".
DepartureTime and ArrivalTime data is not included in the response but no warning is returned.
Connection If a Connection is returned in the Low Fare Shopping or Air Availability 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.
When SearchPassenger/PersonalGeography information is included in a price request, the traveler's location is considered at the time of pricing. Some airline vendors offer specific rates based on traveler location. Release 18.2
Note: Available in Travelport Worldspan.
@SplitTicketing and Split Booking If true, the requested segment groups are priced separately. The default is false, which prices all segments together.
For more complete details on Split Pricing and Split Booking, see the Split Ticketing Search and Book topic
More information Release 19.0The attribute AirPriceReq @SplitPricing enables customers to perform a split ticket pricing search in a single Air Price request. Setting @SplitTicketing to "true" prices the requested segment groups separately and returns a consolidated AirPricingSolution in the Air Price response. When using @SplitPricing, there must be more at least two AirItinerary/AirSegment nodes in the request, and AirSegment@Group must be used in each AirSegment node to identify the origin for the segments in that group. Otherwise Universal API returns the error "For Split Pricing there should be more than one AirSegment with distinct Group values."
Pricing for the two AirSegment groups, inbound and outbound, is differentiated in the response by the AirPricingInfoGroup attribute. This allows the customer to ticket outbound and inbound segments separately within the same PNR. The default value for SplitPricing is "false", which prices all segment groups together. SplitPricing can be used with Galileo, Apollo, and Worldspan but not ACH.
Note that Universal API returns up to 99 AirPricingSolution responses for a SplitPricing search. In some rare cases, a split pricing search requesting more than two segment groups and a fare family display may have more than 99 possible pricing solutions. If so, only the first 99 pricing solutions in increasing order of total price would be returned.
In earlier versions, or if the SplitPricing default value of "false" is used, split ticketing can still be accomplished by sending separate air price requests for the outbound and inbound segment groups, booking the outbound and inbound segments using AirCreateReservationReq, and then adding AirPriceRsp/AirPriceResult/AirPricingSolution/AirpricingInfo for both segment groups using UniversalRecordModifyReq.
In Air v47.0 Release 19.0, Universal API supports the ability to search for and create split bookings for roundtrip tickets. Universal API supports split bookings for provisioned customers. If you are interesting in this functionality, please contact your Travelport representative.
For the a split booking search a request is submitted via AirCreateReservationReq with two (and only two) AirPricingSolutions.
- The first AirPricingSolution contains pricing details about outbound segments.
- The second AirPricingSolutions contains pricing details about inbound segments.
After submitting an AirCreateReservationReq with 2 AirPricingSolutions, a split booking validation process occurs.
A split booking allows you to book a roundtrip ticket by submitting two separate pricing solutions in one reservation request. Prior to this release, you had to submit two separate booking requests, one for the outbound itinerary and the other for the inbound itinerary. You can then ticket the two segments separately under the same PNR.
If you are provisioned for split booking, send two AirPricingSolution elements in AirCreateReservationReq to specify that a split booking should be made. @ProviderCode in each AirPricingSolution/AirSegment must match.
The response returns one provider PNR. Each AirPricingSolution must be ticketed separately with the airlines.
@ReturnTaxDetails U ReturnTaxDetails returns expanded tax details so that the full tax name (associated to the tax code) and the additional surcharge information displays for the selected itinerary.
xPath: Air v53.xsd
AirPriceReq/@ReturnTaxDetails
AirPriceRsp/AirPriceResult/AirPricingSolution/AirPricingInfo/TaxInfo/TaxDetail/@Description
- Enter modifiers at the global level to apply to all the commands using AirPriceReq/AirPricingModifiers, or enter modifiers separately for each command.
- Branded Optional Services are returned in AirPriceResult/AirPricingSolution/AirPricingInfo/FareInfo/Brand/OptionalServices and are for informational purposes only.
- Unbranded Optional Services are returned in AirPriceResult/AirPricingSolution/OptionalServices and are available to sell for a specific segment.
- "true" unbranded Optional Services are returned in the Air Pricing response.
- "false" (default) unbranded Optional Services are not returned in the Air Pricing response.
-
Air v48 and earlier: Customers currently using Optional Services in the Air Price response (/AirPricingSolution/OptionalServices), but not sending the @ReturnServices Air Price request modifier, must send @ReturnServices=”true” or contact their Travelport representative to be added to an exception list for this enhancement prior to deployment to avoid disruption of service.
-
Air v49 and later: Any customer wanting to have Optional Services in the Air Price response (/AirPricingSolution/OptionalServices) returned in the response must send the @ReturnServices modifier in the request. There will be no longer be an exception list starting with this schema version.
- @SupplierCode="AC"
- @Type="RFB"
- @Code is set to the corporate reward ID number
- @ProviderCode="ACH"
- @SupplierCode="U2"
- @Code is set to the Corporate ID number
- @ProviderCode="ACH"
- Is 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 use Faring agency as the ticketing agency.
-
TicketDate attribute was added to the AirPriceReq to support this functionality. The TicketDate can be in the future or up to one year from the current date of the transaction.
-
QuoteDate attribute was added to AirPriceRsp/AirPriceResult/AirPricingSolution. This date contains the TicketDate sent in the request. If the request did not contain a TicketDate, then this date is equal to the date of the transaction.
-
If using the Travelport Search Control Console (SCC), it is optional to use AirPriceReq to activate or override the SCC filters.
Show detailsFor customers using the Search Control Console (SCC), SCC attributes were added to AirPriceReq for Galileo (1G), Apollo (1V), and Worldspan (1P) as follows:
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).
In Release 16.2.1 a Host Token was implemented to aid with the pricing and booking of branded fares. Some fare components identifying certain brands were complex for the current pricing and booking transactions. The new implementation contains all the required fare components to properly retain a specific fare (and associated brand) when performing a pricing and/or booking transaction. The Host Token solution applies to Galileo and Worldspan. Apollo users should see the Brand Tier solution.
In 18.1, the Brand Tier modifier was implemented to also aid with the pricing and booking of these complex branded fares. The Host Token solution is unique to Universal API while the Brand Tier modifier is used by all points of sale at Travelport (Smartpoint, Galileo Desktop, WorldspanGO). The Brand Tier modifier is the preferred way to price and book branded fares. The Fare Host Token may still be used but might be retired in the future. Release 18.1
Differences between the two solutions:
Important:
Notes:
The HostToken can be included in the AirPriceReq to price a specific brand or fare. Regardless of whether they are included in the Air Price request, both the HostToken and HostTokenRef are returned in the Air Price response and should be used in the Air Create Reservation request to successfully book the desired brand or fare, or in the Universal Record Modify AirAdd to successfully add the desired brand or fare to the UR. If they are not sent in the Air Create Reservation request or the Universal Record Modify Air Add request, the lowest brand or fare is typically booked by default.
Note: The HostToken and HostTokenRef are supported for 1G, 1V, and 1P and are different from ACH Host Tokens.
Please see the Universal API Demo site for sample XML of the implementation of these Host Tokens.
AirPricingModifiersValues sent in AirPricingModifiers apply to all commands, unless they are explicitly specified otherwise in the individual commands. Another way to look at it is, AirPricingModifiers can act as a default while the commands act as overrides.
@FaresIndicator
@ReturnServicesIn Air Pricing responses, ATPCO-filed Optional Services can be returned either as branded (part of a fare brand) or unbranded (outside of the fare brand):
@ReturnServices is used to specify that unbranded Optional Services (/AirPricingSolution/OptionalServices) be returned in the response. If AirPriceReq/AirPricingModifiers @ReturnServices is set to:
Note: The default behavior was set to false in Universal API Release 20.2 to ensure only customers who need this setting have it set. E.g., @ReturnServices default is set to false instead of true. Options vary based on schema used:
Branded Optional Services (/Brand/OptionalServices) continue to be returned in all responses. This functionality is supported only for Galileo, Apollo, and Worldspan. Unbranded Optional Services are always Airline Content Hub (ACH).
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.
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:
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.
AirPricingCommandAirPricingCommand specifies the different modifiers used to price the itinerary (AirItinerary). Currently only one AirPricingCommand is processed. Processing multiple AirPricingCommands is not yet implemented. AirPricingCommand contains AirPricingModifiers and AirSegmentPricingModifiers children to control the pricing results.
/AirSegmentPricingModifiers/ConnectionIndicator
Worldspan ONLY See Exceptions, below, for details.
If none of the system-generated fares from Universal API are acceptable, Fare Basis Codes (AirPriceReq/AirPricingCommand/AirSegmentPricingModifiers @FareBasisCode) can be used to create a specific fare to price, which overrides the Universal API fare responses.
/PointOfSaleThe inclusion of the PointOfSale element allows one or more PCCs to be supplied to enable the return of private fares. This element is not required, and should only be used when the desired PointOfSale differs from the PointOfSale of the user initiating the request. This value can be included when redistribution is used, in which one PCC has been given permission to act for another PCC.
/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:
OptionalServicesOptionalServices is used specifically for pricing requests with an Optional Services model. See Air Pricing for Optional Services for details.
Fare Quote a Historical Date
Contact your Travelport Support representative for provisioning requirements.
Two new attributes are available:
Both dates are formatted as YYYY-MM-DD.
The historical fare quote included in the response is informational and can only be stored manually.
For Worldspan, ACH, and Rail, historical fare quote is not available. If TicketDate is sent in a request to one of these providers, the value is ignored and the request uses the default (current) date. Additionally, a warning is returned, "Modified Ticket Date is not supported by Provider. The date of this transaction was used as the ticket date for this price request."
An enhancement was added in release 24.3, when an AirFareRules request is sent with a ticket date included, the AirFareRules response considers the ticket date entered and returns the applicable fare rules. This allows agencies to review the historical fares returned in the fare rule response to validate the rules for a specific fare and determine the exchange/refund policy. N
See Air Pricing Modifiers for more details.
Response
The AirPriceRsp contains the AirItinerary that was specified in the request and all the AirPriceResults of the specified AirPricingCommands.
Note: Data returned may vary by provider and supplier:
- The vendor code and flight number
- The departure date
- The origin and destination airport codes
- The departure and arrival dates and times
- The booking class code and fare basis code
- Informational messages
- Last date to ticket
- Date of the fare quote
- Base fare amount (without taxes or other fees)
- Total amount of the fare
- Tax amount and tax type code
- PFC amount (US-only facility charges) and airport code
- Ticket non-refundable indicator, if applicable
- E-ticketing status
- Baggage Allowance
The response includes both the lowest price and the booking information needed to book the itinerary; or if booking codes have been requested, the lowest price for the requested booking codes.
AirItinerary indicates the flight segment associated with the corresponding fare in price results.
AirSegment attributes
- The PolledAvailabilityOption attribute indicates whether the carrier has inside (polled) availability.
- AvailabilityDisplayType and AvailabilitySource are used internally for reporting and troubleshooting.
- Status identifies the status of the booked air segment.
- SegmentRemark returns the operating carrier (codeshare) name, as well as the Segment Remark, for the connecting flight (Worldspan [1P] only), as is also returned in the Air Availability and Low Fare Shop . Release 18.3
AirSegment/ConnectionThe Connection indicator that is returned in the Low Fare Shopping or Air Availability response and sent in the Air Pricing request is returned in the Air Pricing response. The Connection indicator must be used to ensure the flights are sold correctly and a sell failure does not occur. See Air Segment Connection Logicfor more details.
AirSegment/FlightDetails/InFlightServicesInFlightServices are returned when @CheckFlightDetails= "true". InFlightServices returns up to 22 in-flight services.
Show services1 - Movie
2 - Telephone
3 - Telex
4 - Audio Programming
5 - Television
6 - Reservation Booking Service
7 - Duty Free Sales
8 - Smoking
9 - Non-smoking
10 - Short Feature Video
11 - No Duty Free Sales
12 - In-seat Power Source
13 - Internet Access
14 - E-Mail
15 - In-seat Video Player/Library
16 - Lie-Flat seat
17 - Additional service(s) exist
18 - Wi-Fi
19 - Lie-Flat seat first
20 - Lie-Flat seat business
21 - Lie-Flat seat premium economy
99 - Amenities subject to change
InFlightServices may not be returned, depending on provisioning. Please contact your Travelport Support representative for more information.
/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 returns any requirements for booking. For example, if APIRequirementsList/APIRequirements@NationalityIndicator="true", then the carrier requires AirCreateReservationReq/BookingTraveler@Nationality to be specified.
AirPriceResult is the result of a single AirPricingCommand from AirPriceReq. It is always returned whether or not a price can be attained. If no price is returned, an error message is returned.
/Flight Details
The number of FlightDetailsdetermines the number of stops/plane changes in a segment:
-
Typically, a non-stop segment returns one FlightDetails element, a single stop WITHOUT a plane change returns two FlightDetails elements, etc.
-
If there is a connection WITH a change of plane, then there are two AirSegment elements, and each AirSegment element has one FlightDetails child.
- For Galileo and Worldspan, the first AirSegment has a Connection child to represent the connection details. In the case of AirSearchRsp, one or more AirSegment elements are shared between AirPricingSolution, so the Connection is included within AirPricingSolution instead of being directly associated with AirSegment.
- Instead of a Connection child, ACH uses the Group attribute of AirSegment to identify groups of inbound and outbound flights, respectively.
In each Carrier-Specific Display (CSD) response, the AirSegment element returns a Reference Sell Token; therefore if multiple legs are requested, multiple tokens are returned. There can be two connecting segments on the same carrier from the same host CSD.
Notes:
- The token remains active on the provider's system for three minutes, but the actual time can be less than three minutes, due to API processing time.
- ACH-specific Host tokens are returned in AirAvailInfo/HostTokenRef.
FlightDetails contains very similar data to AirSegment but includes three additional attributes:
-
OnTimePerformance
-
OriginTerminal
-
DestinationTerminal
The children of AirPriceResult provide the details of the specific Air Pricing result.
AirPricingSolution is returned when the itinerary can be successfully priced for the criteria entered. However, this solution does not contain fully formed AirSegment elements. Rather, the AirSolution contains AirSegmentRef elements that reference the items in the AirItinerary off the root AirPriceRsp. This structure mimics the AirSearchRsp methodology and minimizes the redundancy and response size.
AirPricingSolution contains pricing for all passenger types in the PNR, while one or more AirPricingInfo elements contain pricing based on one or more individual passenger types in the PNR. Depending on the data returned by the provider or supplier, AirPricingInfo may also contain:
- Change and cancel penalty information specified as an amount or percentage.
- Baggage allowance details.
- Pricing method (for example, manual fare), to support Fare Guarantee (Galileo) and Fare Status (Apollo) responses per passenger, with the values:
- GuaranteedUsingAirlinePrivateFare
- Airline
- AutoUsingPrivateFare
- Pricing method with a value of GuaranteedUsingAirlinePrivateFare to indicate that a guaranteed Agency Private Fare was used with no rules override.
- Ticketing deadline.
/EquivalentBasePrice (Equivalent Currency)If the point of sale currency is different from the currency of the filed fare, the equivalent currency and amount with decimal is displayed in the AirPricingSolution EquivalentBasePrice and AirPricingSolution/AirPricingInfo EquivalentBasePrice.
When the Universal Record is retrieved from the database, EquivalentBasePrice is returned even if there is a provider connection problem (E.g., lost network).
/AirPricingInfo/BaggageAllowances/ (Baggage Charges)Free baggage allowance and baggage charges are displayed at fare quote for trips entirely within the United States or to/from the United States, per the US Department of Transportation (DoT). The Air Pricing response contains the required baggage allowance and charges information in AirPricingInfo/BaggageAllowances/BaggageAllowancesInfo, including
- Marketing carrier for trips entirely within the United States (US) or US Territories.
- Most Significant Carrier (MSC) for trips not entirely within the US or US Territories.
- Baggage trip.
- Baggage website URL of the marketing carrier or MSC.
- Free baggage allowance.
- Size and weight limitations.
- Baggage fees for the first checked bag, second checked bag, and the carry-on bag.
- Additional baggage information, such as discounts that may apply based on frequent flyer status.
Types of embargoed baggage that are not permitted for the flight.
Note:
CarryOnAllowanceInfo and EmbargoInfo child elements are included in the FareInfoRef/BaggageAllowance element. These elements are optional in the schema, but the Travelport Universal API process makes this response data mandatory for all flights.
The BagDetails element contains information about cost per bag, applicable bags, baggage restriction, and available discounts.
/BaggageAllowanceInfo, /CarryOnAllowanceInfo, and /EmbargoInfo show United States Department of Transportation (DOT) mandated that baggage allowance and baggage charge data must be disclosed to the client at fare quotation.
All fare quotes will contain the full disclosure baggage data, regardless of the geography of travel.
- Baggage-related data is returned directly travel provider or carrier, and may vary by source within the mandated requirements.
The CarryOnAllowanceInfo element indicates the permitted options for carry-baggage for the associated flight.
This element contains the following attributes to identify the associated segment: Origin, Destination, and Carrier. The child elements contain information related to permission or limitations for that segment.
URLInfo contains links to web sites from the travel provider or marketing carrier that contain detailed baggage requirements
One or more TextInfo values return any free text messages from the travel provider or carrier about permission or limitations for carry-on luggage.
CarryOnDetails indicates the total number of carry-on bags permitted per passenger per air segment (@ApplicableCarryOnBags)
@BasePrice indicates the price for each carry-on baggage per passenger, not including taxes or additional fees
@TotalPrice indicates the price for each carry-on baggage per passenger and includes any taxes or additional fees
BaggageRestriction returns the baggage allowance text that applies to each carry-on bag in BaggageRestriction/TextInfo @Text, based on provisioning. For details, contact your API Support representative.
The EmbargoInfo element indicates any items that are not permitted on the flight. This element contains the following attributes to identify the associated segment: Origin, Destination and Carrier.
URLInfo contains links to web sites from the travel provider or marketing carrier that contain detailed baggage requirements
One or more TextInfo values return any free text messages from the travel provider or carrier about permission or limitations for carry-on luggage
/AirPricingInfo/FeeInfo (OB Fees or Carrier Ticketing Fees)Note: Apollo returns OB Fees as a tax.
When CheckOBFees is set to "true" in the request, the response displays the BaseAmount, Description, and SubCode for the applicable OB Fees in AirPriceRsp/AirPriceResult/AirPricingSolution/FeeInfo. If a FormOfPayment type and card number are specified, the @Fee and @ApproximateFees will be populated with the applicable amounts and will also be included in the @TotalPrice.
Refer to OB Fees for more information about fee types and sub-codes.
/AirPricingInfo/TaxInfo/TaxDetail @DescriptionAirPriceReq/@ReturnTaxDetails returns expanded tax details in the AirPrice response so that the full tax name (associated to the tax code) and the additional surcharge information displays for the selected itinerary in TaxInfo/TaxDetail @Description. U
/AirPricingInfo/FeeInfo and /TaxInfo (ACH Taxes and Fees Breakdown)For ACH carriers that include the taxes and fees within the base fare at the itinerary level, Universal API provides a breakdown of the taxes and fees included in the base fare when this information is provided by the carrier. Each TaxInfo or FeeInfo element of AirPricingSolution and AirPricingSolution/AirPricing Info contains the attribute @Text, which returns any freeform text information provided by the supplier, and the element IncludedInBase, which provides the breakdown of the taxes and fees. IncludedInBase has the attribute @Amount, which shows the amount included in the base fare for the specific fee or tax. This information is provided by default anytime it is available from the ACH carrier.
/AirPricingInfo/ @Refundable Change, Cancel, and No Show Penalty (CAT16) Release 19.1Air v48.0 adds fare penalties details for base fares and upsell fares (all fares) in AirPrice. The most restrictive rules in the CAT16 category (cancel, change, and refundable attributes) for base and upsell fares return in the response, along with PenaltyApplies tags to denote Anytime, Before Departure, and After Departure penalty information.
AirPriceResponse/AirPriceResult/AirPricingSolution/AirPricingInfo populates the following:
- @Refundable=true/false
- /ChangePenalty
- /Amount or Percentage
- @PenaltyApplies=AnyTime/BeforeDeparture/AfterDeparture
- @NoShow=true
- /CancelPenalty
- /Amount or Percentage
- @PenaltyApplies=AnyTime/BeforeDeparture/AfterDeparture
- @Noshow=true
- /NoShowPenalty
- /Amount or Percentage
- @PenaltyApplies=AnyTime/BeforeDeparture/AfterDeparture
OptionalServices is used specifically for pricing requests with an Optional Services model. See Air Pricing for Optional Services for details.
FareRule contains the fare rules associated with a specific AirPriceResult.
An IndustryStandardSSR element provides information regarding industry standard SSR data, when available from the carrier.
IndustryStandardSSR @Code indicates which industry standard of SSRs the carrier supports. For example, the "AIRIMP" standard, identified by IATA.org.
See the Exceptions section for additional details.
AirPriceError is returned if an itinerary cannot be priced as specified and contains details about the failure.
Rich Content and Branding
The response may also contain Brand details for the fares. See Rich Content and Branding in the Air Pricing Response for details, including the Brand Attribute and DisplayOrder.
Exceptions
Galileo does not support AirSegmentPricingModifiers @ConnectionIndicator.
Galileo 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.
- AirSegmentPricingModifiers @ConnectionIndicator.
Apollo returns OB Fees as a tax.
Apollo supports Spanish Resident Fare functionality.
Worldspan supports AirPricingCommand/AirSegmentPricingModifiers @ConnectionIndicator
Show details for using ConnectionIndicatorAirPriceReq/AirPricingCommand/AirSegmentPricingModifers @ConnectionIndicator is used with Connection element in AirPriceReq/AirItinerary/AirSegment.
@ConnectionIndicator has the following enumerations that are used in conjunction with AirSegmentRef in the Air Pricing request:
- AvailabilityAndPricing
- TurnAround
- Stopover
AirSegmentPricingModifiers @ConnectionIndicator and @AirSegmentRef are used to specify the segments that are connected in the Air Pricing request.
For example, DEN-ORD-DEL is a connected segment. In the Air Pricing request, the AirSegmentPricingModifiers @ConnectionIndicator and @AirSegmentRef must be specified for the DEN-ORD segment.
If the ConnectionIndicator attribute is specified for the last segment in the Air Pricing request (in the preceding example, ORD-DEL), Universal API ignores that ConnectionIndicator attribute, because it is not supported by the Worldspan provider.
For multiple connections, the ConnectionIndicator and AirSegmentRef must be specified for each segment, except the last. For example, a flight from DEN-ORD-JFK-MHT-DEL requires the ConnectionIndicator and AirSegmentRef for the segments from DEN-ORD, ORD-JFK, and JFK-MHT. The MHT-DEL segment does not require the ConnectionIndicator and if it is included for that segment, it is ignored.
Specified Availability ConnectionWhile /AirSegmentPricingModifers @ConnectionIndicator shows the presence of connecting segments for pricing purposes, the existing Connection child element in AirPriceReq/AirItinerary/AirSegment can be sent to indicate the presence of connecting segments for availability in the Air Pricing request.
The Connection element is sent to indicate the presence of a connection between a segment and the following segment. For an Air Pricing request, the Connection element must be empty; any Connection attributes are ignored if they are included in the request.
For example, DEN-ORD-DEL is a connected segment. In the Air Pricing request, the AirSegment/Connection element must be specified for the DEN-ORD segment
If the Connection element is specified for the last segment in the Air Pricing request, Travelport Universal API ignores that Connection element because it is not supported by the Worldspan provider.
Default Connection IndicatorA default connection indicator is sent by Travelport Universal API in the Air Pricing request if ConnectionIndicator or Connection are not sent. For example, if segments A-B and B-C are not connected, a default connection indicator is sent to the Worldspan provider.
Error and Warning Messages
Only one ConnectionIndicator can be sent to the Worldspan provider for each segment. If a Connection element and a ConnectionIndicator, or more than one ConnectionIndicator is specified for the same segment, a warning message is returned:
Connection indicator is ignored because more than one value exist. Please specify only one connection indicator element in the Price request.
Worldspan does not support the following request parameters:
- Pricing Modifiers: No Maximum Stay, No Minimum Stay, and No Prohibited/Restricted Fares
- Specific Tax Exemption
- Currency Code
- Inclusive Tour (IT) Codes
- PointOfSale: Any value provided is ignored, and no warning is returned:
- Spanish Resident Fare functionality
- Historical fare quote using TicketDate attribute
Worldspan does not return the following information in the response:
- Arrival Date and Time
- NVA and NVB Dates
- Start Time and End Time
- Mileage
- Indicators for:
- NGGF International
- Rules Apply, Rules Exist, Fare Rule Information
- VAT Included
- Ticket Non-refundable
- Cancellation Fee
- Penalty Applicable, Type, and Amount
- Missing Rules
- Day Differential
- Ticketless and Guarantee Payment
- Ticketing PCC
- Flown Mile Component
- Over The Water Transporting Air Vendor
- Quote Date
- Decimal Places of Base Fare Amount, Total Amount, Equivalent Amount, and Fare Amount by Fare Component
- PFC Decimal Places
- Currency Code and Decimal Places of Penalty Amount
- Link Availability and Polled Availability Option/Inside Availability
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.
ACH carriers may charge different fees, depending on the form of payment sent in the request. Valid ACH forms of payment are: Credit Card, Debit Card, Cash (Air Canada only), or Agency Payment; other forms return an error.
- Only Air Canada supports cash FOP on ACH .
- Agencies must work with Air Canada to be allowed to use a cash FOP. Other carriers may return an error.
- Optional services cannot be priced or added, if a cash FOP is used.
If two different providers or suppliers are sent in a request, the SegmentRef attribute in FormOfPayment can be used to specify a form or payment for each. If there is more than one FormOfPayment, there must be a SegmentRef in each, and each Segment must be associated through a SegmentRef, or an error is returned. If FormOfPayment is sent without a SegmentRef, it is sent for all ACH adapters. If more than one FormOfPayment is being sent to the same adapter, an error is returned: "Only one Form of Payment allowed."
ACH-specific Host tokens are returned in AirAvailInfo/HostTokenRef, not AirSegment/HostTokenRef. Tokens in AirSegment/HostTokenRef are for Carrier-Specific Display.
For a pricing request:
- A HostToken and FareBasis code are required.
- Both multi-city and open jaw searches are supported.
- The following pricing modifiers are not supported:
- Price PTC only
- No advance purchase
- Refundable fares only
- No minimum stay
- No maximum stay
- Plating carrier
- Eticket modifier
- Cabin class
- Prohibit penalty fares
- Prohibit restricted fares
- Tax exempt
- Fare rule category
- Point of Sale
- Manual Fare Adjustment
- Open Segments
- AirSegmentPricingModifiers @ConnectionIndicator
For a pricing response:
- Taxes may be included in BaseFare in the Pricing response and broken out in Booking response.
- For some carriers, ACH returns Optional Services in the response.
- ATPCO standard optional service codes are returned in the OptionalService @ProviderDefinedType for ACH and in merchandising transactions. The ProviderDefinedType is used in subsequent requests to identify the desired option. The mapping for OptionalService @Type now maps to the APTCO group code.
- Optional Services pricing in the initial response is not guaranteed. The services must be re-priced with a second pricing call.
- Some optional services are associated to each other by business rules. For example, the presence of check-in for a second paid bag requires the existence of a first paid bag in the booking. The AirPriceResult/AirPricingSolution/OptionalServices/GroupedOptionsInfo element identifies options that have a logic/business relationship to each other. For example, for Jet2 (LS), the user must select between Airport Check-In and Online Check-In options.
- Each GroupedOptionsInfo/GroupOption child contains two or more references to Optional Services that have a rules relationship.
- ACH does not consistently perform rules validation in pricing for all carriers.
- Price request may succeed, but will return a validation failure during Booking.
- ACH pricing is done in the currency passed in the Low Fare Shopping response host token.
- Available PTCs vary by carrier. Typically, ADT, CHD, and INF are supported. Cnn and INS mapped to CHD; all other PTCs are mapped to ADT.
- May include credit card fees
- In ACH, credit card fees are returned, but are not labeled specifically as OB Fees. The codes used to indicate the fees can vary by carrier. For example:
- May include supported SSRs
- Short fare rules are not supported. ACH carriers return a text block that is categorized by Universal API as a long fare rule.
- ACH does not support historical fare quote using the TicketDate attribute.
<FeeInfo Key="13T" Amount="EUR17.00" Code="CCB" ProviderCode="ACH" SupplierCode="XX"/>
AgentID is part of the credentials required to access Air Canada content. It is assumed that agencies may not want to have all their agents share one set of credentials. Therefore, if a unique AgentID is required to be sent to Air Canada (possibly so that agencies can report on this information directly with AC), this ID can be sent in the AgentIDOverride element of the Air Base requests.
Air Canada reservations can be booked using Cash as a Form of Payment. Only Air Canada supports this enhancement on ACH and agencies must work with Air Canada to be allowed to use a cash FOP. Other carriers may return an error. Also note that optional services cannot be priced or added if a cash FOP is used.
Promotional Codes (Promo Codes) offer a discount or "special promotional rate" on a product for a specific period of time for meetings and conventions. Air Canada is currently the only supplier to support Promo Codes. There are two types of Promo Codes for Air Canada:
- Auto-Generated Promo Codes
- Customized Promo Codes
Promotional codes may not be returned from ACH in some responses. When promotional fares are returned, the value of the PromotionalFare indicator in FareInfo is "true."
Currently, American Airlines returns IndustryStandardSSR data in Air v28.0 and greater.
Code | Description |
Notes / Additional Information |
---|---|---|
ADMD |
ADVISE EMD NUMBER |
SSR FROM THE CARRIER TO INDICATE THE FULFILLMENT TIME LIMIT ON SERVICE ON ANCILLARIES SOLD |
ADPI |
ADVISE PASSENGER SECURITY INFO |
THIS NEW SSR CODE ENABLES AIRLINES TO ADVISE TRAVEL AGENTS IF THE SECURED FLIGHT PASSENGER DATA (SFPD) IS MISSING IN THE PNR |
ADTK |
ADVISE IF TICKTED |
|
ASVC |
ANCILLARY SERVICE |
ANCILLARY SERVICE MESSAGE TO THE CARRIER |
AVIH |
ANIMAL IN HOLD |
FREE TEXT SHOULD CONTAIN THE FOLLOWING: * DIMENSIONS AND WEIGHT OF ITEM * TYPE OF ANIMAL |
BULK |
BULKY BAGGAGE |
SPECIFY NUMBER, WEIGHT, SIZE IF KNOWN |
CBBG |
CABIN BAGGAGE |
FREE TEXT SHOULD CONTAIN THE FOLLOWING: * NUMBER OF EXTRA SEAT(S) AND REASON FOR SEAT(S) |
CHLD |
CHILD INFORMATION |
CHILD DOB |
CKIN |
CHECK IN INFORMATION |
|
CLID |
CLIENT IDENTIFICATION |
|
DOCA |
ADDRESS INFO FOR APIS |
DESTINATION ADDRESS IS REQUIRED FOR USA VISITS |
DOCO |
SECONDARY DOC INFO FOR APIS |
I.E. VISA DETAILS |
DOCS |
PRIMARY DOCUMENTS FOR APIS |
I.E. PASSPORT DETAILS |
DPNA |
DISABLED PASSENGER NEEDS ASSISTANCE |
|
ESAN |
PASSENGER WITH EMOTIONAL SUPPORT ANIMAL IN CABIN |
|
EXST |
EXTRA SEAT |
FREE TEXT SHOULD CONTAIN THE FOLLOWING: * NUMBER OF EXTRA SEAT(S) AND REASON FOR SEAT(S) |
FOID |
FORM OF IDENTIFICATION FOR ETICKETS |
NEED TO ADD ADDITIONAL INFO AFTER THIS (ex:3SSRFOIDACNN2/N1+2/CCAX370000000000028) |
FRAG |
FRAGILE BAGGAGE |
SPECIFY NUMBER, WEIGHT, SIZE IF KNOWN |
GRPK |
GROUP SPACE PASSIVE NOTIFICATION |
|
INFT |
INFANT WITH A SEAT |
FREE TEXT SHOULD CONTAIN THE INFANT AGE |
LANG |
LANGUAGE ASSISTANCE |
|
MAAS |
MEET AND ASSISTANCE |
|
MCOA |
MCO number |
MCO (Miscellaneous Charges Order) |
MEDA |
MEDICAL CASE |
FREE TEXT SHOULD CONTAIN THE FOLLOWING: * DETAILS OF THE MEDICAL CONDITION * DOCTORS CONTACT NAME AND ADDRESS |
MEQT |
MEDICAL EQUIPMENT |
|
NAME |
NAME CHANGE CAUSED SEGMENT STATUS CHANGE |
|
OTHS |
OTHER REQUEST |
USED WHEN NO OTHER SSR EXISTS THAT MAY OR MAY NOT REQUIRE A REPLY |
PETC |
PET IN CABIN |
FREE TEXT SHOULD CONTAIN THE FOLLOWING: * DIMENSIONS AND WEIGHT OF TIME * TYPE OF ANIMAL |
RLOC |
RECORD LOCATOR |
USED TO SEND A CARRIER RECORD LOCATOR TO ANOTHER CARRIER |
RQST |
SEAT REQUEST |
SPECIFY SEAT REQUEST IN FREEFORM |
SEAT |
PRE-RESERVED SEAT REQUESTED |
|
SEMN |
SHIPS CREW |
SEAMEN |
SPEQ |
SPORTS EQUIPMENT |
|
SPML |
SPECIAL MEAL |
|
SVAN |
SERVICE ANIMAL |
|
TKNA |
TICKET NUMBERS (AUTOMATED) |
SYSTEM GENERATED PAPER TICKETS |
TKNC |
ELECTRONIC TICKETS |
AUTOMATICALLY (SYSTEM) GENERATED TCNs |
TKNE |
TICKET NUMBER FOR ELECTRONIC TICKETS |
|
TKNM |
MANUALLY ENTER TICKET NUMBER |
HANDWRITTEN TICKETS |
TKNR |
NOTIFICATION THAT AN ELECTRONICALLY TICKETED RESERVATION HAS BEEN CHANGED |
|
UMNR |
UNACCOMPANIED MINOR |
FREE TEXT SHOULD CONTAIN THE FOLLOWING: * LANGUAGE DETAILS * NAME * AGE * CONTACT INFO |
WEAP |
WEAPON FIREARM OR AMMUNITION |
|
XBAG |
EXCESS BAGGAGE |
FREE TEXT SHOULD CONTAIN THE FOLLOWING: * DIMENSIONS AND WEIGHT OF ITEM |
A previously cancelled ticket (PNR FOP) can be used for payment. Send PNR FOP in the request:
- FormOfPayment/ Type="Ticket"
- PaymentDetail/ PaymentType is passed as "15.PMT".
- SupplierLocatorCode as the FOP in FormOfPayment/TicketNumber
The response when using a previously cancelled ticket includes FormOfPayment/ Type="Ticket" and the TicketNumber.