#lil-nasty_best-practices

1 messages ยท Page 1 of 1 (latest)

cerulean cloakBOT
spare saffronBOT
#

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.

cerulean cloakBOT
#

๐Ÿ‘‹ Welcome to your new thread!

โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.

โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.

๐Ÿ”— This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1275467953760112692

๐Ÿ“ Have more to share? Add more details, code, screenshots, videos, etc. below.

spare saffronBOT
ashen wadi
#

Hi there ๐Ÿ‘‹ can you share the ID of a Payment Intent where you saw this behavior?

honest pier
#

pi_3Ppt54F0GkWPNQzK1cshMgQZ

#

It's a proration payment with a failing bank account in sandbox mode

#

The action was upgrading subscription tier

#

I guess I want to make sure it's safe to display to the user that if a payment_intent has a requires_confirmation status that I can say it failed and they need to try with a different method

ashen wadi
#

I believe you're seeing this because this Payment Intent is associated with an Invoice from a Subscription, for a Customer with a default payment method specified so another payment method isn't necessarily needed.

You can allow your Customers to retry those payments if you desire, either by confirming the Payment Intent or by making a request to pay the Invoice:
https://docs.stripe.com/api/invoices/pay

Something standing out to me, is that it looks like the Invoice is schedule to retry the payment attempt automatically. Did you have the setting for allowing the retry of ACH payments enabled on this page when the Subscription was created?
https://dashboard.stripe.com/settings/billing/automatic

honest pier
#

If you're referring to scheduled retries we do have that enabled, but I think it makes sense to let the user manually retry the payment with a different method, because when it fails we stop provisioning access. So we don't want to force them to wait 3-7 days for auto-retry when it may just be they need to use a diff payment method and then update their default method to be one that succeeeds next time

ashen wadi
#

I was more interested about the setting for enabling the retry of ACH payments specifically, rather than the retry schedule for card payments, since it looks like that setting is off and so it seems odd to me for the Invoice to look like it's going to retry an ACH payment automatically.

But in general, it's safe to let your customers retry a payment sooner than the automatic flow if desired.

honest pier
#

Ok, got it

#

So it does make sense if the status is requires_confirmation to say it failed and we need to try a diff payment method, right?

#

I mainly want to be sure that the requires_confirmation status isn't going to show up at some point for a diff scenario

ashen wadi
#

I wouldn't suggest jumping to assuming that an intent ending up in a requires_confirmation state indicates that it failed. Listening to webhook events related to payment failures, like invoice.payment_failed would likely be a better indicator.

Can you tell me more about the flow you used to produce this behavior? I'm pretty sure it's unusual to see Events related to the Invoice payment failing, like this one:
https://dashboard.stripe.com/test/events/evt_1Ppt55F0GkWPNQzKdQcyeWQD
but not seeing Events related to the Payment Intent failing as well. To me that typically indicates something was out of place that prevented the Invoice from even being able to really attempt a payment.

honest pier
#

The flow is as follows

ashen wadi
#

I think you're seeing this because the Mandate for the Payment Method went inactive before the Subscription payment was triggered.
https://dashboard.stripe.com/test/events/evt_1Ppdw7F0GkWPNQzKco7BiEfZ
So we couldn't even attempt the payment because there wasn't a valid mandate for the Payment Method.

honest pier
#

User signs up, creates a subscription, we attach the payment method to the customer as the default pm. Sometime later the user attempts to switch the price on the subscription (higher tier) and we update the subscription with the new price id with proration_behavior as always_invoice. So the proration payment is attempted immediately, but because it's a failure bank account it fails

#

Another question, what would trigger the requires_action status and how is it best handled?