Skip to content
FX-Port/Docs
GuidesAPI referenceChangelog
Get API keys
  • Overview
  • Error object

Search and price

  • Search flightsPOST
  • Flexible datesPOST
  • Price an offerPOST
  • Airport autocompleteGET
  • Most searched airportsGET

Book, pay and cancel

  • Book an offerPOST
  • Quote a held orderPOST
  • Pay a held orderPOST
  • Cancel a held orderPOST

After booking

  • Get a bookingPOST
  • Ticket PDFPOST
  • Ticket numberPOST
  • Quote a refundPOST
  • Confirm a cancellationPOST

ACD documents

  • Get the document statePOST
  • Upload passportsPOST

Objects

  • Flight offer
  • Flight booking

Flights ยท Objects

The Flight booking object

A flight booking of your agency as FX-Port stores it: its status, price, ticket number, the links of the PDF tickets and the ACD state.

get_booking returns it under booking. id is the FX-Port UUID, the stable key to store; booking_id (also pnr) is the airline record locator, which is not unique across suppliers and airlines; amadeus_id (also order_id) is the supplier's order id, the value pay_order, cancel_order and cancel_quote take. The booking is a database row: more keys than the ones listed here exist (the void history, the details of a changed schedule); they are internal and not part of the contract. The links bucket_link (pdf_url) and bucket_link_no_price are public addresses of PDFs that hold the traveler's name and the fare, and the link of every entry of acd_documents (also acd_links) is a public address of a passport: treat them all as sensitive. FX-Port's own storage keys of the passports are never returned. See Get a booking.

Example
{
  "id": "711371c3-00aa-4be2-b790-9f0ca2ccfdb7",
  "booking_id": "Y7PAEU",
  "amadeus_id": "eJzTd9ePNA9wdA0FAAs8AmE",
  "status": "confirmed",
  "created_at": "2026-11-01T15:26:14.871035+00:00",
  "paid_at": "2026-11-01T15:26:21.961664+00:00",
  "updated_at": "2026-11-01T15:26:21.998944+00:00",
  "total_price": 4930.37,
  "agency_commission": 4.93,
  "currency": "DZD",
  "departure_airport": "ALG",
  "arrival_airport": "ORN",
  "departure_date": "2026-12-22T19:45:00",
  "arrival_date": "2026-12-22T20:45:00",
  "return_departure_date": null,
  "return_arrival_date": null,
  "included_checked_bags": "0",
  "ticketing_agreement": "DELAY_TO_CANCEL",
  "supplier_name": "Amadeus Algeria",
  "supplier_id": "amadeus_aqc_dz_1",
  "ticket_number": "124-2446977397",
  "bucket_link": "https://s3.example.com/flight-bookings/Y7PAEU-JAMES-SMITH.pdf",
  "bucket_link_no_price": "https://s3.example.com/flight-bookings/Y7PAEU-JAMES-SMITH-no-price.pdf",
  "email_sent": false,
  "require_acd": false,
  "acd_submitted": false,
  "acd_links": null,
  "acd_amount": null,
  "acd_paid": false,
  "acd_documents_revision": 0,
  "acd_documents": null,
  "has_changed": false,
  "new_flight_details": null,
  "voided_at": null,
  "refund_amount": null,
  "refund_currency": null,
  "refund_method": null,
  "agent_id": null,
  "environment": "sandbox",
  "pricingBreakdown": {
    "supplier_currency": "DZD",
    "agency_currency": "DZD",
    "base_price": 3160,
    "taxes_and_fees": 1765.44,
    "agency_commission": 4.93,
    "final_price": 4930.37,
    "b2b_price": 4925.44,
    "created_at": "2026-11-01T15:26:22.176516+00:00",
    "environment": "sandbox"
  },
  "travelerPricing": [
    {
      "traveler_id": "1",
      "traveler_type": "ADULT",
      "fare_option": "STANDARD",
      "supplier_currency": "DZD",
      "agency_currency": "DZD",
      "base": 3160,
      "total": 4930.37,
      "b2b_price": 4925.44,
      "created_at": "2026-11-01T15:26:15.133066+00:00",
      "environment": "sandbox"
    }
  ],
  "balanceOperations": [],
  "order_id": "eJzTd9ePNA9wdA0FAAs8AmE",
  "pnr": "Y7PAEU",
  "pdf_url": "https://s3.example.com/flight-bookings/Y7PAEU-JAMES-SMITH.pdf",
  "pdf_url_no_price": "https://s3.example.com/flight-bookings/Y7PAEU-JAMES-SMITH-no-price.pdf",
  "acd_required": false,
  "requires_acd": false
}

Attributes

idstring

The FX-Port UUID of the booking. Use it as the key when you store or re-read a booking.

booking_idstringdeprecated

Legacy name, still accepted. Use pnr instead.

The PNR. Not unique; prefer id.

pnrstring

The PNR. Not unique; prefer id. The snake_case twin of booking_id, with the same value: use this name.

amadeus_idstringdeprecated

Legacy name, still accepted. Use order_id instead.

The supplier's order id (the name is historical: it also holds the ord_... of a Duffel order). This is the order_id of pay_order, cancel_order and cancel_quote.

order_idstring

The supplier's order id (the name is historical: it also holds the ord_... of a Duffel order). This is the order_id of pay_order, cancel_order and cancel_quote. The snake_case twin of amadeus_id, with the same value: use this name.

statusstring

