#chung-yi_best-practices
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1448681779790610585
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
btw we only enabled bank transfer in test mode, not in production yet.
hi there, are you using Payment Intents with the Payment Element? if so, can you send me the ID of one where you expected bank transfer to show up?
noice
No. We use the Payment Element without an intent approach.
hello denton and Chung-Yi
@timber wedge this isn't your thread, please leave and create a new one using the guidelines in #help
what
@lavish rover got it, can you share the code you're using to initialize the payment element?
yes, give me one moment.
const options: StripeElementsOptions = {
mode: "payment",
appearance: {
// ...
},
amount: totalForPayment.minor,
currency: totalForPayment.currencyCode.toLowerCase(),
}
return (
<Elements stripe={stripe} options={options}>
<PaymentFormContent order={orderData} me={meData} />
</Elements>
)
PaymentFormContent is our component that wraps PaymentElement. and the options are
const paymentElementOptions: StripePaymentElementOptions = {
layout: {
type: "accordion",
spacedAccordionItems: true,
defaultCollapsed: true,
radios: false,
},
business: { name: "..." },
}
thank you! if you add the following to your stripe options, does bank transfer appear?
payment_method_types: ["customer_balance"],
payment_method_options: {
customer_balance: {
bank_transfer: {
type: "us_bank_transfer"
},
funding_type: "bank_transfer"
}
}
trying...
ohhh it shows up now!
hmm does specifying payment_method_types basically disable dynamic payment method from the stripe dashboard?
yes it will. I'm also seeing that dynamic payment methods won't show bank transfer on my test integration, which is interesting. let me do some digging to see if this is expected, one moment
thank you!! appreciate it.
and just to make sure this is what i'd expect to see it appear in payment element.
yes, that is what you should expect. can you double check for me that you have bank transfers turned on in your dashboard payment method settings? https://dashboard.stripe.com/settings/payment_methods
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
i have that turned on in test mode (and it's what I'm testing against locally), but not in live mode.
It seems to require me to do some id verification when I tried to turn it on in live mode. could that be required?
ok, I found the reason. bank transfer payments require an association with a Customer. this cannot be provided with the deferred intent flow, so the Payment Element automatically filters bank transfer out as a payment method
so unfortunately this isn't compatible with both the deferred intent flow and dynamic payment methods. I'm going to talk to our internal teams about documenting this properly, as it's fairly confusing
interesting. but would using payment_method_types with deferred intent flow (like the screenshot above) work?
I'm trying that out now, one moment
thank you!
yes, it will work as long as you provide a customer ID when you eventually create the Payment Intent
thanks! we are migrating to deferred intent flow + dynamic payment methods, without knowing the limitation. this is good to know. if you can help me verify my understanding of the options:
- deferred intent +
payment_method_types: provide a customer ID when we eventually create the Payment/Setup Intent - deferred intent + dynamic payment methods: we need a customer. Does it mean we just need to provide the
customerSessionClientSecretin the option? https://docs.stripe.com/js/elements_object/create_without_intent#stripe_elements_no_intent-options-customerSessionClientSecret.
unfortunately no, customerSessionClientSecret is used for retrieving saved payment methods on the customer. it won't enable Bank Transfer payments to work with a deferred intent + dynamic payment methods
deferred intent flow + dynamic payment methods with Bank Transfer just isn't supported at the moment, currently. I will be asking our internal teams to update our documentation to make this more clear in the future
got it. that's a bummer.
thank you for helping improve the documentation!
Also, I can't find the customer_balance payment type and options in the js doc. Is it documented somewhere?
providing the payment type on elements options falls under the documentation here: https://docs.stripe.com/js/elements_object/create_without_intent#stripe_elements_no_intent-options-paymentMethodTypes
for the options, I just checked and it's actually not necessary to provide for the elements options, just in the resulting payment intent
thank you! yeah, I can't easily find the reference of customer_balance type. So it's the payment method type for bank transfer, right?
Hi there ๐ jumping in as my teammate needs to step away soon. Yup, customer_balance = Bank Transfers
thank you! as I couldn't find the reference in https://docs.stripe.com/payments/bank-transfers.
I'd like to test bank transfer payment end-to-end fully in test mode. Would that be doable?
Yup
Well, you have to fake the part about the customer adding funds, since there isn't a real customer or bank account to use when testing. But the instructions for that part are in the doc you just referenced.
Sounds good! Thank you!
Final question: we previously integrated ACH debit (with instant verification), and only realized in real world, banks are not really investing in that side of products. The feature ended up feeling not very reliable. Customers ran into many different issues, likely outside of Stripe. Curious if there would be real-world issues we'll be running into with Bank Transfer that you guys are aware of since the launch of the feature.
That's not something my teammates and I have much exposure to, since we focus more on the integration side of things. The only things coming to mind that I've heard of, are what I would consider "typical" bank wire issues. Like the customer sending you the wrong amount, or sending it to the wrong account.