---
title: "1.3 Get prebook details (optional)"
method: GET
path: "/flights/prebooks/{prebookId}"
tags: ["Flight Bookings"]
---

# 1.3 Get prebook details (optional)

`GET /flights/prebooks/{prebookId}`

## Request

- Base URL: `https://api.liteapi.travel/v3.0`
- URL: `https://api.liteapi.travel/v3.0/flights/prebooks/{prebookId}`
- Auth: API key in header `X-API-Key`

## Overview

Retrieve an existing flight checkout session (prebook) by ID, including any ancillary services already attached and a live catalog of remaining attachable services.

## When to Use

- **Resume checkout** — Reload prebook state after the user navigates away
- **Confirm attached ancillaries** — Show selected seats/bags before final book
- **Reuse payment intent** — Returns the stored Stripe `transactionId` / `secretKey` as-is (GET does not create or refresh a PaymentIntent)
- **Credit balance** — Optionally include a live credit-line snapshot with `includeCreditBalance=true`

## What You Get

- Same core `FlightPrebookData` shape as `POST /flights/prebooks` / attach-services (journey, pricing, payment intent fields, `servicesAttachable`)
- `booking.selectedServices` / `booking.bookedServices` when services were attached
- Live `servicesAttachable` from the provider (not persisted)
- Existing payment fields conserved from create/attach
- Optional `creditLine` when `includeCreditBalance=true` (live remaining credit when the account can cover the prebook price)

## Quick Start

Provide the `prebookId` returned from `POST /flights/prebooks` in the URL path. Optionally pass `includeCreditBalance=true` to include credit-line availability.

## Path parameters

- `prebookId` string, required

## Query parameters

- `includeCreditBalance` boolean

## Response `200`

Prebook retrieved successfully; includes attached services when present and live servicesAttachable catalog

