Rich Content and Branding in Air Pricing

Branded and Upsell fare information is returned automatically in the Air Pricing response for those carriers that file this information. Depending on the brand, customers may find multiple class and fare options for the same flights, such as Standard fare and Flexi Fare.

Important: For Low Cost Carriers on ACH, a second AirPrice request is required to purchase an Optional Service that was returned in the initial AirPrice response in AirPricingSolution/OptionalServices.

Schema

See the following transactions for Air Pricing:

Request

  1. Send an Air Pricing request (AirPriceReq).

    An Air Pricing request can be sent with a pricing modifier that requests either basic details for the brand or a fare family display in the response. If the pricing modifier is not sent, complete details of the brand are returned. This includes the optional services associated to the brand.

    • Air schema v43 and earlier can send:

      • AirPriceReq/AirPricingModifiers/BrandModifiers @ModifierType with “FareFamilyDisplay” or “BasicDetailsOnly”.

    • Air schema v44 can send: Release 18.1

      • AirPriceReq/AirPricingModifiers/BrandModifiers/FareFamilyDisplay @ModifierType with “FareFamily” or “MaintainBookingCode”, or

      • AirPriceReq/AirPricingModifiers/BrandModifiers/BasicDetailsOnly @ReturnBasicDetails with “true” or “false”

    • Air schema v45 and later can send: Release 18.2

      • AirPriceReq/AirPricingModifiers/BrandModifiers/FareFamilyDisplay @ModifierType with “FareFamily”, “MaintainBookingCode” or “LowestFareInBrand”, or

      • AirPriceReq/AirPricingModifiers/BrandModifiers/BasicDetailsOnly @ReturnBasicDetails with “true” or “false”

  2. Use this table to see which modifier is used to specify the brand modifiers returned:

     

      No BrandModifiers specified ModifierType=
    "FareFamilyDisplay"
    ModifierType=
    "FareFamily"
    "BasicDetailsOnly" @ModifierType=
    True
    FareFamilyDisplay @ModifierType= "FareFamily" FareFamilyDisplay @ModifierType=
    "MaintainBookingCode"
    FareFamilyDisplay @ModifierType=
    "LowestFareInBrand"
    Air schema version All versions v43 and earlier v43 and earlier v44 and later v44 and later v44 and later v45 and later
    Number of solutions returned 1 or 2 1 or 2 Multiple 1 or 2 Multiple Multiple Multiple
    What is returned (when available) Brands and upsell brands Brands and upsell brands Initial pricing solution returned is for what was requested. All other solutions returned are the lowest branded fare in a fare family. Brands and upsell brands Initial pricing solution returned is for what was requested. All other solutions returned are the lowest branded fare in a fare family. Lowest branded fares in a fare family based on permitted booking code plus lowest fare for any brand in the fare family that does not have the requested permitted booking code. Lowest fare within each branded fare in a fare family.
    Is Rich Content for the brands returned? Yes Yes Yes Yes Yes Yes Yes
    Are associated Optional Services returned? Yes No Yes No Yes Yes Yes

    Notes:

    • Fare family display does not work if AirReservationLocatorCode is sent in the AirPrice request.
    • Choosing to Suppress Brand Details reduces the response time and size for price responses when a fare family display is requested. Results present quicker and reduce wait times. XPath = AirPriceReq/AirPricingModifiers/BrandModifiers/FareFamilyDisplay @ModifierType="SuppressBrandDetails" Release 20.2

  3. If no AirPricingModifiers/BrandModifiers are sent:

    • Either one or two solutions are returned.

    • A brand and upsell brand are returned when available.

    • Rich Content for the brand is returned.

    • Optional Services associated to the brand and upsell brand are returned.

  4. Optional. Enter HostToken. The @HostTokenRef is returned in AirPricingInfo/BookingInfo in the AirPriceRsp. It is not mapped in the subsequent AirPriceReq. Only the HostToken is mapped in the subsequent AirPriceReq.

Pricing a Specific Fare in a Specific Brand

Air v48.0 and greater allows you to price a specific fare in a specific brand. In order to price a fare that was received in a search response, all the required modifiers and fare details need to be sent. This includes both the booking code and the brand tier along with any other pricing modifier. Release 19.1

The fare returned in the response is associated to the brand tier, booking code and any other pricing modifier sent in the request. If no fare is found for those modifiers an error is returned.

For example, when Air Price is requested with SellCheck and AirSegmentPricingModifiers:

<air:AirPricingModifiers SellCheck=”true” >
 <air:AirPricingCommand>
  <air:AirSegmentPricingModifiers AirSegmentRef="S100" BrandTier="0003">
   <air:air:PermittedBookingCodes>
    <air:BookingCode Code="S"/>
   </air:PermittedBookingCodes>
  </air:AirSegmentPricingModifiers>
 </air:AirPricingCommand>

