#eranga.heshan

1 messages ยท Page 1 of 1 (latest)

dusky wingBOT
#

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.

glossy solstice
#

My collegues has stepped away. Could you please summarise the question for me?

haughty flame
#

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

glossy solstice
#

After the payment was attempted.

haughty flame
#

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?

glossy solstice
#

The latter.

haughty flame
#

How much time will the user have until Stripe determines that the user will not do the authentication and fail the invoice?

glossy solstice
#

After all the automatic charge retries.

dusky wingBOT
haughty flame
#

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

acoustic light
#

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

haughty flame
#

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?

acoustic light
#

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

haughty flame
#

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?

acoustic light
#

Yeah, for that susbcription the user attempted a payment and it failed. It was not an automatic thing by Stripe

haughty flame
acoustic light
#

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

haughty flame
acoustic light
#

Correct, so with that setting, users will have 15 days to complete 3DS starting from when the invoice is created

haughty flame
#

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?

acoustic light
#

I'm not sure if there is a field for that, looking in to it

acoustic light
#

Just tested in test mode and 3DS failures do indeed increment that counter

haughty flame
#

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

acoustic light
#

Of course, glad we could help!

haughty flame
#

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

acoustic light
#

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?

haughty flame
#

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?

acoustic light
#

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

haughty flame
#

๐Ÿ‘€

#

But the event is for invoice.payment_failed, no?

acoustic light
#

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

haughty flame
#

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 ๐Ÿฅ‚

acoustic light
#

Of course! Glad I could help

#

Also yep, our docs confirm that this is expected when payments go in to requires_action. Albeit the phrasing isn't clear so I will flag that we can communicate this better