- Previous: GET /flightDetails
- Up: Offers API
- Next: GET /upsell-offers v1
POST /upsell-offers v1
POST /upsell-offers 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) |
POST
POST https://api.airfranceklm.com/opendata/flight-products/v1/upsell-offers
POST PARAMETERS
Level | Name | Type | Multiplicity | Description |
1 | commercialCabins | List of string | 1 | Code for requested commercialCabins Cannot be empty Can contain ECONOMY or PREMIUM or BUSINESS or FIRST or ALL Recommanded value : ALL |
1 | currency | String | 0-1 | Indicates the currency to be used for prices in response. Three letter currency code according to ISO 4217. This can be used to override the setting for the default currency of the country of the origin airport (also known as Point of Sale). |
1 | fallbackMode | String | 0-1 | Indicates if a fallback mode is activated. Can be set to ANY, FAREFAMILY, NONE |
1 | discountCode | String | 0-1 | code for IDC discount. |
1 | displayPriceContent | Enumeration | 0-1 |
Content of displayPrice in response. - ALL_PAX_ROUNDED : displayPrice is the price for all pax, rounded to superior integer, following display rules from Generic Admi Tool - ALL_PAX : displayPrice is the price for all pax, not rounded, following display rules from Generic Admi Tool |
1 | bookingFlow | String | 0-1 | Can contain LEISURE, CORPORATE, REWARD |
1 | fareOption | String | 0-1 |
Can contain CORSICA, FAMILY Option in order to set particular fares |
1 | customer | Object | 0-1 | The specification of the customer information |
2 | profileId | String | 1 | Id of the Profile stored in resource store. It is the one received from searchContext. To be used in all our services to get FB details. To use in association with the contractKey to get the fare associated to the contract. |
2 | corporateContractKey | Integer | 0-1 | Key of the contract stored in resource store. It is the one received from searchContext. To use in association with the ProfileID in order to get the fare associated to the contract. |
1 | shortest | Boolean | 0-1 | Indicates whether shortest route should be found and favoured. Otherwise lowest fare is found. When shortest=true, includeCarriers cannot be supplied. This option is valid ONLY when the "booking flow" is not set or it is set to"Leisure". |
1 | passengerCount | Object | 0-1 |
The specification of the passengers for which the offer is requested. It will soon be deprecated |
2 | ADT | Integer | 0-1 | Number of adults. 16 years and older. |
2 | CHD | Integer | 0-1 | Number of children. 2-11 years. |
2 | INF | Integer | 0-1 | Number of infants. Under 2 years. |
2 | YTH | Integer | 0-1 | Number of young. 12-18 years. |
2 | YCD | Integer | 0-1 | Number of seniors. +65 years. |
2 | C14 | Integer | 0-1 | Number of young adults. 12-15 years. Only available from UK |
1 | passengers | Object | 0-1 |
The specification of the passengers with birthdate for which the offer is requested For passengers details, it is the one to be used. |
2 | id | Integer | 1 | Contain the Id of the passenger |
2 | type | String | 1 | Can contain one of the following passenger types : ADT,CHD, INF, C14,YTH, YCD, STU. |
2 | birthDate | Object | 0-1 | Contain the birthdate of the passenger type |
2 | minAge | Integer | 0-1 | Contain the minimum age of the passenger type |
2 | maxAge | Integer | 0-1 | Contain the maximum age of the passenger type |
1 | focusedConnection | Integer | 0-1 | The index to the connection to retrieve (starting from 0) 0 for the outnound 1 for the inbound |
1 | fixedFlights | Boolean | 0-1 | True if the flights given in the request should be exactly the same in the response, only the fare can changed |
1 | requestedConnections | Array of Objects | 1-6 | A chronologically ordered list of connections for which the Upsell offers is requested. |
2 | departureDate | String | 0-1 | String representing the departure date requested for the Connection |
2 | commercialCabin | String | 0-1 | Code for requested commercialCabin ECONOMY or PREMIUM or BUSINESS or FIRST If All in commercialCabins --> 0 or 1 value if Value != All in comm…Cabins --> 0 if outbound selected --> Prefill with this value If the bound has already been selected for the current connection, then fill this parameter with the selected commercialCabin. |
2 | fareFamilyCode | String | 0-1 | The fare family of the connection. Conditional: Must not be supplied when origin & destination are supplied. Can be supplied when segments are supplied. |
2 | fareFamilyHierarchy | Integer | 0-1 | The hierarchy of the fare family of the connection Conditional: Must not be supplied when origin & destination are supplied. Must be supplied when segments are supplied |
2 | estimatedFlightTime | Integer | 0-1 | The estimated flight time of the connection in minutes. Conditional: Must not be supplied when origin & destination are supplied. Must be supplied when segments are supplied |
2 | origin | Object | 0-1 | The origin station of the connection. |
3 | city | Object | 0-1 | The city of origin. |
4 | code | String | 1 | IATA location code of the city. |
3 | airport | Object | 0-1 | The airport of origin. |
4 | code | String | 1 | IATA location code of the airport. |
2 | destination | Object | 0-1 | The destination station of the connection. |
3 | city | Object | 0-1 | The city of destination. |
4 | code | String | 1 | IATA location code of the city. |
3 | airport | Object | 0-1 | The airport of destination. |
4 | code | String | 1 | IATA location code of the airport. |
2 | ..segments | Array of Objects | 1-6 | A chronologically ordered list of segments that describe the Connection requested. |
3 | origin | Object | 0-1 | The origin airport of the connection. |
4 | code | String | 1 | IATA location code of the airport. |
3 | destination | Object | 0-1 | The destination airport of the connection. |
4 | code | String | 1 | IATA location code of the airport. |
3 | departureDateTime | DateTime | 1 | DateTime of departure of the segment flight. It is specified as local time at origin of the segment. |
3 | arrivalDateTime | DateTime | 1 | DateTime of arrival of the segment flight. It is specified as local time at destination of the segment. |
3 | marketingFlightNumber | String | 1 | The marketing flight number for the segment. Max of four digits, when less than 3 then prefix with zeroes up till 3 digits. For example: 006, 022, 1001. |
3 | marketingCarrier | Object | 1 | IATA airline code for the marketing carrier of the flight. |
3 | operatingCarrier | Object | 1 | IATA airline code for the operating carrier of the flight. |
3 | dateVariation | Integer | 1 | Date variation between the departure and the arrival of each segment. It is mandatory for inbound query. |
3 | equipmentType | String | 1 | Equipement Type code of the flight specified on the segment. |
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. |
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. |
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. |
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 | String | 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 | It 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 | Object | 1 | Commercial text for flying blue in the language as specified in ContentLanguage header. |
6 | relevance | Integer |
1 | Relevance on the flying blue for display purpose. |
6 | text | String |
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) |
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)
{ "bookingFlow": "LEISURE", "passengers": [ { "id": 1, "type": "ADT" }, { "id": 2, "type": "ADT" } ], "commercialCabins": [ "ALL" ], "focusedConnection": 0, "shortest": false, "requestedConnections": [ { "origin": { "city": { "code": "NCE" } }, "destination": { "city": { "code": "PAR" } }, "segments": [ { "departureDateTime": "2019-12-14T14:30:00", "destination": { "code": "CDG" }, "marketingCarrier": "AF", "marketingFlightNumber": "7713", "origin": { "code": "NCE" } } ] }, { "origin": { "city": { "code": "PAR" } }, "destination": { "city": { "code": "NCE" } }, "segments": [ { "departureDateTime": "2019-12-27T06:30:00", "destination": { "code": "NCE" }, "marketingCarrier": "AF", "marketingFlightNumber": "6200", "origin": { "code": "ORY" } } ] } ] }
SAMPLE POST RESPONSE (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" } }
- Previous: GET /flightDetails
- Up: Offers API
- Next: GET /upsell-offers v1
Docs Navigation
- Air France-KLM Documentation
- Open Data
- Baggage allowance API Process flow - Pre-booking (inspiration) context
- Introduction
- Data scope
- Quick peak
- How to use
- Services overview
- Header
- GET All Allowances without Loyalty
- V1- All Allowances without Loyalty- Request
- V1- All Allowances without Loyalty- Response
- GET Base Allowances
- V1- Base Allowance - Request
- V1- Base Allowance - Response
- GET Loyalty Allowances
- V1- Loyalty Allowance - Request
- V1- Loyalty Allowance - Response
- GET Paid Options with Loyalty
- V1- GET Paid Options with Loyalty - Request
- V1- GET Paid Options with Loyalty - Response
- GET Paid Options without Loyalty
- V1- GET Paid Options without Loyalty - Request
- V1- GET Paid Options without Loyalty - Response
- GET All Allowances with Loyalty
- V1- All Allowances with Loyalty- Request
- V1- All Allowances with Loyalty- Response
- Get Started
- Offers API
- GET /reference-data v1
- GET /reference-data/deals v1
- GET /search-context v1
- POST /lowest-fare-offers v1
- GET /lowest-fare-offers v1
- POST /available-offers v1
- GET /available-offers v1
- GET /flightDetails
- POST /upsell-offers v1
- GET /upsell-offers v1
- GET /priceDetails v1
- GET /tax-breakdown
- GET /ticket-conditions
- GET /ticket-conditions with Reservation ID
- GET /ticket-conditions with Trip Parameters
- POST /shopping-carts
- GET /related-products
- POST /related-products/shopping-carts
- POST /mail-my-search
- POST /flights-availability v1
- POST /best-fare-offers v1
- POST/ bestOffers/feed
- Errors Code
- POST /available-offers/all v1
- POST /best-fare-offers/all-deals v1
- Inspire API / Amenities
- Flight Status API
- Network and Schedule API
- Baggage allowance API Process flow - Pre-booking (inspiration) context
- Metasearch API
- Cargo API
- All Other APIS