Sell Check is performed and the first solution returns for the requested BrandTier and Booking code. With the example, the first solution is for BrandTier="0003" and BookingCode “S

 

Notes on Historical Date:

As of Air v48.0, users can determine original branded fare information when the ticketing time limit has expired, so that the fare can be restored based on historical details.

Baggage Allowance and Fees

Universal API Release 20.2.3 provides the ability to label the costs for the first and second checked bag in the price display to do a total cost calculation upfront, so that travelers can select the option with the best value and most relevance. This enhancement also returns weight allowances for the first and second checked, and carry-on bags, for the sake of transparency and to comply with regulation. Release 20.2

In detail, when FareFamilyDisplay/@ModifierType= "LowestFareInBrand," "FareFamily," "MaintainBookingCode" or BasicDetailsOnly/@ReturnBasicDetails="true" in AirPriceReq/AirPricingModifiers/BrandModifiers/, the following elements return for Upsell Fares in AirPriceRsp/AirPriceResult/AirPricingSolution/AirPricingInfo/BaggageAllowances:

Universal API properly returns the baggage allowance details, refundable fares are marked refundable, and non-refundable fares are marked non-refundable, for upsell fares in LowFareSearch response when invoking Upsell functionality in Low Fare Shopping and Air Price.

XPath:

Response

Brand

The Air Pricing response is returned. AirPriceResult/AirPricingSolution/AirPricingInfo/FareInfo/Brand is returned if the airline files Rich Content and Branding information.

Based on carrier provisioning, the Brand element may return the Brand ID and Upsell Brand ID, if applicable:

Upsell Fare information is returned in an AirPricingSolution block that is unique to the Upsell.

Notes:

Air Pricing Info and Baggage

With the release of Universal API 20.2.3, the addition of /BagDetails and /CarryOnDetails, as well as @FareCalc and @PlatingCarrier for UPSELL fares in the AirPrice response when price is requested with Brand Modifiers, allow customers to display complete fare details to the traveller:

Branded Fare Upsell Returns Fare Calculation

Prior to Air v47.0, the FareCalc element did not return in the upsell responses with the base and upsell fare in the Air Price response. Air 47.0 and greater returns the FareCalc line in both the base and upsell fares for fare validation, as upsells and the lowest fares are similar. The FareCalc attribute returns for the base and upsell fares. This applies to Worldspan (1P). For example: Release 19.1

Base Fare info:

Line 35: <air:Brand Key="1SGdT3MJ3BKA2fNAAAAAAA==" BrandID="164677" UpSellBrandID="164679" Name="Economy Light" Carrier="XX" BrandTier="0002">

Line 270: <air:FareCalc>ADT LON XX FRA36.66NUC36.66END ROE.818146 XX</air:FareCalc>

Upsell Fare info:

Line 327: <air:Brand Key="1SGdT3MJ3BKAggNAAAAAAA==" BrandID="164679" Name="Economy Classic" UpSellBrandFound="false" Carrier="XX" BrandTier="0003">

Line 563: <air:FareCalc>ADT LON XX FRA63.55NUC63.55END ROE.818146 XX</air:FareCalc>

<air:FareCalc>ADT FRA XX LON Q13.76 47.35NUC61.11END ROE.908104 XX</air:FareCalc>

Tax Information

Prior to Air v50.0, messaging customers (e.g. via Travelport Universal API) did not receive specific tax information or details for AirPrice transactions when the response returned Branded (Upsell) Fares. With the release of Universal API 20.3.2, accurate tax data returns for upsell fares in the Branded Fares price response, which provides accurate and competitive pricing for travelers. Release 20.3

For example:

<air:FareInfo Key="kuFeFNAZ3BKA26JAAAAAAA==" FareBasis="LEULGTP2" PassengerTypeCode="ADT" Origin="FRA" Destination="LHR" EffectiveDate="2020-07-13T02:57:01.454-04:00" Amount="USD22.00" TaxAmount="USD66.20">

<air:FareRuleKey FareInfoRef="kuFeFNAZ3BKA26JAAAAAAA==" ProviderCode="1P">bvk/j+2NJnka2m7ED2r2SNHXyx</air:FareRuleKey>

<air:Brand Key="kuFeFNAZ3BKA26JAAAAAAA==" BrandID="461423" UpSellBrandFound="false" BrandTier="0002"/>

</air:FareInfo>

