Pay Flight Booking Session
Charge and create a flight booking + operator task.
Path parameters
Request body
Stripe payment method ID (pm_xxx). If absent, returns client_secret for inline card entry.
Axel credit to apply (cents). None/omitted=no credit, >0=apply this amount.
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.
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.
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.
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