POST /api/v1/flights/get_order_quote
Get the current price and payment status for a held order before paying.
Get the current quote (price, status, and available actions) for a held order. This step is optional — call it only when you want to preview or refresh the price before paying.
Permission: Read
Identifying the booking
Provide one of the following. order_id is strongly preferred.
| Field | Description |
|---|---|
order_id | Supplier order ID returned when the hold booking was created |
booking_id | FX-Port booking ID |
pnr | Airline record locator |
PNRs are not unique. The same PNR can be issued by a different supplier, GDS, or airline.
Looking a booking up by PNR alone can be ambiguous. Always use order_id when possible.
Request example
curl --request POST \
--url https://api.fx-port.com/api/v1/flights/get_order_quote \
--header 'Authorization: Bearer fxp_test_YOUR_KEY' \
--header 'Content-Type: application/json' \
--data '{
"order_id": "eJzTd9ePMo_0NXMEAAtYAlQ"
}'Response example
Same held Amadeus order used in Book (hold), before it's paid:
{
"environment": "sandbox",
"success": true,
"requestId": "256ebe7e",
"orderId": "eJzTd9ePMo_0NXMEAAtYAlQ",
"processingTime": 0.272,
"orderQuote": {
"orderId": "eJzTd9ePMo_0NXMEAAtYAlQ",
"bookingReference": "Z7YM6A",
"status": "awaiting_payment",
"pricing": {
"supplierCurrency": "DZD",
"agencyCurrency": "DZD",
"basePrice": 3160.0,
"taxesAndFees": 1921.44,
"agencyCommission": 5.09,
"finalPrice": 5086.53,
"b2bPrice": 5081.44,
"additionalServices": [],
"totalAmount": 5081.44
},
"paymentStatus": {
"awaitingPayment": true,
"paymentRequiredBy": null,
"priceGuaranteeExpiresAt": null,
"priceGuaranteed": true,
"canPay": true
},
"liveMode": false
},
"supplier": {
"id": "amadeus_aqc_dz_1",
"technology": "amadeus_aqc",
"name": "Amadeus Algeria"
},
"agency": {
"agencyId": "2e800fb6-0bbf-4fc1-b0bd-0f3be3b5bcc4",
"currency": "DZD"
},
"meta": {
"priceGuaranteed": true,
"paymentDeadline": null,
"canPay": true
}
}Field meanings
| Field | Meaning |
|---|---|
orderQuote.bookingReference | The PNR for this order |
orderQuote.status | "awaiting_payment" while held; matches the booking's own status |
orderQuote.pricing.b2bPrice / .totalAmount | The amount that will be debited from your agency balance — the two fields are aliases of each other, always equal |
orderQuote.paymentStatus.canPay | Whether the hold can currently be paid — see warning below |
orderQuote.paymentStatus.priceGuaranteed | Whether the price is guaranteed not to change before priceGuaranteeExpiresAt |
orderQuote.liveMode | false in sandbox, true in live |
agency.agencyId / agency.currency | Your agency's ID and settlement currency |
Do not treat canPay as a hard guarantee. Payment can fail because the PNR has expired or
been cancelled, the hold/payment deadline has passed, or the airline released the reservation
before the expected date or time. The only authoritative outcome is the pay_order response.
Always handle payment failure gracefully even when canPay was true moments earlier.