POST /trip-summary

POST /TripSummary v1

The TripSummary endpoint provides the details in therms of flights, prices, ticket conditions, taxe breackdown for a selected flight product. 

HOW TO USE?

The POST method should be used to get Trip summary for the given selected flights.

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/offers/v1/trip-summary

POST PARAMETERS

 

Level Name Type Multiplicity Description
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 discountCode String 0-1 code for IDC discount.
1 displayPriceContent Enumeration 0-1

Content of displayPrice in response.

- If empty : displayPrice is the price for 1adt, not rounding, following display rules from Generic Admi Tool

Possible values: ALL_PAX_ROUNDED, ALL_PAX

- 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 1 Can contain LEISURE, CORPORATE, AWARD
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 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 C14 Integer 0-1 Number of young adults. 12-15 years. Only available from UK
2 YTH Integer 0-1 Number of young. 12-18 years.
2 YCD Integer 0-1 Number of seniors. +65 years.
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 0-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.
2 birthDate Object
0-1 Contain the birthdate of the passenger type
1 requestedConnections Array of Objects   1-6 A chronologically ordered list of connections for which the Upsell offers is requested.
2 commercialCabin String 1 Code for requested commercialCabinECONOMY or PREMIUM or BUSINESS or FIRST.
2 fareBasis String 0-1 The fare basis of the connection.
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 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 String 1 IATA airline code for the marketing carrier of the flight.
2 sellingClass String 1 Selling Class 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 0-1 The disclaimer text to be shown when display price is shown to the customer.
2 totalPriceText String 0-1 The disclaimer text to be shown when total price is shown to the customer.
2 fareMilesText String 0-1 The disclaimer text to be shown when price in Miles is shown to the customer.
1 itinerary Array of Objects  1 Itinerary matching the post request.
2 locationSpecificRemarks Array of Objects 0-n List of location specific remarks that apply to the connection.
3 remarkText String 1 Text of the remark in the language as specified in ContentLanguage header.
2 flightProduct 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 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 or YTH
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 Object 1 Commercial text for flying blue
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
4 flyingBlueAdvantages Object 0-1 Specifies the advantages for flyingblue members.
5 extraBagQuantity Integer 0-1 Number of additional baggages for flyingBlue members.
5 skyPriority Boolean 0-1 Sky Priority advantage for flying Blue members
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 rebook a ticket.
4 flexibilityWaiver Boolean 0-1 Indicates whether a flexibility waiver applies to rebook the 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 or YTH
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 taxBreakdown Object 0-1 Tax breakdown for the product
4 price Object 1  Price specification for the product.
4 currency  String  1  The currency used for prices in response.  Three letter currency code according to ISO 4217.
4 pricePerPassengerTypes  Array of Objects  1-4

 Price specification per passenger type.

5 passengerType  String  Type of the passenger. ADT, C14, CHD or INF
5 fare  Number  1  amount of the fare
5 taxes  Array of Objects  1  List of taxes that apply to the flight product for the passenger type.
6 code  String  1  Type of taxes code.
6 amount  Number  1 Amount applicable to the tax.
6 name  String  1  Name of the type of tax in the language as specified in ContentLanguage header. 
3 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.
4 id Integer 1 Identification of the promotion.
4 title String 1 Title of the promotion in the language as specified in ContentLanguage header.
3 connections Array of Objects 1--6 A chronologically ordered list of connections the available offer applies to.
4 numberOfSeatsAvailable Integer 1 The number of seats available for the lowest fare for this connection.
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 familly 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 rebook the ticket 