confirmed, awaiting_payment (a hold), cancelled, partial_refund, failed; voided, refunded and expired can appear for changed orders.

created_atstring

When the booking was created.

paid_atstringnullable

When it was paid.

updated_atstring

When it last changed.

total_pricenumber

The final price in the currency of the agency.

agency_commissionnumber

Your commission.

currencystring

Currency of the agency.

departure_airportstring

IATA code of the first departure.

arrival_airportstring

IATA code of the last arrival.

departure_datestring

Local departure time, without a zone.

arrival_datestring

Local arrival time, without a zone.

return_departure_datestringnullable

Local departure time of the return.

return_arrival_datestringnullable

Local arrival time of the return.

included_checked_bagsstring

The checked bags included, as a text.

ticketing_agreementstringnullable

The ticketing-time-limit agreement of an Amadeus booking, for example DELAY_TO_CANCEL.

supplier_namestring

Name of the supplier.

supplier_idstring

Id of the supplier.

ticket_numberstringnullable

The e-ticket number(s), as one text; several numbers are joined by commas. null until the airline returns one.

bucket_linkstringnullabledeprecated

Legacy name, still accepted. Use pdf_url instead.

Address of the PDF of the ticket (a hold: the hold voucher). null until generated. A public link.

pdf_urlstringnullable

Address of the PDF of the ticket (a hold: the hold voucher). null until generated. A public link. The snake_case twin of bucket_link, with the same value: use this name.

bucket_link_no_pricestringnullabledeprecated

Legacy name, still accepted. Use pdf_url_no_price instead.

Address of the same PDF without prices. A public link.

pdf_url_no_pricestringnullable

Address of the same PDF without prices. A public link. The snake_case twin of bucket_link_no_price, with the same value: use this name.

email_sentboolean

Whether the confirmation e-mail went out.

require_acdboolean

true for an ACD booking (the stored flag).

acd_requiredboolean

true for an ACD booking whose passports FX-Port did not waive: the same value as acd.acd_required of get_acd_documents.

requires_acdboolean

The same value as acd_required.

acd_submittedboolean

true once every traveler has a passport. Never null.

acd_documentsarray of objectnullable

The passports uploaded through the API, one entry for each traveler who has one. null for a booking that never had one. get_acd_documents gives the same information for each traveler, with the files FX-Port staff added from the dashboard.

ShowHide 12 attributes
traveler_idstring

The traveler the passport belongs to: the traveler_id of get_acd_documents.

traveler_namestring

The name on the booking.

traveler_typestring

The passenger type, for example ADULT.

linkstring

The public address of the file: anybody who has it can open the passport. Treat it as sensitive.

filenamestring

The file name that was sent.

content_typestring

The type FX-Port detected from the content, for example application/pdf or image/png.

sizeinteger

The size of the stored file in bytes (size_bytes in get_acd_documents).

formatstring

The detected format: pdf, jpeg, png, webp, heif, avif, tiff, bmp, gif, jp2 or jxl.

uploaded_atstring

When the file was stored: ISO 8601, UTC.

replaced_countinteger

How many times the passport was replaced.

previous_linksarray of object

The files this passport replaced, oldest first. Empty for a passport that was never replaced.

ShowHide 3 attributes
linkstring

The public address of a file that was replaced.

uploaded_atstring

When that file was stored.

replaced_atstring

When it was replaced.

sourcestring

How the file arrived: api for an upload through the API.

acd_linksarray of stringnullable

The public addresses of every passport file of the booking, including the ones FX-Port staff added. null when there is none.

acd_amountnumbernullable

The ACD amount of the booking in euros, saved when the set of passports became complete. Informational. null before.

acd_paidboolean

true once FX-Port's team has marked the ACD amount as paid. You cannot set it.

acd_documents_revisioninteger

Increases by one with each upload that stored a file. 0 for a booking without any.

has_changedboolean

true when the airline changed the schedule after ticketing.

new_flight_detailsobjectnullable

The new schedule, when has_changed.

voided_atstringnullable

When the ticket was voided.

refund_amountnumbernullable

The refund of a cancelled Duffel order.

refund_currencystringnullable

Currency of the refund.

refund_methodstringnullable

How the refund was paid: balance.

agent_idstringnullable

Your own agent id, when you sent one.

environmentstring

sandbox or live.

pricingBreakdownobjectnullable

The price of the booking in snake_case. The rate and the ACD details are not here.

ShowHide 7 attributes
supplier_currencystring

Currency of the supplier.

agency_currencystring

Currency of the agency.

base_pricenumber

Base fare.

taxes_and_feesnumber

Taxes and fees.

agency_commissionnumber

Your commission.

final_pricenumber

What the traveler pays.

b2b_pricenumber

What was debited from your balance.

travelerPricingarray of object

The price of each traveler.

balanceOperationsarray of object

The ledger entries of this booking (debits, refunds). Empty in the sandbox.

ShowHide 9 attributes
idstring

Id of the entry.

flight_booking_idstring

The id of the booking.

operationstring

debit, refund ...

amountnumber

The amount.

currencystring

Currency of the amount.

descriptionstring

What the entry is for.

created_atstring

When it was written.

b2b_pricenumber

The booking's b2b_price at that time.

final_pricenumber

The booking's final_price at that time.

apiResponseobject

Only with include_api_response: true: the stored answer of the booking call, with the full passenger list.

PreviousThe Flight offer objectNext The Hotel mini object

ยฉ 2026 FX-Port

TermsPrivacy[email protected]