Workaround for Stripe Subscriptions with more than 20 Products

Stripe subscriptions are limited to 20 products per subscription.
Learn how Growthmill helped a client workaround the 20 product restriction.

The challenge

Growthmill recently had a client interested in moving their subscriptions to Stripe.  The client operates data centers across the globe providing cloud services and bare metal.  As you can imagine, they offer hundreds of SKUs across processing, memory, connectivity, etc.  This leads to subscriptions and associated invoices with many line items.

Stripe subscriptions are limited to 20 products on a single subscription.  After talking with Stripe engineers, it is Growthmill’s understanding that this is a soft limit, but more than 20 products begins to impact performance around the UI and invoice generation.  Knowing this client could have hundreds of line items on a single invoice, pushing the 20-product soft limit wasn’t an option.

The solutions

One workaround would be to create multiple subscriptions for a single customer, grouping the clients product offerings logically to a subscription.  This was cumbersome from an integration standpoint and a subscription management standpoint.  Receiving multiple invoices was a poor customer experience as well.

The more elegant workaround would be to create products/prices for all the SKUs.  At the point a customer configures their desired services, all the individual SKUs would be logically combined into new product created via the Stripe API.  When creating the new aggregated product, Metadata for each of the individual SKU prices would be set with the Stripe Price ID to leverage the Stripe dashboard linking with Metadata values.

Growthmill has a demo of the solution.  Reach out if it can help you work around the Stripe restriction of 20 products on an individual subscription.

I am interested in ...

Contact us today to discuss how Growthmill can help you leverage the power of the Stripe platform.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.