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

Balances

  • BalancesGET
  • Balance historyGET

Bookings

  • Booking historyGET
  • Get a bookingGET

Suppliers

  • SuppliersGET

Objects

  • Account booking

Account · Bookings

Get a booking

Get one booking of your agency, whatever its product: the summary of the history, the stored record and, for flights and hotels, the price breakdown and the balance operations.

GET/api/v1/bookings/{booking_id}

Requires an API key with Read permission; a Read+Write key works too.

The reference is looked up in these fields, in this order, and the first booking found is returned. Flights: booking_id (the record locator), the supplier order id, id. Hotels: booking_id, id. eSIMs: booking_id (FX-...), the supplier order code, the ICCID, id. Transfers: booking_id, id. Without product the products are tried in the order flights, hotels, eSIMs, transfers.

Prefer the internal id (a UUID): record locators are not unique across suppliers. An ICCID matches the original order of the eSIM, not its topups: look a topup up by its booking_id or its id. A reference that does not match the product you ask for is booking_not_found.

curl 'https://api.fx-port.com/api/v1/bookings/FX-1793546602916?product=esims' \
  -H "Authorization: Bearer fxp_test_YOUR_KEY"
Response200
{
  "environment": "sandbox",
  "success": true,
  "data": {
    "product": "esims",
    "id": "639417b4-b103-4ece-bd5d-850315322278",
    "bookingId": "FX-1793546602916",
    "booking_id": "FX-1793546602916",
    "status": "confirmed",
    "environment": "sandbox",
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agentId": null,
    "agent_id": null,
    "currency": "DZD",
    "totalPrice": 468.84,
    "total_price": 468.84,
    "netPrice": 418.6,
    "b2b_price": 418.6,
    "agencyCommission": 50.24,
    "agency_commission": 50.24,
    "providerName": "Airalo",
    "provider_name": "Airalo",
    "supplierId": "airalo",
    "supplier_id": "airalo",
    "createdAt": "2026-11-01T15:23:22.961228+00:00",
    "created_at": "2026-11-01T15:23:22.961228+00:00",
    "updatedAt": "2026-11-01T15:23:22.961228+00:00",
    "updated_at": "2026-11-01T15:23:22.961228+00:00",
    "orderId": "20261101-106852",
    "order_id": "20261101-106852",
    "type": "esim",
    "packageName": "1 GB - 7 days • France",
    "package_name": "1 GB - 7 days • France",
    "iccid": "8900000540463077957",
    "customerEmail": "[email protected]",
    "customer_email": "[email protected]",
    "customer_first_name": "John",
    "customer_last_name": "Smith",
    "customer_phone": "+15555550123",
    "record": {
      "id": "639417b4-b103-4ece-bd5d-850315322278",
      "booking_id": "FX-1793546602916",
      "order_id": "20261101-106852",
      "status": "confirmed",
      "currency": "DZD",
      "total_price": 468.84,
      "agency_commission": 50.24,
      "type": "esim",
      "package_name": "1 GB - 7 days • France",
      "iccid": "8900000540463077957",
      "customer_email": "[email protected]",
      "customer_first_name": "John",
      "customer_last_name": "Smith",
      "customer_phone": "+15555550123",
      "provider_name": "Airalo",
      "supplier_id": "airalo",
      "created_at": "2026-11-01T15:23:22.961228+00:00",
      "updated_at": "2026-11-01T15:23:22.961228+00:00",
      "environment": "sandbox"
    }
  },
  "meta": {
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "environment": "sandbox"
  }
}
Response200
{
  "environment": "sandbox",
  "success": true,
  "data": {
    "product": "flights",
    "id": "711371c3-00aa-4be2-b790-9f0ca2ccfdb7",
    "bookingId": "Y7PAEU",
    "booking_id": "Y7PAEU",
    "status": "confirmed",
    "environment": "sandbox",
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agentId": null,
    "agent_id": null,
    "currency": "DZD",
    "totalPrice": 4930.37,
    "total_price": 4930.37,
    "netPrice": 4925.44,
    "b2b_price": 4925.44,
    "agencyCommission": 4.93,
    "agency_commission": 4.93,
    "providerName": "Amadeus Algeria",
    "provider_name": "Amadeus Algeria",
    "supplierId": "amadeus_aqc_dz_1",
    "supplier_id": "amadeus_aqc_dz_1",
    "createdAt": "2026-11-01T15:26:14.871035+00:00",
    "created_at": "2026-11-01T15:26:14.871035+00:00",
    "updatedAt": "2026-11-01T15:26:23.505356+00:00",
    "updated_at": "2026-11-01T15:26:23.505356+00:00",
    "departureAirport": "ALG",
    "arrivalAirport": "ORN",
    "departureDate": "2026-12-22T19:45:00",
    "arrivalDate": "2026-12-22T20:45:00",
    "ticketNumber": "124-2446977397",
    "requireAcd": false,
    "require_acd": false,
    "voucherUrl": "https://files.example.com/flight-bookings/Y7PAEU-JAMES-SMITH-confirmed.pdf",
    "voucherUrlWithPrice": "https://files.example.com/flight-bookings/Y7PAEU-JAMES-SMITH-confirmed.pdf",
    "voucherUrlNoPrice": "https://files.example.com/flight-bookings/Y7PAEU-JAMES-SMITH-confirmed-no-price.pdf",
    "record": {
      "id": "711371c3-00aa-4be2-b790-9f0ca2ccfdb7",
      "booking_id": "Y7PAEU",
      "status": "confirmed",
      "currency": "DZD",
      "total_price": 4930.37,
      "agency_commission": 4.93,
      "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",
      "ticket_number": "124-2446977397",
      "require_acd": false,
      "bucket_link": "https://files.example.com/flight-bookings/Y7PAEU-JAMES-SMITH-confirmed.pdf",
      "bucket_link_no_price": "https://files.example.com/flight-bookings/Y7PAEU-JAMES-SMITH-confirmed-no-price.pdf",
      "refund_amount": null,
      "refund_currency": null,
      "refund_method": null,
      "paid_at": "2026-11-01T15:26:14.842190+00:00",
      "voided_at": null,
      "created_at": "2026-11-01T15:26:14.871035+00:00",
      "updated_at": "2026-11-01T15:26:23.505356+00:00",
      "environment": "sandbox"
    },
    "pricing": [
      {
        "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"
      }
    ],
    "traveler_pricing": [
      {
        "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": [],
    "balance_operations": []
  },
  "meta": {
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "environment": "sandbox"
  }
}
Response200
{
  "environment": "sandbox",
  "success": true,
  "data": {
    "product": "hotels",
    "id": "34a08cf3-dff6-45c6-bdae-882061aa78f5",
    "bookingId": "HMVXX4ZQ3",
    "booking_id": "HMVXX4ZQ3",
    "status": "refunded",
    "environment": "sandbox",
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agentId": null,
    "agent_id": null,
    "currency": "DZD",
    "totalPrice": 1484.97,
    "total_price": 1484.97,
    "netPrice": 1482,
    "b2b_price": 1482,
    "agencyCommission": 2.97,
    "agency_commission": 2.97,
    "providerName": "ETG - RateHawk",
    "provider_name": "ETG - RateHawk",
    "supplierId": "ratehawk",
    "supplier_id": "ratehawk",
    "createdAt": "2026-11-01T14:22:00.924125+00:00",
    "created_at": "2026-11-01T14:22:00.924125+00:00",
    "updatedAt": "2026-11-01T14:22:32.992144+00:00",
    "updated_at": "2026-11-01T14:22:32.992144+00:00",
    "hotelId": "test_hotel_do_not_book",
    "hotelName": "Test Hotel (Do Not Book) test",
    "checkinDate": "2026-12-01",
    "checkoutDate": "2026-12-04",
    "bookingMode": "standard",
    "voucherUrl": "https://files.example.com/hotel-bookings/HMVXX4ZQ3-Jane-Smith.pdf",
    "voucherUrlWithPrice": "https://files.example.com/hotel-bookings/HMVXX4ZQ3-Jane-Smith.pdf",
    "voucherUrlNoPrice": "https://files.example.com/hotel-bookings/HMVXX4ZQ3-Jane-Smith-no-price.pdf",
    "record": {
      "id": "34a08cf3-dff6-45c6-bdae-882061aa78f5",
      "booking_id": "HMVXX4ZQ3",
      "status": "refunded",
      "currency": "DZD",
      "total_price": 1484.97,
      "agency_commission": 2.97,
      "hotel_id": "test_hotel_do_not_book",
      "hotel_name": "Test Hotel (Do Not Book) test",
      "checkin_date": "2026-12-01",
      "checkout_date": "2026-12-04",
      "booking_mode": "standard",
      "bucket_link": "https://files.example.com/hotel-bookings/HMVXX4ZQ3-Jane-Smith.pdf",
      "bucket_link_no_price": "https://files.example.com/hotel-bookings/HMVXX4ZQ3-Jane-Smith-no-price.pdf",
      "free_cancellation_deadline_at": null,
      "paid_at": null,
      "supplier_id": "ratehawk",
      "created_at": "2026-11-01T14:22:00.924125+00:00",
      "updated_at": "2026-11-01T14:22:32.992144+00:00",
      "environment": "sandbox",
      "refund_amount": 1482,
      "refund_currency": "DZD"
    },
    "pricing": [
      {
        "id": "72db7216-177e-4c5b-bde6-74c5ca3c8db2",
        "created_at": "2026-11-01T14:22:05.162117+00:00",
        "agency_currency": "DZD",
        "total_price": 1484.97,
        "agency_commission": 2.97,
        "environment": "sandbox",
        "b2b_price": 1482
      }
    ],
    "balanceOperations": [],
    "balance_operations": []
  },
  "meta": {
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "environment": "sandbox"
  }
}
Response200
{
  "environment": "sandbox",
  "success": true,
  "data": {
    "product": "transfers",
    "id": "4745c761-0737-421a-aaab-c90f9c0aca8f",
    "bookingId": "VIA-1782555657-QCF",
    "booking_id": "VIA-1782555657-QCF",
    "status": "refunded",
    "environment": "sandbox",
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agentId": "5d6e7f80-91a2-4b3c-8d4e-5f6071829304",
    "agent_id": "5d6e7f80-91a2-4b3c-8d4e-5f6071829304",
    "currency": "DZD",
    "totalPrice": 15124.38,
    "total_price": 15124.38,
    "netPrice": 15002.38,
    "b2b_price": 15002.38,
    "agencyCommission": 122,
    "agency_commission": 122,
    "providerName": "AirportTransfer.com",
    "provider_name": "AirportTransfer.com",
    "supplierId": null,
    "supplier_id": null,
    "createdAt": "2026-06-27T10:20:59.188372+00:00",
    "created_at": "2026-06-27T10:20:59.188372+00:00",
    "updatedAt": "2026-06-27T10:29:28.684+00:00",
    "updated_at": "2026-06-27T10:29:28.684+00:00",
    "arrivalDate": "2026-08-14T16:00:00+00:00",
    "flightNumber": "593",
    "voucherUrl": null,
    "receiptUrl": "https://files.example.com/transfer-bookings/VIA-1782555657-QCF.pdf",
    "record": {
      "id": "4745c761-0737-421a-aaab-c90f9c0aca8f",
      "booking_id": "VIA-1782555657-QCF",
      "status": "refunded",
      "currency": "DZD",
      "total_price": 15124.38,
      "agency_commission": 122,
      "arrival_date": "2026-08-14T16:00:00+00:00",
      "flight_number": "593",
      "provider_name": "AirportTransfer.com",
      "bucket_link": "https://files.example.com/transfer-bookings/VIA-1782555657-QCF.pdf",
      "voucher_link": null,
      "refunded_amount": 15002.38,
      "refunded_currency": "DZD",
      "created_at": "2026-06-27T10:20:59.188372+00:00",
      "updated_at": "2026-06-27T10:29:28.684+00:00",
      "environment": "sandbox"
    }
  },
  "meta": {
    "agencyId": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "agency_id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
    "environment": "sandbox"
  }
}

Request

Path parameters

booking_idstringrequired

The booking reference: the internal id or the public reference of the product (see above).

At most 100 characters.

Query parameters

productstring

Look in one product only, which is faster and avoids a match in another product. Case does not matter. The singular names (flight, hotel, esim, transfer) are read as the plural.

One of all, esims, flights, hotels, transfers. Default all.

Response

200The booking. The keys after updatedAt and in record depend on the product.

successboolean

true when the booking was found.

dataAccountBookingDetail

One booking with its stored record. The summary keys are the ones of the history; record repeats the booking in snake_case.

See the Account booking object

metaobject

Facts about the answer.

ShowHide 3 attributes
agencyIdstring (uuid)deprecated

Legacy name, still accepted. Use agency_id instead.

The id of your agency, resolved from the key. The older name of agency_id: same value, use agency_id.

agency_idstring (uuid)

The id of your agency, resolved from the key. The snake_case twin of agencyId, with the same value: use this name.

environmentstring

The environment of the key that made the call: sandbox for fxp_test_ keys, live for fxp_live_ keys. Present in every JSON body.

One of sandbox, live.

Errors

StatusCodeExample message
400invalid_productproduct must be one of all, esims, flights, hotels, transfers.
400invalid_booking_idbooking_id is not a valid booking reference (received '!').
400agency_id_not_allowedExternal API keys resolve agency_id automatically; do not send agency_id as a query parameter.
404booking_not_foundNo sandbox booking found for 'FX-0000000000000'.
503service_overloadedThe service is temporarily overloaded; retry after the time given in the Retry-After header.

The shape of the error body depends on the endpoint. See Errors for every shape and code.

Related guides

  • Booking detail
PreviousList booking historyNext List suppliers

© 2026 FX-Port

TermsPrivacy[email protected]