GET /upsell-offers v1

GET /UpsellOffers v1

The UpsellOffers endpoint provides the upsell offers for a selected flight product. 

HOW TO USE?

Use case flow can be followed by the consumer by requesting the GET method supplied as HATEOAS link in the response body of AvailableOffers.

                                    (Or)

The POST method should be used to get upsell offers for the given selected flight.

HEADERS TO USE FOR REQUESTS

Parameter

Value

Authorization 

Bearer {{token}}

Content-Type 

application/json

Accept 

application/hal+json;charset=utf8

Accept-Language 

{{language}}-{{country}}

AFKL-TRAVEL-Host 

KL or AF

AFKL-TRAVEL-Country 

Country (overrides Accept-Language country)

GET

GET https://api.airfranceklm.com/opendata/offers/flight-products/v1/{id}/upsell-offers{?focusedConnection,displayPriceContent}

QUERY PARAMETERS

Name

Type

Multiplicity

Description

id String 1 Encoded request body as a result of preceding POST request

focusedConnection 

Integer

0-1

The index of the connection to retrieve (starting from 0)

displayPriceContent

Enumeration

0-1

Content of displayPrice in response.

- If empty : displayPrice is the price for 1adt regarding point of sell

- ALL_PAX_ROUNDED : displayPrice is the price for all pax regarding point of sell rounded up

 

RESPONSE PARAMETERS

Level Name Type Multiplicity Description
1 Disclaimer Object 1 The texts to be shown as legal disclaimers regarding fare, tax, fee, credit card surcharges etc.
2 displayPriceText String 1 The disclaimer text to be shown when display price is shown to the customer.
2 totalPriceText String 1 The disclaimer text to be shown when total price is shown to the customer.
1 itineraries Array of Objects  0-n List of itineraries matching the available offers request.
2

locationSpecificRemarks

Array of Objects

0-n

List of location specific remarks that apply to the connection.

3

remarkCode

String

1

Code of the location specific remark.

3

remarkText

String

1

Text of the remark in the language as specified in ContentLanguage header.

2

connections

Array of Objects

1-6

A chronologically ordered list of connections the available offer applies to.

3

duration

Integer

0-1

Total duration of the Connection in minutes.

3

segments

Array of Objects

0-6

A chronologically ordered list of segments that describe the Connection. 

Conditional: Either matching the request or specified when expand-suggested-flights=true.

4

departureDateTime

DateTime

1

DateTime of departure of the segment flight. It is specified as local time at origin of the segment.

4

arrivalDateTime

DateTime

1

DateTime of arrival of the segment flight. It is specified as local time at destination of the segment.

4

highestPriority

Boolean

1

Flag to define if the considered segment has the highest priority over the other segment(s) of the connection. The segment with the highest priority is set to True, other is(are) set to False.
NB currently computed from Haul type.

4 transferTime Integer 0.1 The time transfer for t the stops. 
4 dateVariation Integer 1 The date Variation from a segment to another  
4 flightDuration Integer 1 The duration of the flight
4

origin

Object

0-1

The origin airport of the connection.

5

code

String

1

IATA location code of the airport.

5

name

String

1

Name of the station in the language as specified in ContentLanguage header.

5

city

Object

0-1

The city the airport is located in.

6

code

String

1

IATA location code of the city.

6

name

String

1

Name of the station in the language as specified in ContentLanguage header.

4

stopsAt

Object

0-1

Airport where the flight has a technical stop. 

5

code

String

1

IATA location code of the airport.

5

name

String

1

Name of the station in the language as specified in ContentLanguage header.

5

city

Object

0-1

The city the airport is located in.

6

code

String

1

IATA location code of the city.

6

name

String

1

Name of the station in the language as specified in ContentLanguage header.

4

destination

Object

0-1

The destination airport of the connection. 

5

code

String

1

IATA location code of the airport.

5

name

String

1

Name of the station in the language as specified in ContentLanguage header.

5

city

Object

0-1

The city the airport is located in.

6

code

String

1

IATA location code of the city.

6

name

String

1

Name of the station in the language as specified in ContentLanguage header.

4

marketingFlight

Object

1

Describes the marketing flight for the segment.

5

number

String

1

Flight number.
Max of four digits, when less than 3 then prefix with zeroes up till 3 digits. For example: 006, 022, 1001.

5

carrier

Object

1

Marketing carrier of the flight.

6

code

String

1

IATA airline code.

6

name

String

1

Name of the carrier in the language as specified in ContentLanguage header.

5

flightOnTime

Object

0-1

Specifies the flight on time statistics for the marketing flight (only applicable for PoS BR). 

6

cancellationPercentage

Integer

1

Percentage of flights canceled

6

halfHourDelayPercentage

Integer

1

Percentage of flights delayed 30-60 minutes

6

hourDelayPercentage

Integer

1

Percentage of flights delayed more than 60 minutes

6

referenceDate

Date

1

Reference date for the statistics.

5

operatingFlight

Object

1

Describes the operating flight for the segment.

6

carrier

Object

1

Operating carrier of the flight.

7

code

String

1

IATA airline code.

7

name

String

1

Name of the carrier in the language as specified in ContentLanguage header.

7

aircraftOwner

String

0-1

Name of the carrier returned by the data source.
NB this element is only present if the IATA airline code is missing in the data source response.

6

equipmentType

Object

1

Operating carrier of the flight.

7

code

String

1

Equipment type code.

7

name

String

1

Name of the equipment type in the language as specified in ContentLanguage header.

7

acvCode

String

1

Three digits, field is present when data available only

7

_links

Object

1

Container for relevant links

8

information

Object

1

Container for links concerning information about the equipement

9

href

uri

1

Represents a URI to page where details about the equipment type can be found.

2 flightProducts Object 1 Flight product for the itinerary.
3 sameConditions Boolean 1 Indicates whether the same conditions apply to all connections of the flight product.
3 _links Object 1 Container for all HATEOAS links
4 taxBreakdown HATEOAS link 1 Represents a HATEOAS link to request the tax breakdown for the product.
Supports the use case where a consumer selects a flight product and gets tax breakdown that apply.
4 relatedProducts HATEOAS link 1 Represents a HATEOAS link to request the related products (time to think) for the product.
Supports the use case where a consumer selects a flight product and gets related products that apply.
4 shoppingCart HATEOAS link 1 Represents a HATEOAS link to request to proceed to checkout for the selected flight product. A shopping cart is created with the selected flight product in it.
Supports the use case where a consumer selects a flight product and wants to order it.
4 lowestOffers HATEOAS link 1 Represents a HATEOAS link to request the lowest fare for the other connection(s) in the product where this connection and the fare is fixed.
Supports the use case where a consumer selects an outbound date / an outbound fare and continues finding an inbound date based on the selected fares.
Conditional: Only supplied for type=DAY.
4 availableOffers HATEOAS link 1 Represents a HATEOAS link to request the available offers on the date(s) of the connections and the fare of this flight product
Supports the use case where a consumer selects an outbound flight and fare and continue to find the inbound.
Conditional: Only supplied for type=DAY.
4 mailMySearch HATEOAS link 0-1 Represents a HATEOAS link to request the mailMySearch service for the flight product
3 passengers Array of Objects 1-n List of passengers associated to the product (matching requested passenger count).
4 id Integer 1 Integer to uniquely identify a passenger within a product.
4 type String 1

Type of the passenger.

ADT, C14, CHD , INF, YCD, YTH, B12, B13, B14, B15.

 3 flyingBlue Object 0-1 Specifies the conditions for earning frequent flyer miles.
4 earned Integer  1 Number of miles that can be earned when booking the flight.
4 detailsText String 1 Text for details of flying blue in the language as specified in ContentLanguage header.
4 commercialText String 1 Commercial text for flying blue in the language as specified in ContentLanguage header.
5 text String
1 Commercial text for flying blue in the language as specified in ContentLanguage header.
4 qualifyingPoints  Integer  1 Number of Qualifying Points XP that can be earned when booking the flight.
4 detailsTextQualPoints Integer  1 Text for details of Qualifying Points XP in the language as specified in ContentLanguage header
3 price Object 0-1 Price specification for the product.
4 displayPrice Number 1 Price to be displayed. Applies to a single adult.
Depending on the displayType it includes taxes and/or fees.
4 totalPrice Number 1 Total price. Price for all passengers including taxes and fees.
4 currency String 1 The currency used for prices in response. 
 Three letter currency code according to ISO 4217.
4 displayType String 0-1 Indicates the rules used for the display price. 
TAX, FARE or FEE 
4 dynamicWaiver Boolean 0-1 Indicates whether a dynamic waiver applies to rebooking the ticket. Only applies to Rebooking a ticket.
4 penaltyWaiver Boolean 0-1 Indicates whether a penalty waiver applies to rebooking the ticket (because the customer has bought flexibility). Only applies to Rebooking a ticket.
4 flexibilityWaiver Boolean 0-1 Indicates whether a flexibility waiver applies to rebooking the ticket. Only applies to Rebooking a ticket.
4 surcharges Object 0-n Surcharges applicable per PNR.
Conditional: Surcharge applies either to passenger or to PNR.
5 code String 1 Code of the surcharge. E.g. to indicate it is a booking fee.
5 amount String 1 Amount applicable to the Surcharge.
4 pricePerPassengerTypes  Array of Objects   1-4 Price specification per passenger type.
5 passengerType String 1 Type of the passenger.
ADT, C14, CHD, INF, YCD, YTH, B12, B13, B14, B15.
5 fare Number 1 The fare price as applicable for the Passenger Type.
5 taxes Number 1 The taxes price as applicable for the Passenger Type.
5 penalty Number 0-1 The penalty price as applicable for the Passenger Type. Only applies to Rebooking a ticket.
5 surcharges Object 0-n Surcharges applicable per passenger.
Conditional: Surcharge applies either to passenger or to PNR.
6 code String 1 Code of the surcharge. E.g. to indicate it is a booking fee.
6 amount Number 1 Amount applicable to the Surcharge.
3 priceInMiles Object 0-1 Price specification for the product (In Miles)
 4 displayPrice Number 1

