- Symptom
- 400 invalid_request_error naming the payment_method_types parameter on checkout.sessions.createCode that worked on 2026-08-26.dahlia breaks right after upgrading to stripe-node 23 or another SDK pinned to endiveTypeScript: payment_method_types does not exist in type Checkout.SessionCreateParams
- Cause
- The endive major release removed payment_method_types as a request parameter on Checkout Sessions, and on Payment Intents and Setup Intents too. SDK majors that pin endive, such as stripe-node 23, also drop it from their param types.
- Fix
- Remove payment_method_types. Either let dynamic payment methods from the Dashboard decide, or pass allowed_payment_method_types, which quietly filters out methods that do not fit the currency or amount instead of failing.
- Apply
const session = await stripe.checkout.sessions.create({ mode: 'payment', line_items: [{ price: priceId, quantity: 1 }], allowed_payment_method_types: ['card'], // replaces payment_method_types success_url: 'https://example.com/success', });- Affected
- Stripe API 2026-09-30.endive and later; stripe-node 23.0.0 and other SDK majors pinned to endive, released 2026-09-30
- Sources
Last verified 2026-10-15 · Confirmed by 0 builders