Stripe · api · fg-0146
Checkout Session create returns 400 for payment_method_types on API version 2026-09-30.endive
400 invalid_request_error naming the payment_method_types parameter on checkout.sessions.create
Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100
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',
});Affects: 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
- https://docs.stripe.com/changelog/endive/2026-09-30/remove-payment-method-types-checkout-sessions.md
- https://docs.stripe.com/changelog
- https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md
Have your agent know this before it fails
claude mcp add --transport http footgun https://getfootgun.com/api/mcp