Price to be displayed.

Depending of displayPriceContent it is for one adult or for all pax rounded

 4 totalPrice Number 1 Total price in Miles. Price for all passengers.
 4 affordability Boolean 0-1

It can be set to : full, partial, or none :

- "full" if the customer  has enaugh Miles to buy the ticket with 100% Miles

- "partial" : if the customer  has enaugh Miles to buy the ticket with the lowest proposed amount of Miles

- "none" : if the customer  has not enaugh Miles to buy the ticket

4 affordable Boolean 0-1

t is set to TRUE if the customer has enaugh Miles to buy the ticket with the possible minimum amount of Miles

 4 currency String 1

The currency used for prices in response. 

For priceInMiles, it will be always set to MILES

 4 displayType String 0-1

Indicates the rules used for the display price.

For priceInMiles, it will be always set to FARE_MILES

 4 pricePerPassengerTypes  Array of Objects 1-4 Price specification per passenger type.
 5 passengerType String 1 Type of the passenger. ADT, C14, CHD, INF, YCD, YTH, B12, B13, B14, B15.
 5 fare Number 1 The fare price as applicable for the Passenger Type.
 3 taxDetails Object 0-1 Taxes price specification for the product
 4 totalPrice Number 1 Total taxes price. Taxes price for all passengers.
 4 currency String 1

The currency used for prices in response. 

Three letter currency code according to ISO 4217.

 4 pricePerPassengerTypes Array of Objects 0-4 Price specification per passenger type.
 5 passengerType String 1 Type of the passenger. ADT, C14, CHD, INF, YCD, YTH, B12, B13, B14, B15.
 5 taxes Number 1 The taxes price as applicable for the Passenger Type.
3 connections Array of Objects   1-6 A chronologically ordered list of connections the lowest fare offer applies to.
4 numberOfSeatsAvailable  Integer 0-1 The number of seats available for the lowest fare for this connection.
4 travelClassText String 1 Text wrt travel classes for display purposes in the language as specified in ContentLanguage header.
4 tripText String 1 Text wrt trip for display purposes in the language as specified in ContentLanguage header.
4 commercialCabin  String 0-1 CommercialCabin applicable for the fare for the connection
ECONOMY or PREMIUM or BUSINESS or FIRST 
4 promotion Object 0-1 Applicable promotion. Can be linked to discountCode in input or to promotion configured in PromoTool. All segments must match the promo fare basis.
5 id Integer 1 Identification of the promotion.
5 title String 1 Title of the promotion in the language as specified in ContentLanguage header.
4 fareBasis Object 1 Fare basis applicable to the connection as selected.
5 code String 1 Fare basis code for the connection.
 4 negotiatedFare Boolean 0-1 It is set to TRUE only if the fare is a Negotiated one. 
4 fareFamily Object 1 Fare basis applicable to the connection as selected.
5 code String 1 Code of the farefamily.
 5 commercialDescription String 1  Commercial description of the fare family in the language as specified in ContentLanguage header.
5 hierarchy String 1 Hierarchy of the farefamily (lower is more expensive)
5 title String 1 Title of the fare family in the language as specified in ContentLanguage header.
4 price Object 0-1 Price per connection
5 displayPrice Number 1 Price to be displayed. Applies to a single adult.
Depending on the displayType it includes taxes and/or fees.
Depending of displayPriceContent it is for one adult or for all pax rounded
5 totalPrice Number 1 Total price per connection. Price for all passengers including taxes and fees.
5 currency String 1 The currency used for prices in response. 
 Three letter currency code according to ISO 4217.
5 displayType String 0-1 Indicates the rules used for the display price. 
TAX, FARE or FEE 
5 dynamicWaiver Boolean 0-1 Indicates whether a dynamic waiver applies to rebooking the ticket. Only applies to Rebooking a ticket.
5 penaltyWaiver Boolean 0-1 Indicates whether a penalty waiver applies to rebooking the ticket (because the customer has bought flexibility). Only applies to Rebooking a ticket.
5 flexibilityWaiver Boolean 0-1 Indicates whether a flexibility waiver applies to rebooking the ticket. Only applies to Rebooking a ticket.
5 surcharges Object 0-n Surcharges applicable per PNR.
Conditional: Surcharge applies either to passenger or to PNR. The amount of the surcharge is applied only for the Inbound. No surcharge is applied on the outbound.  
 6 code String 1 Code of the surcharge. E.g. to indicate it is a booking fee.
6 amount String 1 Amount applicable to the Surcharge.
5 pricePerPassengerTypes Array of Objects   1-4 Price specification per passenger type and per connection
6 passengerType String 1 Type of the passenger.
ADT, C14, CHD, INF, YCD, YTH, B12, B13, B14, B15.
6 fare Number 1 The fare price as applicable for the Passenger Type.
6 taxes Number 1 The taxes price as applicable for the Passenger Type.
6 penalty Number 0-1 The penalty price as applicable for the Passenger Type. Only applies to Rebooking a ticket.
6 surcharges Object 0-n Surcharges applicable per passenger.
Conditional: Surcharge applies either to passenger or to PNR.
7 code String 1 Code of the surcharge. e.g. to indicate it is a booking fee.
7 amount Number 1 Amount applicable to the Surcharge.
4 priceInMiles Object 0-1 Price specification for the product (In Miles)
5 displayPrice Number 1

Price to be displayed.

Depending of displayPriceContent it is for one adult or for all pax rounded

5 totalPrice Number 1 Total price in Miles. Price for all passengers.
5 currency String 1

The currency used for prices in response. 

For priceInMiles, it will be always set to MILES

5 displayType String 0-1

Indicates the rules used for the display price.

For priceInMiles, it will be always set to FARE_MILES

5 pricePerPassengerTypes Array of Objects 1-4 Price specification per passenger type.
6 passengerType String 1 Type of the passenger. ADT, C14, CHD, INF, YCD, YTH, B12, B13, B14, B15.
6 fare Number 1 The fare price as applicable for the Passenger Type.
4 taxDetails Object 0-1 Taxes price specification for the product
5 totalPrice Number 1 Total taxes price. Taxes price for all passengers.
5 currency String 1

The currency used for prices in response. 

Three letter currency code according to ISO 4217.

5 pricePerPassengerTypes Array of Objects 1-4 Price specification per passenger type.
6 passengerType String 1 Type of the passenger. ADT, C14, CHD, INF, YCD, YTH, B12, B13, B14, B15.
6 taxes Number 1 The taxes price as applicable for the Passenger Type.
6 surcharges Array of Objects 0-n Surcharges applicable per passenger. Conditional: Surcharge applies either to passenger or to PNR.
7 code String 1 Code of the surcharge. e.g. to indicate it is a booking fee
7 amount Number 1 Amount applicable to the Surcharge.
4 segments Array of Objects  0-6 A chronologically ordered list of segments that describe the Connection. 
Conditional: Either matching the request or specified when expand-suggested-flights=true.
5 cabin Object 1 Cabin for the segment
6 class String 1 Cabin code.
Can be:
• M == Economy
• C == Business
• W == Premium Economy
• F == First (La Premiere)
5 sellingClass Object 1 Selling class for the segment
6 code String 1 Selling class code
5 farebasis Object 1 Farebasis for the segment
6 code String 1 Farebasis code
4 flyingBlue Object 0-1 Specifies the conditions for earning frequent flyer miles.
5 earned Integer  1 Number of miles that can be earned when booking the flight.
5 detailsText String 1 Text for details of flying blue in the language as specified in ContentLanguage header.
5 commercialText String 1 Commercial text for flying blue in the language as specified in ContentLanguage header.
6 relevance

Relevance on the flying blue for display purpose.
6 text

Commercial text for flying blue in the language as specified in ContentLanguage header.
5 qualifyingPoints  Integer  1 Number of Qualifying Points XP that can be earned when booking the flight.
5 detailsTextQualPoints Integer  1 Text for details of Qualifying Points XP in the language as specified in ContentLanguage header
4 baggageAllowance Object 0-1 Specifies the conditions for baggage allowance
5 quantity Integer 1 Quantity of baggage allowed.
5 type Integer 1 Type of the amount in quantity. E.g. Pieces, Kilos, Pounds.
5 detailsText String 1 Text for details of checkin or hand baggage in the language as specified in ContentLanguage header
5 handBaggageDetailstext String 1 Text for details of hand baggage in the language as specified in ContentLanguage header.
5 commercialText String 1 Commercial text for baggage allowance in the language as specified in ContentLanguage header.
6 relevance

Relevance on the baggage allowance for display purpose.
6 text

Commercial text for baggage allowance in the language as specified in ContentLanguage header.
4 conditions Object 1 Conditions applicable to the connection.
5 IATAConditions Array of Objects  0-n The IATA conditions that apply to the connection.
Conditional: Either IATA conditions apply or a set of other conditions as mentioned below apply.
6 code String 1 Code of the condition.
6 text String 1 Text of the condition in English.
6 title String 1 Title of the condition in English.
5 noShowCondition Object 0-1 Specifies the conditions for not showing up for the flight booked.
6 allowed Boolean 1 Indicates whether it is allowed to not show up for the booked flight.
6 detailsText String 1 Text for details of no show in the language as specified in ContentLanguage header.
6 commercialtext String 1 Commercial text for no show in the language as specified in ContentLanguage header.
7 text String 1 Commercial text for no show in the language as specified in ContentLanguage header.
6 fee Object 0-1 Fee applicable to the condition.
7 currency String 1

The currency used for the fee. 

Three letter currency code according to ISO 4217.

