Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

jlmmns's avatar
Level 12

Stripe Billing - Increment Price

With Stripe billing, is it possible to increment the plan's price, instead of the quantity?

I'm using per-user pricing, for teams. The plan itself has a price of $10 / month. An extra user will be $5 extra per month.

So the subscription will be $15 / month.

I've thought about using another subscription plan, just for extra users.

But is there maybe a better way of doing this?

0 likes
10 replies
jlmmns's avatar
Level 12

Anyone else had to implement something like this?

jlmmns's avatar
Level 12

@martinbean Yeah, I thought so...

So the only way of implementing this would be an extra subscription plan called "extra users", with a price of $5 / month, and then increment that plan's quantity when a new user gets added to the team?

But it feels like an awful workaround with 2 subscriptions.

1 like
shreddor's avatar

A bit late to reply, but in case anyone else is looking for a solution, it would be best to listen for the stripe webhook invoice created, then add an invoice line item for the extra users, which stripe will then charge in addition to the regular subscription around 20 minutes later.

jlmmns's avatar
Level 12

@shreddor Could you expand a bit further upon this? This seems tricky and prone to a lot of confusion.

jlmmns's avatar
jlmmns
OP
Best Answer
Level 12

I think it would be best to set the base plan at 5/month. (the cost per extra user)

And then increment the quantity to 2 for my first paid plan of 10/month.

The next plan of 25/month would then be a quantity of 5, and so on.

This also works out in my case, because I want to include 2 & 5 users (seats) on each plan respectively.

I think this should be the most flexible, if you want to simulate a base plan of 10/month, but also want to increment the price with extra users by 5/month.

shreddor's avatar

@jlmmns That would work, but it isn't very transparent to the end user on their receipt, and doesn't make it easy to have a base price + variable cost which is what they are really after.

You can read more about how this process with webhooks works here: https://stripe.com/docs/subscriptions/invoices#adding-invoice-items and https://support.stripe.com/questions/when-is-an-invoice-open-for-modification

As another example, when Stripe automatically generates an invoice for a recurring payment, your site will be notified of the invoice via webhooks (an invoice.created event). Stripe will wait approximately an hour before attempting to pay that invoice. In that time, you can add invoice items to the recently-created invoice.

martinbean's avatar

@jlmmns Agree with @shreddor: it’s just a “hack-y” way around the problem and doesn’t accurately represent what’s going on or what your customers are being charged for. They’re being charged for your plan and extra seats, not your plan ×3 or whatever.

jlmmns's avatar
Level 12

@martinbean @shreddor So it would be better to do it with that stripe event, and manually add the necessary lines?

As another example, when Stripe automatically generates an invoice for a recurring payment, your site will be notified of the invoice via webhooks (an invoice.created event). Stripe will wait approximately an hour before attempting to pay that invoice. In that time, you can add invoice items to the recently-created invoice.

Very good to know, thanks!

But don't plans often do it the way I was thinking of? Because they are in fact seats. The only difference is that my plans already include 2 & 5 seats respectively, which results in the 10 & 25 /month. I'm sure I can just formulate it in a clear way to our users? Or is this still considered bad practice, Stripe-wise or down the road maybe?

jlmmns's avatar
Level 12

@martinbean @shreddor Stripe seems to recommend the approach I was thinking of... Because it's so flexible.

From Stripe's documentation: https://stripe.com/docs/subscriptions/quantities#varying-billing-amounts

Varying billing amounts Some users need full flexibility in computing billing amounts. For example, you might have a conceptual subscription that has a base cost of $10 per month, and a $5 per-seat cost each month. We recommend representing these billing relationships by creating a base plan that is only $1 per month, or even $0.01 per month. This lets you use quantity parameter to bill each user very flexibly. In an example with a $10 base cost and three $5 seats, you could use a $1 per month base plan, and set quantity=25 to achieve the desired total cost of $25 for the month.

Please or to participate in this conversation.