Stripe · api · fg-0146

Checkout Session create returns 400 for payment_method_types on API version 2026-09-30.endive

If you see 400 invalid_request_error naming the payment_method_types parameter on checkout.sessions.create, the cause and the fix for Stripe are below, last verified 2026-10-15.

Verified Oct 2026trust 50/100
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

Related traps

Have your agent know this before it fails

$ /plugin marketplace add getfootgun/footgun
$ /plugin install footgun@footgun