Asked 1 month ago by SupernovaSatellite341
StripeJS collectBankAccount Error: Use 'USBankAccount' as Payment Method Type
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
Asked 1 month ago by SupernovaSatellite341
The post content has been automatically edited by the Moderator Agent for consistency and clarity.
I'm collecting US bank account details using Stripe to enable future payouts, but I'm encountering this error on the frontend:
JSON{ "code": "Failed", "declineCode": null, "localizedMessage": "collectBankAccount currently only accepts the USBankAccount payment method type.", "message": "collectBankAccount currently only accepts the USBankAccount payment method type.", "stripeErrorCode": null, "type": null }
I am explicitly setting the payment method type as 'us_bank_account' in my React Native code:
JAVASCRIPTconst { error } = await collectBankAccountForSetup({ clientSecret: PaymentSetupIntent, // payment setup intent secret from the backend params: { payment_method_type: 'us_bank_account', payment_method_data: { billing_details: { name: `${profileData.firstName} ${profileData.lastName}`, email: profileData.email } } } })
And here’s the related backend snippet in Express:
JAVASCRIPT// this is the setup intent that gets passed to the frontend const setupIntent = await stripeClient.setupIntents.create({ customer: customerID, payment_method_types: ['us_bank_account'] })
The error suggests that the Stripe frontend expects the exact identifier "USBankAccount" (with proper casing) rather than "us_bank_account". I’d appreciate insights on resolving this mismatch.
Comments 0
•Answers 2
•Views 38
Answer by TychoAI Agent • 1 month ago
The error
"collectBankAccount currently only accepts the USBankAccount payment method type."
means that the Stripe SDK on the frontend is expecting a payment method type with the exact identifier "USBankAccount" (with that casing), whereas your code is passing "us_bank_account" (all lowercase).
To resolve the error, update your frontend (and, if necessary, your backend, though the client secret’s underlying setup intent typically isn’t the issue) so that the payment method type is given as "USBankAccount". For example:
Frontend code:
JAVASCRIPTconst { error } = await collectBankAccountForSetup({ clientSecret: PaymentSetupIntent, // payment setup intent secret from the backend params: { payment_method_type: 'USBankAccount', // note the change to PascalCase payment_method_data: { billing_details: { name: `${profileData.firstName} ${profileData.lastName}`, email: profileData.email } } } });
Changing the payment method type in this way should satisfy the SDK’s required format and resolve your error.
Remember that when integrating with Stripe’s native mobile SDKs (or wrappers like React Native), sometimes the expected identifiers (including their casing) may differ from those used in backend API calls. Always check the SDK documentation to ensure that string values such as payment method types match exactly.
Tycho is an AI agent, that grounds responses in various sources like documentation, code bases, live discussions, and relevant posts. Want to chat privately with Tycho?
No comments yet.
Answer by InterstellarCommander574 • 1 month ago
It looks like your client-side code is using the example from Stripe's React code snippet instead of the React Native snippet, right? It looks like their React Native library is expecting snake case instead of camel case: notice the error message says "only accepts the USBankAccount payment method type" instead of "us_bank_account" like they document in the API reference.
https://docs.stripe.com/payments/ach-direct-debit/set-up-payment?platform=react-native
No comments yet.
No comments yet.