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
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
{
"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 theexpireAt
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 Code | Error | Reason |
---|---|---|
400 | [Validation Error] | Failed Validation |
404 | Session not found or expired | Request targeting a non-existent session. |
500 | NDCx Internal Error | Unknown |
412 | Not all flights are selected | The Itinerary has not yet been fully selected. |