Well not really "edge" cases, but some of the things that I've had trouble with when building a billing system on top of Stripe. Is there a better way to do this?1. Say a user wants to go from paid plan A to paid plan B. Plan B is more expensive than plan A. This happens half-way through their current billing cycle. Ideally, I'd call this an "upgrade", bill their card (prorated charge) immediately, then change plans if payment succeeds, otherwise keep them on their current plan and show a billing/plan change error.Can this be done using Stripe?Right now I do this by changing plans, then creating an invoice and force-paying this invoice. The problem is that invoice payment can easily fail at this point (say the user upgraded to a bad card or ran out of funds) and there's no easy way to roll them back to their old plan. Stripe goes into the usual "retry in three days, then mark unpaid or w/e" cycle - which is very confusing for both customers and admins.
2. Let's say that one of my users decides to downgrade from Plan B to Plan A. Ideally, I'd process the downgrade "at period end" - as in I'd like to change plans at period end (similar to how you can cancel at period end) - so they can still use their current higher value plan (already paid for...) until the end of current billing cycle.Can this be done using Stripe?Right now I'm using a hack where I "cancel" their subscription, set "downgrade at period end" to true on my end and then process plan changes when Stripe sends over the subscription cancellation webhook. Very meh.
3. Let's say that one of my users ran out of monies and his subscription renewal payment was declined. I email him and he updates his billing/card info to a new card. Ideally, I'd like to charge this card straight away to return the user's subscription back to "active" status... what's the best way to accomplish this? There doesn't seem to be an easy way to keep track of unpaid invoices, especially since there can be numerous unpaid invoices (rare, but it can happen). Not really sure how to go about this one.
--Thanks!
You received this message because you are subscribed to the Google Groups "Stripe API Discussion" group.
To post to this group, send email to api-d...@lists.stripe.com.
Visit this group at http://groups.google.com/a/lists.stripe.com/group/api-discuss/.
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.
3. Let's say that one of my users ran out of monies and his subscription renewal payment was declined. I email him and he updates his billing/card info to a new card. Ideally, I'd like to charge this card straight away to return the user's subscription back to "active" status... what's the best way to accomplish this? There doesn't seem to be an easy way to keep track of unpaid invoices, especially since there can be numerous unpaid invoices (rare, but it can happen). Not really sure how to go about this one.
When you update a customer's default credit card, we automatically retry the latest unpaid, unclosed invoice for each subscription. If the payment succeeds, the subscription transitions back to active.
Hi Jim,
Same issue here, especially the 2nd point for "downgrade at end".
--
You received this message because you are subscribed to the Google Groups "Stripe API Discussion" group.
To post to this group, send email to api-d...@lists.stripe.com.
Visit this group at http://groups.google.com/a/lists.stripe.com/group/api-discuss/.
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.
Hey Mantas,
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss+unsubscribe@lists.stripe.com.
Hey Mantas,
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss+unsubscribe@lists.stripe.com.
Hey Mantas,
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.
--
You received this message because you are subscribed to the Google Groups "Stripe API Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.
Visit this group at https://groups.google.com/a/lists.stripe.com/group/api-discuss/.
Hey Mantas,
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss+unsubscribe@lists.stripe.com.
Hey Mantas,
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.
To unsubscribe from this group and stop receiving emails from it, send an email to api-discuss...@lists.stripe.com.--
You received this message because you are subscribed to the Google Groups "Stripe API Discussion" group.
To post to this group, send email to api-d...@lists.stripe.com.
Visit this group at https://groups.google.com/a/lists.stripe.com/group/api-discuss/.
I am thinking of another approach: I will raise the invoice and trigger the payment. My understanding is customer delinquent attribute will change to True if last payment fails. I will then make my application handle the customer based on delinquent attribute. If they change the card and payment processes, this attribute should become false and I will let them continue to use our services.
Are there any caveats with this approach?
--