user_idstring uuid required
observation_idstring uuid required
checkout_step'info' | 'ancillaries' | 'payment' | 'processing' | 'confirmed' | 'failed' required
status'active' | 'awaiting_payment' | 'processing' | 'completed' | 'failed' | 'abandoned' | 'manual_recovery_required' required
fare_family_namestring nullable required
fare_family_sourcestring nullable
fare_family_idstring nullable
booking_idstring nullable required
operator_task_idstring uuid nullable required
expires_atstring date-time required
payment_method_idstring nullable required
stripe_customer_idstring nullable required
payment_intent_idstring nullable required
charged_amount_centsinteger nullable required
currencystring nullable required
payment_statusstring nullable required
failure_reasonstring nullable required
idempotency_keystring nullable required
discount_tier'flight_only' | 'bundle'
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.
traveler_namesstring[]
Resolved passenger names from traveler_profile_ids in payload
required_traveler_fieldsTravelerField[]
Traveler profile fields the client must collect before payment.
adult_gate_exemptboolean
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.
optional_traveler_fieldsTravelerField[]
Traveler-identity fields the client may offer for this flight (e.g. KTN, loyalty). Never blocks payment, distinct from required_traveler_fields.
purchase_intent_idstring uuid nullable
Durable single-use purchase commitment this session belongs to (ENG-24229). None for sessions created before the intent rollout.
purchase_intent_status'open' | 'committing' | 'booked' nullable
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.
purchase_intent_booking_idstring nullable
Booking that consumed the purchase intent. May belong to a sibling session of the same commitment.
created_atstring date-time required
updated_atstring date-time required