- object
  - `data` object[]: Updated prebook result after attaching services
    - `prebookId` string: Unique prebook identifier
    - `booking` FlightPrebookBooking: Flight checkout booking snapshot returned on prebook create/get/attach-services. Omits booking-only fields (status, paymentStatus, distributor*, ticketLimitTime, cancellation).
      - `bookingId` string: Omitted on prebook responses (set after POST /flights/bookings)
      - `bookingRef` string: FlightHub booking reference (FH-YYM-XXXXXXXX)
      - `status` string: Omitted on prebook responses. Booking lifecycle status is only returned after POST /flights/bookings.
      - `timestamp` string: Booking creation time (UTC)
      - `offerId` string: Offer ID from verify stage
      - `journey` object: Journey details as confirmed by the provider at booking time
        - `journeyKey` string: Unique journey identifier
        - `segments` FlightSegment[]: Flight segments in this booking
          - `arrivalTime` string: Arrival time (ISO 8601)
          - `carrier` object: Marketing and operating carrier details for this segment
            - `marketingCode` string: Marketing carrier IATA code
            - `marketingLogo` string: Marketing carrier logo path/URL
            - `marketingName` string: Marketing carrier name
            - `operatingCode` string: Operating carrier IATA code
            - `operatingLogo` string: Operating carrier logo path/URL
            - `operatingName` string: Operating carrier name
          - `departureTime` string: Departure time (ISO 8601)
          - `destinationCode` string: Destination IATA code
          - `direction` string: OUTBOUND or INBOUND
          - `duration` object: Flight duration in ISO 8601 and minutes
            - `iso8601` string: Duration in ISO 8601 format (e.g. PT7H45M)
            - `minutes` integer: Duration in minutes
          - `flight` object: Marketing and operating flight numbers
            - `marketingNumber` string: Flight number as marketed to passengers
            - `operatingNumber` string: Flight number as operated by the carrier
          - `originCode` string: Origin IATA code
          - `originName` string: Full name of the origin airport
          - `destinationName` string: Full name of the destination airport
          - `segmentKey` string: Unique identifier for this segment, used to link with offers, fares, and amenities
          - `stopCount` integer: Number of en-route (technical) stops inside this segment. 0 means the segment is genuinely non-stop. A technical stop keeps the same flight number and aircraft (no plane change, no bag re-check) but adds ground time, so a one-segment journey can still have stops.
          - `stops` FlightSegmentStop[]: En-route (technical) stops inside this segment, in travel order. Omitted when stopCount is 0.
            - `airportCode` string: IATA code of the airport where the aircraft lands for the technical stop
            - `airportName` string: Full name of the stop airport
            - `arrivalTime` string: Local arrival time at the stop airport (ISO 8601)
            - `departureTime` string: Local departure time from the stop airport (ISO 8601)
            - `duration` object: Time spent on the ground at the stop airport
              - …
        - `price` FlightPrice: Full price breakdown including supplier base fare, taxes and fees, and per-passenger amounts. base, taxes and fees are always the supplier values and never include the partner markup; only total carries it, so total may exceed base + taxes + fees. The markup amount itself is not exposed.
          - `base` number: Base fare amount as returned by the supplier (before taxes and fees). Never includes the partner markup.
          - `currency` string: ISO 4217 currency code
          - `fees` number: Supplier service fees and surcharges plus, when the account passes them to the customer, the LiteAPI platform fees itemised in platformFees. Never includes the partner markup.
          - `taxes` number: Total airline / government taxes applied to the fare, as returned by the supplier. Never includes the partner markup.
          - `total` number: Total selling price, including the partner markup and, when present, platformFees.total. Because base and taxes are supplier values, total may exceed base + taxes + fees when a markup is configured.
          - `platformFees` object: LiteAPI platform fees included in total and fees. Present only when the account passes the fees to the customer. Booking-level amounts (not distributed over perPassenger).
            - `merchantOfRecord` number: Merchant-of-record fee: percentage of the full transaction value, charged when LiteAPI collects the payment (Payment SDK / third-party). Removed at book time for credit-line and CREDIT_CARD settlements.
            - `ticketing` number: Ticketing fee: percentage of the net fare with a floor and ceiling, per booking or per passenger depending on the account configuration. The rate may depend on the operating airlines. Applies to every payment method.
            - `ancillary` number: Ancillary fee on attached seats and bags: percentage of each item's net price with a per-item floor and ceiling. Present on prebooks / bookings once services are attached. Applies to every payment method.
            - `total` number: merchantOfRecord + ticketing + ancillary
          - `perPassenger` object: Price breakdown per passenger type
            - `adult` object: Price breakdown for each adult passenger
              - …
            - `child` object: Price breakdown for each child passenger
              - …
            - `infant` object: Price breakdown for each infant passenger
              - …
        - `pricing` FlightOfferPricing: Full offer pricing with per-passenger breakdown
          - `display` FlightPrice: Full price breakdown including supplier base fare, taxes and fees, and per-passenger amounts. base, taxes and fees are always the supplier values and never include the partner markup; only total carries it, so total may exceed base + taxes + fees. The markup amount itself is not exposed.
            - `base` number: Base fare amount as returned by the supplier (before taxes and fees). Never includes the partner markup.
            - `currency` string: ISO 4217 currency code
            - `fees` number: Supplier service fees and surcharges plus, when the account passes them to the customer, the LiteAPI platform fees itemised in platformFees. Never includes the partner markup.
            - `taxes` number: Total airline / government taxes applied to the fare, as returned by the supplier. Never includes the partner markup.
            - `total` number: Total selling price, including the partner markup and, when present, platformFees.total. Because base and taxes are supplier values, total may exceed base + taxes + fees when a markup is configured.
            - `platformFees` object: LiteAPI platform fees included in total and fees. Present only when the account passes the fees to the customer. Booking-level amounts (not distributed over perPassenger).
              - …
            - `perPassenger` object: Price breakdown per passenger type
              - …
          - `converted` boolean: True if FX currency conversion was applied
        - `baggage` object: Fare baggage allowance on the booked journey (included and paid options; aligns with provider FlattenedJourney.baggage)
          - `hasCarryOnBag` boolean: Whether carry-on bag is included
          - `hasCheckedBag` boolean: Whether checked bag is included. Equipment (bagType equipment) does not count as a checked bag
          - `included` object[]: Baggage included in the fare
            - `bagType` 'cabin' | 'checked' | 'personal' | 'equipment': Type of bag: cabin (carry-on), checked, personal (under-seat / personal item), or equipment (sports equipment or musical instrument)
            - `description` string: Human-readable baggage allowance description from the carrier
            - `passengerType` 'ADT' | 'CHD' | 'INF' | 'ALL': Passenger type this allowance applies to: ADT (adult), CHD (child), INF (infant), or ALL
            - `pieces` integer, nullable: Number of bag pieces for this option. Null when the provider states no piece limit (weight-only allowance); never means zero bags
            - `pricing` FlightItemPricing: Pricing for an ancillary item (e.g. baggage)
              - …
            - `size` string: Bag size / dimensions when published by the carrier (e.g. 55x40x20)
            - `unit` string: Weight unit for the allowance (e.g. kg)
            - `weightKg` number, nullable: Maximum weight per bag in kilograms. Null when the provider states no weight limit
          - `paid` object[]: Available paid baggage options
            - `bagType` 'cabin' | 'checked' | 'personal' | 'equipment': Type of bag: cabin (carry-on), checked, personal (under-seat / personal item), or equipment (sports equipment or musical instrument)
            - `description` string: Human-readable baggage allowance description from the carrier
            - `passengerType` 'ADT' | 'CHD' | 'INF' | 'ALL': Passenger type this allowance applies to: ADT (adult), CHD (child), INF (infant), or ALL
            - `pieces` integer, nullable: Number of bag pieces for this option. Null when the provider states no piece limit (weight-only allowance); never means zero bags
            - `pricing` FlightItemPricing: Pricing for an ancillary item (e.g. baggage)
              - …
            - `size` string: Bag size / dimensions when published by the carrier (e.g. 55x40x20)
            - `unit` string: Weight unit for the allowance (e.g. kg)
            - `weightKg` number, nullable: Maximum weight per bag in kilograms. Null when the provider states no weight limit
        - `terms` object, nullable: Booking terms from the provider (change/refund rules and published fees)
          - `changeable` boolean: True if the fare allows changes (rebooking)
          - `refundable` boolean: True if the fare is refundable
          - `summary` object[]: Human-readable policy messages with severity levels
            - `level` string: Severity of the remark: info, warning, or danger
            - `message` string: Policy message text (e.g. Non-refundable, Changes allowed with fee)
          - `changeFee` object, nullable: Change fee details; null when the provider does not publish a fee
            - `pricing` object, nullable: Fee pricing; null when only a percentage is available
              - …
            - `percent` number, nullable: Fee as a percentage of the base fare (e.g. 100 = full penalty). May appear without pricing.
            - `applicability` 'anytime' | 'noShow' | 'beforeDeparture' | 'afterDeparture': When the fee applies
            - `label` string: Human-readable fee description (e.g. 'Change fee (before departure)')
          - `refundFee` object, nullable: Refund/cancellation fee details; null when the provider does not publish a fee
            - `pricing` object, nullable: Fee pricing; null when only a percentage is available
              - …
            - `percent` number, nullable: Fee as a percentage of the base fare (e.g. 100 = full penalty). May appear without pricing.
            - `applicability` 'anytime' | 'noShow' | 'beforeDeparture' | 'afterDeparture': When the fee applies
            - `label` string: Human-readable fee description (e.g. 'Change fee (before departure)')
          - `hasChangeFee` boolean: True when the provider signalled that a change fee applies to the fare, even when the actual amount is not published in `changeFee`. Lets clients render a "change fee applies — amount on request" remark for fares where the rule is known but the monetary amount is not exposed (common for LCC content distributed via GDS, e.g. U2 / easyJet via Sabre). When `false` or absent, no change fee is known to apply.
          - `hasRefundFee` boolean: True when the provider signalled that a refund/cancellation fee applies to the fare, even when the actual amount is not published in `refundFee`. Lets clients render a "cancellation fee applies — amount on request" remark for fares where the rule is known but the monetary amount is not exposed. When `false` or absent, no refund fee is known to apply.
        - `cabinClass` 'ECONOMY' | 'PREMIUM_ECONOMY' | 'BUSINESS' | 'FIRST' | 'MIXED': Normalized cabin class for the whole journey, derived from segmentFares[].cabin (falls back to fare.family). MIXED when segments are booked in different cabins. Omitted when the cabin is unknown.
        - `fare` object: Fare class information
          - `family` string: Fare family name (e.g. Economy, Business, First)
          - `mixedCabin` boolean: True if outbound and inbound legs are in different cabin classes
          - `mixedFareFamily` boolean: True when legs are sold under different fare families/brands (e.g. Plus outbound + Basic inbound) combined into one fare. `family` reflects the first leg only; baggage and terms reflect the most restrictive leg.
          - `seatsRemaining` integer: Number of seats remaining at this fare
        - `segmentFares` object[]: Per-segment fare details
          - `bookingCode` string: Booking/RBD class code (e.g. W, Y, J)
          - `cabin` string: Cabin class (e.g. Economy, Business, First)
          - `fareBasisCode` string: Fare basis code used for pricing and rules
          - `fareFamily` string: Commercial fare family name
          - `seatsRemaining` integer: Number of seats remaining at this fare
          - `segmentKey` string: Links this fare to the corresponding segment
      - `passengers` object[]: Passenger details as submitted and confirmed by the provider
        - `type` string: Passenger type code (ADT, CHD, INF)
        - `title` string: Passenger title (Mr, Mrs, Ms, etc.)
        - `firstName` string: Passenger first name as on travel document
        - `lastName` string: Passenger last name as on travel document
        - `middleName` string: Passenger middle name
        - `dateOfBirth` string: Date of birth (YYYY-MM-DD)
        - `birthday` string, date: Date of birth (YYYY-MM-DD)
        - `gender` string: Passenger gender: M or F
        - `nationality` string: Passenger nationality as ISO country code
        - `passengerType` integer: 0=Adult, 1=Child, 2=Infant
        - `documentType` string: Type of travel document (e.g. passport, id_card)
        - `documentNumber` string: Travel document number
        - `documentIssueCountry` string: ISO country code of the document issuing country
        - `documentExpiry` string: Travel document expiry date (YYYY-MM-DD)
      - `contact` object: Primary contact person for the booking
        - `firstName` string: Contact first name
        - `lastName` string: Contact last name
        - `middleName` string: Contact middle name
        - `email` string: Contact email address for booking confirmation
        - `phoneCountryCode` string: Phone country code without + (e.g. 1 for US, 33 for France)
        - `phoneNumber` string: Phone number without country code
      - `order` object: Order and provider confirmation details
        - `reference` object: Provider and airline reference identifiers
          - `orderId` string: Booking order / PNR reference ID
          - `airlineBookings` object[]: Per-airline booking references and PNR codes
            - `airlineCode` string: Airline IATA code
            - `airlineName` string: Airline name
            - `airlinePnr` string: Airline-specific PNR/locator code
            - `pnr` string: PNR locator code for this airline
        - `currency` string: ISO 4217 currency code for this order
        - `status` string: Order status from the provider (e.g. ticketed, created)
        - `price` object: Order price as confirmed by the provider
          - `currency` string: ISO 4217 currency code
          - `total` number: Total order price
        - `ticketLimitTime` string: Deadline for ticket issuance (UTC)
        - `timestamp` string: UTC timestamp when the order was created
      - `airlineLocators` object[]: Airline-specific PNR/locator codes
        - `airlineCode` string: Airline IATA code
        - `airlinePnr` string: Airline-specific PNR/locator code
      - `pricing` object: Billing breakdown for this booking including base fare, any ancillary services and, when passed to the customer, the LiteAPI platform fees
        - `subtotal` number: Subtotal before ancillary services
        - `servicesAmount` number: Total cost of attached ancillary services (seats, baggage, etc.)
        - `seatsAmount` number: Total cost of seat selections
        - `baggageAmount` number: Total cost of additional baggage
        - `totalAmount` number: Grand total charged to the customer: subtotal + services, plus the LiteAPI platform fees when feesIncludedInTotal is true
        - `merchantOfRecordFee` number: LiteAPI merchant-of-record fee included in totalAmount. Only present when feesIncludedInTotal is true and LiteAPI collects the payment (Payment SDK / third-party); dropped at book time when paying with a credit line or your own card (CREDIT / CREDIT_CARD).
        - `ticketingFee` number: LiteAPI ticketing fee included in totalAmount (percentage of the net fare with a floor and ceiling). Only present when feesIncludedInTotal is true. Applies to every payment method.
        - `ancillaryFee` number: LiteAPI ancillary fee included in totalAmount (percentage of each attached seat / bag net price with a per-item floor and ceiling). Only present when feesIncludedInTotal is true and services are attached. Applies to every payment method.
        - `feesIncludedInTotal` boolean: True when the LiteAPI platform fees are added on top of the price and included in totalAmount. Omitted when the account absorbs the fees (they are then deducted from the account commission and not shown).
        - `currency` string: ISO 4217 currency code
      - `payment` object: Payment amounts captured for this booking
        - `amount` number: Amount captured for payment
        - `currency` string: ISO 4217 currency code of the payment
      - `selectedServices` SelectedService[]: Ancillary services attached to this booking (seats, baggage, etc.)
        - `passengerIndex` integer, required: Zero-based index of the passenger this service is for (matches position in passengers array)
        - `serviceId` string, required: Service identifier from servicesAttachable.groups[].services[].serviceId
        - `quantity` integer: Number of units of this service to attach
      - `bookedServices` FlightBookedService[]: Detailed view of the ancillary services confirmed by the provider for this booking, including pricing and per-passenger / per-segment metadata. Present once /services has been called.
        - `serviceId` string, required: Encoded service identifier (carries provider serviceId, post-margin price, currency, category)
        - `name` string: Human-readable service name (e.g. 'Seat 1A')
        - `category` string: Service category (e.g. 'seat', 'baggage')
        - `passengerType` string: Applicable passenger type (ALL, ADT, CHD, INF)
        - `passengerIndex` integer: Index of the passenger this service applies to (0-based; matches the passengers[] array)
        - `segmentKey` string: The flight segment this service applies to (matches journey.segments[].segmentKey)
        - `quantity` integer: Number of units booked
        - `createdAt` string, date-time: UTC timestamp when the provider attached the service
        - `phase` string: When the service joined the booking: 'pre_booking', 'post_booking', or 'post_ticketing' (sold on the ticketed booking with POST /flights/bookings/{bookingId}/services/confirm)
        - `status` string: Provider status of this service: 'pending', 'requested', 'confirmed', 'failed', 'dropped', 'replaced' or 'cancelled'
        - `pricing` FlightItemPricing, required: Pricing for an ancillary item (e.g. baggage)
          - `display` FlightMoneyAmount: A monetary amount with currency
            - `amount` number: Monetary amount
            - `currency` string: ISO 4217 currency code
          - `converted` boolean: True if FX currency conversion was applied
        - `metadata` object: Category-specific metadata. Contains exactly one of `seat` (when category is 'seat') or `baggage` (when category is 'baggage').
          - `seat` object: Seat details — present only when category is 'seat'
            - `available` boolean: Whether this seat is currently available
            - `position` string: Physical position (window, middle, aisle)
            - `seatColumn` string: Column letter (e.g. A, B, C)
            - `seatNumber` string: Full seat label (e.g. 1A)
            - `seatRow` integer: Row number
            - `seatType` string: Seat class/type (standard, extra_legroom, exit_row, ...)
          - `baggage` object: Baggage details — present only when category is 'baggage'
            - `bagType` string: Type of bag (e.g. checked, cabin, equipment). equipment is sports equipment or a musical instrument (skis, bike, golf bag...), with its own maxQuantity / maxBagsAllowed
            - `pieces` integer, nullable: Number of bag pieces. Null for an included allowance with no piece limit (weight-only); never means zero bags
            - `weightKg` number, nullable: Weight allowance in kilograms. Null when the provider states no weight limit
            - `maxQuantity` integer: Maximum quantity of this bag option per passenger per segment. Omitted when unknown.
            - `maxBagsAllowed` integer: Highest bag position covered by the bag options of this bagType (e.g. 5 for "4th to 5th bag"). A position, not a count of bags to buy: position 1 may be the fare's free bag. Omitted when unknown.
        - `emdNumber` string, nullable: Airline document (EMD) number issued for a service sold after ticketing. Null until the provider reports it on a later read of the reservation.
      - `settings` object: Booking settings
      - `paymentInput` object: Echo of payment submitted when creating the booking; may include additional provider-specific fields
        - `method` 'TRANSACTION_ID' | 'CREDIT': How the booking was paid: Stripe (`TRANSACTION_ID`) or credit line (`CREDIT`)
        - `transactionId` string: Stripe transaction id when `method` is `TRANSACTION_ID`
    - `servicesAttachable` object: Remaining ancillary services available to attach
      - `metadata` FlightServicesMetadata: Catalog-level rules returned next to the service groups
        - `ancillaryExclusions` object[]: Provider selection rules over services (today the Travelfusion bag options). A selection breaking a rule is refused with 400 44019 and details.conflicts.
          - `type` string, required: selectOne: pick at most one of serviceIds; mutuallyExclusive: the services cannot be combined
          - `scope` string: What the rule applies to
          - `reason` string
          - `serviceIds` string[], required: Encoded serviceIds from groups[].services[] covered by the rule
      - `expiresAt` string: Expiry time for attaching services (ISO 8601)
      - `groups` object[]: Remaining available ancillary services after attachment
        - `available` boolean: Whether any services in this group are currently available
        - `category` string: Service category: seat, baggage or, when enabled for the provider, meal, lounge, pet, wifi_entertainment, priority, assistance (sold at the provider price, item code in metadata.<category>.subCode)
        - `label` string: Human-readable group label
        - `services` object[]: Available services in this group
          - `serviceId` string: Unique service identifier — use this in selectedServices when attaching
          - `name` string: Human-readable service name (e.g. Seat 7A)
          - `category` string: Service category: seat, baggage or, when enabled for the provider, meal, lounge, pet, wifi_entertainment, priority, assistance (sold at the provider price, item code in metadata.<category>.subCode)
          - `passengerType` string: Applicable passenger type (ALL, ADT, CHD, INF)
          - `segmentKey` string: The segment this service applies to
          - `pricing` FlightItemPricing: Pricing for an ancillary item (e.g. baggage)
            - `display` FlightMoneyAmount: A monetary amount with currency
              - …
            - `converted` boolean: True if FX currency conversion was applied
          - `metadata` object: Category-specific metadata. Contains exactly one of `seat` (when category is `seat`) or `baggage` (when category is `baggage`).
            - `seat` object: Seat details — present only when the service category is `seat`
              - …
            - `baggage` object: Baggage details — present only when the service category is `baggage`
              - …
    - `price` number: Updated total price including attached services
    - `currency` string: ISO 4217 currency code for the updated price
    - `transactionId` string: New Stripe transaction ID reflecting the updated price — use this (not the prebook transactionId) when calling /bookings
    - `secretKey` string: New Stripe payment intent secret key for SDK confirmation
    - `voucherCode` string: Represents the unique code used to redeem a voucher during the transaction.
    - `voucherTotalAmount` number: Specifies the total monetary value or discount amount provided by the voucher, in `currency`.
    - `sellingPriceToUser` number: Amount the customer pays after the voucher discount (`price` minus `voucherTotalAmount`).
    - `creditLine` object, nullable: Live credit-line snapshot when `includeCreditBalance=true` and the enabled credit line can cover the prebook price. Omitted otherwise.
      - `remainingCredit` number: Remaining credit available on the credit line (USD)
      - `currency` string: Currency of remainingCredit

## Other responses

- `400`: Invalid prebookId
- `401`: Unauthorized — missing or invalid API key
- `404`: Prebook not found or not owned by the authenticated user
- `500`: Internal server error while loading the prebook

---

[API](https://skmtc.dev/liteapi/apis/api-flights.md) - [All operations](https://skmtc.dev/liteapi/apis/api-flights/llms.txt) - [OpenAPI document](https://skmtc.dev/liteapi/apis/api-flights/revisions/7ccb4b3a8bde?raw)
