The Stripe customer portal is a Stripe-hosted page where your customers manage their own billing: they can update payment methods and billing details, change or cancel subscriptions, and pay, view and download invoices. You activate and configure it in the Dashboard, or use the API for advanced set-ups such as different configurations for different customers.
Here's the catch. The portal can't edit every subscription. If a subscription uses multiple products, usage-based billing, a trial offer, invoices sent for collection or an unsupported payment method, your customer can cancel it in the portal but can't update it. And if a subscription already has an update scheduled through a subscription schedule, they can't update or cancel it there at all.
What customers can do for themselves
- Update billing information, including their tax IDs.
- Update their payment methods.
- Update subscriptions, such as switching plans if you allow it.
- Cancel subscriptions immediately or at the end of the current billing period.
- Pay, download and view current and past invoices.
That list covers most of the routine emails a subscription business gets. Stripe pairs the portal with Billing automations, so customer communications can run on their own instead of landing on your desk.
Setting up the portal
- Activate the customer portal in the Dashboard, and optionally add your branding and prefill customer email addresses.
- Configure the portal settings in the Dashboard to choose what customers can change.
- Brand it with your icon, logo, colours and business information.
- Integrate it into your application with the Stripe API if you need more control.
- Create deep links to specific actions with customer portal flows, if you want to send customers straight to one task.
- Add a cancellation page if you want customers to cancel in the portal.
Cancellation deflection
When a customer tries to cancel, you can offer them a coupon to stay. Those who cancel anyway can tell you why, and you collect those reasons through webhooks or Stripe Sigma. It's a small feature with a direct effect on churn, and it runs without anyone on your team stepping in.
The limits that catch people out
| Situation | What happens, as of October 2026 |
|---|---|
| Multiple products, usage-based billing, trials, send-invoice collection or unsupported payment methods | Customer can cancel but can't update |
| Update already scheduled with a subscription schedule | Customer can't update or cancel |
| Customer changes a trialing subscription | By default the trial ends and an invoice is created for immediate payment |
| Offering plan switches | A maximum of 10 products to choose from |
| Two prices on one product with the same billing interval | Not allowed; create a separate product version |
| Embedding in your site | The portal can't be shown inside an iframe |
| Portal sessions | Expire after 5 minutes if unused, or 1 hour after the latest activity |
The trial rule is the one I'd fix first. To keep a trial running when a customer edits their subscription, set the trial update behaviour to continue_trial in your portal configuration. Stripe also notes that immediate changes go through the Subscriptions API and end-of-period changes through Subscription Schedules, which affects how tax is handled.
If a session allows payment method management, the payment method section appears even when the portal doesn't support the customer's default method. That can confuse customers paying with something unusual, so check the supported list before you rely on the portal for them.
Payment methods and languages
The portal supports a long list of payment methods, from cards with Apple Pay and Google Pay to Link, Klarna, SEPA Direct Debit and Bacs Direct Debit. A few have limits worth knowing. Customers can't manually enter a new bank account for ACH Direct Debit in the portal, and they can't add a new PayTo or Vipps method there. PayPal requires approval, and Boleto needs a Brazilian Stripe account. Afterpay, known as Clearpay in the UK, Affirm and Revolut Pay are on the list too, with no portal-specific limits.
The portal localises itself to each customer's preferred language, across 40 language versions including both US and UK English. To preview one, set your browser's default language to it.
Where it fits with other Stripe products
The portal works with Checkout and the embeddable pricing table, Payment Links, Managed Payments, Connect, Invoices, Billing and Stripe Tax. You can also use it for standalone invoices, not only subscriptions. If you're on Stripe Connect, configure the portal on the platform account, not on a connected account.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
My verdict on the Stripe customer portal
If you sell simple subscriptions, I'd turn the portal on before you write another reply about changing a card, because it takes those requests off your plate entirely. Switch on cancellation deflection with a modest coupon, set continue_trial if you run free trials, and keep plan options under the 10-product cap. If your plans use usage-based billing or multiple products, expect customers to cancel there but email you to change. For the bigger picture on subscriptions, here's how Stripe Billing works, and if you bill one-off work, read what Stripe Invoicing can and can't do.
A self-serve portal is one of the easiest wins for a small team, and it's the kind of quiet automation I help businesses set up. I run AI training and workshops for teams, and help businesses with AI enablement, AI automation and workflow set-up, so the tools you already pay for do more of the work. Most of that work is with SaaS marketing teams and small businesses. Here's how we can work together.
Frequently asked questions
What can customers do in the Stripe customer portal?
Update billing information and tax IDs, update payment methods, update or cancel subscriptions, and pay, view and download invoices.
Why can't my customer update their subscription in the Stripe portal?
Subscriptions with multiple products, usage-based billing, trial offers, invoices sent for collection or unsupported payment methods can be cancelled in the portal but not updated.
Can I embed the Stripe customer portal in an iframe?
No. The customer portal can't be displayed inside an iframe.
How long does a Stripe customer portal session last?
A new session expires after 5 minutes if unused. If the customer uses it, it expires 1 hour after their most recent activity.
Does editing a trial in the Stripe portal end the trial?
By default, yes, and it creates an invoice for immediate payment. Set the trial update behaviour to continue_trial to keep the trial active.


