Getting started
Create your account, set up a workspace, and send your first WhatsApp message in a few minutes.
This guide walks you from zero to a delivered message. You will create an account, choose between the sandbox and live environments, fund a prepaid balance, connect a WhatsApp number, and send a test message — first from the dashboard, then from your own code.
What Darkel does
Darkel lets your business send WhatsApp messages — order updates, delivery alerts, appointment reminders, one-time passcodes — over the official WhatsApp Cloud API. You send from pre-approved message templates, and each message is billed against a prepaid balance you top up in advance.
There are two ways to use Darkel, and most teams use both:
- The dashboard — a web app where you (a human) connect a WhatsApp number, create templates, top up your balance, and can send messages by hand.
- The API — a single HTTPS endpoint your own backend calls to send messages automatically (for example, an OTP at sign-in or a receipt after checkout).
Mental model
Anything a person does occasionally lives in the dashboard. Anything your software does repeatedly goes through the API. The two share the same account, balance, templates and number.
Step 1 — Create your account
Sign up
Go to the Darkel dashboard and create an account with your email and a password, or continue with Google.
Verify your email
If you signed up with a password, open the verification link we email you. (Google sign-in is verified automatically.) You cannot sign in until your email is verified.
Create your workspace
After verifying, you are asked to name your workspace (your organisation). This becomes your live account, and you become its owner with full access.
A workspace is the container for everything: your balance, your connected WhatsApp number, your templates, your team members and your API keys. You can invite teammates later and control what each can do.
Step 2 — Choose sandbox or live
Darkel gives every workspace a free sandbox — a safe, paired copy of your account for testing. Build and test against the sandbox first, then switch to live when you are ready for real customers.
| Sandbox | Live | |
|---|---|---|
| Real messages | Only to a few approved test numbers | Anyone |
| Money | Play balance — no real charges | Real prepaid balance |
| API key prefix | dk_test_… | dk_live_… |
| Best for | Building & QA | Production |
The environment is baked into the API key itself: a sandbox key starts with dk_test_, a live key with dk_live_. You never pass an "environment" flag — the key decides. See Sandbox & live for the full details.
Step 3 — Add a prepaid balance
Each message on a Darkel number is charged at Meta’s price for its type and the recipient’s country, in naira, drawn from your prepaid balance. In the sandbox you can add play money instantly; in live you top up by card or bank transfer.
Open Billing
In the dashboard, go to Billing. You will see your current balance, and the price list shows what each message costs.
Top up
Choose an amount and pay with Paystack (card/transfer), or use the listed bank-transfer details. Sandbox workspaces get a “Add test funds” button instead.
Enrol in WhatsApp
Activate the WhatsApp product for your workspace so sending is enabled. This is a one-tap step in Billing.
A message is charged only when it is accepted for sending, and sending is refused if your balance cannot cover it. If Meta later bills it differently, or it is free or fails, the difference or the full price is refunded automatically. See Billing & pricing.
Step 4 — Connect a WhatsApp number
Messages are sent from a WhatsApp Business number. You have two options:
- Bring your own number (recommended) — connect your own WhatsApp Business Account in a few clicks using Meta’s secure sign-up flow. Messages arrive from your own verified business name, you keep full ownership, and Meta bills you directly for conversations.
- Use a shared Darkel number — if connecting your own number is not practical yet, send from a Darkel-managed number with no Meta setup. It is the default for sandbox testing, and you can move to your own number later without changing any code.
Open WhatsApp in the dashboard and follow the prompts. Full walkthrough: Connect a number.
Step 5 — Send your first message (dashboard)
Before you write any code, send one by hand to confirm everything is wired up.
Pick a template
Sending is template-only. Use one of the ready-made templates, or create your own and wait for Meta to approve it. See Templates.
Choose a recipient
In the sandbox, you can only message an approved test number (the dashboard shows the list). In live, message any opted-in customer.
Send & watch the status
Fill in any template variables and send. The message moves through pending → sent → delivered → read in your message history.
Step 6 — Send your first message (API)
Now automate it. Create an API key in the dashboard (Developers → API keys), copy it once, and call the send endpoint from your backend.
const res = await fetch("https://api.darkel.ng/v1/whatsapp/messages", {
method: "POST",
headers: {
"X-Api-Key": process.env.DARKEL_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "+2348012345678",
template: {
name: "order_confirmation",
languageCode: "en_US",
components: [
{ type: "body", parameters: [{ type: "text", text: "Ada" }] },
],
},
}),
});
const { data } = await res.json();
if (!res.ok) throw new Error("Send failed");
console.log("Queued:", data.id);Use a test key first
While building, use your dk_test_ key and an approved sandbox recipient. Swap in the dk_live_ key only when you go to production — no other code changes are needed.
That is the whole loop. From here, dig into Authentication, the full WhatsApp guide, and the API reference.