7 amount Number 1 The amount of the fee.
5 changeCondition Object 0-1 Specifies the conditions for changing the booked flight.
6 allowedBeforeDeparture Boolean 1 Indicates whether it is allowed to change the booked flight.
6 allowedAfterDeparture Boolean 1 Indicates whether it is allowed to change the booked flight after departure of the outbound flight.
6 beforeDepartureDetailsText String 1 Text for details of change condition in the language as specified in ContentLanguage header.
6 afterDepartureDetailsText String 1 Text for details of change condition after departure of outbound flight in the language as specified in ContentLanguage header.
6 feeAfterTaxText String 0-1 Text for fee after tax when changing ticket in the language as specified in ContentLanguage header.
6 taxChangeText String 0-1 Text for tax change when changing ticket in the language as specified in ContentLanguage header.
6 phoneAdminFeeText String 0-1 Text for phone admin fee when changing ticket by phone in the language as specified in ContentLanguage header.
6 commercialText String 1 Commercial text for change condition in the language as specified in ContentLanguage header.
7 relevance Number 1 Relevance for display purpose.
7 text String 1 Commercial text for change condition in the language as specified in ContentLanguage header.
6 feeBeforeDeparture Object 0-1 Fee applicable to the condition.
7 currency String 1 The currency used for the fee. 
Three letter currency code according to ISO 4217.
7 amount Number 1 The amount of the fee.
6 feeAfterDeparture Object 0-1 Fee applicable to the condition after departure of outbound flight.
7 currency String 1 The currency used for the fee. 
Three letter currency code according to ISO 4217.
7 amount Number 1 The amount of the fee.
5 cancelCondition Object 0-1 Specifies the conditions for canceling the booked flight.
6 allowedBeforeDeparture Boolean 1 Indicates whether it is allowed to cancel the booked flight.
6 allowedAfterDeparture Boolean 1 Indicates whether it is allowed to cancel the booked flight after departure of the outbound flight.
6 beforeDepartureDetailsText String 1 Text for details of cancel condition in the language as specified in ContentLanguage header.
6 afterDepartureDetailsText String 1 Text for details of cancel condition after departure of outbound flight in the language as specified in ContentLanguage header.
6 commercialText String 1 Commercial text for cancel condition in the language as specified in ContentLanguage header.
7 text String 1 Commercial text for cancel condition in the language as specified in ContentLanguage header.
6 extraCostsText String 1 Text wrt extra costs when canceling ticket in the language as specified in ContentLanguage header.
6 refundText String 1 Text wrt refund when canceling ticket in the language as specified in ContentLanguage header.
6 taxRefundText String 1 Text wrt tax refund when canceling ticket in the language as specified in ContentLanguage header.
6 feeBeforeDeparture Object 0-1 Fee applicable to the condition.
7 currency String 1 The currency used for the fee. 
Three letter currency code according to ISO 4217.
7 amount Number 1 The amount of the fee.
6 feeAfterDeparture Object 0-1 Fee applicable to the condition after departure of outbound flight.
7 currency String 1 The currency used for the fee. 
Three letter currency code according to ISO 4217.
7 amount Number 1 The amount of the fee.
5 minimumStayCondition Object 0-1 Minimum stay condition applicable.
6 detailsText String 1 Text for details of minimum stay in the language as specified in ContentLanguage header.
6 commercialText String 1 Commercial text for minimum stay in the language as specified in ContentLanguage header.
7 text String 1 Commercial text for minimum stay in the language as specified in ContentLanguage header.
6 dayOfWeekIncluded String 0-1

Indicates that specified day is mandatory to be included in the duration

MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY or SUNDAY.

6 stayDuration Object 0-1 Duration that applies to the stay condition.
7 duration Integer 1 The duration specifying the minimum/maximum stay allowed. The duration is an integer value related to the durationType specified.
7 stayUnit String 1

The duration type used for specifying the minimum/maximum stay allowed.

DAY, MONTH, MINUTE, WEEK, NIGHT, HOUR.

5 maximumStayCondition Object 0-1 Maximum stay condition applicable.
6 detailsText String 1 Text for details of maximum stay in the language as specified in ContentLanguage header.
6 commercialText String 1 Commercial text for maximum stay in the language as specified in ContentLanguage header.
7 text String 1 Commercial text for maximum stay in the language as specified in ContentLanguage header.
6 dayOfWeekIncluded String 0-1 Indicates that specified day is mandatory to be included in the duration
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY or SUNDAY.
6 stayDuration Object 0-1 Duration that applies to the stay condition.
7 duration Integer 1 The duration specifying the minimum/maximum stay allowed. The duration is an integer value related to the durationType specified.
7 stayUnit String 1 The duration type used for specifying the minimum/maximum stay allowed.
DAY, MONTH, MINUTE, WEEK, NIGHT, HOUR.
5 advancePurchaseCondition Object 0-1 Advance purchase condition applicable.
6 detailsText String 1 Text for details of advance purchase in the language as specified in ContentLanguage header.
6 commercialText String 1 Commercial text for advance purchase in the language as specified in ContentLanguage header.
7 text String 1 Commercial text for advance purchase in the language as specified in ContentLanguage header.
6 stayDuration Object 0-1 Duration that applies to the advance purchase condition.
7 duration Integer 1 The duration specifying the period the advance purchase is applicable. The duration is an integer value related to the durationType specified.
7 stayUnit String 1 The duration type used for specifying the minimum/maximum stay allowed.
DAY, MONTH, MINUTE, WEEK, NIGHT, HOUR.
5 infantDiscountCondition Object 0-1 Specifies the fare discount applying to infants compared to adults.
6 farePercentage Integer 1 The percentage of the adult fare that is applicable for an infant (0-100).
5 childrenDiscountCondition Object 0-1 Specifies the fare discount applying to children compared to adults.
6 farePercentage Integer 1 The percentage of the adult fare that is applicable for a child (0-100).
5 freeSeatSelectionCondition Object 0-1 Free seat selection condition applicable.
6 allowed Boolean 1 Indicates whether it is allowed to seelct a seat for free for the booked flight.
6 detailsText String 1 Text for details of free seat selection in the language as specified in ContentLanguage header.
6 commercialText Object 1 Commercial text for free seat selection in the language as specified in ContentLanguage header.
7 text String 1 Commercial text for free seat selection in the language as specified in ContentLanguage header.
1 warning Object 0-99 Warning details
2 code Number 1 Functional warning codes (1000-1999)
2 name String 1

Name of the warning. Ex :OFA/FUNCTIONAL/INVALID_VALUE

- logger/Typology/name

2 description String 1 Description of the warning
2 errorinInputPath String 1 Description of the input Path where the warning occurred
1 errors Object 0-1
Error details
2 code Number
1

Functional error codes (1000-1999)
Technical error codes (2000-2999)
Internal error codes (3000-3999)

2 name String 1

Name of the error . Ex :OFA/TECHNICAL/INVALID_VALUE

- logger/Typology/name

2 description String 1 Description of the error.
2 errorinInputPath String 1 Description of the input Path where the error occurred



HTTP STATUS CODES

HTTP status

Type

200 OK

400

FOA/DISCOUNT_CODE_INELIGIBLE

500

FOA/INTERNAL_SERVER_ERROR/UNSUPPORTED_CAPABILITY

500

INTERNAL_SERVER_ERROR

SAMPLE POST REQUEST (outbound query)

