#_alex - billing portal
1 messages · Page 1 of 1 (latest)
Hello, have you checked out the docs on our Customer Portal? https://stripe.com/docs/invoicing/customer-portal
Oh I see on reading again that you have looked in to it a bit. I will check if it has any of those features and get back to you
Still looking but the Billing Portal would be the recommended way to do this if you want a Stripe hosted page for users to manage their subscriptions and info like this. It is the closest thing we have to what you want where much of this is done automatically.
I thought about the billing portal, but it is a bit distracting for my users.
Would you say that Checkout for buying and Billing Portal for updates and cancelation is the standard recommendation if one wants to keep things simple?
Yes. So what is distracting about it?
Well, my plans are quite different from one another, so I have to show my users a pop-up, before they choose one, so they can compare them. Then they go to billing portal, where they have to compare them again, but this time with limited info (you have only two lines for description). Them having to do things twice can be confusing
Another example: You can be on "Pro" plan and then downgrade to "Basic" immediately, and not at the end of the billing period.
User will see that he has been downgraded, but did not receive any refund
he might assume, that since he does not have the "Pro" anymore, he deserves a refund
If there would be a "deep link" that would take the user from choosing "Pro" in my popup directly to confirmation step in Billing Portal, that would solve issue 1
Being able to have upgrades immediate, but downgrades postponed until the end of the billing period would solve issue 2
How are you getting the info for the first page? If you are actually previewing the prorations on the Stripe side in your code already, you can make those updates from your page.
Unfortunately the Customer Portal does not have controls that are that granular for prorations on upgrades vs downgrades.
We can put in feature requests for these but if you want them now you will likely want to code your own page
If by first page you mean my UI, I just get operate with productId and priceId from stripe
*I just use
In the last step I use priceId to fetch details of the price and display the ammount and when the user chooses the option, by clicking a button, I call Stripe with either priceId or the productID
...I mean: I call the Stripe Checkout, in case of new purchase, or just open the billing portal
When you suggest coding my own page, are you thinking about Stripe Elements?
Stripe Elements can help you with some of this like collecting a new payment method but for things like changing subscription plans, that would be having your page tell your server to make certain API calls
I am bouncing between threads but will read through this again in a minute and try to think through what the Customer Portal can help you with here
thank you. I am looking forward to it.
So one thing that you might find helpful for some of this is that you can make customer portal configurations that limit which features are availible. https://stripe.com/docs/api/customer_portal/configurations/create#create_portal_configuration-features
So if you want a customer portal that is only for updating payment info or upgrading/downgrading subscriptions, you can create a configuration for that and link your users to it.
Honestly, it seems like the Customer Portal has most of the behavior you want, other than the different proration behavior on upgrading vs downgrading.
You actually can make your own link to updating a specific subscription if you already have the subscription id and price you would like to update to. Creating the portal will give you a URL like
https://billing.stripe.com/session/test_123
And you can append the subscription and price ID to the URL to bring your user right to the update page like so
https://billing.stripe.com/session/test_123/subscriptions/sub_456/preview/price_789
please don't do this
We make zero guarantee about the URL scheme
if you did that, we could break it at any point
After taking a step back and rereading. It sounds like the Customer Portal covers your needs for the user updating their info, looking at invoices, and cancelling their subscriptions.
For updating their subscriptions, I think this doc might help you. You can update the subscription server-side and specify that the upgrades don't go in to effect until the user pays for them via invoice and then direct your user to the Invoice's hosted URL page. Can you check out this doc and see if that sounds about right to you? https://stripe.com/docs/billing/subscriptions/pending-updates#canceling-changing