#eranga.heshan
1 messages ยท Page 1 of 1 (latest)
Hello! We'll be with you shortly. Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- eranga.heshan, 5 hours ago, 4 messages
My collegues has stepped away. Could you please summarise the question for me?
Sure, we were discussing about 3D secure authentication when it comes to charging a customer when they are offline
Your colleague showed me that we can enable Send a Stripe-hosted.... checkbox in the settings to make this work.
I could also see the preview of the email sent by Stripe in this case
Now my question is, when will we send this email (before 26 hours of the payment maybe)?
After the payment was attempted.
Does that mean the payment will fail the first time? Or Stripe will know that the payment requires 3DS and it will send this to the user when the payment is attempted?
The latter.
How much time will the user have until Stripe determines that the user will not do the authentication and fail the invoice?
After all the automatic charge retries.
I have a customer in India which I think doesn't follow what you described. https://dashboard.stripe.com/events?related_object=sub_1Oa8JyC8JGuaUdU6hr5cBvfB
When I checked for events, the invoice is first created, then finalized and sent to the customer. And then after about 4 to 5 hours Stripe has a new event for invoice.payment_failed
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Thanks for the ID, catching up on this thread and will get back with what I can find
Ah, this is an India specific thing, India does not allow automatic retries of payments so once the first payment fails we skip to the behavior that you have set to happen once all retries have failed
Ah, yes. I forgot about that. Thanks.
So how long an Indian user will have after getting the invoice email for 3DS until Stripe considers they won't be doing the 3DS?
Stripe does not have an automatic timeout on 3Ds. For non-subscription payment intents the time is indefinite. Need to double check but I think it depends on whether this is the first payment on the subscription or a later one and what your settings are for when to say an invoice is overdue
In my case it is definitely for a subscription. In my settings, I consider an invoice as overdue if it has been 30 days. I am more interested in the first payment on the subscription. But I guess it is also important to know about the later ones as well since I think our subscription is expensive and most probably will require each payment with 3DS authentication.
However, I very much like to know how the invoice for the case I shared got failed just after 5.5 hours. It seems like very soon. Maybe the customer tried the 3DS and provided a wrong input?
Yeah, for that susbcription the user attempted a payment and it failed. It was not an automatic thing by Stripe
Perfect, just wanted to make sure that. Is there a field in that event which helped you to know that the user attempted it?
Also it is this specific setting that should determine how long your customers have in general for their subscriptions when they need to complete 3DS
This is under Manage payments that require confirmation section, right? (The setting I highligted here)
Correct, so with that setting, users will have 15 days to complete 3DS starting from when the invoice is created
Nice, thank you for the help. Can you also share which field I should look for inorder to know that the user actually tried 3DS Stripe sent them but gave a wrong input?
I'm not sure if there is a field for that, looking in to it
Apologies for the delay, server got pretty busy. I see that there is this field on an invoice but I forget if it counts 3DS like this https://stripe.com/docs/api/invoices/object#invoice_object-attempt_count
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Just tested in test mode and 3DS failures do indeed increment that counter
No worries, I myself just went away to have a piece of cake ๐ฐ
Thank you so much for the help today, this is really helpful
Of course, glad we could help!
Sorry, had to comeback again for one more question. This is what I can see on invoice.payment_failed event.
The counter hasn't increased, but attempted is true though.
When we send the invoice to the user, I can see that event has attempted as false. Maybe that is what you meant
Apologies, I did make an invoice pay call when testing and that may have incremented the counter rather than the 3DS decline. So this may not currently be available in the API
Was this for the same invoice, or a different one?
This was the same invoice. And I am looking at the invoice.payment_failed event https://dashboard.stripe.com/events/evt_1OaEWtC8JGuaUdU6uKovK90Z
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
So this may not currently be available in the API
Since we have 15 days as the number of days setup as the waiting time, getting a failed invoice event just after 5 hours of sending the invoice anyway suggest that the user tried the 3DS, right?
Ah, huge apologies. I did not look closely at that invoice and made a few mistakes. That invoice succeeded, so surprisingly that event was actually part of a successful payment. I just tested in test mode and am seeing the same thing, it looks like we automatically send out one of those events whenever requires_action triggers
Yes, it mostly means that the payment did not immediately succeed. I definitely get how "failed" implies an explicit decline or something, but it is expected that we send out the event in cases like this as well
I see. I didn't know that. We have an integration on our backend to check for invoice.payment_failed and automatically cancel the subscription if it is the first payment of the subscription
Maybe we might have to remove that. Anyway, I guess I can work something out from the existing information I have for now
Thanks again for the help ๐ฅ