{ "Flight_Data": [ { "tracking_id": "2311765923041531174L13I", "flight_key": "F1SE00020-0", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "supplier_title": "8LZK", "color_code": "#ffffff", "supplier_code": "sabre", "supplier_uid": "F1SE00020", "supplier_partner_code": "sabre-1-00020", "flight_group": [ { "group": 1, "flight_key": "F1SE00020-0", "get_branded_fare": "no", "no_of_stops_title": "Direct Flight", "no_of_stops": 0, "flight_time": "PT2H55M", "transit_time": null, "routes": [ { "air_segment_key": "0-0", "origin": "CPH", "departure_time": "2025-12-29T20:25:00", "origin_terminal": "2", "origin_airport": { "name": "Copenhagen Airport", "city": "Copenhagen", "country": "Denmark", "timezone": "Europe\/Copenhagen" }, "destination": "BCN", "arrival_time": "2025-12-29T23:20:00", "destination_terminal": "1", "destination_airport": { "name": "Barcelona-El Prat Airport", "city": "Barcelona", "country": "Spain", "timezone": "Europe\/Madrid" }, "flight_date": "2025-12-29", "flight_time": "PT2H55M", "distance": 1100, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "32A", "picture": "32A.png" }, "operating": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1873 }, "marketing": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1873 }, "ghostSegment": [], "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": 25, "unit": "kg", "title": "25 kg", "short_info": null, "details_info": null } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": "pieces", "title": "2 pieces" } } }, "booking_class": { "cabin_class": "OPTIMA", "cabin_code": "Y", "booking_code": "L", "meal_code": "G", "seat_available": 4, "fareBasisCode": "LROPLVY", "matchedAccountCode": null, "negotiatedFare": null, "privateFare": null, "brandName": "OPTIMA", "brand_code": "OPTIMA", "ptc_type": null, "Pax_FareBasis": { "FareBasis": [ "LROPLVY" ] } } } ] }, { "group": 1, "flight_key": "F1SE00020-0", "get_branded_fare": "no", "no_of_stops_title": "Direct Flight", "no_of_stops": 0, "flight_time": "PT3H00M", "transit_time": null, "routes": [ { "air_segment_key": "0-0", "origin": "BCN", "departure_time": "2026-01-03T17:10:00", "origin_terminal": "1", "origin_airport": { "name": "Barcelona-El Prat Airport", "city": "Barcelona", "country": "Spain", "timezone": "Europe\/Madrid" }, "destination": "CPH", "arrival_time": "2026-01-03T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Copenhagen Airport", "city": "Copenhagen", "country": "Denmark", "timezone": "Europe\/Copenhagen" }, "flight_date": "2026-01-03", "flight_time": "PT3H00M", "distance": 1100, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "321", "name": "321", "picture": "321.png" }, "operating": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1870 }, "marketing": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1870 }, "ghostSegment": [], "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": 25, "unit": "kg", "title": "25 kg", "short_info": null, "details_info": null } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": "pieces", "title": "2 pieces" } } }, "booking_class": { "cabin_class": "OPTIMA", "cabin_code": "Y", "booking_code": "K", "meal_code": "G", "seat_available": 4, "fareBasisCode": "KROPLVY", "matchedAccountCode": null, "negotiatedFare": null, "privateFare": null, "brandName": "OPTIMA", "brand_code": "OPTIMA", "ptc_type": null, "Pax_FareBasis": { "FareBasis": [ "KROPLVY" ] } } } ] } ], "price": { "currency": "SEK", "total": 6045, "gross_total": 5545, "base_fare": 5465, "tax": 580, "sell": { "currency": "SEK", "total": 6045, "base_fare": 5465, "tax": 580 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6NjA0NSwiYmFzZV9mYXJlIjo1NDY1LCJ0YXgiOjU4MH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiU0VLIiwidG90YWwiOjU1NDUsImJhc2VfZmFyZSI6NDk2NSwidGF4Ijo1ODAsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6NTU0NSwiYmFzZV9mYXJlIjo0OTY1LCJ0YXgiOjU4MH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "SEK", "total": 6045, "base_fare": 5465, "tax": 580, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "4965.00", "tax": "580.00", "discount": 0, "ait": "0.00", "service_charge": 500 }, "partner": { "currency": "SEK", "total": 6045, "base_fare": 5465, "tax": 580, "gross": { "base_fare": "4965.00", "tax": "580.00", "discount": "0.00", "ait": "0.00", "service_charge": 500 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "580.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6IjYwNDUuMDAiLCJiYXNlX2ZhcmUiOiI1NDY1LjAwIiwidGF4IjoiNTgwLjAwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNDk2NS4wMCIsInRheCI6IjU4MC4wMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjUwMC4wMCJ9LCJjb25maWciOnsibWFya3VwX3R5cGUiOm51bGwsIm1hcmt1cF90aXRsZSI6bnVsbCwicmV2ZW51ZSI6IjUwMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiI1MDAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiNTAwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IlNFSyIsInRvdGFsIjoiNTU0NS4wMCIsImJhc2VfZmFyZSI6IjQ5NjUuMDAiLCJ0YXgiOiI1ODAuMDAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI0OTY1LjAwIiwidGF4IjoiNTgwLjAwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IlNFSyIsInRvdGFsIjoiNTU0NS4wMCIsImJhc2VfZmFyZSI6IjQ5NjUuMDAiLCJ0YXgiOiI1ODAuMDAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6NTU0NSwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiI1ODAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbeyJjb2RlIjoiREsiLCJjdXJyZW5jeSI6IlNFSyIsImFtb3VudCI6NDQsInRheEluZm8iOiJQQVNTRU5HRVIgVEFYIn0seyJjb2RlIjoiWk8zIiwiY3VycmVuY3kiOiJTRUsiLCJhbW91bnQiOjM0NCwidGF4SW5mbyI6IlBBU1NFTkdFUiBTRVJWSUNFIENIQVJHRSJ9LHsiY29kZSI6IkpEMyIsImN1cnJlbmN5IjoiU0VLIiwiYW1vdW50IjoxNDQsInRheEluZm8iOiJERVBBUlRVUkUgQ0hBUkdFIn0seyJjb2RlIjoiT0ciLCJjdXJyZW5jeSI6IlNFSyIsImFtb3VudCI6NywidGF4SW5mbyI6IkFWSUFUSU9OIFNBRkVUWSBBTkQgU0VDVVJJVFkgRkVFIn0seyJjb2RlIjoiUVYzIiwiY3VycmVuY3kiOiJTRUsiLCJhbW91bnQiOjQxLCJ0YXhJbmZvIjoiU0VDVVJJVFkgVEFYIn1dfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "promo_title": "OPTIMA", "promo_rules": null, "brandCode": "OPTIMA#ER0", "brandName": "OPTIMA", "penalty_info": { "partial_payment_available": "no", "reason": "partial payment offer expired", "data": [ { "pax_type": "ADT", "pax_count": 1, "min_cancel_charge": 0, "data": [ { "type": "cancel", "canCancel": false, "forSegment": null, "applied": "prior_to_departure", "amount": 5545, "currency": "SEK", "fmg": { "amount": 5545, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 5545 }, "supplier": { "amount": 5545, "currency": "SEK" } }, { "type": "cancel", "canCancel": false, "forSegment": null, "applied": "after_departure", "amount": 5545, "currency": "SEK", "fmg": { "amount": 5545, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 5545 }, "supplier": { "amount": 5545, "currency": "SEK" } }, { "type": "change", "canChanges": true, "forSegment": null, "applied": "prior_to_departure", "amount": 1089, "currency": "SEK", "fmg": { "amount": 1089, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 1089 }, "supplier": { "amount": 1089, "currency": "SEK" } }, { "type": "change", "canChanges": true, "forSegment": null, "applied": "after_departure", "amount": 1089, "currency": "SEK", "fmg": { "amount": 1089, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 1089 }, "supplier": { "amount": 1089, "currency": "SEK" } } ] } ] }, "get_pax_ptc_data": { "ADT": "ADT" }, "fare_rules": { "refundable": "non-refundable", "change_before_departure": "not-available" }, "calendar_key": "2025-12-29-2026-01-03", "calendar_flight_date": "2025-12-29", "calendar_arrival_date": "2026-01-03", "calendar_carrier": "VY", "calendar_total_currency": "SEK", "calendar_total_price": 6045, "calendar_total_sell": 6045, "calendar_supplier_currency": null, "calendar_supplier_amount": null, "calendar_fmg_amount": null, "total_price": 6045, "filter": { "id": "F1SE00020-0", "price": 6045, "gross_total": 5545, "journey_duration": "PT3H0M", "journey_duration_seconds": 10800, "layover_duration": "PT0H0M", "layover_duration_seconds": 0, "carrier_operating": "VY", "carrier_marketing": "VY", "aircraft": "32A", "aircraft_name": "32A", "cabin_class": "OPTIMA", "connecting_airport": [], "total_segment_count": 2, "no_of_stops": 0, "departure_timing_slot": "evening", "departure_departure_time": "2025-12-29T20:25:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-01-03T20:10:00", "refund": "non-refundable", "baggage_value": "kg", "baggage_unit": "25", "baggage_title": "25 kg" }, "filter_unique_filter_code": "cph202512292025bcn2025122923201873adtbcn202601031710cph2026010320101870adt", "destination_reach_time": "PT", "destination_reach_timestamp": null }, { "tracking_id": "2311765923041531174L13I", "flight_key": "F1SE00020-1", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "supplier_title": "8LZK", "color_code": "#ffffff", "supplier_code": "sabre", "supplier_uid": "F1SE00020", "supplier_partner_code": "sabre-1-00020", "flight_group": [ { "group": 1, "flight_key": "F1SE00020-1", "get_branded_fare": "no", "no_of_stops_title": "Direct Flight", "no_of_stops": 0, "flight_time": "PT2H55M", "transit_time": null, "routes": [ { "air_segment_key": "0-1", "origin": "CPH", "departure_time": "2025-12-29T20:25:00", "origin_terminal": "2", "origin_airport": { "name": "Copenhagen Airport", "city": "Copenhagen", "country": "Denmark", "timezone": "Europe\/Copenhagen" }, "destination": "BCN", "arrival_time": "2025-12-29T23:20:00", "destination_terminal": "1", "destination_airport": { "name": "Barcelona-El Prat Airport", "city": "Barcelona", "country": "Spain", "timezone": "Europe\/Madrid" }, "flight_date": "2025-12-29", "flight_time": "PT2H55M", "distance": 1100, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "32A", "picture": "32A.png" }, "operating": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1873 }, "marketing": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1873 }, "ghostSegment": [], "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": 25, "unit": "kg", "title": "25 kg", "short_info": null, "details_info": null } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": "pieces", "title": "2 pieces" } } }, "booking_class": { "cabin_class": "TIMEFLEX", "cabin_code": "Y", "booking_code": "Y", "meal_code": "G", "seat_available": 4, "fareBasisCode": "YRFLX", "matchedAccountCode": null, "negotiatedFare": null, "privateFare": null, "brandName": "TIMEFLEX", "brand_code": "TIMEFLEX", "ptc_type": null, "Pax_FareBasis": { "FareBasis": [ "YRFLX" ] } } } ] }, { "group": 1, "flight_key": "F1SE00020-1", "get_branded_fare": "no", "no_of_stops_title": "Direct Flight", "no_of_stops": 0, "flight_time": "PT3H00M", "transit_time": null, "routes": [ { "air_segment_key": "0-1", "origin": "BCN", "departure_time": "2026-01-03T17:10:00", "origin_terminal": "1", "origin_airport": { "name": "Barcelona-El Prat Airport", "city": "Barcelona", "country": "Spain", "timezone": "Europe\/Madrid" }, "destination": "CPH", "arrival_time": "2026-01-03T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Copenhagen Airport", "city": "Copenhagen", "country": "Denmark", "timezone": "Europe\/Copenhagen" }, "flight_date": "2026-01-03", "flight_time": "PT3H00M", "distance": 1100, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "321", "name": "321", "picture": "321.png" }, "operating": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1870 }, "marketing": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1870 }, "ghostSegment": [], "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": 25, "unit": "kg", "title": "25 kg", "short_info": null, "details_info": null } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": "pieces", "title": "2 pieces" } } }, "booking_class": { "cabin_class": "TIMEFLEX", "cabin_code": "Y", "booking_code": "Y", "meal_code": "G", "seat_available": 4, "fareBasisCode": "YRFLX", "matchedAccountCode": null, "negotiatedFare": null, "privateFare": null, "brandName": "TIMEFLEX", "brand_code": "TIMEFLEX", "ptc_type": null, "Pax_FareBasis": { "FareBasis": [ "YRFLX" ] } } } ] } ], "price": { "currency": "SEK", "total": 16246, "gross_total": 15746, "base_fare": 15666, "tax": 580, "sell": { "currency": "SEK", "total": 16246, "base_fare": 15666, "tax": 580 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6MTYyNDYsImJhc2VfZmFyZSI6MTU2NjYsInRheCI6NTgwfSwic3VwcGxpZXIiOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6MTU3NDYsImJhc2VfZmFyZSI6MTUxNjYsInRheCI6NTgwLCJjb21pc3Npb25fdHlwZSI6ImdlbmVyYWwiLCJjb21pc3Npb25fdmFsdWUiOjB9LCJncm9zc19mYXJlIjp7ImN1cnJlbmN5IjoiU0VLIiwidG90YWwiOjE1NzQ2LCJiYXNlX2ZhcmUiOjE1MTY2LCJ0YXgiOjU4MH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "SEK", "total": 16246, "base_fare": 15666, "tax": 580, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "15166.00", "tax": "580.00", "discount": 0, "ait": "0.00", "service_charge": 500 }, "partner": { "currency": "SEK", "total": 16246, "base_fare": 15666, "tax": 580, "gross": { "base_fare": "15166.00", "tax": "580.00", "discount": "0.00", "ait": "0.00", "service_charge": 500 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "580.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6IjE2MjQ2LjAwIiwiYmFzZV9mYXJlIjoiMTU2NjYuMDAiLCJ0YXgiOiI1ODAuMDAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiIxNTE2Ni4wMCIsInRheCI6IjU4MC4wMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjUwMC4wMCJ9LCJjb25maWciOnsibWFya3VwX3R5cGUiOm51bGwsIm1hcmt1cF90aXRsZSI6bnVsbCwicmV2ZW51ZSI6IjUwMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiI1MDAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiNTAwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IlNFSyIsInRvdGFsIjoiMTU3NDYuMDAiLCJiYXNlX2ZhcmUiOiIxNTE2Ni4wMCIsInRheCI6IjU4MC4wMCIsImdyb3NzIjp7ImJhc2VfZmFyZSI6IjE1MTY2LjAwIiwidGF4IjoiNTgwLjAwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IlNFSyIsInRvdGFsIjoiMTU3NDYuMDAiLCJiYXNlX2ZhcmUiOiIxNTE2Ni4wMCIsInRheCI6IjU4MC4wMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjAuMDAiLCJwYXlhYmxlIjoxNTc0NiwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiI1ODAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbeyJjb2RlIjoiREsiLCJjdXJyZW5jeSI6IlNFSyIsImFtb3VudCI6NDQsInRheEluZm8iOiJQQVNTRU5HRVIgVEFYIn0seyJjb2RlIjoiWk8zIiwiY3VycmVuY3kiOiJTRUsiLCJhbW91bnQiOjM0NCwidGF4SW5mbyI6IlBBU1NFTkdFUiBTRVJWSUNFIENIQVJHRSJ9LHsiY29kZSI6IkpEMyIsImN1cnJlbmN5IjoiU0VLIiwiYW1vdW50IjoxNDQsInRheEluZm8iOiJERVBBUlRVUkUgQ0hBUkdFIn0seyJjb2RlIjoiT0ciLCJjdXJyZW5jeSI6IlNFSyIsImFtb3VudCI6NywidGF4SW5mbyI6IkFWSUFUSU9OIFNBRkVUWSBBTkQgU0VDVVJJVFkgRkVFIn0seyJjb2RlIjoiUVYzIiwiY3VycmVuY3kiOiJTRUsiLCJhbW91bnQiOjQxLCJ0YXhJbmZvIjoiU0VDVVJJVFkgVEFYIn1dfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "promo_title": "TIMEFLEX", "promo_rules": null, "brandCode": "TIMEFLEX#ER1", "brandName": "TIMEFLEX", "penalty_info": { "partial_payment_available": "no", "reason": "partial payment offer expired", "data": [ { "pax_type": "ADT", "pax_count": 1, "min_cancel_charge": 0, "data": [ { "type": "cancel", "canCancel": false, "forSegment": null, "applied": "prior_to_departure", "amount": 15746, "currency": "SEK", "fmg": { "amount": 15746, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 15746 }, "supplier": { "amount": 15746, "currency": "SEK" } }, { "type": "cancel", "canCancel": false, "forSegment": null, "applied": "after_departure", "amount": 15746, "currency": "SEK", "fmg": { "amount": 15746, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 15746 }, "supplier": { "amount": 15746, "currency": "SEK" } }, { "type": "change", "canChanges": true, "forSegment": null, "applied": "prior_to_departure", "amount": 0, "currency": "SEK", "fmg": { "amount": 0, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 0 }, "supplier": { "amount": 0, "currency": "SEK" } }, { "type": "change", "canChanges": true, "forSegment": null, "applied": "after_departure", "amount": 0, "currency": "SEK", "fmg": { "amount": 0, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 0 }, "supplier": { "amount": 0, "currency": "SEK" } } ] } ] }, "get_pax_ptc_data": { "ADT": "ADT" }, "fare_rules": { "refundable": "partially-refundable", "change_before_departure": "not-available" }, "calendar_key": "2025-12-29-2026-01-03", "calendar_flight_date": "2025-12-29", "calendar_arrival_date": "2026-01-03", "calendar_carrier": "VY", "calendar_total_currency": "SEK", "calendar_total_price": 16246, "calendar_total_sell": 16246, "calendar_supplier_currency": null, "calendar_supplier_amount": null, "calendar_fmg_amount": null, "total_price": 16246, "filter": { "id": "F1SE00020-1", "price": 16246, "gross_total": 15746, "journey_duration": "PT3H0M", "journey_duration_seconds": 10800, "layover_duration": "PT0H0M", "layover_duration_seconds": 0, "carrier_operating": "VY", "carrier_marketing": "VY", "aircraft": "32A", "aircraft_name": "32A", "cabin_class": "TIMEFLEX", "connecting_airport": [], "total_segment_count": 2, "no_of_stops": 0, "departure_timing_slot": "evening", "departure_departure_time": "2025-12-29T20:25:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-01-03T20:10:00", "refund": "partially-refundable", "baggage_value": "kg", "baggage_unit": "25", "baggage_title": "25 kg" }, "filter_unique_filter_code": "cph202512292025bcn2025122923201873adtbcn202601031710cph2026010320101870adt", "destination_reach_time": "PT", "destination_reach_timestamp": null }, { "tracking_id": "2311765923041531174L13I", "flight_key": "F1SE00020-2", "journey_type": "RoundTrip", "result_type": "general", "get_branded_fare": "no", "hold_possible": "yes", "supplier_title": "8LZK", "color_code": "#ffffff", "supplier_code": "sabre", "supplier_uid": "F1SE00020", "supplier_partner_code": "sabre-1-00020", "flight_group": [ { "group": 1, "flight_key": "F1SE00020-2", "get_branded_fare": "no", "no_of_stops_title": "Direct Flight", "no_of_stops": 0, "flight_time": "PT2H55M", "transit_time": null, "routes": [ { "air_segment_key": "0-2", "origin": "CPH", "departure_time": "2025-12-29T20:25:00", "origin_terminal": "2", "origin_airport": { "name": "Copenhagen Airport", "city": "Copenhagen", "country": "Denmark", "timezone": "Europe\/Copenhagen" }, "destination": "BCN", "arrival_time": "2025-12-29T23:20:00", "destination_terminal": "1", "destination_airport": { "name": "Barcelona-El Prat Airport", "city": "Barcelona", "country": "Spain", "timezone": "Europe\/Madrid" }, "flight_date": "2025-12-29", "flight_time": "PT2H55M", "distance": 1100, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "32A", "name": "32A", "picture": "32A.png" }, "operating": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1873 }, "marketing": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1873 }, "ghostSegment": [], "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": 25, "unit": "kg", "title": "25 kg", "short_info": null, "details_info": null } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": "pieces", "title": "2 pieces" } } }, "booking_class": { "cabin_class": "OPTIMA FLEX", "cabin_code": "Y", "booking_code": "L", "meal_code": "G", "seat_available": 4, "fareBasisCode": "LROFLVY", "matchedAccountCode": null, "negotiatedFare": true, "privateFare": true, "brandName": "OPTIMA FLEX", "brand_code": "OPTIMAFLEX", "ptc_type": null, "Pax_FareBasis": { "FareBasis": [ "LROFLVY" ] } } } ] }, { "group": 1, "flight_key": "F1SE00020-2", "get_branded_fare": "no", "no_of_stops_title": "Direct Flight", "no_of_stops": 0, "flight_time": "PT3H00M", "transit_time": null, "routes": [ { "air_segment_key": "0-2", "origin": "BCN", "departure_time": "2026-01-03T17:10:00", "origin_terminal": "1", "origin_airport": { "name": "Barcelona-El Prat Airport", "city": "Barcelona", "country": "Spain", "timezone": "Europe\/Madrid" }, "destination": "CPH", "arrival_time": "2026-01-03T20:10:00", "destination_terminal": "2", "destination_airport": { "name": "Copenhagen Airport", "city": "Copenhagen", "country": "Denmark", "timezone": "Europe\/Copenhagen" }, "flight_date": "2026-01-03", "flight_time": "PT3H00M", "distance": 1100, "lay_over": "not-applicable", "lay_over_date": "not-applicable", "aircraft": { "code": "321", "name": "321", "picture": "321.png" }, "operating": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1870 }, "marketing": { "carrier": "VY", "carrier_name": "Vueling Airlines", "carrier_logo": "VY.png", "flight_number": 1870 }, "ghostSegment": [], "baggages": { "checked": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "checked", "pieceCount": null, "weight": 25, "unit": "kg", "title": "25 kg", "short_info": null, "details_info": null } }, "carry_on": { "ADT": { "ptc_title": "Adult", "passenger_type": "ADT", "baggage_type": "carry_on", "pieceCount": 2, "weight": null, "unit": "pieces", "title": "2 pieces" } } }, "booking_class": { "cabin_class": "OPTIMA FLEX", "cabin_code": "Y", "booking_code": "K", "meal_code": "G", "seat_available": 4, "fareBasisCode": "KROFLVY", "matchedAccountCode": null, "negotiatedFare": true, "privateFare": true, "brandName": "OPTIMA FLEX", "brand_code": "OPTIMAFLEX", "ptc_type": null, "Pax_FareBasis": { "FareBasis": [ "KROFLVY" ] } } } ] } ], "price": { "currency": "SEK", "total": 6394, "gross_total": 5894, "base_fare": 5814, "tax": 580, "sell": { "currency": "SEK", "total": 6394, "base_fare": 5814, "tax": 580 }, "price_hash": "eyJmbWciOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6NjM5NCwiYmFzZV9mYXJlIjo1ODE0LCJ0YXgiOjU4MH0sInN1cHBsaWVyIjp7ImN1cnJlbmN5IjoiU0VLIiwidG90YWwiOjU4OTQsImJhc2VfZmFyZSI6NTMxNCwidGF4Ijo1ODAsImNvbWlzc2lvbl90eXBlIjoiZ2VuZXJhbCIsImNvbWlzc2lvbl92YWx1ZSI6MH0sImdyb3NzX2ZhcmUiOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6NTg5NCwiYmFzZV9mYXJlIjo1MzE0LCJ0YXgiOjU4MH19", "price_breakdown": [ { "passenger_id": "1", "supplier_pax_id": "1", "passenger_type": "ADT", "primary_ptc": "ADT", "ptc_title": "Adult", "passenger_total": 1, "pax_calculate_type": "yes", "comission_type": "", "comission_value": "", "currency": "SEK", "total": 6394, "base_fare": 5814, "tax": 580, "ticket_issue_charge": 0, "total_ticket_issue_charge": 0, "gross": { "base_fare": "5314.00", "tax": "580.00", "discount": 0, "ait": "0.00", "service_charge": 500 }, "partner": { "currency": "SEK", "total": 6394, "base_fare": 5814, "tax": 580, "gross": { "base_fare": "5314.00", "tax": "580.00", "discount": "0.00", "ait": "0.00", "service_charge": 500 }, "taxBreakdown": { "BD": { "title": "BD -Embarkation Fee (Domestic\/International)", "amount": "0.00" }, "UT": { "title": "UT - Foreign Air Travel Tax (FATT)", "amount": "0.00" }, "E5": { "title": "E5 - Value Added Tax on Embarkation Fees", "amount": "0.00" }, "YQ": { "title": "YQ \u2013 Carrier-Imposed Surcharge\/Fuel Surcharge", "amount": "0.00" }, "YR": { "title": "YR \u2013 Another Carrier-Imposed Surcharge", "amount": "0.00" }, "Other": { "title": "Others taxes", "amount": "580.00" } } }, "priceHash": "eyJmbWciOnsiY3VycmVuY3kiOiJTRUsiLCJ0b3RhbCI6IjYzOTQuMDAiLCJiYXNlX2ZhcmUiOiI1ODE0LjAwIiwidGF4IjoiNTgwLjAwIiwiZ3Jvc3MiOnsiYmFzZV9mYXJlIjoiNTMxNC4wMCIsInRheCI6IjU4MC4wMCIsImRpc2NvdW50IjoiMC4wMCIsImFpdCI6IjAuMDAiLCJzZXJ2aWNlX2NoYXJnZSI6IjUwMC4wMCJ9LCJjb25maWciOnsibWFya3VwX3R5cGUiOm51bGwsIm1hcmt1cF90aXRsZSI6bnVsbCwicmV2ZW51ZSI6IjUwMC4wMCIsInRpY2tldF9pc3N1ZV9jaGFyZ2UiOiI1MDAuMDAiLCJ0b3RhbF90aWNrZXRfaXNzdWVfY2hhcmdlIjoiNTAwLjAwIiwiY3VycmVuY3lFeGNoYW5nZVJhdGUiOiIxLjAwIiwiRk1HX092ZXJ3cml0ZVJ1bGVzIjpbXX19LCJzdXBwbGllciI6eyJjdXJyZW5jeSI6IlNFSyIsInRvdGFsIjoiNTg5NC4wMCIsImJhc2VfZmFyZSI6IjUzMTQuMDAiLCJ0YXgiOiI1ODAuMDAiLCJncm9zcyI6eyJiYXNlX2ZhcmUiOiI1MzE0LjAwIiwidGF4IjoiNTgwLjAwIiwiZGlzY291bnQiOiIwLjAwIiwiYWl0IjoiMC4wMCIsInNlcnZpY2VfY2hhcmdlIjowLCJwZXJfc2VnbWVudF9kaXNjb3VudCI6MCwic2VnbWVudF9kaXNjb3VudCI6IjAuMDAiLCJzdXBwbGllcl9zZWdtZW50X2ZlZXNDYWxjdWxhdGUiOm51bGwsInNlZ21lbnRfZGlzY291bnRfYWNjb3VudFB1cnBvc2UiOm51bGx9fSwiZ3Jvc3NfZmFyZSI6eyJjdXJyZW5jeSI6IlNFSyIsInRvdGFsIjoiNTg5NC4wMCIsImJhc2VfZmFyZSI6IjUzMTQuMDAiLCJ0YXgiOiI1ODAuMDAiLCJkaXNjb3VudCI6IjAuMDAiLCJhaXQiOiIwLjAwIiwic2VydmljZV9jaGFyZ2UiOiIwLjAwIiwicGF5YWJsZSI6NTg5NCwidGF4QnJlYWtkb3duIjp7IkJEIjp7ImFtb3VudCI6IjAuMDAifSwiVVQiOnsiYW1vdW50IjoiMC4wMCJ9LCJFNSI6eyJhbW91bnQiOiIwLjAwIn0sIllRIjp7ImFtb3VudCI6IjAuMDAifSwiWVIiOnsiYW1vdW50IjoiMC4wMCJ9LCJPdGhlciI6eyJhbW91bnQiOiI1ODAuMDAifSwic3VwcGxpZXJUYXhEYXRhIjpbeyJjb2RlIjoiREsiLCJjdXJyZW5jeSI6IlNFSyIsImFtb3VudCI6NDQsInRheEluZm8iOiJQQVNTRU5HRVIgVEFYIn0seyJjb2RlIjoiWk8zIiwiY3VycmVuY3kiOiJTRUsiLCJhbW91bnQiOjM0NCwidGF4SW5mbyI6IlBBU1NFTkdFUiBTRVJWSUNFIENIQVJHRSJ9LHsiY29kZSI6IkpEMyIsImN1cnJlbmN5IjoiU0VLIiwiYW1vdW50IjoxNDQsInRheEluZm8iOiJERVBBUlRVUkUgQ0hBUkdFIn0seyJjb2RlIjoiT0ciLCJjdXJyZW5jeSI6IlNFSyIsImFtb3VudCI6NywidGF4SW5mbyI6IkFWSUFUSU9OIFNBRkVUWSBBTkQgU0VDVVJJVFkgRkVFIn0seyJjb2RlIjoiUVYzIiwiY3VycmVuY3kiOiJTRUsiLCJhbW91bnQiOjQxLCJ0YXhJbmZvIjoiU0VDVVJJVFkgVEFYIn1dfX0sImRpc2NvdW50X2NvbWlzc2lvbl90aXRsZSI6bnVsbCwiZGlzY291bnRfY29taXNzaW9uX3JhdGlvIjowLCJkeW5hbWljX21hcmt1cF90eXBlIjpudWxsLCJkeW5hbWljX21hcmt1cF90aXRsZSI6bnVsbCwiZHluYW1pY19tYXJrdXBfcmF0aW8iOm51bGwsImFwcGxpY2FibGVfY29taXNzaW9uIjpudWxsLCJhcHBsaWNhYmxlX2R5bmFtaWNfbWFya3VwIjpudWxsfQ==" } ] }, "promo_title": "Nego-Private Fare", "promo_rules": "Private Fare", "brandCode": "OPTIMAFLEX#ER2", "brandName": "OPTIMA FLEX", "penalty_info": { "partial_payment_available": "no", "reason": "partial payment offer expired", "data": [ { "pax_type": "ADT", "pax_count": 1, "min_cancel_charge": 0, "data": [ { "type": "cancel", "canCancel": false, "forSegment": null, "applied": "prior_to_departure", "amount": 5894, "currency": "SEK", "fmg": { "amount": 5894, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 5894 }, "supplier": { "amount": 5894, "currency": "SEK" } }, { "type": "cancel", "canCancel": false, "forSegment": null, "applied": "after_departure", "amount": 5894, "currency": "SEK", "fmg": { "amount": 5894, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 5894 }, "supplier": { "amount": 5894, "currency": "SEK" } }, { "type": "change", "canChanges": true, "forSegment": null, "applied": "prior_to_departure", "amount": 1089, "currency": "SEK", "fmg": { "amount": 1089, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 1089 }, "supplier": { "amount": 1089, "currency": "SEK" } }, { "type": "change", "canChanges": true, "forSegment": null, "applied": "after_departure", "amount": 1089, "currency": "SEK", "fmg": { "amount": 1089, "currency": "SEK", "penalty_markup": 0, "penalty_exchange_rate": 1089 }, "supplier": { "amount": 1089, "currency": "SEK" } } ] } ] }, "get_pax_ptc_data": { "ADT": "ADT" }, "fare_rules": { "refundable": "non-refundable", "change_before_departure": "not-available" }, "calendar_key": "2025-12-29-2026-01-03", "calendar_flight_date": "2025-12-29", "calendar_arrival_date": "2026-01-03", "calendar_carrier": "VY", "calendar_total_currency": "SEK", "calendar_total_price": 6394, "calendar_total_sell": 6394, "calendar_supplier_currency": null, "calendar_supplier_amount": null, "calendar_fmg_amount": null, "total_price": 6394, "filter": { "id": "F1SE00020-2", "price": 6394, "gross_total": 5894, "journey_duration": "PT3H0M", "journey_duration_seconds": 10800, "layover_duration": "PT0H0M", "layover_duration_seconds": 0, "carrier_operating": "VY", "carrier_marketing": "VY", "aircraft": "32A", "aircraft_name": "32A", "cabin_class": "OPTIMA FLEX", "connecting_airport": [], "total_segment_count": 2, "no_of_stops": 0, "departure_timing_slot": "evening", "departure_departure_time": "2025-12-29T20:25:00", "arrival_timing_slot": "evening", "arrival_departure_time": "2026-01-03T20:10:00", "refund": "non-refundable", "baggage_value": "kg", "baggage_unit": "25", "baggage_title": "25 kg" }, "filter_unique_filter_code": "cph202512292025bcn2025122923201873adtbcn202601031710cph2026010320101870adt", "destination_reach_time": "PT", "destination_reach_timestamp": null } ] }