BSP & Reseller Billing — Overview

BSP (Business Solution Provider) reseller billing is the model where you, the platform owner, resell WhatsApp messaging. Your customers pay you for the messages they send, and Meta bills you at wholesale for the same traffic. The difference between what your customer pays and what Meta charges you is your margin. WaDesk runs the whole loop — pricing, wallets, charging, refunds and the profit ledger — so you can operate as a reseller without building any of the money plumbing yourself.

Currency is dynamic. Every amount on this page is shown with a generic symbol. The real platform currency is whatever your install is configured to use — it could be , Rp, $, or any other. Read the numbers as "money units", not as any one currency.

The two per-customer billing modes

Billing is decided per customer, at the moment a customer connects their WhatsApp number. Each customer sits in exactly one of two modes:

A. "I pay Meta directly" (meta_direct)

  • The customer's own payment method is on Meta. Meta invoices the customer for their messaging.
  • You do not resell messaging to this customer — you only provide the software.
  • WaDesk runs the normal PLAN system for them: a monthly message allowance plus the plan's features.
  • No per-message wallet charge ever happens for this customer. Messages count against the plan quota, nothing is deducted from a money wallet.

B. "Bill me through us" (reseller)

  • The customer tops up a prepaid MONEY wallet inside WaDesk.
  • Every delivered message is charged from that wallet at your per-country price.
  • Your Meta credit line is attached to the customer's WABA, so Meta invoices you (the owner) for their wholesale cost — not the customer.
  • You keep the markup between your price and Meta's cost on every message.

The money funnel (reseller mode)

For a reseller customer, money flows through the platform in a fixed, auditable order:

  1. Customer adds money — they top up their prepaid wallet in WaDesk.
  2. Money sits in the wallet — available balance, shown as real money.
  3. Customer sends — a campaign, broadcast, flow, auto-reply or one-to-one chat.
  4. Each DELIVERED message deducts money from the wallet at the per-country price for that message category.
  5. A failed message auto-refunds — if Meta reports the message failed/undelivered, the exact charge is reversed, so the customer never pays for a message that did not arrive.
  6. Meta invoices you monthly for the wholesale cost of all that traffic on your credit line.
  7. You pay Meta.
  8. Profit = customer price − Meta cost, accumulated across every delivered message.

Worked example

A reseller customer starts with a wallet balance of 500. They run some traffic. Prices below are your selling prices; the Meta cost column is your wholesale cost, and margin is the difference you keep per message.

Activity Qty Price each Wallet change Running balance Meta cost each Margin each
Opening balance (top-up) +500.00 500.00
India marketing 100 1.00 −100.00 400.00 0.72 +0.28
US marketing 10 12.00 −120.00 280.00 6.50 +5.50
One US marketing message fails → auto-refund 1 12.00 +12.00 292.00 reversed

After this run the customer has 292.00 left in the wallet. Your gross margin was 100 × 0.28 = 28.00 on India plus 9 delivered × 5.50 = 49.50 on US (the failed one earns nothing and cost nothing), for 77.50 profit on the batch.

Money model — no drift

Everything is presented to users as money: they top up money, they see a money balance, each message costs money. Internally, the engine stores every amount as an integer where 1 unit = 1 money-cent (the currency's minor unit). Because all arithmetic happens in whole cents, there is never any rounding drift across thousands of tiny charges and refunds. The underlying billing engine is unchanged and battle-tested — the "money wallet" is the same proven ledger presented in money terms.

Which mode should my customer pick?

  I pay Meta directly (meta_direct) Bill me through us (reseller)
Who pays Meta? The customer (their card on Meta) You, the owner (your credit line)
Who sets the message price? Meta (list price to the customer) You (your price, incl. markup)
Needs a plan? Yes — monthly allowance + features Plan optional; message-limit is ignored
Needs a wallet? No wallet charge for messages Yes — prepaid money wallet, charged per delivery

Continue reading

WaDesk Documentation