{
  "itineraries": [
    {
      "flightProducts": [
        {
          "passengers": [
            {
              "id": 1,
              "type": "ADT"
            },
            {
              "id": 2,
              "type": "ADT"
            }
          ],
          "price": {
            "displayPrice": 239.09,
            "totalPrice": 478.18,
            "pricePerPassengerTypes": [
              {
                "passengerType": "ADT",
                "fare": 162,
                "taxes": 77.09
              }
            ],
            "flexibilityWaiver": false,
            "currency": "CAD",
            "displayType": "TAX"
          },
          "connections": [
            {
              "numberOfSeatsAvailable": 9,
              "fareBasis": {
                "code": "NSRFR"
              },
              "segments": [
                {
                  "cabin": {
                    "class": "M"
                  },
                  "sellingClass": {
                    "code": "N"
                  },
                  "fareBasis": {
                    "code": "NSRFR"
                  }
                }
              ],
              "conditions": [
                {
                  "minimumStayCondition": {
                    "stayDuration": {
                      "duration": 3,
                      "stayUnit": "DAY"
                    },
                    "daysOfWeekIncluded": [
                      "SUNDAY"
                    ],
                    "commercialText": {
                      "text": "A minimum stay applies"
                    },
                    "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SUNDAY."
                  }
                },
                {
                  "maximumStayCondition": {
                    "stayDuration": {
                      "duration": 12,
                      "stayUnit": "MONTH"
                    },
                    "commercialText": {
                      "text": "A maximum stay applies"
                    },
                    "detailsText": "A maximum stay of 12 month(s) applies."
                  }
                },
                {
                  "childrenDiscountCondition": {
                    "farePercentage": 80
                  }
                },
                {
                  "infantDiscountCondition": {
                    "farePercentage": 10
                  }
                },
                {
                  "cancelCondition": {
                    "allowedBeforeDeparture": false,
                    "allowedAfterDeparture": false,
                    "commercialText": {
                      "text": "Cancellation is not possible"
                    },
                    "afterDepartureDetailsText": "After the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "beforeDepartureDetailsText": "Before the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "extraCostsText": "This fare is applicable for a ticket used in sequential order for the specified journey and on the specified dates. As outlined in the General Conditions of Carriage, any non-compliant use noticed on the day of travel will generate the obligation to pay an extra fixed fee at the airport for the amount of: EUR 125 on short-haul flights (Metropolitan France and Corsica), EUR 250 for a flight within Europe  in Economy Class, EUR 500 for a flight within Europe in Business Class, EUR 500 for an intercontinental flight in Economy Class or Premium Economy, EUR 1.500 for an intercontinental flight in Business Class and EUR 3.000 for an Air France intercontinental flight in La Première (or the equivalent in the local currency)."
                  }
                },
                {
                  "changeCondition": {
                    "feeBeforeDeparture": {
                      "amount": 70,
                      "currency": "EUR"
                    },
                    "allowedBeforeDeparture": true,
                    "feeAfterDeparture": {
                      "amount": 70,
                      "currency": "EUR"
                    },
                    "allowedAfterDeparture": true,
                    "commercialText": {
                      "relevance": 2,
                      "text": "Change fee EUR 70 (+ possible fare difference)"
                    },
                    "afterDepartureDetailsText": "After departure of your first outbound flight, it’s permitted to change your ticket at a fee of EUR 70.",
                    "beforeDepartureDetailsText": "Before departure of your first outbound flight, it’s permitted to change your ticket at a fee of EUR 70.",
                    "taxChangeText": "If you change your ticket, the price may change due to tax recalculation and fare availability."
                  }
                },
                {
                  "noShowCondition": {
                    "commercialText": {
                      "text": "No refund if you missed your flight"
                    },
                    "detailsText": "If you are not present in time for boarding, this ticket is not refundable and you are not eligible for a free rebooking.",
                    "allowed": false
                  }
                }
              ],
              "fareFamily": {
                "code": "STANDARDSH",
                "hierarchy": 130,
                "title": "Standard !",
                "commercialDescription": "Standard"
              },
              "baggageAllowance": {
                "quantity": 1,
                "type": "PIECES",
                "commercialText": {
                  "relevance": 1,
                  "text": "1 hand baggage item and 1 accessory (12 kg total*) and 1 check-in baggage item(s) (23 kg each) included"
                },
                "detailsText": "You are entitled to 1 check-in baggage item(s) (23 kg each) for this flight.",
                "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
              },
              "flyingBlue": {
                "earned": 222,
                "detailsText": "Flying Blue members earn 222 Miles.",
                "qualifyingPoints": 2,
                "ultimateQualifyingPoints": 0,
                "detailsTextQualPoints": "Flying Blue members earn 2 XP",
                "commercialText": {
                  "relevance": 4,
                  "text": "222 Flying Blue Award Miles"
                }
              },
              "travelClassText": "You will be travelling in N Class with fare basis NSRFR.",
              "tripText": "Nice, Cote D'Azur Airport (NCE) to Paris, Charles De Gaulle Airport (CDG)",
              "commercialCabin": "ECONOMY",
              "price": {
                "displayPrice": 129.05,
                "totalPrice": 258.1,
                "pricePerPassengerTypes": [
                  {
                    "passengerType": "ADT",
                    "fare": 90.5,
                    "taxes": 38.55
                  }
                ],
                "flexibilityWaiver": false,
                "currency": "CAD",
                "displayType": "TAX"
              }
            },
            {
              "numberOfSeatsAvailable": 8,
              "fareBasis": {
                "code": "RSRFR"
              },
              "segments": [
                {
                  "cabin": {
                    "class": "M"
                  },
                  "sellingClass": {
                    "code": "R"
                  },
                  "fareBasis": {
                    "code": "RSRFR"
                  }
                }
              ],
              "conditions": [
                {
                  "minimumStayCondition": {
                    "stayDuration": {
                      "duration": 3,
                      "stayUnit": "DAY"
                    },
                    "daysOfWeekIncluded": [
                      "SUNDAY"
                    ],
                    "commercialText": {
                      "text": "A minimum stay applies"
                    },
                    "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SUNDAY."
                  }
                },
                {
                  "maximumStayCondition": {
                    "stayDuration": {
                      "duration": 12,
                      "stayUnit": "MONTH"
                    },
                    "commercialText": {
                      "text": "A maximum stay applies"
                    },
                    "detailsText": "A maximum stay of 12 month(s) applies."
                  }
                },
                {
                  "childrenDiscountCondition": {
                    "farePercentage": 80
                  }
                },
                {
                  "infantDiscountCondition": {
                    "farePercentage": 10
                  }
                },
                {
                  "cancelCondition": {
                    "allowedBeforeDeparture": false,
                    "allowedAfterDeparture": false,
                    "commercialText": {
                      "text": "Cancellation is not possible"
                    },
                    "afterDepartureDetailsText": "After the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "beforeDepartureDetailsText": "Before the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "extraCostsText": "This fare is applicable for a ticket used in sequential order for the specified journey and on the specified dates. As outlined in the General Conditions of Carriage, any non-compliant use noticed on the day of travel will generate the obligation to pay an extra fixed fee at the airport for the amount of: EUR 125 on short-haul flights (Metropolitan France and Corsica), EUR 250 for a flight within Europe  in Economy Class, EUR 500 for a flight within Europe in Business Class, EUR 500 for an intercontinental flight in Economy Class or Premium Economy, EUR 1.500 for an intercontinental flight in Business Class and EUR 3.000 for an Air France intercontinental flight in La Première (or the equivalent in the local currency)."
                  }
                },
                {
                  "changeCondition": {
                    "feeBeforeDeparture": {
                      "amount": 70,
                      "currency": "EUR"
                    },
                    "allowedBeforeDeparture": true,
                    "feeAfterDeparture": {
                      "amount": 70,
                      "currency": "EUR"
                    },
                    "allowedAfterDeparture": true,
                    "commercialText": {
                      "relevance": 2,
                      "text": "Change fee EUR 70 (+ possible fare difference)"
                    },
                    "afterDepartureDetailsText": "After departure of your first outbound flight, it’s permitted to change your ticket at a fee of EUR 70.",
                    "beforeDepartureDetailsText": "Before departure of your first outbound flight, it’s permitted to change your ticket at a fee of EUR 70.",
                    "taxChangeText": "If you change your ticket, the price may change due to tax recalculation and fare availability."
                  }
                },
                {
                  "noShowCondition": {
                    "commercialText": {
                      "text": "No refund if you missed your flight"
                    },
                    "detailsText": "If you are not present in time for boarding, this ticket is not refundable and you are not eligible for a free rebooking.",
                    "allowed": false
                  }
                }
              ],
              "fareFamily": {
                "code": "STANDARDSH",
                "hierarchy": 130,
                "title": "Standard !",
                "commercialDescription": "Standard"
              },
              "baggageAllowance": {
                "quantity": 1,
                "type": "PIECES",
                "commercialText": {
                  "relevance": 1,
                  "text": "1 hand baggage item and 1 accessory (12 kg total*) and 1 check-in baggage item(s) (23 kg each) included"
                },
                "detailsText": "You are entitled to 1 check-in baggage item(s) (23 kg each) for this flight.",
                "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
              },
              "flyingBlue": {
                "earned": 216,
                "detailsText": "Flying Blue members earn 216 Miles.",
                "qualifyingPoints": 2,
                "ultimateQualifyingPoints": 0,
                "detailsTextQualPoints": "Flying Blue members earn 2 XP",
                "commercialText": {
                  "relevance": 4,
                  "text": "216 Flying Blue Award Miles"
                }
              },
              "travelClassText": "You will be travelling in R Class with fare basis RSRFR.",
              "tripText": "Paris, Paris Orly Airport (ORY) to Nice, Cote D'Azur Airport (NCE)",
              "commercialCabin": "ECONOMY",
              "price": {
                "displayPrice": 110.05,
                "totalPrice": 220.1,
                "pricePerPassengerTypes": [
                  {
                    "passengerType": "ADT",
                    "fare": 71.5,
                    "taxes": 38.55
                  }
                ],
                "flexibilityWaiver": false,
                "currency": "CAD",
                "displayType": "TAX"
              }
            }
          ],
          "sameConditions": true,
          "flyingBlue": {
            "earned": 438,
            "detailsText": "Flying Blue members earn 438 Miles.",
            "qualifyingPoints": 4,
            "ultimateQualifyingPoints": 0,
            "detailsTextQualPoints": "Flying Blue members earn 4 XP",
            "commercialText": {
              "text": "438 Flying Blue Award Miles"
            }
          },
          "_links": {
            "availableOffers": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/available-offers?d=dZUxD4MgEIX_SuNuwqHW6kaktpNp2m4NQ9N0cOngSvjvPRH1BFw5FHjv3Xd6g7j5xE1GNDYLOL1HkfEXuMLpigoB97ImqCCNZrXdXmAnZjqA6KwoiZt2_aEn8nbNGS9HeeUKjbxgIWA_Z1ClwFPIn3CsgdWMRaFI9-V1Vth9YbuKNvFHkeiHQzu8f59vDCzjBztoKUtMp0_ODE4-4xlK77MSM9BJDMPjGqcmZCyK4KpYu22yxgFSoePe8Jgl4eUCKW3HoFP8Ju6J8b0gdWuVIVaq3bPVMgLRSCHHN1G-2-Ywfw=={&departureDate,minimumAccuracy,displayPriceContent}",
              "templated": true
            },
            "lowestFareOffers": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/lowest-fare-offers?d=dZUxD4MgEIX_SuNuwqHW6ka0tpNp2m4NQ9N0cOngSvjvPRD1BFw5BLz37ntqg8X5_o2JFA4YOAVM2_EIXOF0RYZQfC0NkYFl9WoG-4gd86kAvvORxITKDZGaiN03Z3wg5ZwrNO0FC0FmcAZVCjyF_AnHGljNWBSmdF9eZ4XdF8606BI_wsQwHrrx_ft8Y_QxH-zwpyzRsz5xMzj52cCw_T5j0Qd9i4Z4XOO0hYxF0V0V6wxO0jiKSlTdC525JbxcSKZsfLqO38Q90b4WpG6l0kRKuXu3DPkulzRFbUVrfpNGhZ0dZ1EznfoP&dateInterval={dateInterval}{&displayPriceContent}",
              "templated": true
            },
            "shoppingCart": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AczQh197TZVZrLUwo16QWETVWEFuwyAQ_MueSQUkilVuVq322KrKrc4tqpQ3WPl7Z8DYYIgdqYeqObILXnaHndkMkj9CgbyoSCtxX4OEPiXO48ARK0oSTRANH-0nDCl2sftM10R-wNlq87wzdmcOcI8PQpwPS8n9zpGHmK-XfSKPPOaxGv1kfOneYJypmCcvCSxEQZu0r0irpFyNxaYxey6v3joTYDCag9trp_WT1hpl4qkbyoVhfOdqmktDL9dLL86oXgrawHovbXfq5QZffCR62we88VOylAZj1QiuHCQBCxWQhPw_DhLb_AFI3tHK7oIk3OB3IDla1nnj1kuQ6ON_BQm7DpqPZMqGkcwixlfiemFQ5VeYxu7kexhd7IrLmVmhXJ-gKTVt4QuUTKr4_ERCaurbaqZDNVINz6_KaXE6ljnR6Tx3hY9xWiGQw3soxwjc0FNRKLufN3h6wlQqEg3f0-ZANiconUX5TlseVZGBsAWRwC3ZuBrwvhx8A34oCbEzSgMCJJ0mYBrpT0nyVwKWI2uj2oW6HTE1ZzwZgrg1ZfjbDw==/shopping-cart"
            },
            "taxBreakdown": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/fZTLbptQAET_hXUsgSGAI3WBARsMBi5gHreqEGDebwK-4Cj_XidV1bSL7s9ipDkzb9g_bWEvGBffQU7sGBs6cFQvqCNo4Iq244qHGa0cCM5zYoFLVdTO7AzkdquMyhhT09AD0jVqBrKC78vZdfCTQY9k1WtDqb1W56rc8Vm0dhY_LR6li0bh6RTLmQreWY-cmrTBW4Gvt6_pdCZwc4O0emAZdL82sR7LrAF6ZFhsu7v3R6lRNl5qKYahh8vxRlSp3ib-ae0bPr7x1iICOOMjXoz9YdWW0F-Slb6RZWf7Ah9mu2nsA9cm8r6mhuqRyMlT_To01SSou6uqsnTnZWOIpO4WeenwDGCa8ia9RQnLOvpac7AkQDFLPNjziwtyAwVCrkYBd5DJSVKYTq5IfU_KQh0SbVsS1QxoXQv2oGGEfjDgeThWMSqWOi2S5gCencRfZqZKlvzKyKPaOE3unTaZYjsTBeaLrYxUIJp8OI9ROEBBc2TtTgdK6Il0XbYmbS9k7u8WtzgCRL52Cypj_KCZijqnGpnTqAaDmJEpvoGcVsRde_Ge7Uf3DjzuXznXRDwJ5_2IbvnCciTV8ZF4t7Izfzrhjb8fextvVwcprrydy23n0pItEvCOYDZmBEzLSEDfvmFP2F_jwh7X82dH2Mv3N6x4uEV8wX5P7sM4wf408wPZ_gf58YT9uhzs5dPe9yfs65s9MJ4TsPef/tax-breakdown"
            },
            "relatedProducts": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AczQh197TZVZrLUwo16QWETVWEFuwyAQ_MueSQUkilVuVq322KrKrc4tqpQ3WPl7Z8DYYIgdqYeqObILXnaHndkMkj9CgbyoSCtxX4OEPiXO48ARK0oSTRANH-0nDCl2sftM10R-wNlq87wzdmcOcI8PQpwPS8n9zpGHmK-XfSKPPOaxGv1kfOneYJypmCcvCSxEQZu0r0irpFyNxaYxey6v3joTYDCag9trp_WT1hpl4qkbyoVhfOdqmktDL9dLL86oXgrawHovbXfq5QZffCR62we88VOylAZj1QiuHCQBCxWQhPw_DhLb_AFI3tHK7oIk3OB3IDla1nnj1kuQ6ON_BQm7DpqPZMqGkcwixlfiemFQ5VeYxu7kexhd7IrLmVmhXJ-gKTVt4QuUTKr4_ERCaurbaqZDNVINz6_KaXE6ljnR6Tx3hY9xWiGQw3soxwjc0FNRKLufN3h6wlQqEg3f0-ZANiconUX5TlseVZGBsAWRwC3ZuBrwvhx8A34oCbEzSgMCJJ0mYBrpT0nyVwKWI2uj2oW6HTE1ZzwZgrg1ZfjbDw==/related-products{?device}",
              "templated": true
            }
          }
        },
        {
          "passengers": [
            {
              "id": 1,
              "type": "ADT"
            },
            {
              "id": 2,
              "type": "ADT"
            }
          ],
          "price": {
            "displayPrice": 313.09,
            "totalPrice": 626.18,
            "pricePerPassengerTypes": [
              {
                "passengerType": "ADT",
                "fare": 236,
                "taxes": 77.09
              }
            ],
            "flexibilityWaiver": false,
            "currency": "CAD",
            "displayType": "TAX"
          },
          "connections": [
            {
              "numberOfSeatsAvailable": 9,
              "fareBasis": {
                "code": "N9FFFR"
              },
              "segments": [
                {
                  "cabin": {
                    "class": "M"
                  },
                  "sellingClass": {
                    "code": "N"
                  },
                  "fareBasis": {
                    "code": "N9FFFR"
                  }
                }
              ],
              "conditions": [
                {
                  "minimumStayCondition": {
                    "stayDuration": {
                      "duration": 3,
                      "stayUnit": "DAY"
                    },
                    "daysOfWeekIncluded": [
                      "SUNDAY"
                    ],
                    "commercialText": {
                      "text": "A minimum stay applies"
                    },
                    "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SUNDAY."
                  }
                },
                {
                  "maximumStayCondition": {
                    "stayDuration": {
                      "duration": 12,
                      "stayUnit": "MONTH"
                    },
                    "commercialText": {
                      "text": "A maximum stay applies"
                    },
                    "detailsText": "A maximum stay of 12 month(s) applies."
                  }
                },
                {
                  "childrenDiscountCondition": {
                    "farePercentage": 80
                  }
                },
                {
                  "infantDiscountCondition": {
                    "farePercentage": 10
                  }
                },
                {
                  "cancelCondition": {
                    "allowedBeforeDeparture": true,
                    "allowedAfterDeparture": true,
                    "commercialText": {
                      "relevance": 3,
                      "text": "Refund if you decide to cancel"
                    },
                    "afterDepartureDetailsText": "After the departure of your first outbound flight, you can apply for a refund at no extra costs if you cancel your flight.",
                    "beforeDepartureDetailsText": "Before the departure of your first outbound flight, you can apply for a refund at no extra costs if you cancel your flight.",
                    "extraCostsText": "This fare is applicable for a ticket used in sequential order for the specified journey and on the specified dates. As outlined in the General Conditions of Carriage, any non-compliant use noticed on the day of travel will generate the obligation to pay an extra fixed fee at the airport for the amount of: EUR 125 on short-haul flights (Metropolitan France and Corsica), EUR 250 for a flight within Europe  in Economy Class, EUR 500 for a flight within Europe in Business Class, EUR 500 for an intercontinental flight in Economy Class or Premium Economy, EUR 1.500 for an intercontinental flight in Business Class and EUR 3.000 for an Air France intercontinental flight in La Première (or the equivalent in the local currency)."
                  }
                },
                {
                  "changeCondition": {
                    "allowedBeforeDeparture": true,
                    "allowedAfterDeparture": true,
                    "commercialText": {
                      "relevance": 2,
                      "text": "Free change + fare difference"
                    },
                    "afterDepartureDetailsText": "After departure of your first outbound flight, it’s permitted to change your ticket at no cost.",
                    "beforeDepartureDetailsText": "Before departure of your first outbound flight, it’s permitted to change your ticket at no cost."
                  }
                },
                {
                  "noShowCondition": {
                    "commercialText": {
                      "text": "Refund if you missed your flight"
                    },
                    "detailsText": "If you are not present in time for boarding, we will rebook you to a later flight, or you may request a refund.",
                    "allowed": true
                  }
                }
              ],
              "fareFamily": {
                "code": "FLEXSH",
                "hierarchy": 10,
                "title": "Flex !",
                "commercialDescription": "Flex"
              },
              "baggageAllowance": {
                "quantity": 1,
                "type": "PIECES",
                "commercialText": {
                  "relevance": 1,
                  "text": "1 hand baggage item and 1 accessory (12 kg total*) and 1 check-in baggage item(s) (23 kg each) included"
                },
                "detailsText": "You are entitled to 1 check-in baggage item(s) (23 kg each) for this flight.",
                "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
              },
              "flyingBlue": {
                "earned": 323,
                "detailsText": "Flying Blue members earn 323 Miles.",
                "qualifyingPoints": 2,
                "ultimateQualifyingPoints": 0,
                "detailsTextQualPoints": "Flying Blue members earn 2 XP",
                "commercialText": {
                  "relevance": 4,
                  "text": "323 Flying Blue Award Miles"
                }
              },
              "travelClassText": "You will be travelling in N Class with fare basis N9FFFR.",
              "tripText": "Nice, Cote D'Azur Airport (NCE) to Paris, Charles De Gaulle Airport (CDG)",
              "commercialCabin": "ECONOMY",
              "price": {
                "displayPrice": 202.55,
                "totalPrice": 405.1,
                "pricePerPassengerTypes": [
                  {
                    "passengerType": "ADT",
                    "fare": 164,
                    "taxes": 38.55
                  }
                ],
                "flexibilityWaiver": false,
                "currency": "CAD",
                "displayType": "TAX"
              }
            },
            {
              "numberOfSeatsAvailable": 8,
              "fareBasis": {
                "code": "RSRFR"
              },
              "segments": [
                {
                  "cabin": {
                    "class": "M"
                  },
                  "sellingClass": {
                    "code": "R"
                  },
                  "fareBasis": {
                    "code": "RSRFR"
                  }
                }
              ],
              "conditions": [
                {
                  "minimumStayCondition": {
                    "stayDuration": {
                      "duration": 3,
                      "stayUnit": "DAY"
                    },
                    "daysOfWeekIncluded": [
                      "SUNDAY"
                    ],
                    "commercialText": {
                      "text": "A minimum stay applies"
                    },
                    "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SUNDAY."
                  }
                },
                {
                  "maximumStayCondition": {
                    "stayDuration": {
                      "duration": 12,
                      "stayUnit": "MONTH"
                    },
                    "commercialText": {
                      "text": "A maximum stay applies"
                    },
                    "detailsText": "A maximum stay of 12 month(s) applies."
                  }
                },
                {
                  "childrenDiscountCondition": {
                    "farePercentage": 80
                  }
                },
                {
                  "infantDiscountCondition": {
                    "farePercentage": 10
                  }
                },
                {
                  "cancelCondition": {
                    "allowedBeforeDeparture": false,
                    "allowedAfterDeparture": false,
                    "commercialText": {
                      "text": "Cancellation is not possible"
                    },
                    "afterDepartureDetailsText": "After the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "beforeDepartureDetailsText": "Before the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "extraCostsText": "This fare is applicable for a ticket used in sequential order for the specified journey and on the specified dates. As outlined in the General Conditions of Carriage, any non-compliant use noticed on the day of travel will generate the obligation to pay an extra fixed fee at the airport for the amount of: EUR 125 on short-haul flights (Metropolitan France and Corsica), EUR 250 for a flight within Europe  in Economy Class, EUR 500 for a flight within Europe in Business Class, EUR 500 for an intercontinental flight in Economy Class or Premium Economy, EUR 1.500 for an intercontinental flight in Business Class and EUR 3.000 for an Air France intercontinental flight in La Première (or the equivalent in the local currency)."
                  }
                },
                {
                  "changeCondition": {
                    "feeBeforeDeparture": {
                      "amount": 70,
                      "currency": "EUR"
                    },
                    "allowedBeforeDeparture": true,
                    "feeAfterDeparture": {
                      "amount": 70,
                      "currency": "EUR"
                    },
                    "allowedAfterDeparture": true,
                    "commercialText": {
                      "relevance": 2,
                      "text": "Change fee EUR 70 (+ possible fare difference)"
                    },
                    "afterDepartureDetailsText": "After departure of your first outbound flight, it’s permitted to change your ticket at a fee of EUR 70.",
                    "beforeDepartureDetailsText": "Before departure of your first outbound flight, it’s permitted to change your ticket at a fee of EUR 70.",
                    "taxChangeText": "If you change your ticket, the price may change due to tax recalculation and fare availability."
                  }
                },
                {
                  "noShowCondition": {
                    "commercialText": {
                      "text": "No refund if you missed your flight"
                    },
                    "detailsText": "If you are not present in time for boarding, this ticket is not refundable and you are not eligible for a free rebooking.",
                    "allowed": false
                  }
                }
              ],
              "fareFamily": {
                "code": "STANDARDSH",
                "hierarchy": 130,
                "title": "Standard !",
                "commercialDescription": "Standard"
              },
              "baggageAllowance": {
                "quantity": 1,
                "type": "PIECES",
                "commercialText": {
                  "relevance": 1,
                  "text": "1 hand baggage item and 1 accessory (12 kg total*) and 1 check-in baggage item(s) (23 kg each) included"
                },
                "detailsText": "You are entitled to 1 check-in baggage item(s) (23 kg each) for this flight.",
                "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
              },
              "flyingBlue": {
                "earned": 315,
                "detailsText": "Flying Blue members earn 315 Miles.",
                "qualifyingPoints": 2,
                "ultimateQualifyingPoints": 0,
                "detailsTextQualPoints": "Flying Blue members earn 2 XP",
                "commercialText": {
                  "relevance": 4,
                  "text": "315 Flying Blue Award Miles"
                }
              },
              "travelClassText": "You will be travelling in R Class with fare basis RSRFR.",
              "tripText": "Paris, Paris Orly Airport (ORY) to Nice, Cote D'Azur Airport (NCE)",
              "commercialCabin": "ECONOMY",
              "price": {
                "displayPrice": 110.55,
                "totalPrice": 221.1,
                "pricePerPassengerTypes": [
                  {
                    "passengerType": "ADT",
                    "fare": 72,
                    "taxes": 38.55
                  }
                ],
                "flexibilityWaiver": false,
                "currency": "CAD",
                "displayType": "TAX"
              }
            }
          ],
          "sameConditions": false,
          "flyingBlue": {
            "earned": 638,
            "detailsText": "Flying Blue members earn 638 Miles.",
            "qualifyingPoints": 4,
            "ultimateQualifyingPoints": 0,
            "detailsTextQualPoints": "Flying Blue members earn 4 XP",
            "commercialText": {
              "text": "638 Flying Blue Award Miles"
            }
          },
          "_links": {
            "availableOffers": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/available-offers?d=dZUxD4IwEIX_imEn6RWwwtaA6GSMupkOxji4OLA2_e9eS4GjLWuv0Pa9d9_pFeKmE1cZ0dgs4PW2IuMvcIXTFRUD7ulMUFEazWK7u8BGzHQE0UlREjft-0OP5L20R7wc5ZUvtN0JCxH7OYM6B55D-YB9A6xhLAlFuq9sisrti9tV9lk4iuR32PXD6_f-pMBiP9hAixCYzpCcBRxCxjOUPmSlDdP9nCYmsCR962pptNEVz0aFZgdzY1KDi5lP2k1AL_ZV3jIT2kDqziVDXFSbZ6t5-qGHsrNPomh3fWH-{&departureDate,minimumAccuracy,displayPriceContent}",
              "templated": true
            },
            "lowestFareOffers": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/lowest-fare-offers?d=dZUxD4IwEIX_imEn6RUQYWtAdDJG3UwHYxxcHFib_nevpZSjLWuvtOXeu--pFRbn-1cmUjhg4BQwbccjcIXTFRlD8ekbIiPL6sUM9hEb5lMRfOcjiQmVGyI1EfvSHfGBlHOu0PUnLESZwRk0OfAcygfsW2AtY0mY0n1lW1R2XzzTYsjCCBPfcTeMr9_7k6KP-WCDP3WNng2JW8AhzAaG7Q8Za-x1P6dJCyxJ7aZaxm9SxQFUouBB3szd4LWHmLLJ6Zp9FbdMhzKQulVJExXl5t0yRrv0QYqyit78JU0JOzbOnWYw9R8=&dateInterval={dateInterval}{&displayPriceContent}",
              "templated": true
            },
            "shoppingCart": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AbJtRRLmQopIP474hzbSVN7VWEFuwyAQ_MueSQUkilVuVq322KrKrc4tqpQ3WPl7Z8DYYIgdqYeqObILXnaHndkMkj9CgbyoSCtxX4OEPiXO48ARK0oSTRANH-0nDCl2sftM10R-wNlq87wzdmcOcI8PQpwPS8n9zpGHmK-XfSKPPOaxGv1kfOneYJypmCcvCSxEQZu0r0irpFyNxaYxey6v3joTYDCag9trp_WT1hpl4qkbyoVhfOdqmktDL9dLL86oXgrawHovbXfq5QZffCR62we88VOylAZj1QiuHCQBCxWQhPw_DhLb_AFI3tHK7oIk3OB3IDla1nnj1kuQ6ON_BQm7DpqPZMqGkcwixlfiemFQ5VeYxu7kexhd7IrLmVmhXJ-gKTVt4QuUTKr4_ERCaurbaqZDNVINz6_KaXE6ljnR6Tx3hY9xWiGQw3soxwjc0FNRKLufN3h6wlQqEg3f0-ZANiconUX5TlseVZGBsAWRwC3ZuBrwvhx8A34oCbEzSgMCJJ0mYBrpT0nyVwKWI2uj2oW6HTE1ZzwZgrg1ZfjbDw==/shopping-cart"
            },
            "taxBreakdown": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/fZTLbptQAET_hXUsgSGAI2WBL9hgMHCB8KoqBJj3m4AvOMq_x0lVNe2i-7MYac7MG_ZPW9gTxkWnyTCUBna9pFMMld8i01YZ2xEOM1o5GJznxIQvVVHbsz2Q2608ymNMTUMPSUevGZ_lPU_KLoOXDFokKW4biu2lOlflDmTR2plgWlxKE_TC1SiWM2S8M-85VXGDtzyot6_pdCZwY4PUemAZdLs0sRZLrA57pJtsu7v1R7GRN25qyrquhcvxSlSp1ibeae0bEF-BuQjQn_ERL8b-sKpL6C3JSl_JsrM8HoTZbhr7wLGIvK-pobonsvNUuwxNNfHK7qIoLN252RgisbtGbjo8Qj9NgUFvUcKytrbWnF8SsJhFAPdgcWCuo4DPlSjgDhI5iTLTSRWp7UmJr0OibUuimiGtqcEeNgzfD7p_Ho5VjIqlToukOcBHO_GWmamSJb8w0qg0dpO7p00mW_ZEwfnFkkcqEAwQzmMUDj6v2pJ6owM5dAW6LluDthYy93aLUxwhIl-7BZUxflANWZlTlcxpVMNByMgU3_icWsRd--I-Wvfubf-4f-UcAwHSn_cjuuYLy5FUByLhZmZncDrhjbcfewtvVxvJjrSdy23n0KIlEP4N-dmYEX5aRjx6fsYesL_Ghd2v58-OsKcfb1hxd4v4hv2e3KdxvPVl5iey_Q_y8wH7dTnY05e97w_Y9ze7Y4DjsfcP/tax-breakdown"
            },
            "relatedProducts": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AbJtRRLmQopIP474hzbSVN7VWEFuwyAQ_MueSQUkilVuVq322KrKrc4tqpQ3WPl7Z8DYYIgdqYeqObILXnaHndkMkj9CgbyoSCtxX4OEPiXO48ARK0oSTRANH-0nDCl2sftM10R-wNlq87wzdmcOcI8PQpwPS8n9zpGHmK-XfSKPPOaxGv1kfOneYJypmCcvCSxEQZu0r0irpFyNxaYxey6v3joTYDCag9trp_WT1hpl4qkbyoVhfOdqmktDL9dLL86oXgrawHovbXfq5QZffCR62we88VOylAZj1QiuHCQBCxWQhPw_DhLb_AFI3tHK7oIk3OB3IDla1nnj1kuQ6ON_BQm7DpqPZMqGkcwixlfiemFQ5VeYxu7kexhd7IrLmVmhXJ-gKTVt4QuUTKr4_ERCaurbaqZDNVINz6_KaXE6ljnR6Tx3hY9xWiGQw3soxwjc0FNRKLufN3h6wlQqEg3f0-ZANiconUX5TlseVZGBsAWRwC3ZuBrwvhx8A34oCbEzSgMCJJ0mYBrpT0nyVwKWI2uj2oW6HTE1ZzwZgrg1ZfjbDw==/related-products{?device}",
              "templated": true
            }
          }
        },
        {
          "passengers": [
            {
              "id": 1,
              "type": "ADT"
            },
            {
              "id": 2,
              "type": "ADT"
            }
          ],
          "price": {
            "displayPrice": 194.09,
            "totalPrice": 388.18,
            "pricePerPassengerTypes": [
              {
                "passengerType": "ADT",
                "fare": 117,
                "taxes": 77.09
              }
            ],
            "flexibilityWaiver": false,
            "currency": "CAD",
            "displayType": "TAX"
          },
          "connections": [
            {
              "numberOfSeatsAvailable": 9,
              "fareBasis": {
                "code": "NRDFR9"
              },
              "segments": [
                {
                  "cabin": {
                    "class": "M"
                  },
                  "sellingClass": {
                    "code": "N"
                  },
                  "fareBasis": {
                    "code": "NRDFR9"
                  }
                }
              ],
              "conditions": [
                {
                  "minimumStayCondition": {
                    "stayDuration": {
                      "duration": 3,
                      "stayUnit": "DAY"
                    },
                    "daysOfWeekIncluded": [
                      "SUNDAY"
                    ],
                    "commercialText": {
                      "text": "A minimum stay applies"
                    },
                    "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SUNDAY."
                  }
                },
                {
                  "maximumStayCondition": {
                    "stayDuration": {
                      "duration": 6,
                      "stayUnit": "MONTH"
                    },
                    "commercialText": {
                      "text": "A maximum stay applies"
                    },
                    "detailsText": "A maximum stay of 6 month(s) applies."
                  }
                },
                {
                  "childrenDiscountCondition": {
                    "farePercentage": 80
                  }
                },
                {
                  "infantDiscountCondition": {
                    "farePercentage": 10
                  }
                },
                {
                  "cancelCondition": {
                    "allowedBeforeDeparture": false,
                    "allowedAfterDeparture": false,
                    "commercialText": {
                      "text": "Cancellation is not possible"
                    },
                    "afterDepartureDetailsText": "After the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "beforeDepartureDetailsText": "Before the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "extraCostsText": "This fare is applicable for a ticket used in sequential order for the specified journey and on the specified dates. As outlined in the General Conditions of Carriage, any non-compliant use noticed on the day of travel will generate the obligation to pay an extra fixed fee at the airport for the amount of: EUR 125 on short-haul flights (Metropolitan France and Corsica), EUR 250 for a flight within Europe  in Economy Class, EUR 500 for a flight within Europe in Business Class, EUR 500 for an intercontinental flight in Economy Class or Premium Economy, EUR 1.500 for an intercontinental flight in Business Class and EUR 3.000 for an Air France intercontinental flight in La Première (or the equivalent in the local currency)."
                  }
                },
                {
                  "changeCondition": {
                    "allowedBeforeDeparture": false,
                    "allowedAfterDeparture": false,
                    "commercialText": {
                      "text": "Rebooking is not possible."
                    },
                    "afterDepartureDetailsText": "After departure of your first outbound flight, it’s not permitted to change your ticket.",
                    "beforeDepartureDetailsText": "Before departure of your first outbound flight, it’s not permitted to change your ticket."
                  }
                },
                {
                  "noShowCondition": {
                    "commercialText": {
                      "text": "No refund if you missed your flight"
                    },
                    "detailsText": "If you are not present in time for boarding, this ticket is not refundable and you are not eligible for a free rebooking.",
                    "allowed": false
                  }
                }
              ],
              "fareFamily": {
                "code": "LIGHTSH",
                "hierarchy": 190,
                "title": "Light !",
                "commercialDescription": "Light"
              },
              "baggageAllowance": {
                "quantity": 0,
                "type": "PIECES",
                "commercialText": {
                  "relevance": 1,
                  "text": "1 hand baggage item and 1 accessory only (12 kg total*)"
                },
                "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
              },
              "flyingBlue": {
                "earned": 160,
                "detailsText": "Flying Blue members earn 160 Miles.",
                "qualifyingPoints": 2,
                "ultimateQualifyingPoints": 0,
                "detailsTextQualPoints": "Flying Blue members earn 2 XP",
                "commercialText": {
                  "relevance": 4,
                  "text": "160 Flying Blue Award Miles"
                }
              },
              "travelClassText": "You will be travelling in N Class with fare basis NRDFR9.",
              "tripText": "Nice, Cote D'Azur Airport (NCE) to Paris, Charles De Gaulle Airport (CDG)",
              "commercialCabin": "ECONOMY",
              "price": {
                "displayPrice": 107.05,
                "totalPrice": 214.1,
                "pricePerPassengerTypes": [
                  {
                    "passengerType": "ADT",
                    "fare": 68.5,
                    "taxes": 38.55
                  }
                ],
                "flexibilityWaiver": false,
                "currency": "CAD",
                "displayType": "TAX"
              }
            },
            {
              "numberOfSeatsAvailable": 8,
              "fareBasis": {
                "code": "RRDFR9"
              },
              "segments": [
                {
                  "cabin": {
                    "class": "M"
                  },
                  "sellingClass": {
                    "code": "R"
                  },
                  "fareBasis": {
                    "code": "RRDFR9"
                  }
                }
              ],
              "conditions": [
                {
                  "minimumStayCondition": {
                    "stayDuration": {
                      "duration": 3,
                      "stayUnit": "DAY"
                    },
                    "daysOfWeekIncluded": [
                      "SUNDAY"
                    ],
                    "commercialText": {
                      "text": "A minimum stay applies"
                    },
                    "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SUNDAY."
                  }
                },
                {
                  "maximumStayCondition": {
                    "stayDuration": {
                      "duration": 6,
                      "stayUnit": "MONTH"
                    },
                    "commercialText": {
                      "text": "A maximum stay applies"
                    },
                    "detailsText": "A maximum stay of 6 month(s) applies."
                  }
                },
                {
                  "childrenDiscountCondition": {
                    "farePercentage": 80
                  }
                },
                {
                  "infantDiscountCondition": {
                    "farePercentage": 10
                  }
                },
                {
                  "cancelCondition": {
                    "allowedBeforeDeparture": false,
                    "allowedAfterDeparture": false,
                    "commercialText": {
                      "text": "Cancellation is not possible"
                    },
                    "afterDepartureDetailsText": "After the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "beforeDepartureDetailsText": "Before the departure of your first outbound flight, you will not receive a refund if you cancel your flight, except for unused airport taxes.",
                    "extraCostsText": "This fare is applicable for a ticket used in sequential order for the specified journey and on the specified dates. As outlined in the General Conditions of Carriage, any non-compliant use noticed on the day of travel will generate the obligation to pay an extra fixed fee at the airport for the amount of: EUR 125 on short-haul flights (Metropolitan France and Corsica), EUR 250 for a flight within Europe  in Economy Class, EUR 500 for a flight within Europe in Business Class, EUR 500 for an intercontinental flight in Economy Class or Premium Economy, EUR 1.500 for an intercontinental flight in Business Class and EUR 3.000 for an Air France intercontinental flight in La Première (or the equivalent in the local currency)."
                  }
                },
                {
                  "changeCondition": {
                    "allowedBeforeDeparture": false,
                    "allowedAfterDeparture": false,
                    "commercialText": {
                      "text": "Rebooking is not possible."
                    },
                    "afterDepartureDetailsText": "After departure of your first outbound flight, it’s not permitted to change your ticket.",
                    "beforeDepartureDetailsText": "Before departure of your first outbound flight, it’s not permitted to change your ticket."
                  }
                },
                {
                  "noShowCondition": {
                    "commercialText": {
                      "text": "No refund if you missed your flight"
                    },
                    "detailsText": "If you are not present in time for boarding, this ticket is not refundable and you are not eligible for a free rebooking.",
                    "allowed": false
                  }
                }
              ],
              "fareFamily": {
                "code": "LIGHTSH",
                "hierarchy": 190,
                "title": "Light !",
                "commercialDescription": "Light"
              },
              "baggageAllowance": {
                "quantity": 0,
                "type": "PIECES",
                "commercialText": {
                  "relevance": 1,
                  "text": "1 hand baggage item and 1 accessory only (12 kg total*)"
                },
                "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
              },
              "flyingBlue": {
                "earned": 156,
                "detailsText": "Flying Blue members earn 156 Miles.",
                "qualifyingPoints": 2,
                "ultimateQualifyingPoints": 0,
                "detailsTextQualPoints": "Flying Blue members earn 2 XP",
                "commercialText": {
                  "relevance": 4,
                  "text": "156 Flying Blue Award Miles"
                }
              },
              "travelClassText": "You will be travelling in R Class with fare basis RRDFR9.",
              "tripText": "Paris, Paris Orly Airport (ORY) to Nice, Cote D'Azur Airport (NCE)",
              "commercialCabin": "ECONOMY",
              "price": {
                "displayPrice": 87.05,
                "totalPrice": 174.1,
                "pricePerPassengerTypes": [
                  {
                    "passengerType": "ADT",
                    "fare": 48.5,
                    "taxes": 38.55
                  }
                ],
                "flexibilityWaiver": false,
                "currency": "CAD",
                "displayType": "TAX"
              }
            }
          ],
          "sameConditions": true,
          "flyingBlue": {
            "earned": 316,
            "detailsText": "Flying Blue members earn 316 Miles.",
            "qualifyingPoints": 4,
            "ultimateQualifyingPoints": 0,
            "detailsTextQualPoints": "Flying Blue members earn 4 XP",
            "commercialText": {
              "text": "316 Flying Blue Award Miles"
            }
          },
          "_links": {
            "availableOffers": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/available-offers?d=dZUxD4IwEIX_imEn6VUQYWtAwMQYo2ymgzEOLg6sTf-7RylwtGXtFdq-9-47tULcdOIqIwqbBazeg8j4C1zhdEX6gHsaE6SXRr3Ybi6wETPlQXRSlMRN2f5QI3mv5QkvR3llC2XVYMFjP2eQx8BjSDo4FMAKxoJQpPuSYp-afX67ijpyR5H49ru6f_3enxBYhg820JJlmE6XnHs4uoxnKL3Lysu5abtHG0Ym5CzI3zxdWm30xdJRot3O5Jj04NlMKGVmoJX7Ju6Rdo0gdeOTJj7KzbPlPP_QRVENb6JwN52h_w=={&departureDate,minimumAccuracy,displayPriceContent}",
              "templated": true
            },
            "lowestFareOffers": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/lowest-fare-offers?d=dZUxD4MgEIX_SuNuwqHW6ka0apOmaVq3hqExHbp0cCX89x6IioArh4D33n1PbLA4378xkcABA6OAajsegSvUXuE-FF9LQ7hnWbmaQT9ix3zCg-98pGVCYYZITMS-VWd8oM05U6jqFgteZlACRQw0hrSHYwmkJCQIU3tfWiaZ3ufPNGsiN8LYdzw04_s3fEL0UR_s8CfP0bMucRM4udlAsP0uY6-XtuufXRi1UJAgt4tsHcBJF4NQjpI7iTP3g-YLxoTOTtPuO3tE0hXCqmudpKUj372b-3DnS5SisKxWv2nnhB4c4081mvIP&dateInterval={dateInterval}{&displayPriceContent}",
              "templated": true
            },
            "shoppingCart": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AWhpfRLTyHy9AQTbWyEjK37VWEFuwyAQ_MueSQUkilVuVq322KrKrc4tqpQ3WPl7Z8DYYIgdqYeqObILXnaHndkMkj9CgbyoSCtxX4OEPiXO48ARK0oSTRANH-0nDCl2sftM10R-wNlq87wzdmcOcI8PQpwPS8n9zpGHmK-XfSKPPOaxGv1kfOneYJypmCcvCSxEQZu0r0irpFyNxaYxey6v3joTYDCag9trp_WT1hpl4qkbyoVhfOdqmktDL9dLL86oXgrawHovbXfq5QZffCR62we88VOylAZj1QiuHCQBCxWQhPw_DhLb_AFI3tHK7oIk3OB3IDla1nnj1kuQ6ON_BQm7DpqPZMqGkcwixlfiemFQ5VeYxu7kexhd7IrLmVmhXJ-gKTVt4QuUTKr4_ERCaurbaqZDNVINz6_KaXE6ljnR6Tx3hY9xWiGQw3soxwjc0FNRKLufN3h6wlQqEg3f0-ZANiconUX5TlseVZGBsAWRwC3ZuBrwvhx8A34oCbEzSgMCJJ0mYBrpT0nyVwKWI2uj2oW6HTE1ZzwZgrg1ZfjbDw==/shopping-cart"
            },
            "taxBreakdown": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/fZTLbptQAET_hXUsgSGAI2WBL9hgMHCB8KoqBJj3m4AvOMq_x0lVNe2i-7MYac7MG_ZPW9gTxjl5nxqKtYrrjoNW5KxCKZOM7QiHGa0cDM5zYsKXqqjt2R7I7VYe5TGmpqGHpKPXjM_ynidll8FLBi2SFLcNxfZSnatyB7Jo7UwwLS6lCXrhahTLGTLemfecqrjBWx7U29d0OhO4sUFqPbAMul2aWIslVoc90k223d36o9jIGzc1ZV3XwuV4JapUaxPvtPYNiK_AXAToz_iIF2N_WNUl9JZkpa9k2VkeD8JsN4194FhE3tfUUN0T2XmqXYammnhld1EUlu7cbAyR2F0jNx0eoZ-mwKC3KGFZW1trzi8JWMwigHuwODDXUcDnShRwB4mcRJnppIrU9qTE1yHRtiVRzZDW1GAPG4bvB90_D8cqRsVSp0XSHOCjnXjLzFTJkl8YaVQau8nd0yaTLXui4PxiySMVCAYI5zEKB59XbUm90YEcugJdl61BWwuZe7vFKY4Qka_dgsoYP6iGrMypSuY0quEgZGSKb3xOLeKufXEfrXv3tn_cv3KOgQDpz_sRXfOF5UiqA5FwM7MzOJ3wxtuPvYW3q41kR9rO5bZzaNESCP-G_GzMCD8tIx49P2MP2F_jwu7X82dH2NOPN6y4u0V8w35P7tM43voy8xPZ_gf5-YD9uhzs6cve9wfs-5vdMcDx2PsH/tax-breakdown"
            },
            "relatedProducts": {
              "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AWhpfRLTyHy9AQTbWyEjK37VWEFuwyAQ_MueSQUkilVuVq322KrKrc4tqpQ3WPl7Z8DYYIgdqYeqObILXnaHndkMkj9CgbyoSCtxX4OEPiXO48ARK0oSTRANH-0nDCl2sftM10R-wNlq87wzdmcOcI8PQpwPS8n9zpGHmK-XfSKPPOaxGv1kfOneYJypmCcvCSxEQZu0r0irpFyNxaYxey6v3joTYDCag9trp_WT1hpl4qkbyoVhfOdqmktDL9dLL86oXgrawHovbXfq5QZffCR62we88VOylAZj1QiuHCQBCxWQhPw_DhLb_AFI3tHK7oIk3OB3IDla1nnj1kuQ6ON_BQm7DpqPZMqGkcwixlfiemFQ5VeYxu7kexhd7IrLmVmhXJ-gKTVt4QuUTKr4_ERCaurbaqZDNVINz6_KaXE6ljnR6Tx3hY9xWiGQw3soxwjc0FNRKLufN3h6wlQqEg3f0-ZANiconUX5TlseVZGBsAWRwC3ZuBrwvhx8A34oCbEzSgMCJJ0mYBrpT0nyVwKWI2uj2oW6HTE1ZzwZgrg1ZfjbDw==/related-products{?device}",
              "templated": true
            }
          }
        }
      ],
      "connections": [
        {
          "duration": 95,
          "segments": [
            {
              "arrivalDateTime": "2019-12-14T16:10:00",
              "departureDateTime": "2019-12-14T14:35:00",
              "destination": {
                "name": "Charles De Gaulle Airport",
                "city": {
                  "name": "Paris",
                  "code": "PAR"
                },
                "code": "CDG"
              },
              "marketingFlight": {
                "number": "7713",
                "carrier": {
                  "name": "Air France",
                  "code": "AF"
                },
                "operatingFlight": {
                  "equipmentType": {
                    "code": "318",
                    "name": "Airbus A318",
                    "acvCode": "3S5",
                    "_links": {
                      "information": {
                        "href": "http://www.airfrance.fr/FR/fr/common/guidevoyageur/classeetconfort/plan-cabine-CC-plan-A318-131.htm",
                        "useRootPath": true
                      }
                    }
                  },
                  "carrier": {
                    "name": "Air France",
                    "code": "AF"
                  }
                }
              },
              "origin": {
                "name": "Cote D'Azur Airport",
                "city": {
                  "name": "Nice",
                  "code": "NCE"
                },
                "code": "NCE"
              },
              "highestPriority": true,
              "dateVariation": 0,
              "flightDuration": 95
            }
          ]
        },
        {
          "duration": 85,
          "segments": [
            {
              "arrivalDateTime": "2019-12-27T08:10:00",
              "departureDateTime": "2019-12-27T06:45:00",
              "destination": {
                "name": "Cote D'Azur Airport",
                "city": {
                  "name": "Nice",
                  "code": "NCE"
                },
                "code": "NCE"
              },
              "marketingFlight": {
                "number": "6200",
                "carrier": {
                  "name": "Air France",
                  "code": "AF"
                },
                "operatingFlight": {
                  "equipmentType": {
                    "code": "320",
                    "name": "Airbus A320-200",
                    "acvCode": "3S2",
                    "_links": {
                      "information": {
                        "href": "http://www.airfrance.fr/FR/fr/common/guidevoyageur/classeetconfort/plan-cabine-CC-plan-A320-178.htm",
                        "useRootPath": true
                      }
                    }
                  },
                  "carrier": {
                    "name": "Air France",
                    "code": "AF"
                  }
                }
              },
              "origin": {
                "name": "Paris Orly Airport",
                "city": {
                  "name": "Paris",
                  "code": "PAR"
                },
                "code": "ORY"
              },
              "highestPriority": true,
              "dateVariation": 0,
              "flightDuration": 85
            }
          ]
        }
      ]
    }
  ],
  "disclaimer": {
    "displayPriceText": "All amounts are in CAD. Taxes and surcharges are included. No booking fee is applicable. Prices shown may vary depending on fare availability. 
Additional baggage fees may apply ",
    "totalPriceText": "All amounts are in CAD. Taxes and surcharges are included. No booking fee is applicable. Prices shown may vary depending on fare availability. 
Additional baggage fees may apply ",
    "handBaggageText": "* This applies to flights operated by KLM or Air France. For other airlines, please check the airline's website for baggage rules"
  }
}

Docs Navigation