Skip to content
ChatfuelSDK
All posts

How to Price a White-Label WhatsApp SaaS: Three Models That Actually Work

Oleg Krasikov28 August 2026PricingSaaSWhatsApp

Here's an uncomfortable truth about selling an app you built on somebody else's platform: the price on your page is the easy half, and it's the half everybody spends their time on.

Ten customers, flat $99 a month each, no enforced ceiling. If they burn $24 of usage apiece you keep $765 and feel like a genius. If usage creeps to $120 apiece — same ten customers, same price, same product — the month is −$1,060. Nothing about your pricing page changed. The shape underneath it did.

I set the numbers on our own pricing page, which makes me the wrong person to tell you what to charge and the right person to tell you what it costs you. So: the three models people actually ship, what each one does when usage moves, and a calculator at the bottom so you can argue with me using your own numbers.

The short version, if you're skimming:

  • Pay as you go tracks your cost by construction, and hands you an invoice nobody can predict.
  • Fixed price is the one everybody ships and the only one that can go negative. The cutoff is what saves it, and the cutoff is software you have to write.
  • Base plus overage is boring, survives both, and is what I'd ship.

First, what this costs you

You're not paying per customer. You're paying for one workspace: how many bots it holds, and how many credits land in its balance every month. Business is $20 for one bot. The agency ladder is $100 to $2,050, and from Agency M up the bot limit disappears.

Two meters spend that balance. AI at $2.75 per million input tokens and $16.50 per million output, and a cent for every conversion event your app reports to Meta. Inbox, contacts, deals, bookings, flows, publishing — those are in the plan, whichever plan you're on.

Three things about that shape every decision below:

  • You buy the balance in advance and it resets. Unspent credits don't roll over, so an allowance you sold and nobody used isn't a saving. It's a refund you gave yourself and forgot to collect.
  • The plan is a step, not a slope. One tier up costs the whole next tier, and your busiest month decides when you take that step. This is the one that gets people.
  • The workspace is the unit. Every customer's bot sits in the workspace you pay for, so its bot limit is the ceiling on your whole deployment, not on one account.

And one more, which is the reason this post exists: we don't collect money for you. There's no checkout, no plans and no subscriptions in the schema that ships — we strip them out before the copy that lands in your repo, because a scaffolded app has no business reading somebody's billing.

That's a feature right up until 2am on the night you decide to write a usage counter. More on that in a minute.

The month I'm going to keep torturing

Ten customers. Each one burns $24 of usage a month — tokens and conversion events, nothing exotic — so $240 across the workspace.

That lands on Agency M: $225 a month with $250 of credits. Ten dollars of headroom. Every model below charges the same ten customers $99, and the only thing that changes is how.

Remember the ten dollars of headroom. It comes back.

Model 1: bill what they used, add a markup

$99 a customer, plus a percentage on top of whatever they burned. Their bill moves with their usage, yours moves with theirs, and nobody is quietly funding anybody.

Who it's for: a handful of big accounts that all look different. If your heaviest customer runs fifty times your lightest — agencies, this is you — there's no flat price that's right for both ends, and pretending otherwise just means one of them is paying for the other.

Where it falls over: the invoice. A customer who can't predict their bill budgets for the worst one you ever sent, procurement asks for a cap, and now you're negotiating a fixed plan with extra steps. And you can't send the bill at all until you're counting usage per customer. Nothing does that for you — hold that thought.

There's also a floor you'll hit before any of this matters. Your first customer, on $24 of usage, puts you on Agency S at $100, because one bot with more than $20 of credits is already past the Business plan. You collect $135 and keep $35. It's fine. It's just not the business you drew on the whiteboard.

The month: ten customers, 50% markup. $1,350 collected, $1,125 kept, 83% margin. Let one customer run five times heavier and it's $1,494 collected, $1,054 kept — you went up a plan tier, and the markup paid for it.

Model 2: one price, a cutoff, and a lie you tell yourself

$99, an allowance behind it, service stops when the allowance runs out. This is what almost every pricing page you've ever read is selling, including most of the ones you're competing with.

Who it's for: self-serve customers who sign up without ever talking to you, and any product that needs a price on a page rather than a call. Predictable revenue is also the only kind you can forecast against a plan you have to buy in advance, which matters more than it sounds like it does.

