#niceone_54450
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.
- niceone_54450, 5 days ago, 8 messages
If your desire is for the upgrade/downgrade to go ahead even if the associated payment fails, then just omit payment_behavior param from your API call
but I want this payment to succeed
but I need to handle the cases when 3ds is required, or new card needs to be assigned to make the payment/update done
Sure, but that's a separate issue. If 3DS is requested or the payment is declined on an off-session payment (such as this downgrade/upgrade) then the default behaviour is to apply the update anyway. You'd then need to bring your customer back on-session and re-attempt payment of the associated invoice
what do you mean back on-session?
Bring them back to your website to re-attempt payment
So you'd use the intent from the invoice, collect payment details from them and re-confirm payment via Stripe.js
and what's the behavior on Stripe side when such payment reattempt won't happen?
let's say we are in the middle of billing period (which is one month), I send update request (with proration_behavior=always_invoice but without payment_behavior is that correct?) and Stripe will apply update even though the payment related to proration failed?
Correct yes
and what then? I mean if nothing happen (the failed payment won't be made)
You can use pending_if_incomplete if you prefer: https://stripe.com/docs/billing/subscriptions/pending-updates
I just sent you a link that describes what happens
does it mean that after an update with failed payment the subscription automatically switch to past_due?
Yes, if the upgrade/downgrade payment failed and you didn't pass payment_behavior parameter we'd:
- Apply the update
- Generate a new invoice (where payment failed)
- Transition to
past_dueand dunning/retry settings would apply
and what be the response for update in such case?
subscription object where there be a status = paid_due?
Yes I believe so, status: 'past_due'. Should be easy enough for you to test to confirm
and where I get the information what's the problem from? it will be also in response? or I need to e.g. fetch the latest pending invoice/intent?
You'd need to check the Invoice object, so pass expand: ['latest_invoice.payment_intent'] in your update call
ok, one last question, if such situation happened, after the update the Stripe retries with this failed payments, and after that (if not succeeded) the subscription is cancelled?
or there is a fallback to previous price?
It would depend on your settings:https://dashboard.stripe.com/settings/billing/automatic
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.