Skip to content
Documentation

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

  1. You top up a prepaid balance in advance.
  2. You enrol in WhatsApp to switch the product on.
  3. Each message you send on a Darkel number is charged to the balance at Meta’s price for that message.
  4. 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.
  1. Open Billing → Top up

    Enter the amount you want to add.

  2. Pay

    Complete the Paystack checkout, or make the bank transfer.

  3. 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.

GET/products/whatsappNone (public)

Fetch live pricing for a product by its key.

Response shape — values are placeholders, not real prices
{
  "key": "<product-key>",
  "name": "<product name>",
  "description": "<short description>",
  "monthlyFee": <monthly access fee in kobo>,
  "yearlyFee": <yearly access fee in kobo>
}
FieldMeaning
monthlyFee / yearlyFeeOptional recurring access fee to keep the product active
Per-message costNot 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.

GET/whatsapp/pricesNone (public)

Read the current price list: the dollar rate and Meta’s price per country and message type, in kobo.

Response (200) — values are placeholders, not real prices
{
  "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.

  1. Set your threshold

    In Billing, set the balance level at which you want to be warned. Leave it unset to use the platform default.

  2. 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.