Where it falls over: it's the only model here whose revenue doesn't move when your cost does. That's the whole appeal and it's the whole risk.

Watch it happen. Ten customers at $99 with the ceiling at $30 of usage: $990 collected, $765 kept, 77% margin. One customer then runs five times the rest and the month still keeps $765 — the ceiling held, and that customer was cut off.

Read that back slowly. The margin survived because I stopped serving somebody who'd paid me. It's a real trade and I'd rather make it on purpose than find it in a support ticket.

Now leave the price alone and let usage grow across the board, because usage always grows — a better agent talks more. At $60 a customer, that same $30 ceiling cuts off all ten of them. You keep $550 and every customer you have is throttled, which is a number that looks fine on a spreadsheet and is a churn cohort in real life.

So you take the ceiling off, or set it somewhere nobody will ever reach — which is functionally what "unlimited-ish, we'll sort it out later" means. Then:

  • At $60 of usage a customer, the workspace needs Agency XL at $850. You keep $140.
  • At $120, it needs Agency XXL at $2,050. You keep −$1,060.

That's the model. Either the ceiling bites your customers or the plan bites you. A cutoff you don't enforce isn't a cutoff, it's a decoration — and one you do enforce is a product decision you should be making deliberately.

And enforcing it is on you. We bill the workspace, not your customer. The app has no billing screen and says so out loud to anything that asks it. Counting usage per account, showing someone their allowance and stopping them at the end of it is software you write. Write it before you sell the plan, not after the month that ends in minus four figures.

Model 3: base plus overage, the boring one

$99 a month, an allowance inside it, and usage past the allowance billed at your rate. It's model 2 with the cutoff replaced by a price, which is a small change that fixes the expensive problem.

Who it's for: basically anyone with more than ten customers, and definitely anyone who's already had a bad month. It's also the only one of the three where a customer growing is good news twice: they pay you more, and you don't have to cut them off to stay whole.

Where it falls over: two numbers on a pricing page instead of one, and a support conversation every time somebody reads the second one late. Set the overage below what usage actually costs you and you've built a subsidy with extra steps — the rate to beat is the published one, not your average one.

The month: $99 with $15 of usage included and 50% on the overage. $1,125 collected, $900 kept, 80% margin. One customer at five times the rest: $829 kept. And at the $60-a-customer usage that left the fixed plan with $140, this keeps $815.

That's the whole argument. Same price on the page, same customers, and the difference is which number moves when the platform bill does.

Run it on your own numbers

My month isn't your month, so put yours in. All three models run on the same month at the same time, and the plan underneath each one is picked the way our pricing page picks it.

Start where it is, then drag usage a customer to $60: the fixed row cuts off all ten customers to hold its margin. Take its ceiling off — drag the cutoff to $200 — and it keeps $140.

"Why not just charge per conversation?"

Because you'd be pricing a meter you don't have. Your cost isn't conversations, it's tokens and conversion events — a hundred chats with a verbose agent and a hundred chats with a terse one are wildly different bills. Per-conversation pricing is a bet that every customer's agent behaves the same way. They don't.

It's also the one number your customer can't control, which makes every improvement you ship feel like a price rise to them.

"Why not just copy my competitor's pricing?"

You can, and it's a fine place to start — but you're copying a number, not a cost structure. Their tiers, their token burn and their heaviest customer aren't yours, and the shape that keeps them solvent might be the one that quietly bleeds you.

Copy their shape if you like it. Run their numbers through the thing above first.

What I'd actually do

Measure before you price. Usage is the meter that moves, and you can watch a customer's for two weeks before you have to name a number. Two weeks of real data beats every model on this page.

Buy for the median month, not the worst one. Credits reset. A tier bought for a spike you see twice a year is money you hand back the other ten times — top up when the spike shows up instead.

Write the counter first. Whichever model you pick, two pieces of software are yours and only yours: the thing that knows what a customer used, and the thing that charges them for it. That's the price of owning the code — and it's also why nobody, me included, can tell you what your product is worth.

Ship model 3. Argue with me in Discord if you land somewhere else — I'd genuinely like to know what shape won.