#connor_api
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/1267963249614389269
đ Have more to share? Add more details, code, screenshots, videos, etc. below.
Our PI config for bank account methods is as follows:
{
payment_method_types: ['us_bank_account'],
customer: required_arguments_object.stripe_customer_id,
currency: 'usd',
amount: required_arguments_object.amount,
capture_method: 'automatic',
payment_method: required_arguments_object.stripe_payment_object_id,
confirm: true,
metadata: ...,
statement_descriptor: ...,
application_fee_amount: required_arguments_object.application_fee_amount,
transfer_data: { destination: ... },
use_stripe_sdk: false,
off_session: true
}
And to clarify, the actual call through the Stripe SDK for these BankAccounts is Stripe(stripePublicKey).createToken('bank_account', accountValues) followed by a Ruby SDK
stripe_bank_account = ::Stripe::Customer.create_source(stripe_customer.id, {
source: source_token,
})
Taking a look!
Sweet, thanks! Happy to move to a different approach for future manually entered account numbers, but would like to preserve existing BankAccounts for use if possible
So you can use BankAccount objects with the PaymentIntents API but those bank accounts must first be verified: https://docs.stripe.com/payments/ach-debit/migrating-from-charges
This should happen through microdeposit verification: https://docs.stripe.com/ach-deprecated#manually-collecting-and-verifying-bank-accounts
Ah, got it! So there isn't an alternative to the microdeposit flow for existing, non-Plaid BankAccounts?
Also, the documentation makes it sound like Stripe has been automatically sending the verification deposits even in the legacy paths, but we've never collected verification. Am I wrong in the interpretation of the document?
Correct, no alternative to thsi with legacy BankAccounts
And last question, the documentation states, "If you have an existing integration that accepts ACH payments using the Charges API, we recommend migrating to the Payment Intents API. The Payment Intents API includes built-in instant verification." Does this mean I can instantly verify the legacy BankAccounts through a PaymentInent?
if you collected a billing email from customers, Stripe likely emailed them directly prompting them for verification details
Thanks for all the clarification here!
So two last points to hammer out:
- Is billing email different than the email passed in at the top of level of the Customer Create API?
- The documentation states, "If you have an existing integration that accepts ACH payments using the Charges API, we recommend migrating to the Payment Intents API. The Payment Intents API includes built-in instant verification." Does this mean I can instantly verify the legacy BankAccounts through a PaymentInent?
- Yes. The billing email in this case is on the PaymentMethod object: https://docs.stripe.com/payments/ach-debit/set-up-payment?platform=web#web-verify-with-microdeposits
- No, you can't verify legacy BankAccounts with the PaymentIntents flow
Sorry if this is a dumb question, but the legacy BankAccounts are not considered PaymentMethods. Is there still a way to verify with microdeposits in that case?
Ah, sorry, I was mixing up docs. The docs that reference billing email are for microdeposit verification with PaymentMethod objects, not BankAccount objects
You can still verify bank accounts with microdeposits. You'll have to prompt your customers to look for those amounts in their bank statement, then call /verify with those amounts once they've shared those with you: https://docs.stripe.com/api/customer_bank_accounts/verify
https://docs.stripe.com/ach-deprecated#manually-collecting-and-verifying-bank-accounts
Got it, thank you! Today, I believe we do something similar but it does not seem to emit verification amounts:
::Stripe::Customer.create_source(stripe_customer.id, {
source: source_token,
})
Right, the verification amounts would have to come from the customer. You'd have to instruct them to look at their bank statement and share those verification amounts with you
Ah, I more meant that we've never recieved word from customers that they've seen these deposit amounts, and we've been on Sources for 7 years at this point. We were under the impression that we weren't doing anything with microdeposits. Is it a guarantee that this action would request microdeposit verification? Or is that dependent on how the Customer is configured?
Hm, do you happen to have the ID of a verified bank account you can share?
Yeah, ba_1KLZowBBKZs9HCVegB4unaUv looks like it was created through the legacy path (so not through Plaid), and has been used successfully
At least on the Stripe Dashboard, all of our BankAccounts created through that manual flow appear as 'Verified'
Hm, this was created years ago so I can't pull up details on creation
Ah, it's likely that the account used with ba_1KLZowBBKZs9HCVegB4unaUv has an additional permission to allow automatic verification of accounts. That said, I'm not sure if adding this permission to the other account will automatically verify the already-created BankAccount objects
Do you know happen where that permission would be set? Is that something on the Customer?
No, it appears to be something on your merchant account
Also, to be clear, ba_1KLZowBBKZs9HCVegB4unaUv and ba_1PfSA4LvyoWw5O6y1nQOQOqX are on two different accounts
This one would have been created in the past year and appears as verified: ba_1OH9VwBBKZs9HCVerTc1IyEh
So maybe our live account is configured in a way that allows automatic verification for these but our test accounts are not?
Right, exactly. I can't make any changes to your account here so I recommend reaching out to our Support team about this: https://support.stripe.com/contact/
You can provide the two BankAccount objects as examples so they know which two merchant accounts you're referring to. You'll still need to clarify with them if adding the permission to your teat account will automatically verify the already-created BankAccount objects