flight-booking

Pay Flight Booking Session

Charge and create a flight booking + operator task.

post/flight-booking/sessions/{session_id}/pay

Path parameters

session_idstring uuid required

Request body

checkout_ipstring nullable
browser_languagesstring nullable
browser_timezonestring nullable
payment_method_idstring nullable

Stripe payment method ID (pm_xxx). If absent, returns client_secret for inline card entry.

credit_amount_centsinteger nullable

Axel credit to apply (cents). None/omitted=no credit, >0=apply this amount.

payment_method_typesstring[] nullable

How the deferred Stripe Elements group was configured, e.g. ['card'] (inline pay only). The PaymentIntent is created to match — Stripe rejects confirm on mismatch. Omitted = automatic payment methods.

displayed_total_centsinteger nullable

The pre-credit total the page showed at tap time, in cents. Compared with the server's pre-credit charge total; a difference refuses the pay (409 displayed_total_mismatch). Older builds send only this.

displayed_charge_centsinteger nullable

The number on the Pay button at tap time, in cents: the total AFTER the credit the page expected to apply. The customer's consent to an amount the server served: it never changes the charge, but when it differs from the amount this request would take after credit (a balance that shrank or vanished, a fare or hold that moved) nothing is charged and /pay answers 409 displayed_total_mismatch with every number (Sep 4 2026), after logging fare_hold_display_charge_mismatch and reporting to Sentry. Omitted: charged as computed.

displayed_credit_centsinteger nullable

The Axel credit the page expected to apply, in cents, so a refusal can say how the credit actually applied differed. Observed only.

Response

Successful Response

session_idstring uuid required
booking_idstring nullable
reference_codestring nullable
operator_task_idstring uuid nullable
payment_intent_idstring required
charged_amount_centsinteger required
currencystring required
status'active' | 'awaiting_payment' | 'processing' | 'completed' | 'failed' | 'abandoned' | 'manual_recovery_required' required
client_secretstring nullable
credit_applied_centsinteger
authorized_amount_centsinteger nullable
payment_statusstring nullable

Changes