Versions
v2
Flights
Pricing

Pricing Flights

Once we have selected out flights, and optionally selected our ancillaries, we can proceed to pricing our flights. This step is required, and works towards confirming the price of the flights, and ensuring that the flights are still available. By this points, you should have also added the required passenger information to the session.

Passenger Requirements

By this point, all Passenger need to have a complete personal_info object. At least one adult passenger needs to have their email and phone_number set.

🧨 If the passenger requirements are not met by this point, the request will return validation errors for the passengers.

🛎 We highly recommend that you input the email and the phone_number for all adult passengers.

Requesting Pricing

GET /flight/[sessionId]/price

The endpoint will return the pricing information for the selected flights, and will also return the total price of the flights, including the ancillaries. If the price has changed, the response will contain the new price, and a property acknowledging the change.

🧨 If there was any problems with the combination of flights, or the ancillaries, this is likely where the chicken 🐓 will come home to roost. If you have any issues, you should check the response for any errors, and then try to reselect the flights, or ancillaries.

Response

GET /flight/[sessionId]/price
{
  "itinerary_price": {
    "total_amount": "3476.02",
    "base_amount": "3442.37",
    "currency": "CAD",
    "tax": {
      "total_tax": "32.52",
      "tax": [
        {
          "amount": "0.50",
          "code": "SC",
          "description": "Goods And Services Tax (domestic/international)"
        },
        {
          "amount": "32.02",
          "code": "YQ",
          "description": "Service Fee - Carrier-imposed"
        }
      ]
    },
    "surcharge": {
      "total_surcharge": "1.13",
      "tax": [
        {
          "amount": "1.13",
          "code": "SC",
          "description": "Airport Improvement Fees"
        }
      ]
    },
    "pricing_strategy": "SEPARATE",
    "change_indicator": {
      "difference": "12.00",
      "reason": "REPRICED",
      "type": "MORE"
    }
  },
  "itinerary_notice": [
    "BAG ALLOWANCE     -YVRYYC-02P/WS",
    "CARRY ON ALLOWANCE",
    "YVRYYC-01P/WS",
    "01/CARRY ON HAND BAGGAGE",
    "CARRY ON CHARGES",
    "YVRYYC-WS-CARRY ON FEES UNKNOWN-CONTACT CARRIER",
    "ADDITIONAL ALLOWANCES AND/OR DISCOUNTS MAY APPLY DEPENDING ON",
    "FLYER-SPECIFIC FACTORS /E.G. FREQUENT FLYER STATUS/MILITARY/",
    "CREDIT CARD FORM OF PAYMENT/EARLY PURCHASE OVER INTERNET,ETC./",
    "BAG ALLOWANCE     -YYCYVR-02P/AC/EACH PIECE UP TO 70 POUNDS/32",
    "KILOGRAMS AND UP TO 62 LINEAR INCHES/158 LINEAR CENTIMETERS",
    "CARRY ON ALLOWANCE",
    "YYCYEG YEGYVR-01P/AC",
    "01/CARRY ON HAND BAGGAGE",
    "CARRY ON CHARGES",
    "YYCYEG YEGYVR-AC-CARRY ON FEES UNKNOWN-CONTACT CARRIER",
    "ADDITIONAL ALLOWANCES AND/OR DISCOUNTS MAY APPLY DEPENDING ON",
    "FLYER-SPECIFIC FACTORS /E.G. FREQUENT FLYER STATUS/MILITARY/",
    "CREDIT CARD FORM OF PAYMENT/EARLY PURCHASE OVER INTERNET,ETC./"
  ],
  "expireAt": "2023-04-28T18:41:54.523Z",
  "createdAt": "2023-04-28T17:35:50.045Z",
  "public": "68aa95f6-a7af-4823-b289-d0e6f63f15e4"
}
  • public: (Public ID) The public ID of the pricing.
  • expireAt: (string) The time in which the flight will expire. This will hold the same as the expireAt property of your Session.
  • itinerary_price: (Pricing Itinerary Price Information) An object containing all the information about the pricing of the session.
  • itinerary_notice: (Array<string>) A list of notices for the itinerary. These notices are usually related to baggage allowances, and other information that may be relevant to the itinerary.

Possible Errors

Status CodeErrorReason
400[Validation Error]Failed Validation
404Session not found or expiredRequest targeting a non-existent session.
500NDCx Internal ErrorUnknown
412Not all flights are selectedThe Itinerary has not yet been fully selected.