5 sucharges 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 or YTH
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 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 Fare basis at segment level
6 code String 1 Fare basis 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
6 relevance Integer  1 Relevance on the flying blue for display purpose.
6 text String 1 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 String 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 / WEIGHT
5 handBaggageDetailsText String 1 Text for details of hand baggage in the language as specified in ContentLanguage header.
5 commercialText Object 1 Commercial text for baggage allowance
6 text String 1 Commercial text for baggage allowance in the language as specified in ContentLanguage header.
5 detailsText String 1 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.
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 Object 1 Commercial text for change condition in the language as specified in ContentLanguage header.
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 Object 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.
6 minimumStayCondition Object 0-1 Minimum stay condition applicable.
7 detailsText String 1 Text for details of minimum stay in the language as specified in ContentLanguage header.
7 commercialText String 1 Commercial text for minimum stay in the language as specified in ContentLanguage header.
7 dayOfWeekIncluded String 0-1 Indicates that specified day is mandatory to be included in the duration
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY or SUNDAY.
7 stayDuration Object 0-1 Duration that applies to the stay condition.
8 duration Integer 1 The duration specifying the minimum/maximum stay allowed. The duration is an integer value related to the durationType specified.
8 stayUnit String 1 The duration type used for specifying the minimum/maximum stay allowed.
DAY, MONTH, MINUTE, WEEK, NIGHT, HOUR.
6 maximumStayCondition Object 0-1 Maximum stay condition applicable.
7 detailsText String 1 Text for details of maximum stay in the language as specified in ContentLanguage header.
7 commercialText String 1 Commercial text for maximum stay in the language as specified in ContentLanguage header.
7 dayOfWeekIncluded String 0-1 Indicates that specified day is mandatory to be included in the duration
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY or SUNDAY.
7 stayDuration Object 0-1 Duration that applies to the stay condition.
8 duration Integer 1 The duration specifying the minimum/maximum stay allowed. The duration is an integer value related to the durationType specified.
8 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.
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 period the advance purchase is applicable.
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.
4 travelClassText String 1 Text of the travel class
4 tripText String 1 Text of the trip
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 CODE

HTTP status

Type

500

INTERNAL_SERVER_ERROR

400

FOA/DISCOUNT_CODE_INELIGIBLE

200 OK


SAMPLE POST REQUEST (outbound query)

{
  "passengerCount": {
    "ADT": 1,
    "C14": 0,
    "CHD": 0,
    "INF": 0,
    "YTH": 0,
    "YCD": 0
  },
  "requestedConnections": [
    {
      "commercialCabin": "ECONOMY",
      "fareBasis": "GRDNL9",
      "segments": [
        {
          "marketingCarrier": "AF",
          "marketingFlightNumber": "8317",
          "sellingClass": "G",
          "origin": {
            "code": "AMS"
          },
          "destination": {
            "code": "LYS"
          },
          "departureDateTime": "2019-01-17T07:50:00"
        },
        {
          "marketingCarrier": "AF",
          "marketingFlightNumber": "7645",
          "sellingClass": "X",
          "origin": {
            "code": "LYS"
          },
          "destination": {
            "code": "CDG"
          },
          "departureDateTime": "2019-01-17T14:30:00"
        }
      ]
    },
    {
      "commercialCabin": "ECONOMY",
      "fareBasis": "NRDNL9",
      "segments": [
        {
          "marketingCarrier": "AF",
          "marketingFlightNumber": "7620",
          "sellingClass": "N",
          "origin": {
            "code": "CDG"
          },
          "destination": {
            "code": "BOD"
          },
          "departureDateTime": "2019-01-19T08:15:00"
        },
        {
          "marketingCarrier": "AF",
          "marketingFlightNumber": "8302",
          "sellingClass": "N",
          "origin": {
            "code": "BOD"
          },
          "destination": {
            "code": "AMS"
          },
          "departureDateTime": "2019-01-19T12:20:00"
        }
      ]
    }
  ]
}

 

SAMPLE POST RESPONSE 

