Air Pricing

The AirPrice API confirms pricing on air search results. While air pricing is generally an optional but recommended step, it is required for low cost carriers and some NDC carriers.

This topic provides an explanation of AirPrice features and AirPrice request formats, and how the AirPrice response structures information. For a listing of all objects, see the AirPrice API Reference.

After pricing, continue the booking process in the Travelport JSON APIs with an AirReservation request.

See Fare Rules for requesting optional fare rules in the price response.

See Brand Detail Pricing for requesting optional brand attributes in the price response, and sending a follow-on request for full brand pricing.

In this topic:

Reference vs. Full Payload Requests

AirPrice supports either of the message payloads for the price request:

  • Reference payload: Sends identifiers from an AirSearch response. Supported for NDC and GDS.
  • Full payload: Sends full itinerary details without a reference to any previous search:
    • Use for an itinerary returned from a non-Travelport source.
    • Can be used for an itinerary from any of the JSON search APIs.
    • GDS only; not supported for NDC.

Both types of requests can send optional pricing modifiers and/or request brand details as discussed below.

AirPrice Features

AirPrice provides the following optional features:

  • The lowFareFinderInd indicator provides pricing flexibility around class of service. If not sent, only fares in the requested class of service are returned.
  • By default, AirPrice checks only for availability and not whether the requested class of service is available. The fare returned is not guaranteed and there is a chance of booking failure if the fare or class of service is not available. The recheckInventory parameter allows you to perform an inventory check and ensure that segments are sellable when a reservation request is sent later.
  • Requesting optional fare rules in the price response.
  • Requesting optional brand attributes in the price response, which can be followed by a request for full brand pricing.
  • Requesting fare family pricing when fare family options are filed by the airline.
  • For NDC only, you can send the BIN of the credit card to be used for payment to return any credit card fees that may be charged based on the POS region.

AirPrice Requests

All AirPrice requests use a POST request with a message payload. The endpoint and content of the payload vary by the type of request.

Reference Payload (GDS and NDC)

The reference payload uses identifiers from the AirSearch response to price the itinerary. You send the identifiers for the response itself, the offer, and the product that you want to price. You do not have to send passenger and itinerary details as you do with the full payload request.

Full Payload (GDS only)

Supported only for GDS. Not supported for NDC.

To price an itinerary not returned from a Travelport JSON API search response, or if you choose not to send search response modifiers, send a full payload request. Include full itinerary and passenger details - all the information that would normally be sent in a search request.

The response is the same as for the reference payload request.

Fare Family Pricing

Fare families are sets of fares that airlines use to market different options associated with each fare. For example, a fare family could include these three fares:

  • A fully refundable and changeable fare.
  • A fare that includes a carry-on and checked baggage plus seat assignment.
  • A fare that does not include options for baggage, refunds, changes, or seat assignments.

AirPrice can return fare family pricing if a carrier has filed such fares for the requested itinerary.

You can request fare family pricing with a reference payload after either an AirSearch or a Fare Family Search response, or with a full payload request. The formats are similar but use a different endpoint and top level object in the payload.

If you request fare family fares but none exist for the requested itinerary, the response provides the available priced fare with no branded fares, and a message that branded fares are not available. For example, let's say the response returns two flight products with ids p0 and p1, the segment sequences are 1, 2, and 3, and segment sequences 1 and 2 do not have any brand information. The response would include the following message:

No brand found for Product p0 - Segment Sequence: 1,2

No brand found for Product p1 - Segment Sequence: 1,2

AirPrice Modifiers

Both the full and reference payloads support the following optional modifiers.

  • Fare type: Request specific fare types including private fares (negotiated), public fares (published), or net fares (consolidator fares, or any negotiated wholesale price that is further marked up for sale to customers; GDS only).
  • Fare restrictions: Include or exclude non-refundable fares, or fares that require an advance purchse.
  • Account codes: Send your account code for each airline to return negotiated fares for those airlines.
  • Currency override: Change the default currency of results, which is set in your PCC provided upon provisioning with Travelport.
  • Plating carrier: Price by specifying the carrier to override the default validating carrier (the airline designator that the ticket is issued against)

If any search modifiers were included in the Search request, those modifiers are cached and sent with the AirPrice reference payload request. If you send any price modifiers in the AirPrice reference payload request, all cached modifiers are discarded and only the modifiers sent in the AirPrice request are used.

