BankDebitCheckoutOption
Bank debit offered to the buyer for a membership purchase.
Memberships only, deliberately. Bank debit settles days after it is confirmed. On recurring dues that is invisible — the payer is an enrolled member and the money was always going to move on a schedule — which is why every platform that offers a bank rail offers it for dues. On a dated class the same delay means a spot riding on money that hasn't arrived, so one-off session checkout stays card-only.
Present only when the operator has switched bank payments on, the account's country has a rail, and the price clears the configured minimum. The connected account's capability is checked at charge time rather than here — that read costs a Stripe round-trip per rendered product, and the charge-time gate is the authority regardless (it falls back to card silently).
Fields
methodBankDebitMethod!The rail this charge would run on, derived from the connected account's country. Drives the mandate text Stripe's Payment Element renders.
minimumAmountCentsInt!Smallest charge payable by bank debit. The client re-checks the live amount against it, since a discount code moves the amount after this resolves; the server re-checks it again when it creates the subscription.
preselectedBoolean!Whether bank is pre-selected over card. An operator who wants dues off cards — no expiries, no involuntary churn — turns this on.
mandateSetupRequiredBoolean!Whether the buyer has to authorize a mandate before the payment form can mount.
Stripe refuses acss_debit in deferred-intent Elements — the mode the purchase sheet mounts in, where the intent is created on submit — so Canadian pre-authorized debit collects its mandate against a SetupIntent minted up front by createBankDebitMandateSetup, and the resulting mandate is handed back to purchaseProduct as bankDebitMandate. ACH has no such restriction and keeps mounting deferred, so this is false for ACH_DEBIT and true for ACSS_DEBIT.