v1.11.0 - Every Stripe payment method follows the platform's future-use policy #
Every Stripe payment form in the SDK now declares the future-use setting the billing API reports for the session, and the card-setup futureUse request field is deprecated.
08 Oct 2026
Every payment taken through Stripe is now set up for future use as a platform rule. The billing API decides the setting for every payment and setup, and the SDK declares exactly what the billing API reports, so the payment form and the payment always agree. Previously each part of the SDK chose its own setting: checkout wallets and PayPal always declared off-session use, a few alternative methods did too, and the payment-method setup component declared nothing.
What changed
- One rule for every Stripe payment form. Checkout Apple Pay and Google Pay (for payments and for free trials), alternative methods such as iDEAL or SEPA Direct Debit, Stripe-rendered PayPal and the React payment-method setup component all take their future-use setting from the session read. When the billing API reports
futureUse, every form declares exactly that value to Stripe. - Methods that can't be saved for reuse are explicit. When the billing API lists a method in
futureUseUnsupported, that method's form declares no future use and the method stays payable for a one-off payment. - Older billing APIs behave exactly as before. When the session read has no
futureUse, every form keeps its previous setting. - Saved methods are not set up again. Paying with a saved method, auto-confirm methods such as Cash App Pay, and the SDK's payment-intent requests carry no future-use setting.
@flopay/jssession reads carry the policy. Purchase and setup reads now includefutureUse(when it is'on_session'or'off_session') andfutureUseUnsupported(entries without a stringpaymentMethodTypeandreasonare dropped) exactly as the billing API returns them.
Deprecations
CreateCardSetupSessionRequest.futureUseis deprecated. The billing API now always sets up'off_session'and ignores this value. It is still accepted, so existing requests keep working; leave it out of new code.
Integration notes
No change is required. The setting comes from the billing API; your integration never chooses one.
@flopay/shared adds CheckoutSession.futureUse (CardSetupFutureUse, reported on purchase and setup sessions) and CheckoutSession.futureUseUnsupported (FutureUseUnsupportedMethod[]), the FutureUseUnsupportedMethod, FutureUseSessionFields and FutureUseSurface types, and resolveSetupFutureUsage, the helper every Stripe payment form in the SDK uses to read the setting. Existing code that reads CheckoutSession needs no change.