#ahjaydog-ACH-verification
1 messages · Page 1 of 1 (latest)
sure
i was able to do what you suggested before
but i just need a way server side to tell which ones need microdeposit verification versus no microdeposit verification
I did this but I think it would be better to ignore the success page temporarily and just go directly to the pin page
I believe the payment intent should reflect this
if instant verification fails, the next_action should fall back to micro-deposit verification
I'm checking to see how you're be able to handle this
thanks for checking
Okay so if you're using webhooks, you should receive a payment_intent.requires_action event that would specify what next_action you'd need to take
If you're trying to handle this on front-end, you'd need to retrieve the PaymentIntent object and take a look at the next_action param
ok let me see
Because if I do one that does not have a manual pin entry I get 'NoneType' object has no attribute 'verify_with_microdeposits' for an automatic one
Automatic one without pin needed
That one is a manual one with pin needed
I separated the 2 JSON's in that dpaste with -------
catching up on this! i'm not sure what you're trying to explain with these two JSONs. could you share exactly what you'd like to accomplish with Checkout and how you're testing this?
The first dpaste i show only 1 because the other one failed with that Nonetype error
but what is the JSON a response of?
I use these for the manual pin entry
I do not use those if i want automatic pin entry
i use the test institution selection for automatic without pin entry
Here are my print statements of the JSON
so the dpaste with only 1 JSON means I got an error from the second print
because i tried an automated no pin payment on a call looking for the verification link that doesn't need a verification link
the next test where i did a manual entry, I got no errors and both JSONs printed in that other dpaste file
I just need a way to catch in either scenario a way to determine which ACH payments needed a pin entry or not so I can automatically redirect to the PIN page if it is a manual payment instead of the success page
i'm sorry, i don't think i follow. by "pin entry", are you referring to microdeposit verification or something else?
yes microdeposit verification where you enter https://stripe.com/docs/payments/ach-debit/accept-a-payment?platform=checkout#test-microdeposit-amounts-and-descriptor-codes
link doesnt work
"verification_method": "automatic",
You mean this? I am already using that
It falls back to manual entry if it doesnt work
right, but if instant verification fails, you'll want to look out for the error payment_method_skip_verification_failed
let me know if i'm misunderstanding!
idk can you find me another link or place in the docs for that?
could you try this link again? if it fails to load, try to refresh your browser: https://stripe.com/docs/payments/automatic-bank-account-validation#using-automatic-validation-with-the-paymentintents-api
Page not found!
Sorry, but the page you were looking for couldn't be found.
You can return to our front page, or drop us a line if you can’t find what you’re looking for.
is that a webhook or regular API call on which object?
or send a screenshot
ah, sorry about that!
let me know if i've misunderstood your question. you'd like to use Checkout and instant verification for ACH. if instant verification fails, you'd like to know if a user tried to use microdeposit verification. is that correct?
yea i need a way to separate on the success page from checkout which if the ACH payment the customer just made needs microdeposit verification or no microdeposit verification
On the success page I extract the checkout session id from the URL
and then I make calls on it trying to get the hosted verification url
but the problem is for automatic without verifications i am getting an error as it cannot find the verification url because there is no need to verify at all
👋 just stepping in since @meager smelt has to leave - give me a minute to catch up
ok np
I guess it would be for subscriptions next_action null vs not null but then it will be the same for ACH one time payments?
Backing up for a mi nute - why are you trying to get the hosted verification URL? I'm not quite following why you need that
i want to skip the checkout success page and automatically redirect to the verification page
because the problem is the customer may forget to verify if they don't check their email or something
but sometimes they don't need to be redirected to the verification page if they use automated verification
i kind of wish you guys did that for me already then after they verify then redirect to success page
Part of the issue with that is that what if the microdeposits haven't arrived in their bank account yet (since it can take a couple of days) - we don't want to immediately redirect them to the microdeposit verification flow if they can't finish verifying yet
hmmm
so they pay via ACH, get a success page, then you wait 1-2 days to send them this page? https://payments.stripe.com/microdeposit/pacs_test_YWNjdF8xRUtWTDBJZVRKcnNTMXJlLHBhX25vbmNlX0xyUlJ3bHBCQlFlN3dmbTJ3TTRZWGlVdDBNbVdYZ1o00004PTVewpZ]
then you wait 1-2 days after they do that to finally get the payment from them into your stripe account?
I thought they would get that microdeposit verification link right after they pay from checkout...
No, we call this out in our docs (https://stripe.com/docs/payments/ach-debit/accept-a-payment?platform=checkout#enable-ach-direct-debit-as-a-payment-method) -
*If the customer opts for microdeposit verification, Stripe automatically sends two small deposits to the provided bank account. These deposits can take 1-2 business days to appear on the customer’s online bank statement. When the deposits are expected to arrive, the customer receives an email with a link to confirm these amounts and verify the bank account with Stripe. *
so they cannot enter one of these codes right after their checkout payment when they get to the success page? https://stripe.com/docs/payments/ach-debit/accept-a-payment?platform=checkout#test-microdeposit-amounts-and-descriptor-codes
Typically no - there'd be some delay involved
dang
guess i will just leave it alone then... and put a note on the success page to check their email for a link
that to me is bad UX
i thought after they enter the code then they wait days
Sorry it's not ideal - there's a delay both with the microdeposits hitting their account AND once the code has been entered. The only way around this would be for you to only allow instant/automatic verifications (so don't allow microdeposits at all)
yes i am doing "verification_method": "automatic",
but i thought it would fall back if the bank was really bad and didnt do automated
and you had to do manual code entry
I am doing "verification_method": "automatic", but if I enter https://stripe.com/docs/payments/ach-debit/accept-a-payment?platform=checkout#test-account-numbers it makes me enter the code
Sorry I meant you'd do "verification_method": "instant" if you never want to do microdeposit
With "verification_method": "automatic" you'd get both instant and the microdeposit flows
what i thought instant was worse?
What do you mean by that?
ill try to find the docs where i was under that impression
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
sorry there it is
automatic seems superior to me based on what it says there
it can do both
but if instant fails, then what?
but now i see your point of view where it only does instant (better)
Yes, automatic does have the benefit of doing both (instant + microdeposit) - I just wanted to bring up instant-only as an option since it sounded like you were trying to get around the delayed flow you get with microdeposits
But I was really confused earlier where with instant, I couldn't do manual entry of these account numbers. https://stripe.com/docs/payments/ach-debit/accept-a-payment?platform=checkout#test-account-numbers
that is why i thought it was worse
No, it's just a very different testing flow - it shouldn't be worse
because if the customer's bank account wasn't there, they can't enter in their routing/account numbers
The only downside is if instant verification isn't possible with that customer's particular bank
But again, it's really up to you - both flows (doing automatic or instant) work, it's just a matter of what you want your integration to do
if instant is not possible with the bank, then what happens?
then shouldn't i use automatic then?
If instant verification isn't possible they wouldn't be able to complete payment - as I said earlier, it's up to you. Some people decide they only want instant-verifications, and are fine with losing out on the portion of payments that would only be complete with microdeposits
It sounds like you care more about accepting both, so then you can just stick with automatic
so manual code entry would solve the problem of instant failing?
Yup, if they can't do instant they could fall back to microdeposits
ok gotcha then that is what i am going to use
You are sure about the microdeposit code entry taking days to make the URL? I know that in test mode things happen fast and I could literally go to that URL on the success page for the customer to do it then and there
That's just because it's in test mode - in production we don't have exact times, but we provide the general estimate that it'll take 1-2 days for the microdeposits to appear in your bank statements
alright i just am amazed and kind of can'
t believe it
But i'll take your word for it
Thank you that definitely saves me time then lol
Can I still determine on the success page if it was a bank ACH payment or will that still take a few days?
Because I want to show for card users just thank you for payment but for ACH users I want to show check your email for possible code verification
That is what I did. Will it not work if there is a delay?
I think it should be ok because it is checking the checkout session only
I will remove line 7 and put that wording instead
and remove line 14 and modify 17 to remove the URL
I believe you can check the underlying Payment Intent and see if it's in a processing state - if it's processing that means verification is already done (instant), and if it's not that means you're waiting for the microdeposits
I guess what I am asking is. Can I keep this? {% if stripe_checkout_session_payment_type == 'us_bank_account' %} if it just uses line stripe.checkout.Session.retrieve(stripe_checkout_session_id_from_url)
in that case i am just differentiating between card and bank account
ok i will look for that processing state
Yeah if you want to extra sure, I'd check a combination of the processing state + the payment method type
ok thanks