Modifiers are sent in PricingModifersAir and can be combined as appropriate. The example excerpt below shows several modifiers.

AirPrice Responses

Except for different top level objects, the response format is the same for both reference and full payload requests. However, the response does vary if brand and/or fare family pricing was requested.

Itinerary and Price Details

The structure of the AirPrice response is similar to that of the AirSearch response, although only the requested offer to price is returned.

The response returns details about the offer in either an Offer object (if no fare family pricing) or multiple instances of CatalogOffering (if fare family pricing requested and available) in these primary objects:

ProductOptions lists all flight options that make up one leg of the itinerary, representing a unique origin and destination (O&D) pair. So a one-way itinerary has one instance of ProductOptions, and a round-trip itinerary has two ProductOptions. For round-trip and multi-city itineraries, each instance of ProductOptions includes a sequence identifier in Product/FlightSegment/Flight @sequence to indicate its order in the itinerary. ProductOptions includes one or more instances of ProductAir:

  • ProductAir: Each ProductAir provides details for the flight or flights for that leg of the itinerary. ProductAir may have multiple FlightSegment instances, each with a discrete flight or connecting flights for that leg of travel.
    • If fare family and/or brand pricing was requested, flight details are consolidated in ReferenceList/ReferenceListBrand and ReferenceList/ReferenceListFlight. Otherwise flight details are returned here.
  • PassengerFlight: For each PTC requested, ProductAir/PassengerFlight provides the number of passengers in that PTC, the PTC, and the classOfService, cabin, fareBasisCode, and fareType if applicable.

Price provides a price breakdown by PTC of the base fare, taxes, and fees.

TermsAndConditions returns any terms and conditions provided by the carrier. This can include such information as validating carrier, last day to ticket, and any baggage allowance information.

AirPrice Response Formats

When either fare family or brand pricing is requested, the response consolidates common information in the ReferenceList object. The table below summarizes the possible formats.

Fare Family or Brand Pricing requested? Response Format

No fare family pricing

No brand details

When neither fare family nor brand pricing is requested:

  • Top level object is OfferListResponse.
  • A single Offer object returns all details for the offer.
  • Does not return ReferenceList.

Fare family pricing

No brand details

When fare family is requested but brand pricing is not:

  • Top level object is CatalogOfferingsResponse.
  • CatalogOfferings is returned instead of Offer. Includes CatalogOffering.
  • Returns one instance of CatalogOffering for each fare in the fare family.
  • Returns ReferenceList to consolidate flight details across all flights.

No fare family pricing

Brand details

When brand pricing is requested and fare family is not:

  • Top level object is OfferListResponse.
  • A single Offer object returns details for the offer.
  • Returns ReferenceList to consolidate brand information.

Fare family pricing

Brand details

When both fare family and brand pricing are requested:

  • Top level object is CatalogOfferingsResponse.
  • CatalogOfferings is returned instead of Offer. Includes CatalogOffering.
  • Returns one instance of CatalogOffering for each fare in the fare family.
  • Returns ReferenceList to consolidate brand information in ReferenceListBrand and flight details in ReferenceListFlight.

Examples

Basic Round-trip Examples

Round-trip Example Reference Payload Request

The following example shows the payload of a basic price request without modifiers for a reference payload request. It includes several identifiers from an AirSearch response. This example requests the return of fare rules in long format.

Basic Round-trip Example Full Payload Request

The following example shows the payload of a basic price request without modifiers for a round-trip itinerary for one adult on carrier F9 from DEN-LAS. It does not request brand or fare family pricing. Each leg of travel is requested in a separate SpecificFlightCriteria object. A one-way request would look similar but include only one SpecificFlightCriteria object. The example below requests the return of fare rules in the long (full) format.

Basic Round-trip Example Response

The example below shows an AirPrice response that does not return brand details, fare family pricing, or rules. AirPrice returns the same response for both reference and full payload requests. Details for each leg of travel is returned in a separate instance of ProductAir. A one-way price response would include only one ProductAir instance.

Fare Family Pricing

Example Fare Family Pricing Response

The example below returns three CatalogOffering objects, one for each of the three fares returned in the fare family. The identifiers in CatalogOffering @id are o0, o1, and o2. The beginning of each CatalogOffering object below is highlighted. Flight details are consolidated in ReferenceListFlight/Flight. The beginning of ReferenceList is also highlighted below.