{ "swagger": "2.0", "info": { "version": "1.3.0", "title": "Flight Offers Price", "x-tags": [ "#quick-connect", "#online-retail", "#mobile-services", "#ama-for-dev" ], "x-status": "validated", "x-release-note": { "1.3.0": [ "Add lastTicketingDateTime" ], "1.2.0": [ "Add DetailedFareRules" ], "1.1.0": [ "Add traveler in pricing input" ], "1.0.0": [ "Initial version" ] }, "description": "Before using this API, we recommend you read our **[Authorization Guide](https://developers.amadeus.com/self-service/apis-docs/guides/authorization-262)** for more information on how to generate an access token. \n\nPlease also be aware that our test environment is based on a subset of the production, if you are not returning any results try with big cities/airports like LON (London) or NYC (New-York)." }, "host": "test.api.amadeus.com", "basePath": "/v1", "schemes": [ "https" ], "consumes": [ "application/vnd.amadeus+json" ], "produces": [ "application/vnd.amadeus+json" ], "paths": { "/shopping/flight-offers/pricing": { "post": { "tags": [ "Shopping" ], "operationId": "quoteAirOffers", "summary": "Confirm pricing of given flightOffers.", "parameters": [ { "$ref": "#/parameters/getOverride" }, { "name": "priceFlightOffersBody", "description": "list of criteria to confirm the price of a dedicated flight-offers", "in": "body", "required": true, "schema": { "title": "Get_Price_Query", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/FlightOfferPricingIn" } }, "example": { "data": { "type": "flight-offers-pricing", "flightOffers": [ { "type": "flight-offer", "id": "1", "source": "GDS", "instantTicketingRequired": false, "nonHomogeneous": false, "oneWay": false, "lastTicketingDate": "2020-08-04", "numberOfBookableSeats": 9, "itineraries": [ { "duration": "PT32H15M", "segments": [ { "departure": { "iataCode": "SYD", "terminal": "1", "at": "2021-02-01T19:15:00" }, "arrival": { "iataCode": "SIN", "terminal": "1", "at": "2021-02-02T00:30:00" }, "carrierCode": "TR", "number": "13", "aircraft": { "code": "789" }, "operating": { "carrierCode": "TR" }, "duration": "PT8H15M", "id": "1", "numberOfStops": 0, "blacklistedInEU": false }, { "departure": { "iataCode": "SIN", "terminal": "1", "at": "2021-02-02T22:05:00" }, "arrival": { "iataCode": "DMK", "terminal": "1", "at": "2021-02-02T23:30:00" }, "carrierCode": "TR", "number": "868", "aircraft": { "code": "788" }, "operating": { "carrierCode": "TR" }, "duration": "PT2H25M", "id": "2", "numberOfStops": 0, "blacklistedInEU": false } ] }, { "duration": "PT15H", "segments": [ { "departure": { "iataCode": "DMK", "terminal": "1", "at": "2021-02-05T23:15:00" }, "arrival": { "iataCode": "SIN", "terminal": "1", "at": "2021-02-06T02:50:00" }, "carrierCode": "TR", "number": "867", "aircraft": { "code": "788" }, "operating": { "carrierCode": "TR" }, "duration": "PT2H35M", "id": "5", "numberOfStops": 0, "blacklistedInEU": false }, { "departure": { "iataCode": "SIN", "terminal": "1", "at": "2021-02-06T06:55:00" }, "arrival": { "iataCode": "SYD", "terminal": "1", "at": "2021-02-06T18:15:00" }, "carrierCode": "TR", "number": "12", "aircraft": { "code": "789" }, "operating": { "carrierCode": "TR" }, "duration": "PT8H20M", "id": "6", "numberOfStops": 0, "blacklistedInEU": false } ] } ], "price": { "currency": "EUR", "total": "546.70", "base": "334.00", "fees": [ { "amount": "0.00", "type": "SUPPLIER" }, { "amount": "0.00", "type": "TICKETING" } ], "grandTotal": "546.70" }, "pricingOptions": { "fareType": [ "PUBLISHED" ], "includedCheckedBagsOnly": true }, "validatingAirlineCodes": [ "HR" ], "travelerPricings": [ { "travelerId": "1", "fareOption": "STANDARD", "travelerType": "ADULT", "price": { "currency": "EUR", "total": "546.70", "base": "334.00" }, "fareDetailsBySegment": [ { "segmentId": "1", "cabin": "ECONOMY", "fareBasis": "O2TR24", "class": "O", "includedCheckedBags": { "weight": 20, "weightUnit": "KG" } }, { "segmentId": "2", "cabin": "ECONOMY", "fareBasis": "O2TR24", "class": "O", "includedCheckedBags": { "weight": 20, "weightUnit": "KG" } }, { "segmentId": "5", "cabin": "ECONOMY", "fareBasis": "X2TR24", "class": "X", "includedCheckedBags": { "weight": 20, "weightUnit": "KG" } }, { "segmentId": "6", "cabin": "ECONOMY", "fareBasis": "H2TR24", "class": "H", "includedCheckedBags": { "weight": 20, "weightUnit": "KG" } } ] } ] } ] } } } }, { "name": "include", "description": "Sub-resources to be included:\n * **credit-card-fees** to get the credit card fee applied on the booking\n * **bags** to get extra bag options\n * **other-services** to get services options\n * **detailed-fare-rules** to get detailed fare rules options\n", "in": "query", "type": "array", "items": { "type": "string", "enum": [ "credit-card-fees", "bags", "other-services", "detailed-fare-rules" ] }, "collectionFormat": "csv" }, { "name": "forceClass", "description": "parameter to force the usage of booking class for pricing\n- **true**, to for pricing with the specified booking class\n- **false**, to get the best available price\n", "in": "query", "type": "boolean", "default": false } ], "responses": { "200": { "$ref": "#/responses/returnQuotation" }, "400": { "$ref": "#/responses/400_Prices" }, "default": { "$ref": "#/responses/500" } }, "description": "" } } }, "definitions": { "Error_400": { "properties": { "errors": { "type": "array", "items": { "$ref": "#/definitions/Issue" } } }, "required": [ "errors" ], "example": { "errors": [ { "status": 400, "code": 477, "title": "INVALID FORMAT", "detail": "invalid query parameter format", "source": { "parameter": "airport", "example": "CDG" } } ] } }, "Error_500": { "properties": { "errors": { "type": "array", "items": { "$ref": "#/definitions/Issue" } } }, "required": [ "errors" ], "example": { "errors": [ { "status": 500, "code": 141, "title": "SYSTEM ERROR HAS OCCURRED" } ] } }, "Issue": { "properties": { "status": { "description": "the HTTP status code applicable to this error", "type": "integer" }, "code": { "description": "an application-specific error code", "type": "integer", "format": "int64" }, "title": { "description": "a short summary of the error", "type": "string" }, "detail": { "description": "explanation of the error", "type": "string" }, "source": { "type": "object", "title": "Issue_Source", "description": "an object containing references to the source of the error", "maxProperties": 1, "properties": { "pointer": { "description": "a JSON Pointer [RFC6901] to the associated entity in the request document", "type": "string" }, "parameter": { "description": "a string indicating which URI query parameter caused the issue", "type": "string" }, "example": { "description": "a string indicating an example of the right value", "type": "string" } } } } }, "LocationEntry": { "additionalProperties": { "$ref": "#/definitions/LocationValue" } }, "AircraftEntry": { "additionalProperties": { "description": "the manufacturer/model of aircraft", "type": "string" } }, "CurrencyEntry": { "additionalProperties": { "type": "string", "example": "EUR" } }, "CarrierEntry": { "additionalProperties": { "description": "the carrier name", "type": "string" } }, "FlightSegment": { "type": "object", "description": "defining a flight segment; including both operating and marketing details when applicable", "properties": { "departure": { "$ref": "#/definitions/FlightEndPoint" }, "arrival": { "$ref": "#/definitions/FlightEndPoint" }, "carrierCode": { "type": "string", "description": "providing the airline / carrier code", "minLength": 1, "maxLength": 2, "example": "DL" }, "number": { "type": "string", "description": "the flight number as assigned by the carrier", "minLength": 1, "maxLength": 4, "example": "212" }, "aircraft": { "$ref": "#/definitions/AircraftEquipment" }, "operating": { "$ref": "#/definitions/OperatingFlight" }, "duration": { "type": "string", "description": "stop duration in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) PnYnMnDTnHnMnS format, e.g. PT2H10M", "example": "PT2H10M" }, "stops": { "type": "array", "description": "information regarding the different stops composing the flight segment. E.g. technical stop, change of gauge...", "items": { "$ref": "#/definitions/FlightStop" } } } }, "OriginalFlightEndPoint": { "type": "object", "description": "departure or arrival information", "properties": { "iataCode": { "description": "[IATA airline codes](http://www.iata.org/publications/Pages/code-search.aspx)", "type": "string", "example": "JFK" }, "terminal": { "description": "terminal name / number", "type": "string", "example": "T2" } } }, "FlightEndPoint": { "title": "FlightEndPoint", "description": "departure or arrival information", "allOf": [ { "$ref": "#/definitions/OriginalFlightEndPoint" }, { "type": "object", "properties": { "at": { "description": "local date and time in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) YYYY-MM-ddThh:mm:ss format, e.g. 2017-02-10T20:40:00", "type": "string", "format": "date-time", "example": "2017-10-23T20:00:00" } } } ] }, "OriginalFlightStop": { "description": "details of stops for direct or change of gauge flights", "type": "object", "properties": { "iataCode": { "description": "[IATA airline codes](http://www.iata.org/publications/Pages/code-search.aspx)", "type": "string", "example": "JFK" }, "duration": { "type": "string", "description": "stop duration in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) PnYnMnDTnHnMnS format, e.g. PT2H10M", "example": "PT2H10M" } } }, "FlightStop": { "title": "FlightStop", "description": "details of stops for direct or change of gauge flights", "allOf": [ { "$ref": "#/definitions/OriginalFlightStop" }, { "type": "object", "properties": { "arrivalAt": { "description": "arrival at the stop in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) YYYY-MM-ddThh:mm:ss format, e.g. 2017-02-10T20:40:00", "type": "string", "format": "date-time", "example": "2017-10-23T20:00:00" }, "departureAt": { "description": "departure from the stop in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) YYYY-MM-ddThh:mm:ss format, e.g. 2017-02-10T20:40:00", "type": "string", "format": "date-time", "example": "2017-10-23T20:00:00" } } } ] }, "AircraftEquipment": { "description": "information related to the aircraft", "properties": { "code": { "type": "string", "description": "IATA aircraft code (http://www.flugzeuginfo.net/table_accodes_iata_en.php)\n", "pattern": "[a-zA-Z0-9]{3}", "example": "318" } } }, "OperatingFlight": { "type": "object", "description": "information about the operating flight", "properties": { "carrierCode": { "type": "string", "description": "providing the airline / carrier code", "minLength": 1, "maxLength": 2, "example": "DL" } } }, "Price": { "properties": { "currency": { "type": "string", "example": "USD" }, "total": { "description": "Total amount paid by the user", "type": "string", "example": "932.70" }, "base": { "description": "Amount without taxes", "type": "string", "example": "632.70" }, "fees": { "description": "List of applicable fees", "type": "array", "items": { "$ref": "#/definitions/Fee" } }, "taxes": { "type": "array", "items": { "$ref": "#/definitions/Tax" } }, "refundableTaxes": { "description": "The amount of taxes which are refundable", "type": "string", "example": "200.00" } } }, "Extended_Price": { "type": "object", "title": "Price", "description": "price information", "allOf": [ { "type": "object", "properties": { "margin": { "description": "BOOK step ONLY - The price margin percentage (plus or minus) that the booking can tolerate. When set to 0, then no price magin is tolerated.", "type": "string", "example": "1.00" }, "grandTotal": { "description": "Total amount paid by the user (including fees and selected additional services).", "type": "string", "example": "987.00" }, "billingCurrency": { "description": "Currency of the payment. It may be different than the requested currency", "type": "string", "example": "EUR" }, "additionalServices": { "type": "array", "title": "AdditionalServices", "items": { "title": "AdditionalService", "type": "object", "properties": { "amount": { "type": "string", "example": "332.70" }, "type": { "$ref": "#/definitions/AdditionalServiceType" } } } } } }, { "$ref": "#/definitions/Price" } ] }, "Fee": { "description": "a fee", "properties": { "amount": { "type": "string", "example": "332.70" }, "type": { "$ref": "#/definitions/FeeType" } } }, "FeeType": { "type": "string", "description": "type of fee", "enum": [ "TICKETING", "FORM_OF_PAYMENT", "SUPPLIER" ], "example": "TICKETING" }, "Tax": { "description": "a tax", "type": "object", "properties": { "amount": { "type": "string", "example": "332.70" }, "code": { "type": "string", "example": "MX" } } }, "TravelClass": { "description": "quality of service offered in the cabin where the seat is located in this flight. Economy, premium economy, business or first class", "type": "string", "enum": [ "ECONOMY", "PREMIUM_ECONOMY", "BUSINESS", "FIRST" ], "example": "PREMIUM_ECONOMY" }, "Co2Emission": { "type": "object", "properties": { "weight": { "description": "Weight of Co2 emitted for the concerned segment", "type": "integer", "example": 90 }, "weightUnit": { "description": "Code to qualify unit as pounds or kilos", "type": "string", "example": "KG" }, "cabin": { "$ref": "#/definitions/TravelClass" } } }, "FlightOffer": { "title": "Flight-offer", "type": "object", "required": [ "type", "id" ], "properties": { "type": { "type": "string", "description": "the resource name", "example": "flight-offer" }, "id": { "description": "Id of the flight offer", "type": "string", "example": "1" }, "source": { "$ref": "#/definitions/FlightOfferSource" }, "instantTicketingRequired": { "description": "If true, inform that a ticketing will be required at booking step.", "type": "boolean", "example": false }, "disablePricing": { "description": "BOOK step ONLY - If true, allows to book a PNR without pricing. Only for the source \"GDS\"", "type": "boolean", "example": false }, "nonHomogeneous": { "description": "If true, upon completion of the booking, this pricing solution is expected to yield multiple records (a record contains booking information confirmed and stored, typically a Passenger Name Record (PNR), in the provider GDS or system)", "type": "boolean", "example": false }, "oneWay": { "description": "If true, the flight offer can be combined with other oneWays flight-offers to complete the whole journey (one-Way combinable feature).", "type": "boolean", "example": false }, "paymentCardRequired": { "description": "If true, a payment card is mandatory to book this flight offer", "type": "boolean", "example": false }, "lastTicketingDate": { "description": "If booked on the same day as the search (with respect to timezone), this flight offer is guaranteed to be thereafter valid for ticketing until this date (included). Unspecified when it does not make sense for this flight offer (e.g. no control over ticketing once booked). YYYY-MM-DD format, e.g. 2019-06-07", "type": "string", "example": "2018-06-19" }, "lastTicketingDateTime": { "description": "If booked on the same day as the search (with respect to timezone), this flight offer is guaranteed to be thereafter valid for ticketing until this date/time (included). Unspecified when it does not make sense for this flight offer (e.g. no control over ticketing once booked). Information only this attribute is not used in input of pricing request. Local date and time in YYYY-MM-ddThh:mm:ss format, e.g. 2017-02-10T20:40:00", "type": "string", "format": "date-time", "example": "2018-06-19T15:00:00" }, "numberOfBookableSeats": { "description": "Number of seats bookable in a single request. Can not be higher than 9.", "type": "number", "example": 9, "minimum": 1, "maximum": 9 }, "itineraries": { "type": "array", "minItems": 1, "maxItems": 250, "items": { "title": "Itineraries", "type": "object", "properties": { "duration": { "description": "duration in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) PnYnMnDTnHnMnS format, e.g. PT2H10M for a duration of 2h10m", "type": "string", "example": "PT2H10M" }, "segments": { "title": "Segments", "type": "array", "minItems": 1, "maxItems": 9, "items": { "$ref": "#/definitions/Segment" } } }, "required": [ "segments" ] } }, "price": { "$ref": "#/definitions/Extended_Price" }, "pricingOptions": { "title": "PricingOptions", "type": "object", "properties": { "fareType": { "description": "type of fare of the flight-offer", "$ref": "#/definitions/PricingOptionsFareType" }, "includedCheckedBagsOnly": { "type": "boolean", "description": "If true, returns the flight-offers with included checked bags only", "example": true }, "refundableFare": { "type": "boolean", "description": "If true, returns the flight-offers with refundable fares only", "example": true }, "noRestrictionFare": { "type": "boolean", "description": "If true, returns the flight-offers with no restriction fares only", "example": true }, "noPenaltyFare": { "type": "boolean", "description": "If true, returns the flight-offers with no penalty fares only", "example": true } } }, "validatingAirlineCodes": { "description": "This option ensures that the system will only consider offers with these airlines as validating carrier.", "type": "array", "minItems": 1, "maxItems": 9, "items": { "type": "string" }, "example": [ "AF" ] }, "travelerPricings": { "title": "TravelerPricings", "description": "Fare information for each traveler/segment", "type": "array", "minItems": 1, "maxItems": 18, "items": { "title": "TravelerPricing", "required": [ "travelerId", "fareOption", "travelerType", "fareDetailsBySegment" ], "properties": { "travelerId": { "type": "string", "example": "1", "description": "Id of the traveler" }, "fareOption": { "$ref": "#/definitions/TravelerPricingFareOption" }, "travelerType": { "$ref": "#/definitions/TravelerType" }, "associatedAdultId": { "type": "string", "description": "if type=\"HELD_INFANT\", corresponds to the adult traveler's id who will share the seat" }, "price": { "description": "price detail of the traveler", "$ref": "#/definitions/Price" }, "fareDetailsBySegment": { "type": "array", "minItems": 1, "maxItems": 18, "items": { "title": "FareDetailsBySegment", "description": "Fare details of the segment", "required": [ "segmentId" ], "properties": { "segmentId": { "type": "string", "example": "1", "description": "Id of the segment" }, "cabin": { "$ref": "#/definitions/TravelClass" }, "fareBasis": { "description": "Fare basis specifying the rules of a fare. Usually, though not always, is composed of the booking class code followed by a set of letters and digits representing other characteristics of the ticket, such as refundability, minimum stay requirements, discounts or special promotional elements.", "type": "string", "example": "ANNNNF4K", "pattern": "[[A-Z0-9]{1,18}" }, "brandedFare": { "description": "The name of the Fare Family corresponding to the fares. Only for the GDS provider and if the airline has fare families filled", "type": "string", "example": "LIGHTONE" }, "class": { "description": "The code of the booking class, a.k.a. class of service or Reservations/Booking Designator (RBD)", "type": "string", "example": "A", "pattern": "[A-Z]{1}" }, "isAllotment": { "description": "True if the corresponding booking class is in an allotment", "type": "boolean", "example": true }, "allotmentDetails": { "$ref": "#/definitions/AllotmentDetails" }, "sliceDiceIndicator": { "$ref": "#/definitions/SliceDiceIndicator" }, "includedCheckedBags": { "title": "includedCheckedBags", "$ref": "#/definitions/BaggageAllowance", "description": "Details of the included checked bags" }, "additionalServices": { "type": "object", "title": "AdditionalServicesRequest", "properties": { "chargeableCheckedBags": { "title": "chargeableCheckedBags", "description": "Details of chargeable checked bags", "$ref": "#/definitions/ChargeableCheckdBags" }, "chargeableSeat": { "title": "chargeableSeat", "description": "Details of chargeable seat", "$ref": "#/definitions/ChargeableSeat" }, "chargeableSeatNumber": { "type": "string", "description": "DEPRECATED - use the chargeableSeat attribute - seat number", "example": "33D", "pattern": "[1-9][0-9]{0,2}[A-Z]?" }, "otherServices": { "type": "array", "description": "Other services to add", "items": { "$ref": "#/definitions/ServiceName" }, "example": [ "PRIORITY_BOARDING" ] } } } } } } } } } } }, "Segment": { "allOf": [ { "type": "object", "properties": { "id": { "description": "Id of the segment", "type": "string", "example": 1 }, "numberOfStops": { "description": "Number of stops", "type": "integer", "example": 0 }, "blacklistedInEU": { "description": "When the flight has a marketing or/and operating airline that is identified as blacklisted by the European Commission. \n\nTo improve travel safety, the European Commission regularly updates the list of the banned carriers from operating in Europe. It allows any Travel Agency located in the European Union to easily identify and hide any travel recommendation based on some unsafe airlines. \nThe [list of the banned airlines](https://ec.europa.eu/transport/sites/transport/files/air-safety-list_en.pdf) is published in the Official Journal of the European Union, where they are included as annexes A and B to the Commission Regulation. The blacklist of an airline can concern all its flights or some specific aircraft types pertaining to the airline \n", "type": "boolean", "example": false }, "co2Emissions": { "description": "Co2 informations", "type": "array", "minItems": 1, "items": { "title": "Co2Emission", "$ref": "#/definitions/Co2Emission" } } } }, { "$ref": "#/definitions/FlightSegment" } ] }, "TravelerType": { "type": "string", "description": "traveler type\nage restrictions : CHILD < 12y, HELD_INFANT < 2y, SEATED_INFANT < 2y, SENIOR >=60y\n", "enum": [ "ADULT", "CHILD", "SENIOR", "YOUNG", "HELD_INFANT", "SEATED_INFANT", "STUDENT" ], "example": "ADULT" }, "AdditionalServiceType": { "type": "string", "description": "additional service type", "enum": [ "CHECKED_BAGS", "MEALS", "SEATS", "OTHER_SERVICES" ], "example": "CHECKED_BAGS" }, "FlightOfferSource": { "description": "source of the flight offer", "type": "string", "enum": [ "GDS" ], "example": "GDS" }, "PricingOptionsFareType": { "type": "array", "description": "type of fare of the flight-offer", "items": { "type": "string", "enum": [ "PUBLISHED" ] }, "example": [ "PUBLISHED" ] }, "TravelerPricingFareOption": { "description": "option specifying a group of fares, which may be valid under certain conditons\nCan be used to specify special fare discount for a passenger\n", "type": "string", "enum": [ "STANDARD", "INCLUSIVE_TOUR", "SPANISH_MELILLA_RESIDENT", "SPANISH_CEUTA_RESIDENT", "SPANISH_CANARY_RESIDENT", "SPANISH_BALEARIC_RESIDENT", "AIR_FRANCE_METROPOLITAN_DISCOUNT_PASS", "AIR_FRANCE_DOM_DISCOUNT_PASS", "AIR_FRANCE_COMBINED_DISCOUNT_PASS", "AIR_FRANCE_FAMILY", "ADULT_WITH_COMPANION", "COMPANION" ], "example": "STANDARD" }, "SliceDiceIndicator": { "description": "slice and Dice indicator, such as Local Availability, Sub OnD(Origin and Destination) 1 Availability and Sub OnD 2 Availability", "type": "string", "enum": [ "LOCAL_AVAILABILITY", "SUB_OD_AVAILABILITY_1", "SUB_OD_AVAILABILITY_2" ] }, "Dictionaries": { "type": "object", "properties": { "locations": { "$ref": "#/definitions/LocationEntry" }, "aircraft": { "$ref": "#/definitions/AircraftEntry" }, "currencies": { "$ref": "#/definitions/CurrencyEntry" }, "carriers": { "$ref": "#/definitions/CarrierEntry" } } }, "LocationValue": { "properties": { "cityCode": { "type": "string", "description": "City code associated to the airport", "example": "PAR" }, "countryCode": { "type": "string", "description": "Country code of the airport", "example": "FR" } } }, "FareRules": { "type": "object", "title": "FareRules", "properties": { "currency": { "type": "string", "description": "The currency of the penalties" }, "rules": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/TermAndCondition" } } } }, "TermAndCondition": { "properties": { "category": { "type": "string", "description": "This defines what type of modification is concerned in this rule.", "enum": [ "REFUND", "EXCHANGE", "REVALIDATION", "REISSUE", "REBOOK", "CANCELLATION" ], "example": "EXCHANGE" }, "circumstances": { "type": "string" }, "notApplicable": { "type": "boolean" }, "maxPenaltyAmount": { "type": "string" }, "descriptions": { "type": "array", "items": { "title": "Description", "properties": { "descriptionType": { "type": "string" }, "text": { "type": "string" } } } } } }, "FlightOfferPricingIn": { "title": "FlightOfferPricing-Input", "type": "object", "description": "input parameter to price flight offers element", "required": [ "type", "flightOffers" ], "properties": { "type": { "description": "the resource name", "type": "string", "example": "flight-offer-pricing" }, "flightOffers": { "description": "list of flight offer to price", "type": "array", "minItems": 1, "maxItems": 6, "items": { "$ref": "#/definitions/FlightOffer" } }, "payments": { "description": "payment information for retrieve eventual credit card fees", "type": "array", "maxItems": 6, "items": { "title": "Payment", "type": "object", "properties": { "brand": { "$ref": "#/definitions/PaymentBrand" }, "binNumber": { "description": "The first 6 digits of the credit card", "type": "integer", "example": 123456, "pattern": "[0-9]{6}" }, "flightOfferIds": { "description": "Id of the flightOffers to pay", "type": "array", "minItems": 1, "maxItems": 6, "items": { "type": "string" }, "example": "1" } } } }, "travelers": { "description": "list of travelers", "type": "array", "maxItems": 18, "items": { "$ref": "#/definitions/Traveler" } } } }, "FlightOfferPricingOut": { "title": "FlightOfferPricing-Output", "type": "object", "description": "priced flight Offers and conditions", "required": [ "type", "flightOffers" ], "properties": { "type": { "description": "the resource name", "type": "string", "example": "flight-offer-pricing" }, "flightOffers": { "description": "list of flight offer to price", "type": "array", "minItems": 1, "maxItems": 6, "items": { "$ref": "#/definitions/FlightOffer" } }, "bookingRequirements": { "type": "object", "title": "BookingRequirements", "description": "pricing condition at booking level", "properties": { "invoiceAddressRequired": { "type": "boolean", "description": "If true, an invoice address is required for the creation of the flight-order", "example": true }, "mailingAddressRequired": { "type": "boolean", "description": "If true, a postal address is required for the creation of the flight-order", "example": true }, "emailAddressRequired": { "type": "boolean", "description": "If true, an email address is required for the creation of the flight-order", "example": true }, "phoneCountryCodeRequired": { "type": "boolean", "description": "If true, the phone country code (e.g. '33') associated for each phone number is required for the creation of the flight-order", "example": true }, "mobilePhoneNumberRequired": { "type": "boolean", "description": "If true, a mobile phone number is required for the creation of the flight-order", "example": true }, "phoneNumberRequired": { "type": "boolean", "description": "If true, a phone number is required for the creation of the flight-order", "example": true }, "postalCodeRequired": { "type": "boolean", "description": "If true, a postal code is required for the creation of the flight-order", "example": true }, "travelerRequirements": { "type": "array", "description": "traveler pricing condition", "items": { "title": "PassengerConditions", "properties": { "travelerId": { "type": "string", "description": "Id of the traveler", "example": 1 }, "genderRequired": { "type": "boolean", "description": "If true, the gender is required for the concerned traveler for the creation of the flight-order", "example": true }, "documentRequired": { "type": "boolean", "description": "If true, a document is required for the concerned traveler for the creation of the flight-order", "example": true }, "documentIssuanceCityRequired": { "type": "boolean", "description": "If true, the isuance city of the document is required for the concerned traveler for the creation of the flight-order", "example": true }, "dateOfBirthRequired": { "type": "boolean", "description": "If true, the date of bitrth is required for the concerned traveler for the creation of the flight-order", "example": true }, "redressRequiredIfAny": { "type": "boolean", "description": "If true, the redress is required if any for the concerned traveler for the creation of the flight-order", "example": true }, "airFranceDiscountRequired": { "type": "boolean", "description": "If true, the Air France discount is required for the concerned traveler for the creation of the flight-order", "example": false }, "spanishResidentDiscountRequired": { "type": "boolean", "description": "If true, the Spanish resident discount is required for the concerned traveler for the creation of the flight-order", "example": false }, "residenceRequired": { "type": "boolean", "description": "If true, the address is required for the concerned traveler for the creation of the flight-order", "example": true } } } } } } } }, "CreditCardFee": { "title": "creditCardFee", "type": "object", "properties": { "brand": { "$ref": "#/definitions/PaymentBrand" }, "amount": { "type": "string", "example": "1" }, "currency": { "type": "string", "example": "USD" }, "flightOfferId": { "description": "Id of the flightOffer concerned by the credit card fee", "type": "string", "example": "1" } } }, "PaymentBrand": { "description": "credit card brand", "type": "string", "enum": [ "VISA", "AMERICAN_EXPRESS", "MASTERCARD", "VISA_ELECTRON", "VISA_DEBIT", "MASTERCARD_DEBIT", "MAESTRO", "DINERS", "MASTERCARD_IXARIS", "VISA_IXARIS", "MASTERCARD_AIRPLUS", "UATP_AIRPLUS" ], "example": "VISA_IXARIS" }, "DetailedFareRules": { "title": "detailedFareRules", "type": "object", "properties": { "fareBasis": { "type": "string", "example": "VRDFR9" }, "name": { "type": "string" }, "fareNotes": { "$ref": "#/definitions/TermAndCondition" }, "segmentId": { "description": "Id of the segment concerned by the fare rule", "type": "string", "example": "1" } } }, "Bags": { "description": "checked bag", "allOf": [ { "$ref": "#/definitions/BaggageAllowance" }, { "type": "object", "properties": { "name": { "description": "Type of service", "type": "string", "example": "CHECKED_BAG" }, "price": { "$ref": "#/definitions/ElementaryPrice" }, "bookableByItinerary": { "description": "Specify if the service is bookable by itinerary or for all itineraries", "type": "boolean", "example": false }, "segmentIds": { "description": "Id of the segment concerned by the service", "type": "array", "items": { "type": "string" }, "example": "1" }, "travelerIds": { "description": "Id of the traveler concerned by the service", "type": "array", "items": { "type": "string" }, "example": "1" } } } ] }, "ElementaryPrice": { "description": "elementaryPrice", "type": "object", "properties": { "amount": { "type": "string", "description": "Amount of the fare. could be alpha numeric. Ex- 500.20 or 514.13A, 'A'signifies additional collection." }, "currencyCode": { "type": "string", "description": "Currency type of the fare." } } }, "BaggageAllowance": { "description": "baggageAllowance", "type": "object", "properties": { "quantity": { "type": "integer", "description": "Total number of units", "example": 1 }, "weight": { "type": "integer", "description": "Weight of the baggage allowance", "example": 20 }, "weightUnit": { "type": "string", "description": "Code to qualify unit as pounds or kilos", "example": "KG" } } }, "OtherServices": { "title": "Service", "type": "object", "properties": { "name": { "$ref": "#/definitions/ServiceName" }, "price": { "$ref": "#/definitions/ElementaryPrice" }, "bookableByTraveler": { "description": "Specify if the service is bookable by traveler or for all travelers", "type": "boolean", "example": true }, "bookableByItinerary": { "description": "Specify if the service is bookable by itinerary or for all itineraries", "type": "boolean", "example": false }, "segmentIds": { "description": "Id of the segment concerned by the service", "type": "array", "items": { "type": "string" }, "example": "1" }, "travelerIds": { "description": "Id of the traveler concerned by the service", "type": "array", "items": { "type": "string" }, "example": "1" } } }, "ServiceName": { "description": "type of service", "type": "string", "enum": [ "PRIORITY_BOARDING", "AIRPORT_CHECKIN" ], "example": "PRIORITY_BOARDING" }, "Stakeholder": { "type": "object", "description": "stakeholder definition", "properties": { "id": { "description": "item identifier", "type": "string" }, "dateOfBirth": { "type": "string", "format": "date", "description": "The date of birth in ISO 8601 format (yyyy-mm-dd)" }, "gender": { "$ref": "#/definitions/StakeholderGender" }, "name": { "$ref": "#/definitions/Name" }, "documents": { "type": "array", "description": "Advanced Passenger Information - regulatory identity documents - SSR DOCS & DOCO elements", "items": { "$ref": "#/definitions/IdentityDocument" } } } }, "StakeholderGender": { "type": "string", "description": "The gender", "enum": [ "MALE", "FEMALE" ], "example": "FEMALE" }, "IdentityDocument": { "title": "traveler documents", "description": "documents of the traveler", "allOf": [ { "$ref": "#/definitions/Document" }, { "type": "object", "properties": { "documentType": { "$ref": "#/definitions/DocumentType" }, "validityCountry": { "type": "string", "description": "[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country where the document is valid", "example": "IN", "pattern": "[a-zA-Z]{2}" }, "birthCountry": { "type": "string", "description": "[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country of birth", "example": "FR", "pattern": "[a-zA-Z]{2}" }, "holder": { "type": "boolean", "description": "boolean to specify if the traveler is the holder of the document", "example": true } } } ] }, "Document": { "type": "object", "description": "the information that are found on an ID document", "properties": { "number": { "type": "string", "description": "The document number (shown on the document) . E.g. QFU514563221J" }, "issuanceDate": { "type": "string", "description": "Date at which the document has been issued.", "format": "date" }, "expiryDate": { "type": "string", "description": "Date after which the document is not valid anymore.", "format": "date" }, "issuanceCountry": { "type": "string", "description": "[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the country that issued the document", "pattern": "[a-zA-Z]{2}" }, "issuanceLocation": { "type": "string", "description": "A more precise information concerning the place where the document has been issued, when available. It may be a country, a state, a city or any other type of location. e.g. New-York" }, "nationality": { "type": "string", "description": "[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the nationality appearing on the document", "pattern": "[a-zA-Z]{2}" }, "birthPlace": { "type": "string", "description": "Birth place as indicated on the document" } } }, "DocumentType": { "type": "string", "description": "the nature/type of the document", "enum": [ "VISA", "PASSPORT", "IDENTITY_CARD", "KNOWN_TRAVELER", "REDRESS" ], "example": "VISA" }, "EmergencyContact": { "type": "object", "description": "emergency contact number", "properties": { "addresseeName": { "type": "string", "description": "Adressee name (e.g. in case of emergency purpose it corresponds to name of the person to be contacted).", "pattern": "[a-zA-Z -]" }, "countryCode": { "type": "string", "description": "Country code of the country (ISO3166-1). E.g. \"US\" for the United States", "pattern": "[A-Z]{2}" }, "number": { "type": "string", "description": "Phone number. Composed of digits only. The number of digits depends on the country.", "pattern": "[0-9]{1,15}" }, "text": { "type": "string", "description": "additional details" } } }, "LoyaltyProgram": { "title": "LoyaltyProgram", "description": "loyalty program information", "type": "object", "properties": { "programOwner": { "type": "string", "description": "loyalty program airline code", "example": "AF" }, "id": { "type": "string", "description": "loyalty program number", "example": "12357466574" } } }, "Discount": { "title": "Discount", "description": "traveler discount", "type": "object", "properties": { "subType": { "$ref": "#/definitions/DiscountType" }, "cityName": { "type": "string", "description": "city of residence", "example": "MADRID" }, "travelerType": { "$ref": "#/definitions/DiscountTravelerType" }, "cardNumber": { "type": "string", "description": "resident card number", "example": "12568215Z", "pattern": "[0-9A-Z][0-9]{0,12}[A-Z]" }, "certificateNumber": { "type": "string", "description": "resident certificate number", "example": "12568215Z", "pattern": "[0-9A-Z][0-9]{0,12}[A-Z]" } } }, "DiscountType": { "description": "type of discount applied", "type": "string", "enum": [ "SPANISH_RESIDENT", "AIR_FRANCE_DOMESTIC", "AIR_FRANCE_COMBINED", "AIR_FRANCE_METROPOLITAN" ], "example": "SPANISH_RESIDENT" }, "DiscountTravelerType": { "description": "type of discount applied", "type": "string", "enum": [ "SPANISH_CITIZEN", "EUROPEAN_CITIZEN", "GOVERNMENT_WORKER", "MILITARY", "MINOR_WITHOUT_ID" ], "example": "SPANISH_CITIZEN" }, "Traveler": { "title": "traveler element", "description": "the traveler of the trip", "allOf": [ { "$ref": "#/definitions/Stakeholder" }, { "type": "object", "properties": { "emergencyContact": { "description": "emergency contact", "$ref": "#/definitions/EmergencyContact" }, "loyaltyPrograms": { "description": "list of loyalty program followed by the traveler", "type": "array", "minItems": 0, "maxItems": 10, "items": { "$ref": "#/definitions/LoyaltyProgram" } }, "discountEligibility": { "description": "list of element that allow a discount.", "type": "array", "minItems": 0, "maxItems": 10, "items": { "$ref": "#/definitions/Discount" } }, "contact": { "$ref": "#/definitions/Contact" } } } ] }, "Contact": { "description": "contact information", "allOf": [ { "$ref": "#/definitions/ContactDictionary" }, { "type": "object", "properties": { "phones": { "description": "Phone numbers", "type": "array", "maxItems": 3, "items": { "$ref": "#/definitions/Phone" } }, "companyName": { "description": "Name of the company", "type": "string", "example": "AMADEUS" }, "emailAddress": { "type": "string", "description": "Email address (e.g. john@smith.com)", "example": "support@mail.com" } } } ] }, "ContactPurpose": { "description": "the purpose for which this contact is to be used", "type": "string", "enum": [ "STANDARD", "INVOICE", "STANDARD_WITHOUT_TRANSMISSION" ] }, "ContactDictionary": { "description": "represents a contact", "type": "object", "properties": { "addresseeName": { "description": "the name of the person addressed by these contact details", "$ref": "#/definitions/Name" }, "address": { "$ref": "#/definitions/Address" }, "language": { "description": "the preferred language of communication with this Contact", "type": "string" }, "purpose": { "$ref": "#/definitions/ContactPurpose" } } }, "Name": { "title": "name", "description": "name", "allOf": [ { "$ref": "#/definitions/BaseName" }, { "type": "object", "properties": { "secondLastName": { "description": "second last name", "type": "string" } } } ] }, "BaseName": { "type": "object", "description": "description of the name of a physical person", "properties": { "firstName": { "description": "First name.", "type": "string" }, "lastName": { "description": "Last name.", "type": "string" }, "middleName": { "description": "Middle name(s), for example \"Lee\" in \"John Lee Smith\".", "type": "string" } } }, "Phone": { "type": "object", "description": "phone information", "properties": { "deviceType": { "$ref": "#/definitions/PhoneDeviceType" }, "countryCallingCode": { "type": "string", "description": "Country calling code of the phone number, as defined by the International Communication Union. Examples - \"1\" for US, \"371\" for Latvia.", "pattern": "[0-9+]{2,5}" }, "number": { "type": "string", "description": "Phone number. Composed of digits only. The number of digits depends on the country.", "pattern": "[0-9]{1,15}" } } }, "PhoneDeviceType": { "type": "string", "description": "Type of the device (Landline, Mobile or Fax)", "enum": [ "MOBILE", "LANDLINE", "FAX" ] }, "Address": { "type": "object", "description": "address information", "properties": { "lines": { "type": "array", "description": "Line 1 = Street address, Line 2 = Apartment, suite, unit, building, floor, etc", "items": { "type": "string" } }, "postalCode": { "type": "string", "description": "Example: 74130" }, "countryCode": { "type": "string", "description": "country code [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)", "pattern": "[a-zA-Z]{2}" }, "cityName": { "type": "string", "description": "Full city name. Example: Dublin", "pattern": "[a-zA-Z -]{1,35}" }, "stateName": { "type": "string", "description": "Full state name" }, "postalBox": { "type": "string", "description": "E.g. BP 220" } } }, "AllotmentDetails": { "title": "AllotmentDetails", "type": "object", "properties": { "tourName": { "description": "The tour name agreed for this specific allotment.", "type": "string" }, "tourReference": { "description": "The tour reference agreed for this specific allotment.", "type": "string" } } }, "ChargeableCheckdBags": { "description": "Details of chargeable checked bags", "allOf": [ { "$ref": "#/definitions/BaggageAllowance" }, { "type": "object", "properties": { "id": { "description": "Id of the chargeable bag", "type": "string", "example": "1" } } } ] }, "ChargeableSeat": { "description": "Details of chargeable seat", "type": "object", "properties": { "id": { "description": "Id of the chargeable seat", "type": "string", "example": "1" }, "number": { "type": "string", "description": "seat number", "example": "33D", "pattern": "[1-9][0-9]{0,2}[A-Z]?" } } } }, "responses": { "500": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/Error_500" } }, "returnQuotation": { "description": "Successful Operation", "schema": { "title": "Success_Pricing", "type": "object", "required": [ "data" ], "properties": { "warnings": { "type": "array", "items": { "$ref": "#/definitions/Issue" } }, "data": { "$ref": "#/definitions/FlightOfferPricingOut" }, "included": { "title": "included resources map", "properties": { "credit-card-fees": { "description": "Map of fee applied by credit card brand", "additionalProperties": { "$ref": "#/definitions/CreditCardFee" } }, "bags": { "description": "Map of fee applied by bag option", "additionalProperties": { "$ref": "#/definitions/Bags" } }, "other-services": { "description": "Map of fee applied by service", "additionalProperties": { "$ref": "#/definitions/OtherServices" } }, "detailed-fare-rules": { "description": "Map of fare rules applied by farebasis", "additionalProperties": { "$ref": "#/definitions/DetailedFareRules" } } } }, "dictionaries": { "$ref": "#/definitions/Dictionaries" } }, "example": { "data": { "type": "flight-offers-pricing", "flightOffers": [ { "type": "flight-offer", "id": "1", "source": "GDS", "instantTicketingRequired": false, "nonHomogeneous": false, "lastTicketingDate": "2020-03-01", "itineraries": [ { "segments": [ { "departure": { "iataCode": "GIG", "at": "2020-03-01T23:30:00" }, "arrival": { "iataCode": "CMN", "terminal": "2", "at": "2020-03-02T12:10:00" }, "carrierCode": "AT", "number": "212", "aircraft": { "code": "788" }, "operating": { "carrierCode": "AT" }, "id": "3", "numberOfStops": 0, "duration": "PT8H40M" }, { "departure": { "iataCode": "CMN", "terminal": "2", "at": "2020-03-02T15:45:00" }, "arrival": { "iataCode": "MAD", "at": "2020-03-02T17:40:00", "terminal": "4S" }, "carrierCode": "AT", "number": "970", "aircraft": { "code": "73G" }, "operating": { "carrierCode": "AT" }, "id": "4", "numberOfStops": 0, "duration": "PT1H55M" } ] }, { "segments": [ { "departure": { "iataCode": "MAD", "terminal": "4S", "at": "2020-03-05T18:40:00" }, "arrival": { "iataCode": "CMN", "at": "2020-03-05T20:30:00", "terminal": "2" }, "carrierCode": "AT", "number": "971", "aircraft": { "code": "738" }, "operating": { "carrierCode": "AT" }, "id": "47", "numberOfStops": 0, "duration": "PT1H50M" }, { "departure": { "iataCode": "CMN", "at": "2020-03-06T16:40:00", "terminal": "2" }, "arrival": { "iataCode": "GIG", "at": "2020-03-06T22:00:00" }, "carrierCode": "AT", "number": "213", "aircraft": { "code": "788" }, "operating": { "carrierCode": "AT" }, "id": "48", "numberOfStops": 0, "duration": "PT9H20M" } ] } ], "price": { "currency": "USD", "total": "2778.98", "base": "2568.00", "fees": [ { "amount": "0.00", "type": "SUPPLIER" }, { "amount": "0.00", "type": "TICKETING" }, { "amount": "0.00", "type": "FORM_OF_PAYMENT" } ], "grandTotal": "2778.98", "billingCurrency": "USD" }, "pricingOptions": { "fareType": [ "PUBLISHED" ], "includedCheckedBagsOnly": true }, "validatingAirlineCodes": [ "AT" ], "travelerPricings": [ { "travelerId": "1", "fareOption": "STANDARD", "travelerType": "ADULT", "price": { "currency": "USD", "total": "1625.49", "base": "1520.00", "taxes": [ { "amount": "31.99", "code": "BR" }, { "amount": "24.27", "code": "JD" }, { "amount": "44.59", "code": "MA" }, { "amount": "0.69", "code": "OG" }, { "amount": "3.95", "code": "QV" } ] }, "fareDetailsBySegment": [ { "segmentId": "3", "cabin": "BUSINESS", "fareBasis": "DA0R0BRA", "class": "D", "includedCheckedBags": { "quantity": 3 } }, { "segmentId": "4", "cabin": "BUSINESS", "fareBasis": "DA0R0BRA", "class": "D", "includedCheckedBags": { "quantity": 3 } }, { "segmentId": "47", "cabin": "ECONOMY", "fareBasis": "XL0R0BRA", "class": "X", "includedCheckedBags": { "quantity": 2 } }, { "segmentId": "48", "cabin": "ECONOMY", "fareBasis": "XL0R0BRA", "class": "X", "includedCheckedBags": { "quantity": 2 } } ] }, { "travelerId": "2", "fareOption": "STANDARD", "travelerType": "CHILD", "price": { "currency": "USD", "total": "1153.49", "base": "1048.00", "taxes": [ { "amount": "31.99", "code": "BR" }, { "amount": "24.27", "code": "JD" }, { "amount": "44.59", "code": "MA" }, { "amount": "0.69", "code": "OG" }, { "amount": "3.95", "code": "QV" } ] }, "fareDetailsBySegment": [ { "segmentId": "3", "cabin": "BUSINESS", "fareBasis": "DA0R0BRACH", "class": "D", "includedCheckedBags": { "quantity": 3 } }, { "segmentId": "4", "cabin": "BUSINESS", "fareBasis": "DA0R0BRACH", "class": "D", "includedCheckedBags": { "quantity": 3 } }, { "segmentId": "47", "cabin": "ECONOMY", "fareBasis": "XL0R0BRACH", "class": "X", "includedCheckedBags": { "quantity": 2 } }, { "segmentId": "48", "cabin": "ECONOMY", "fareBasis": "XL0R0BRACH", "class": "X", "includedCheckedBags": { "quantity": 2 } } ] } ], "paymentCardRequired": false } ] }, "dictionaries": { "locations": { "MAD": { "cityCode": "MAD", "countryCode": "ES" }, "GIG": { "cityCode": "RIO", "countryCode": "BR" }, "CMN": { "cityCode": "CAS", "countryCode": "MA" } } } } } }, "400_Prices": { "description": "code | title \n------- | ------------------------------------- \n477 | INVALID FORMAT\n2668 | PARAMETER COMBINATION INVALID/RESTRICTED\n2781 | INVALID LENGTH\n4926 | INVALID DATA RECEIVED\n32171 | MANDATORY DATA MISSING\n", "schema": { "$ref": "#/definitions/Error_400" } } }, "parameters": { "getOverride": { "name": "X-HTTP-Method-Override", "description": "the HTTP method to apply", "required": true, "in": "header", "type": "string", "default": "GET" } }, "x-generatedAt": "2020-08-03T15:27:52.141Z" }