Create Flight Booking Session
Create a new flight-booking checkout session.
Request body
Content DB observation ID for the selected flight
Content DB observation ID for the checkout flight the user saw. When provided, Travel rejects selected fare observations with a different itinerary.
Optional conversational trip context
Optional active limited-time flight negotiation offer to apply to this checkout session.
Fare family display name (e.g. 'First Class', 'Main Cabin'). Stored for checkout display — supplier segments may lack this.
Server-derived provenance for the checkout fare family. Public clients may not provide trusted provenance.
Server-derived canonical fare family ID for the checkout fare family. Public clients may not provide trusted IDs.
Baggage allowance strings for checkout display (e.g. '1 carry-on bag').
Fare feature strings for checkout display (e.g. 'Seat selection included').
SHA-256 hex hash of the wake token this checkout originated from. Write-through attribution only — never the raw token. Absence must not block checkout.
Short deeplink source slug the checkout originated from (e.g. 'wake_limited_time_flight_offer'). Write-through attribution only.
Server-derived first-touch origin of the checkout's trip (the brain trip's origin_kind, e.g. 'google_flights_extension'). The gateway always overwrites this from the trip document — client-supplied values are discarded. Write-through attribution only; unlike src it survives return visits, overlay churn, and wake stomps because it is keyed to the trip, not the client's in-memory deeplink state.
Response
Successful Response
Pricing tier this session is priced at (FAC-942). A 'yes' staying declaration cuts a 'bundle'-tier successor session; the tier never downgrades. Nothing hotel-shaped is persisted on the session — the declaration's 'why' lives in trip_facts.hotel_intent.
Resolved passenger names from traveler_profile_ids in payload
Traveler profile fields the client must collect before payment.
True when the session owner is on the legal-approved allowlist exempt from the 18+ accompanying-adult gate. Clients must skip their traveler-form adult-age check when set; the server-side payment gate applies the same allowlist.
Traveler-identity fields the client may offer for this flight (e.g. KTN, loyalty). Never blocks payment, distinct from required_traveler_fields.
Durable single-use purchase commitment this session belongs to (ENG-24229). None for sessions created before the intent rollout.
Current lifecycle of the session's purchase intent. 'booked' means the commitment was already consumed — clients must render the existing booking instead of a payment surface.
Booking that consumed the purchase intent. May belong to a sibling session of the same commitment.
Changes
No recorded changes to this endpoint across all 1 revision of this API.