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

Have your agent know this before it fails

claude mcp add --transport http footgun https://getfootgun.com/api/mcp