flight-booking

Release Flight Membership Purchase

Changed on

Hand an unpaid flight + membership checkout back to ordinary payment.

Axel credit never applies inside the combined purchase. When a balance lands after that purchase claimed the session (a code typed in Settings, a goodwill credit granted mid-chat), the site calls this so the SAME session continues on ordinary payment with the credit toggle: travelers, bags, seats and contact stay put. Travel asks Temporal to discard the unpaid options first and refuses (409) once money is in flight; the purchase then simply carries on.

post/flight-booking/sessions/{session_id}/release-membership-purchase

Request

  • Base URL
    https://api.helloaxel.com (the document declares no server; this is the origin it was published from)
  • URL
    https://api.helloaxel.com/flight-booking/sessions/{session_id}/release-membership-purchase
  • Auth
    HTTP bearer

Path parameters

session_idstring uuid required

Request body

reason'axel_credit'

Response

Successful Response

idstring uuid required
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
payloadobject 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
contact_emailstring nullable

Where this booking's tickets and receipt are also sent, when it is not the account email (often the traveler's). Booking-level only: it never changes the account email or its sign-in. Send null or an empty string to clear it.

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

Changes