#Chung-Yi - ACH
1 messages ยท Page 1 of 1 (latest)
Hi! One min for me to explain my question...
We're implementing the bank account balance check in our checkout flow. According to the doc, it's recommended to do that after stripe.collectBankAccountForSetup and before stripe.confirmUsBankAccountSetup. https://stripe.com/docs/payments/ach-debit/set-up-payment?platform=web#access-data-on-a-financial-connections-bank-account
However, we're using Payment Element, in which we're letting it pop up the modal directly to collect/verify bank account, and at the end we just call stripe.confirmSetup to finish the setup.
It seems that the payment method will not be attached until stripe.confirmSetup is finished, and at that point we already miss the opportunity to check the balance.
Can you help us clarify how we can perform balance check using Payment Element, before confirming a setup intent? Thank you!
I haven't built out this flow yet. Let me do some research
thank you!
So at that point you do not have a Financial Connections account ID? E.g. fca_XXXXXX
yeah I assume the financial connections account is included in the payment method, which is not attached to the setup intent, until we call stripe.confirmSetup.
but we'd like to perform balance check before confirming.
Hmmmm...
I"m not sure. This is a pretty new process. Perhaps my colleague @golden raven has some more insight. I need to step away.
thank you for checking! ๐
Hi there ๐ please bear with me a moment while I catch up on the context of this thread.
thank you!
Just to make sure I understand, you're using the Payment Element to handle the Setup Intent process for an ACH Direct Debit payment method?
Yes. Exactly.
If I understand correctly, the doc linked above was not for Payment Element but for custom payment form. And, with Payment Element, we are not sure how to get the account balance before confirming the setup intent.
Apologies, this is a newer flow so I don't have a ton of experience with it, but looking at the documentation there is one thing that is standing out to me. The pieces that refer to checking the balance seem to say to do so before confirming a Payment Intent (rather than a Setup Intent).
So the way I believe this is supposed to happen is:
- Create, process, and confirm a Setup Intent so you have a resulting Payment Method.
- Check the balance on thew newly created Payment Method.
- If the balance is enough to cover the payment that you're planning to process, then create, process, confirm a Payment Intent for that.
This would be less ideal because users would then need to confirm multiple bank accounts which can trigger multiple ACH mandate confirmation email, for example.
I think I have made it work with setup intent previously, i.e. checking account balance before confirming, with the stripe.collectBankAccountForSetup and stripe.confirmUsBankAccountSetup flows on a custom form.
But we can't find similar documentation for Payment Element.
So I wonder if the payment intent mentioned in the doc was a typo or something.
Let me quickly verify and test my assumption!
Looking further down through the doc that you referenced, Step 8 is about processing a payment with the bank account information collected from the previous Setup Intent, and it says that the customer won't need to be prompted for their bank account again.
OK this the gist to get the account balance before confirming a setup intent, with the 2 functions. I think our question is how can we do that with Payment Element. https://gist.github.com/starsirius/5bae1b54b0dece84df1d4ef0fcb5bf7e#file-account_balance_check_before_confirming_setup_intent-html-L46-L47
Perhaps we missed something when integrating with Payment Element?
Looking further down through the doc that you referenced, Step 8 is about processing a payment with the bank account information collected from the previous Setup Intent, and it says that the customer won't need to be prompted for their bank account again.
yeah, what I meant was that we want to do the balance check as early as possible in the flow and ask our customers to select a different bank account in case of insufficient funds. I think doing the balance check after confirming a setup intent is less ideal because 1) we don't need accounts with insufficient funds, and 2) each time a setup intent is confirmed, an email confirmation for ACH mandate and collected info will be sent to the customer, and 3) it takes more steps for customers to fix.
Oohh, gotcha, yeah that makes a lot of sense.
@golden raven I'll need to step out for a bit. Can I check back here later and see if you have some updates? ๐
Apologies for the delay. I don't think it's possible to handle this the same way you were previously when leveraging the Payment Element, but will need to look closer.
Sorry, but I've not been able to find a way to accomplish what you're looking to do when using the Payment Element.