{
  "itinerary": {
    "connections": [
      {
        "duration": 470,
        "segments": [
          {
            "arrivalDateTime": "2019-01-17T09:25:00",
            "departureDateTime": "2019-01-17T07:50:00",
            "destination": {
              "name": "Saint Exupéry",
              "city": {
                "name": "gat.LYS.cities",
                "code": "LYS"
              },
              "code": "LYS"
            },
            "marketingFlight": {
              "number": "8317",
              "carrier": {
                "name": "Air France",
                "code": "AF"
              },
              "operatingFlight": {
                "equipmentType": {
                  "code": "E75",
                  "name": "Embraer 175",
                  "acvCode": "E75"
                },
                "carrier": {
                  "name": "KLM Cityhopper",
                  "aircraftOwner": "KLM CITYHOPPER FOR KLM ROYAL DUTCH AIRLINES",
                  "code": "WA"
                },
                "singleCabin": false
              }
            },
            "origin": {
              "name": "Schiphol",
              "city": {
                "name": "gat.AMS.cities",
                "code": "AMS"
              },
              "code": "AMS"
            },
            "transferTime": 305,
            "highestPriority": true,
            "dateVariation": 0,
            "flightDuration": 95
          },
          {
            "arrivalDateTime": "2019-01-17T15:40:00",
            "departureDateTime": "2019-01-17T14:30:00",
            "destination": {
              "name": "Charles De Gaulle Airport",
              "city": {
                "name": "gat.PAR.cities",
                "code": "PAR"
              },
              "code": "CDG"
            },
            "marketingFlight": {
              "number": "7645",
              "carrier": {
                "name": "Air France",
                "code": "AF"
              },
              "operatingFlight": {
                "equipmentType": {
                  "code": "320",
                  "name": "Airbus A320-200",
                  "acvCode": "2M3",
                  "_links": {
                    "information": {
                      "href": "http://www.airfrance.fr/FR/fr/common/guidevoyageur/classeetconfort/plan-cabine-CC-plan-A320-174-smart.htm"
                    }
                  }
                },
                "carrier": {
                  "name": "Air France",
                  "code": "AF"
                },
                "singleCabin": true
              }
            },
            "origin": {
              "name": "Saint Exupéry",
              "city": {
                "name": "gat.LYS.cities",
                "code": "LYS"
              },
              "code": "LYS"
            },
            "highestPriority": false,
            "dateVariation": 0,
            "flightDuration": 70
          }
        ]
      },
      {
        "duration": 355,
        "segments": [
          {
            "arrivalDateTime": "2019-01-19T09:30:00",
            "departureDateTime": "2019-01-19T08:15:00",
            "destination": {
              "name": "Mérignac",
              "city": {
                "name": "gat.BOD.cities",
                "code": "BOD"
              },
              "code": "BOD"
            },
            "marketingFlight": {
              "number": "7620",
              "carrier": {
                "name": "Air France",
                "code": "AF"
              },
              "operatingFlight": {
                "equipmentType": {
                  "code": "321",
                  "name": "Airbus A321-100/200",
                  "acvCode": "EU2",
                  "_links": {
                    "information": {
                      "href": "//www.airfrance.co.uk/GB/en/common/guidevoyageur/classeetconfort/plan_cabine.htm"
                    }
                  }
                },
                "carrier": {
                  "name": "Air France",
                  "code": "AF"
                },
                "singleCabin": true
              }
            },
            "origin": {
              "name": "Charles De Gaulle Airport",
              "city": {
                "name": "gat.PAR.cities",
                "code": "PAR"
              },
              "code": "CDG"
            },
            "transferTime": 170,
            "highestPriority": false,
            "dateVariation": 0,
            "flightDuration": 75
          },
          {
            "arrivalDateTime": "2019-01-19T14:10:00",
            "departureDateTime": "2019-01-19T12:20:00",
            "destination": {
              "name": "Schiphol",
              "city": {
                "name": "gat.AMS.cities",
                "code": "AMS"
              },
              "code": "AMS"
            },
            "marketingFlight": {
              "number": "8302",
              "carrier": {
                "name": "Air France",
                "code": "AF"
              },
              "operatingFlight": {
                "equipmentType": {
                  "code": "E75",
                  "name": "Embraer 175",
                  "acvCode": "E75"
                },
                "carrier": {
                  "name": "KLM Cityhopper",
                  "aircraftOwner": "KLM CITYHOPPER FOR KLM ROYAL DUTCH AIRLINES",
                  "code": "WA"
                },
                "singleCabin": false
              }
            },
            "origin": {
              "name": "Mérignac",
              "city": {
                "name": "gat.BOD.cities",
                "code": "BOD"
              },
              "code": "BOD"
            },
            "highestPriority": true,
            "dateVariation": 0,
            "flightDuration": 110
          }
        ]
      }
    ],
    "flightProduct": {
      "passengers": [
        {
          "id": 1,
          "type": "ADT"
        }
      ],
      "price": {
        "displayPrice": 173.22,
        "totalPrice": 173.22,
        "pricePerPassengerTypes": [
          {
            "passengerType": "ADT",
            "fare": 98,
            "taxes": 74.22,
            "surcharges": [
              {
                "code": "BookingFee",
                "amount": 1
              }
            ]
          }
        ],
        "flexibilityWaiver": false,
        "currency": "EUR",
        "displayType": "FEE"
      },
      "taxBreakdown": {
        "price": {
          "pricePerPassengerTypes": [
            {
              "passengerType": "ADT",
              "fare": 98,
              "taxes": [
                {
                  "code": "CJ",
                  "amount": 10.88,
                  "name": "Security service charge"
                },
                {
                  "code": "RN",
                  "amount": 12.43,
                  "name": "Airport Passenger Service Charge"
                },
                {
                  "code": "FR",
                  "amount": 27.24,
                  "name": "French airport tax"
                },
                {
                  "code": "QW",
                  "amount": 16.98,
                  "name": "Airport Passenger Service Charge domestic"
                },
                {
                  "code": "IZ",
                  "amount": 1.13,
                  "name": "Solidarity tax"
                },
                {
                  "code": "QX",
                  "amount": 5.56,
                  "name": "Airport Passenger Service Charge international"
                }
              ]
            }
          ],
          "currency": "EUR"
        }
      },
      "sameConditions": true,
      "flyingBlue": {
        "earned": 394,
        "detailsText": "Flying Blue members earn 394 Miles.",
        "qualifyingPoints": 14,
        "detailsTextQualPoints": "Flying Blue members earn 14 XP Points.",
        "commercialText": {
          "text": "394 Flying Blue Award Miles"
        }
      },
      "_links": {
        "shoppingCart": {
          "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AKRuc3Ap1kaEcQGTgjNeFea1V8FuwyAM_Ref6WTSZmm4ZYvWS5dJ7SZtWvMlVf59NgTFEMKURbtijJ6fHzxzh1BEQLchYVpgvu_g7hoY3yPTvF5BgXjSRey5PVFMdB247WPw_HWFnjOFe1Bugbreod7pilKXpR9iDNfnQl8PndEpmN5zPjd-OB0GjkHzQqyCfPBp8binIoZfSgzMkoJYmRIN4gMi2k7NYDtoOca3wa4eD-Vq2Ppg9hPsnk_1fkvR06XtzrVtqHxhWA6M95OFEE1OlOVvHx0Wex0Yq9wkP46DND-u5QuKfHprs4qs_12ROeiMbntrC8y2tk4p8mh0mVWkg5ZjfOtFwmI1bF2YYlmR3bIiO1rt_qxIyotmC64usXSDpn2_ARg9DF5XoWlbWsQ_g8F5BL0naRonCV_gN2rGM5_AibPZlQlh-3Ec2SHXMjG5k_LWw0TKHwOz8nGheGLIoZhzY04JPhVUGnMox1XaPPqZAvHZ4qpGNx2mmsW4HJc9_AA=/shopping-cart"
        },
        "relatedProducts": {
          "href": "https://api.ute3.klm.com/travel/offers/v1/flight-products/AKRuc3Ap1kaEcQGTgjNeFea1V8FuwyAM_Ref6WTSZmm4ZYvWS5dJ7SZtWvMlVf59NgTFEMKURbtijJ6fHzxzh1BEQLchYVpgvu_g7hoY3yPTvF5BgXjSRey5PVFMdB247WPw_HWFnjOFe1Bugbreod7pilKXpR9iDNfnQl8PndEpmN5zPjd-OB0GjkHzQqyCfPBp8binIoZfSgzMkoJYmRIN4gMi2k7NYDtoOca3wa4eD-Vq2Ppg9hPsnk_1fkvR06XtzrVtqHxhWA6M95OFEE1OlOVvHx0Wex0Yq9wkP46DND-u5QuKfHprs4qs_12ROeiMbntrC8y2tk4p8mh0mVWkg5ZjfOtFwmI1bF2YYlmR3bIiO1rt_qxIyotmC64usXSDpn2_ARg9DF5XoWlbWsQ_g8F5BL0naRonCV_gN2rGM5_AibPZlQlh-3Ec2SHXMjG5k_LWw0TKHwOz8nGheGLIoZhzY04JPhVUGnMox1XaPPqZAvHZ4qpGNx2mmsW4HJc9_AA=/related-products{?device}",
          "templated": true
        }
      },
      "connections": [
        {
          "numberOfSeatsAvailable": 9,
          "fareBasis": {
            "code": "GRDNL9"
          },
          "segments": [
            {
              "cabin": {
                "class": "M"
              },
              "sellingClass": {
                "code": "G"
              },
              "fareBasis": {
                "code": "GRDNL9"
              }
            },
            {
              "cabin": {
                "class": "M"
              },
              "sellingClass": {
                "code": "X"
              },
              "fareBasis": {
                "code": "GRDNL9"
              }
            }
          ],
          "conditions": [
            {
              "childrenDiscountCondition": {
                "farePercentage": 100
              }
            },
            {
              "infantDiscountCondition": {
                "farePercentage": 10
              }
            },
            {
              "minimumStayCondition": {
                "stayDuration": {
                  "duration": 3,
                  "stayUnit": "DAY"
                },
                "daysOfWeekIncluded": [
                  "SATURDAY",
                  "SUNDAY"
                ],
                "commercialText": {
                  "text": "A minimum stay applies"
                },
                "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SATURDAY,SUNDAY."
              }
            },
            {
              "maximumStayCondition": {
                "stayDuration": {
                  "duration": 6,
                  "stayUnit": "MONTH"
                },
                "commercialText": {
                  "text": "A maximum stay applies"
                },
                "detailsText": "A maximum stay of 6 month(s) applies."
              }
            },
            {
              "cancelCondition": {
                "allowedBeforeDeparture": false,
                "allowedAfterDeparture": false,
                "commercialText": {
                  "text": "Cancellation is not possible"
                },
                "afterDepartureDetailsText": "No refund if you cancel after departure of your first outbound flight, except for unused airport taxes.",
                "beforeDepartureDetailsText": "No refund if you cancel before departure of your first outbound 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": "Changing your ticket after departure of your first outbound flight is permitted at a fee of EUR 70.",
                "beforeDepartureDetailsText": "Changing your ticket before departure of your first outbound flight is permitted 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": "LIGHT",
            "hierarchy": 7500,
            "title": "Light",
            "commercialDescription": "Light"
          },
          "baggageAllowance": {
            "quantity": 0,
            "type": "PIECES",
            "commercialText": {
              "relevance": 1,
              "text": "Hand baggage only"
            },
            "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
          },
          "flyingBlue": {
            "earned": 91,
            "detailsText": "Flying Blue members earn 91 Miles.",
            "qualifyingPoints": 7,
            "detailsTextQualPoints": "Flying Blue members earn 7 XP Points.",
            "commercialText": {
              "relevance": 3,
              "text": "91 Flying Blue Award Miles"
            }
          },
          "travelClassText": "You will be travelling in G/X Class with fare basis GRDNL9.",
          "tripText": "gat.AMS.cities, Schiphol (AMS) to gat.PAR.cities, Charles De Gaulle Airport (CDG)",
          "commercialCabin": "ECONOMY",
          "price": {
            "displayPrice": 59.61,
            "totalPrice": 59.61,
            "pricePerPassengerTypes": [
              {
                "passengerType": "ADT",
                "fare": 22.5,
                "taxes": 37.11
              }
            ],
            "flexibilityWaiver": false,
            "currency": "EUR",
            "displayType": "FEE"
          }
        },
        {
          "numberOfSeatsAvailable": 9,
          "fareBasis": {
            "code": "NRDNL9"
          },
          "segments": [
            {
              "cabin": {
                "class": "M"
              },
              "sellingClass": {
                "code": "N"
              },
              "fareBasis": {
                "code": "NRDNL9"
              }
            },
            {
              "cabin": {
                "class": "M"
              },
              "sellingClass": {
                "code": "N"
              },
              "fareBasis": {
                "code": "NRDNL9"
              }
            }
          ],
          "conditions": [
            {
              "childrenDiscountCondition": {
                "farePercentage": 100
              }
            },
            {
              "infantDiscountCondition": {
                "farePercentage": 10
              }
            },
            {
              "minimumStayCondition": {
                "stayDuration": {
                  "duration": 3,
                  "stayUnit": "DAY"
                },
                "daysOfWeekIncluded": [
                  "SATURDAY",
                  "SUNDAY"
                ],
                "commercialText": {
                  "text": "A minimum stay applies"
                },
                "detailsText": "Either a minimum stay of 3 day(s) applies, or the return flight commences on SATURDAY,SUNDAY."
              }
            },
            {
              "maximumStayCondition": {
                "stayDuration": {
                  "duration": 6,
                  "stayUnit": "MONTH"
                },
                "commercialText": {
                  "text": "A maximum stay applies"
                },
                "detailsText": "A maximum stay of 6 month(s) applies."
              }
            },
            {
              "cancelCondition": {
                "allowedBeforeDeparture": false,
                "allowedAfterDeparture": false,
                "commercialText": {
                  "text": "Cancellation is not possible"
                },
                "afterDepartureDetailsText": "No refund if you cancel after departure of your first outbound flight, except for unused airport taxes.",
                "beforeDepartureDetailsText": "No refund if you cancel before departure of your first outbound 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": "Changing your ticket after departure of your first outbound flight is permitted at a fee of EUR 70.",
                "beforeDepartureDetailsText": "Changing your ticket before departure of your first outbound flight is permitted 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": "LIGHT",
            "hierarchy": 7500,
            "title": "Light",
            "commercialDescription": "Light"
          },
          "baggageAllowance": {
            "quantity": 0,
            "type": "PIECES",
            "commercialText": {
              "relevance": 1,
              "text": "Hand baggage only"
            },
            "handBaggageDetailsText": "On this flight you may bring hand baggage for free."
          },
          "flyingBlue": {
            "earned": 303,
            "detailsText": "Flying Blue members earn 303 Miles.",
            "qualifyingPoints": 7,
            "detailsTextQualPoints": "Flying Blue members earn 7 XP Points.",
            "commercialText": {
              "relevance": 3,
              "text": "303 Flying Blue Award Miles"
            }
          },
          "travelClassText": "You will be travelling in N Class with fare basis NRDNL9.",
          "tripText": "gat.PAR.cities, Charles De Gaulle Airport (CDG) to gat.AMS.cities, Schiphol (AMS)",
          "commercialCabin": "ECONOMY",
          "price": {
            "displayPrice": 113.61,
            "totalPrice": 113.61,
            "pricePerPassengerTypes": [
              {
                "passengerType": "ADT",
                "fare": 75.5,
                "taxes": 37.11,
                "surcharges": [
                  {
                    "code": "BookingFee",
                    "amount": 1
                  }
                ]
              }
            ],
            "flexibilityWaiver": false,
            "currency": "EUR",
            "displayType": "FEE"
          }
        }
      ]
    }
  },
  "disclaimer": {
    "displayPriceText": "All amounts are in EUR. Taxes, surcharges and booking fee are included. Prices shown may vary depending on fare availability. You will see the final amount when selecting your payment method.",
    "totalPriceText": "All amounts are in EUR. Taxes, surcharges and booking fee are included. Prices shown may vary depending on fare availability. You will see the final amount when selecting your payment method."
  }
}

Docs Navigation