#ahjaydog-ACH-verification

1 messages · Page 1 of 1 (latest)

solemn narwhal
#

Hello again 👋
Give me a few to catch up on the threads 🙂 thanks

plush wren
#

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

solemn narwhal
#

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

plush wren
#

thanks for checking

solemn narwhal
#

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

plush wren
#

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 -------

meager smelt
#

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?

plush wren
#

The first dpaste i show only 1 because the other one failed with that Nonetype error

meager smelt
#

but what is the JSON a response of?

plush wren
#

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

meager smelt
#

i'm sorry, i don't think i follow. by "pin entry", are you referring to microdeposit verification or something else?

plush wren
plush wren
#

link doesnt work

#

"verification_method": "automatic",

#

You mean this? I am already using that

#

It falls back to manual entry if it doesnt work

meager smelt
#

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!

plush wren
#

idk can you find me another link or place in the docs for that?

meager smelt
plush wren
#

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

meager smelt
#

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?

plush wren
#

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

silk relic
#

👋 just stepping in since @meager smelt has to leave - give me a minute to catch up

plush wren
#

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?

silk relic
#

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

plush wren
#

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

silk relic
#

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

plush wren
#

hmmm

#

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...

silk relic
#

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. *

Build a custom payment form or use Stripe Checkout to accept payments with ACH Direct Debit.

plush wren
silk relic
#

Typically no - there'd be some delay involved

plush wren
#

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

silk relic
#

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)

plush wren
#

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

silk relic
#

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

plush wren
#

what i thought instant was worse?

silk relic
#

What do you mean by that?

plush wren
#

ill try to find the docs where i was under that impression

#

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)

silk relic
#

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

plush wren
#

that is why i thought it was worse

silk relic
#

No, it's just a very different testing flow - it shouldn't be worse

plush wren
#

because if the customer's bank account wasn't there, they can't enter in their routing/account numbers

silk relic
#

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

plush wren
#

if instant is not possible with the bank, then what happens?

#

then shouldn't i use automatic then?

silk relic
#

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

plush wren
#

so manual code entry would solve the problem of instant failing?

silk relic
#

Yup, if they can't do instant they could fall back to microdeposits

plush wren
#

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

silk relic
#

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

plush wren
#

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

silk relic
#

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

plush wren
#

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

silk relic
#

Yeah if you want to extra sure, I'd check a combination of the processing state + the payment method type

plush wren
#

ok thanks