#damenz-ACSS-confirm
1 messages ยท Page 1 of 1 (latest)
I created a checkout session as "setup" type for acss (pre-authorized debit) while providing the customer associated to that checkout session.
After completing the checkout session, the bank account is now available as a payment method for that customer
But i get this error when using this payment method on a scheduled_subscription when trying to charge the payment method
What guide are you following? I'm looking at how to do this. End goal is ACSS for recurring payments right?
correct
everything is working
but the payment method is not "confirmed"
or something
thats where I am stuck
what I dont understand is that there is no payment intent
but it asks me to confirm it
PaymentMethods and PaymentIntents are seperate things. A PaymentMethod is what will represent this bank account. A PaymentIntent is something that will be created to attempt to charge a customer. The subscription will have it but I am unsure how that lines up
You will want to do something closer to this guide https://stripe.com/docs/payments/acss-debit/set-up-payment
I have to bounce to another thread for a minute. Can you read through that and see where that process difers from yours?
Oh nice what did you change?
Oh I see
associated to the scheduled subscription
that makes sense
the subscription itself does not have payment intent
I wasn't sure if it was that. Glad to hear it was
let me create a new subscription
The message makes it sound like once but yes
So what did you just do? Same PaymentMethod, new subscription?
correct
And is it still the same error?
new subscription still asks for the same thing
Is there a way to force the system to create a second invoice
If i only have to do it once PER subscription, its not too bad. But If I have to do this for EVERY invoice, i just dont understand how to work with it
On the first subscription?
yes
via the UI?
not sure to understand
thats dumb, why do we have to confirm it via api
it doesnt make sense
to create second invoice it has to be done via api?
You can upgrade and create the proration through either
i dont understand how to do it via the ui
it did not create a new invoice
i did a proration but there is no new invoice
What change did you make? It does for me
i updated quantity, added new product
also this is weird
it doesnt say the payment method
That means the Customer's default payment method
any update?
So that PaymentMethod is attached to the Customer but it is not the customer's default payment method
You can do that via the UI or by setting the Customer's invoice_settings.default_payment_method in the APIhttps://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method
its not clear
i created the subscription with that payment method
why does it say "default payment method"?
the payment method associated to the subscription should be the acss
I see you passing in default_payment_method and getting a response back that has a default_payment_method of null
Not sure why that may be here. Looking in to it
Oh wait. That is on the subcription schedule. It looks like the payment method on the subscription may have been set
its null on the subscription
x) i just want to use ACSS for subscriptions, why is it so complex ahah
Yeah I am not sure why this is happening at the moment. Looking, will get back
In the end, i just want to be able to create subscriptions using the acss payment method and I just want it to be auto from that point
meaning i should not have to confirm anything past that point...
lets say its monthly for 1 year, i dont want to have to confirm the 12 payment intent... that doesnt make any sense
It doesn't sound like you will have to but I am still confirming that
and we are just trying to test / prove that last point by creating new invoices ahah
And why the default PM from the schedule didn't apply to the subscription
Yeah I dont see the PM anywhere
Can you try manually setting that as the default for the account just to test this?
I can see it on the Customer
only on the customer page
yeah
but not the on subscription, not even the invoice of that subscription
And oh, the payment method was set for the phase, not the schedule. So it was properly reflected in your response. You can set it on the schedule if you want it to apply to all phases
Good to hear. And can you reset the billing cycle now?
its getting worse now
it detected the payment method at first
and then I tried updating and got the same message "Has to be confirmed at least once"
and now its not linked and it says "invalid"
where it says "Add a payment method" the bank account was there at first
but after trying to reset the billing cycle it shows that
i sent you a small video
Thank you. Will check it in a moment. Still looking in to the restrictions that this imposes. So one thing I am seeing is that the expected way to do this is by creating the subscription with a payment_behavior of default_incomplete and then using your Checkout Session to pay the PaymentIntent of the Invoice that gets generated
The goal is to do a one time setup
and reuse this for further payments
So the client is involved only once
Right. I think this should do that.
But what you just said require the checkout to be done for every invoices
unless i got it wrong
@boreal shadow taking over, give me some time to catch up
I need to go... but I would really like to solve this issue
I am stuck at the moment because of this
i will send you the small video i made
long story short, I am trying to create a subscription using a acss as a payment method
i sent you a dm
Please email our support team instead for help before you go
this is the best way to get an answer if you have to leave!
sounds good
i dont know why, but the system asks me to confirm every payment intent when i use the acss payment method
which makes no sense at all
the goal of acss is for pre-authorized (the AUTHORIZED part is important lol) debit usable for future payments
ACSS is extremely strict with debit rules in general though and we recommend using our pre-built logic and you are not since you go through your own SetupIntent separately and that's the problem. But we'll look for a solution and circle back with an update once we have one!
I do nothing actually
i dont create a setup intent
here is what i do
1- Checkout session to capture ACSS informations
2- Create scheduled subscription using payment method returned on step 1
Thats it
sounds good
issue is... the payment method has to be confirmed
the subscription is not able to capture
(look at the video i recorded)
All good I am looking into it, it will just take a while. Likely well over an hour, to get you an answer
Sure, i will go do my stuff and I will be back later. Its gonna give you time to look into it
Okay so I worked with someone internally and we can both create a Subscription with a flow close to yours. But we also do hit strange errors too. Overall I don't fully grasp what you are really doing and how much of what you shared in the video is your real flow. Like you seem to manually decide to go and pay the invoice in the Dashboard. Is that an absolute hard requirement of your entire flow? Or is that just trying to do it as a developer to unblock yourself?
I'm still digging into it, but the follow flow worked fine for me
1/ Create a Checkout Session with mode: 'setup' and also properly pass the following options 'payment_method_options' => [ 'acss_debit' => [ 'currency' => 'cad', 'mandate_options' => [ 'default_for' => ['subscription', 'invoice'], ], ], ],
2/ After that succeeds and you get the PaymentMethod attached, you can now create a Subscription. Pass the PaymentMethod id pm_123 in default_payment_method on Subscription creation and their first invoice will be paid as expected with the ACSS Debit PM. If you use default_incomplete then you can Pay the Invoice explicitly via the API.
What I don't yet understand is why confirming the PI itself errors, I get something similar to your error. My colleague doesn't though so I'm puzzled. But I did want to share this since it already should unblock you
As for my flow the video is just showing weird behaviour
my flow is the following
1- Checkout session as you mentionned
2- Create subscription with PM from step 1
thats it
no manual action whatsoever
Manually going in the dashboard to pay the invoice was just a test
Do you properly pass default_for like I showed in my code?
no let me try this
I just paired with one of our product engineer on this becuase I was as lost as you :p
it's quite complex, but overall as long as you use default_for and you explicitly create your subscription and don't pass default_incomplete which you don't need, it should "just work" like you expected
I just want to create the subscription and then let stripe handle the rest from there
it's when you don't that it gets a bit messy
When we add subscription + ACSS support on Checkout it will make this way easier
what do you mean ?
Right now Checkout doesn't let you create a Subscription with ACSS right? You have to use mode: 'setup' to collect bank account details and then separately create a Subscription after that completes
Oh, thats okay thats the intended behaviour
I want to save ACSS for future use. Its my intranet that creates the subscription using the PM
I don't want to do both at the same time
{
"error": {
"message": "The following params are not allowed when payment_method_options[acss_debit][mandate_options][default_for] is provided: ["payment_method_options[acss_debit][mandate_options][interval_description]", "payment_method_options[acss_debit][mandate_options][payment_schedule]", "payment_method_options[acss_debit][mandate_options][custom_mandate_url]"].",
"type": "invalid_request_error"
}
}
when adding default_for
so I remove the interval description?
it tells you that if you pass default_for you don't need any of the other stuff
yeah with default_for we basically generate this for you to indicate it'll be used for recurring payments
about the "default_incomplete" where is that config?
what is it related to ?
Its better ! It now let me charge the customer (i just dont want to wait 1 hour to see the result)
is it normal that the payment is "Pending for bank account" since this is a test bank account in a test environment?
yes it's normal, it mirrors what would happen in Live mode
what is required to make it "paid"?
https://stripe.com/docs/payments/acss-debit/accept-a-payment?platform=web#web-test-integration has a lot of context on ways to shorten the time
so there is a 3 day minimum time ?
YEah i was confused by that part
you meant this part?
for example yes
but what is the email for
is it my email ? the client's email ? this part is really unclear for me
and I provide this during the checkout ? (when creating the PM?) if I understand correctly?
It's the client's email, it's what you enter in Checkout when you go through the ACSS Debit setup
so my email is
so that would be
?
And If I understand correctly, this is just to skip the inital "3 days delay". AFter that 3 days, everything will be much quicker anyway ?
I dont mind waiting 3 days for the initial setup
If everything is gonna be quicker after
And hey, thanks alot by the way
no other company offer the kind of dev support you guys provide us it, props
it's really just for Test mode that this feature exists
Oh
ACSS is a bank debit it takes up to 7 days for the debit to succeed
it's never instantaneous
Gotcha.
you might want to read through https://stripe.com/docs/payments/acss-debit which is our high level work on ACSS
Thanks alot, i think that is all (finally !)
Will come back if I have any more questions / issues, but so far I think its working ๐
Of course. Sorry for the long time it took to help. I had tested ACSS a few times but never that flow. I knew about default_for because I helped design it but it's pretty advanced and the other people on my team weren't aware of it
I'm glad we were able to find a good flow/solution for you ๐
Hey, dont worry, I aint the only one needing help here. I really appreciate everything you did
yay ๐
Have a nice weekend!