<air:BookingInfo BookingCode="L" CabinClass="Economy" FareInfoRef="kuFeFNAZ3BKA16JAAAAAAA==" SegmentRef="kuFeFNAZ3BKAm6JAAAAAAA==" HostTokenRef="kuFeFNAZ3BKAr6JAAAAAAA=="/>

<air:BookingInfo BookingCode="L" CabinClass="Economy" FareInfoRef="kuFeFNAZ3BKA26JAAAAAAA==" SegmentRef="kuFeFNAZ3BKAo6JAAAAAAA==" HostTokenRef="kuFeFNAZ3BKAs6JAAAAAAA=="/>

<air:TaxInfo Category="GB" Amount="USD16.40" Key="kuFeFNAZ3BKAu6JAAAAAAA=="/>

<air:TaxInfo Category="UB" Amount="USD30.10" Key="kuFeFNAZ3BKAv6JAAAAAAA=="/>

<air:TaxInfo Category="DE" Amount="USD11.30" Key="kuFeFNAZ3BKAw6JAAAAAAA=="/>

<air:TaxInfo Category="OY" Amount="USD14.60" Key="kuFeFNAZ3BKAx6JAAAAAAA=="/>

<air:TaxInfo Category="RA" Amount="USD30.10" Key="kuFeFNAZ3BKAy6JAAAAAAA=="/>

<air:TaxInfo Category="YQ" Amount="USD20.40" Key="kuFeFNAZ3BKAz6JAAAAAAA=="/>

<air:TaxInfo Category="YR" Amount="USD17.70" Key="kuFeFNAZ3BKA06JAAAAAAA=="/>

Optional Services

Brand/OptionalServices contains the optional services that are part of the fare brand. Brand/OptionalServices/OptionalService @Chargeable indicates if the optional service is "Available for a charge", "Included in the brand", or "Not offered".

Optional Services in a Brand

Optional services for a brand are returned in AirPriceResult/AirPricingSolution/AirPricingInfo/FareInfo/Brand/OptionalServices. The optional services returned in Brand/OptionalServices are for informational purposes only.

Optional Services Outside of a Brand

The Brand/OptionalServices element is different than the AirPriceResult/AirPricingSolution/OptionalServices. It displays information about the optional services in the brand. The optional services listed in AirPriceResult/AirPricingSolution/OptionalServices lists the services that are available to sell for a specific segment.

Functionality provides Rich Content & Branding information for optional services that occur outside of the brand (/OptionalServices/OptionalService/BrandingInfo), if available from the supplier.

To price any ACH optional service listed in AirPricingSolution/OptionalServices, send a second AirPricingReq with OptionalServices @ServiceStatus="Offered". These services to be purchased are returned in the AirPriceRsp in AirPricingSolution/OptionalServices with ServiceStatus="Priced".

Note: To price any non-ACH optional services, a second AirPriceReq is not needed. Non-ACH providers allow @ServiceStatus="Offered" in a booking request.

To create a reservation with the purchased optional services, send AirCreateReservationReq/AirPricingSolution/OptionalServices/OptionalService with ServiceStatus="Priced". Refer to Air Pricing for Optional Services for more information about pricing optional services. If AirPricingInfo/FareInfo/Brand is sent in AirCreateReservationReq, some information may saved to the Universal Record.

Brand Attribute Display Order

Air.xsd allows the return of ancillaries that are part of a Brand with a tag indicating the group to which each and every ancillary belongs. The ancillaries are returned in a pre-defined display order in Air Pricing and Air Merchandising Details, with the @DisplayOrder and @Tag attributes in AirPriceRsp/AirPriceResult/AirPricingSolution/AirPricingInfo/FareInfo/Brand/OptionalServices/OptionalService.

Within each group, the optional services are returned in the following order:

The loading of the services is normalized across all 200+ airlines, and for all new airlines coming onboard, ensuring that they are also mandatory services. The already-normalized airlines use the following Universal API attribute values to display their services:

Seven key attributes
Additional Attributes

These attributes will only be returned when an airline files them:

Example of Optional Services In and Outside of Brand

In this example, AirPriceRsp returns both free optional services associated to a brand and chargeable optional services that are not associated to a brand. This example is for a Low Cost Carrier on ACH, in which a second AirPriceReq transaction is required.

Basic Details

A request for basic details returns only basic information about the Brand, such as:

Fare Family Display

In AirPriceReq, set:

to return an AirPricingSolution in the response for each Branded Fare in a Fare Family.

Host Token

The @HostTokenRef is returned in AirPricingInfo/BookingInfo in the AirPriceRsp. It is not mapped in the subsequent AirPriceReq. Only the HostToken is mapped in the subsequent AirPriceReq.

Errors/Warnings

 

TCT-7899 Accurate Baggage Info Release 20.3