Billing & pricing
How the prepaid balance works, topping up, live pricing, enrolment, low-balance alerts, and refunds.
Darkel is pay-as-you-go. You keep a prepaid balance topped up, and each message is charged at Meta’s price for it. This page explains every part of that loop.
How billing works
- You top up a prepaid balance in advance.
- You enrol in WhatsApp to switch the product on.
- Each message you send on a Darkel number is charged to the balance at Meta’s price for that message.
- When the balance gets low, we alert you so you can top up again.
There is no invoice at month-end and no bill shock — you only ever spend what you have already loaded.
Topping up your balance
Top up from the dashboard under Billing. Depending on what is enabled for your region you can:
- Pay with Paystack — card or bank transfer; your balance is credited automatically once payment confirms.
- Send a bank transfer — using the account details shown in Billing; quote the reference so we can match it.
- Add test funds — sandbox workspaces get instant play money with one click.
Open Billing → Top up
Enter the amount you want to add.
Pay
Complete the Paystack checkout, or make the bank transfer.
Get credited
Paystack payments credit automatically and you receive a receipt by email. Bank transfers are credited once we confirm them.
Paid by transfer and still waiting? Reach out via Support with your reference and we will sort it quickly.
Live pricing
Pricing is transparent and public — you can read a product’s current prices without signing in. This is the same data the marketing site shows, so you can always quote accurate figures.
/products/whatsappNone (public)Fetch live pricing for a product by its key.
{
"key": "<product-key>",
"name": "<product name>",
"description": "<short description>",
"monthlyFee": <monthly access fee in kobo>,
"yearlyFee": <yearly access fee in kobo>
}| Field | Meaning |
|---|---|
monthlyFee / yearlyFee | Optional recurring access fee to keep the product active |
| Per-message cost | Not part of this response — WhatsApp messages are charged at Meta’s per-message rate, listed at GET /whatsapp/prices |
About kobo
All amounts are in kobo, the minor unit of the Naira (₦1 = 100 kobo) — divide by 100 to display Naira. The values above are placeholders; always read the live figures from this endpoint rather than hard-coding them.
What a message costs
The price of a message on a shared Darkel number is Meta’s price for its type — marketing, utility, authentication or authentication international — and the recipient’s country (taken from the country calling code), converted to naira at Darkel’s published dollar rate. There is no markup. The current prices are on the price list.
Sending on your own number carries no per-message charge from Darkel — Meta bills you directly.
/whatsapp/pricesNone (public)Read the current price list: the dollar rate and Meta’s price per country and message type, in kobo.
{
"success": true,
"statusCode": 200,
"message": "Request successful",
"data": {
"koboPerUsd": <naira per US dollar, in kobo, or null>,
"updatedAt": "<ISO timestamp, or null>",
"countries": [
{
"country": "NG",
"name": "Nigeria",
"prices": { "marketing": <kobo>, "utility": <kobo>, "...": <kobo> }
}
]
}
}countries is empty while pricing is not configured. Amounts are in kobo.
Enrolment & renewals
Before you can send, enrol the workspace in WhatsApp (Billing → enrol). If the product has a recurring access fee, you choose a monthly or yearly cycle and the fee is taken from your balance at enrolment and at each renewal.
- Active — the product is on and you can send.
- Paused — a renewal could not be paid because the balance was too low; sending stops until you top up. Your templates, number and history are kept.
Keep enough balance to cover both your expected message volume and any access fee, so renewals never pause your sending.
Low-balance alerts
Set a threshold and Darkel emails your team when the balance drops below it — once per dip, so you are not spammed, and again only after it recovers and falls again.
Set your threshold
In Billing, set the balance level at which you want to be warned. Leave it unset to use the platform default.
Watch your inbox
When the balance crosses below the threshold, every member of the workspace gets a heads-up email with a top-up link.
Charges & refunds
- The expected price is charged when the message is accepted for sending. If your balance cannot cover it, the send is refused.
- When Meta confirms how the message was billed, the charge is corrected automatically: billed as a different type, the difference is refunded or charged; not billed (free), the full price is refunded; failed, the full price is refunded.
- Every charge, top-up and refund is itemised in your transaction history, with the calculation — for example
Marketing message to Nigeria — $0.0516 × ₦1,550 = ₦79.98. - The sandbox works the same way, with play money.
See the full delivery and refund behaviour in Delivery & errors.