#tpak-ach-oauth
1 messages ยท Page 1 of 1 (latest)
You would only use the new ACH for new ACH payment methods. You would just continue using the old API for the ACH payment methods that are already verified.
It doesn't have any effect on the ACH payment methods that are already created
so you will support the old API forever?
because that would mean i need to use the old API to charge for customers authorized under the old API
I can't really say. Most users create the upgraded integration entirely separate from their current integration, then gradually bring their customers back onto the bank authentication flow in order to migrate them to the newest version over time
hm
we're doing a new flow and we just wanted to upgrade the authorization portion - what you are saying means I'd have a split and need to record what integration I used or force (or eventuallt force) existing customers to re-authorize
not very friendly to existing customers
So you don't really have an upgrade path is what I understand - authoriuzations are API version specific - are CC also that way?
Hi ๐ I'm stepping in as @mental sentinel needs to leave.
This pain point is specific to upgrading existing ACH payment methods to the new (v2) ACH direct debit. We do have a migration path but at present there are some significant pain points that occur.
https://stripe.com/docs/payments/ach-debit/migrations
this makes me grumpy
Understandably so.
why did you make it this way?
i will LOSE customers
i can move to another provider just as easily as implementing this
I didn't. But there are trade-offs with every choice and I was not privy to the discussions regarding the implementation of ACH as a Payment Method.
so, previously I have created customers in Strip, and I have used Plaid or your bank accounts api to do microdeposit confirmations, the accounts are attached to the customers in Stripe.
But there are ways to work around it and we can offer support to help you achieve those. So when you say you wanted to upgrade the authorization flow, what do you mean?
I just have to re-get authorization to charge them - AKA 'intent' ??
"If you previously collected an online mandate from the customer, you might have a timestamp, an IP address, or user agent information for them. You can use that information to create a mandate object.
If you previously collected payment and mandate information offline (on the phone or in person), you can create a mandate with offline acceptance."
is this the workaround?
You don't have to charge them. The SetupIntent object allows you to capture the authorizations required to correctly set up a payment method without charging the individual. It will require bringing the user on-session though.
And yes there is that approach as well. Creating the mandates yourself.
but all of my users already authorized me to charge them each month
Okay, so that sounds like the mandate creation approach is what makes more sense.
re: "you say you wanted to upgrade the authorization flow, what do you mean?" -- we are revising our UI/UX and checkout and we were going to do away with Plaid and get on the new API - but we already have customers we charge every month - didn't recognize I was going to need to gut and re-write the other parts of my platform that do the charging as well
However, both you and your customers have to be aware that those banks can request re-authorization of those accounts at any time for any reason they chose
didn't recognize I was going to need to gut and re-write the other parts of my platform that do the charging as well
What parts are you talking about here?
the part that does the charging each month
i just call your api with customer id and amount and it charges the method on file
you are saying or your coworker said I need to re-write that to the new api as well and split horizon existing customers to the old charging api and new ones auth'd though this new mechanism to the new charging api
Which API endpoint do you charge?
hold obn
And you said these are recurring charges. Are you using Stripe subscriptions?
POST /v1/charges
no
I said that in my opening query
these are not "subscriptions" per se - they are monthly charges for professional services type of thing
and our ACH charges are $2k - $65k per customer per month - some on ACH some on CC
And, in you testing of the new integration, you are having to modify your API call to /v1/charges?
I'm not that far yet. your colleague said I would have to
" You would just continue using the old API for the ACH payment methods that are already verified."
that implies some new API
" Most users create the upgraded integration entirely separate from their current integration, then gradually bring their customers back onto the bank authentication flow in order to migrate them to the newest version over time"
Maybe their answer is wrong, not clear, or I misunderstand them
No my colleague was correct. Payment Methods created using the new API are generally managed separately.
But as far as using for the default source on a Customer, that part should be pretty straight forward
so, I need a split system then if I upgrade to the new ACH authorization API
what????
now you are making no sense
I have payment methods on fiule for my customers
/v1/charges - do I need to change that - I just pass customerID into that like so
{
"amount": "315001",
"currency": "usd",
"customer": "cus_sjkdlhfsdkljhfkljsdhflksjhsaldkjfh",
"description": "Paying total amount of $3150.01 for xxxxxxxx"
}
i've obfuscated cus_ obvioulsy
because if I need to call a V2/charges or something then that is stupid
No
There ins't a v1/charges
not at all
Creating the ACH account object uses a new API
so charges doesnt change
But it assigns the method of payment to the customer and the charge goes through the same
just creating a new ACH payment account object
well, both you and your colleauge misunderstood my question
but now i do need to understand the intent thing
mind you I didnt do this - some really junior person that appears to have not had adult supervision at an outsourcing firm did this a long time ago
but, can I see "intents" in the console or do I need to use API?
I want to have my finance operations person confirm them for me before I try and build an upgrade path ...
argh, never mind that last question
found it
- SetupIntent - used to create and assign Payment Methods in a way that handles modern authentication requirements (like SCA)
- PaymentIntent - modern equivalent of Charges. Is able to handle retries, recover from errors, handle 3DS authentication
so previously we collected "consent to charge" but I dont think we did intents per se, but now we definitely need to do them for ACH charges like so: https://stripe.com/docs/payments/ach-debit/set-up-payment#web-future-payments
ugh
this project just got a bigger blast radius ๐ฆ
Am I allowed to stay with the V1/plaid api for now and fix this mess later?
You can stay with v1/plaid and build this out in Test mode to make sure it will work for you before changing anything over
we can do it but this level of effort to re-write will wreck my timelines
this changes all kinds of stuff and is not a 1:1 swap
my flows all need to change
need new designs
need new error handling
blech
may as well call GoGlobal ๐
and recurly ... ๐
j/k - I'll discuss timelines with my team tomnorrow - this is going to require quitting for the night and a bottle of wine, maybe 2 bottles ๐
Well whenever you're ready we'll be here to answer more questions.
LOL
is that code for "deliver more bad news"
hehe
j/k - you are all, always helpful even if the news is not what i want
last question - b/c I am no Discord expert
will this thread live on for me to reference or do I need to save it somehow?
I suspect there is some potential ways to ease any transition but it might require more focused questions around specific workflows. I may have missed a thing or two.
This thread will get archived eventually but you can still refer to it and use the http link as a reference back in the main channel to discuss this topic again