Plans & billing
You pay per WhatsApp number. Meta bills the conversations on your Business Account directly — we never mark up a message.
The free trial
Every new account opens on a 14-day free trial of the Growth tier, with one WhatsApp number and
its full message allowance. No card is required to start. Pick a plan before the trial ends to keep
sending: once it lapses the account goes past_due — the API stops accepting sends, but the
dashboard stays readable and nothing is deleted. Paying reactivates everything as it was.
Who bills what
Genuka operates as a Meta Tech Provider, not a BSP (Business Solution Provider). You connect your own WhatsApp Business Account (WABA), and Meta bills that WABA directly for conversations and messages. Genuka never sits in the message-cost path: we do not charge for a message, and we never mark one up. There are no per-message credits and no wallet.
Quota, not metering
Your plan includes a monthly allowance of outbound messages per number, and we count sends against it. That is a subscription quota — you are never invoiced per message, by us or through us.
The billing unit is the number
A plan is a base price that covers your first number, plus a cheaper rate for every extra one. That extra rate falls as the tier rises — 2,500, 2,200 then 1,800 XAF per month — so growing is what buys the discount. At checkout you pick a tier and a total number count; that count is fixed for the billing period (mobile money is a one-shot collection with no proration) and it does two things:
- It caps your connections. Connecting one more than you paid for takes a new payment.
- It sizes your message allowance. The period's quota is your number count times the tier's per-number allowance.
Example
3 numbers on Starter, billed monthly, costs 5,000 + 2 × 2,500 = 10,000 XAF and includes 3 × 500 = 1,500 outbound messages for the period.
The tiers
Four tiers. Every one of them includes REST API access and inbound webhooks — receiving replies is the primary job, so it is never gated:
- Starter — up to 5 numbers (+2,500 XAF each), 500 messages per number per month, 1 user, standard support.
- Growth — up to 15 numbers (+2,200 XAF each), 5,000 messages per number per month, 5 users, white-label branding and priority support.
- Scale — up to 100 numbers (+1,800 XAF each), 30,000 messages per number per month, 15 users, client sub-accounts and dedicated support.
- Enterprise — quote-only: custom volume, custom terms, contractual SLA.
Intervals & currencies
Plans are billed monthly or annually, and paying yearly is cheaper per number — the discount depends on the tier, up to 40% on Starter. Pricing is available in XAF, XOF, EUR, and USD. Mobile money checkout (Genuka Pay) covers XAF and XOF; card payments are coming.
Plan limits
Three numeric limits, all readable from the API. Feature gates (white-label, client sub-accounts, priority support) are toggled per tier on top of them:
- Numbers — how many WhatsApp numbers you may connect, i.e. how many you paid for.
- Messages per period — outbound messages included, counted across API sends and campaign recipients alike. Resets at the start of each billing period.
- Users — dashboard accounts on the workspace.
When you hit a limit
Exceeding a limit does not silently fail. The API rejects the request with HTTP 402 and an error
code identifying which limit was reached:
plan_limit_numbers— you already have every number your plan paid for.plan_limit_messages— the period's message allowance is exhausted.subscription_past_due— the trial or the paid period lapsed without a renewal.
Add numbers to your plan, move up a tier, or wait for the next billing period. A campaign is checked against the whole recipient list before the first send, so a launch that would blow the quota is refused up front rather than stopping half-way through.
Payments
Paid plans are collected by mobile money through Genuka Pay for XAF and XOF. Card payments via Stripe are on the way for EUR and USD. Mobile money has no recurring mandate, so each period is a fresh collection you trigger yourself — we never charge your account without you approving it on your phone.
Your invoices
Every billed period gets an invoice, numbered in sequence (INV-2026-0042). There are two kinds,
and they read and settle the same way:
- On checkout — you pick a tier, the invoice is issued and settled in one go.
- On renewal — the next period's invoice is issued 7 days before the current one ends, due on the day it does. You always know how much and by when, before anything is interrupted.
They all live in the dashboard under Billing > See all invoices: paid, to pay, overdue or void. Each one opens in full — period covered, base and additional numbers line by line, payment attempts — and prints or saves to PDF straight from your browser. An unpaid one settles in one click, by mobile money.
Paying early costs you nothing
Settling the renewal invoice ahead of its due date does not shorten the period you are on: the new one starts the day the current one ends. No paid day is lost.
An invoice can be voided in two cases, and nothing is owed on it then: you changed tier before settling it (a newer one replaces it), or you cancelled at the end of the period.
Managing your plan
Review and manage your plan in the dashboard under Billing, or read your subscription and your invoices programmatically:
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/subscription | Your current plan, limits, usage, and billing period. |
GET | /api/v1/invoices | Your invoices, newest first. Filter with ?status=open|paid|void. |
GET | /api/v1/invoices/{id} | One invoice, with the payment attempts made against it. |
Each invoice carries a stored status (open, paid, void) and a derived state, which splits
due from overdue — that one is a clock reading, not a column.