# Genuka WA vs Twilio for the WhatsApp API

URL: https://wa.genuka.com/en/docs/compare/twilio
Language: English

> Genuka WA vs Twilio for the WhatsApp Business API, side by side - per-message fees or a flat subscription, Mobile Money, coexistence, webhooks and SDKs.

Genuka WA and Twilio both send through Meta's official WhatsApp Business Platform. What differs is
the business model. Twilio adds $0.005 to every inbound and outbound message on top of Meta's fees.
Genuka WA charges a flat subscription per WhatsApp number, adds nothing per message, and accepts
Mobile Money in Central and West Africa.

*Last updated October 8, 2026*

> [!NOTE]
> **How this page was written**
>
> Every Twilio fact below comes from Twilio's own pricing page and documentation, read on the date
> above and listed under [Sources](#sources). Where we could not confirm something, we point you
> to their site instead of guessing. Prices change: check both pricing pages before you decide.

## Genuka WA vs Twilio at a glance

|                                                    | Genuka WA                                                                                                                  | Twilio                                                                                                  |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| Official WhatsApp Business Platform                | Yes. Genuka is a Meta Tech Provider; messages go through Meta's Cloud API on your own WhatsApp Business Account (WABA)     | Yes, through Twilio's Programmable Messaging API                                                        |
| Onboarding a number                                | Meta Embedded Signup from your dashboard; from the Scale tier, a connect link you share with your clients                  | Self Sign-up through Meta Embedded Signup, from an upgraded (paid) Twilio account                       |
| WABAs per account                                  | As many as your plan covers: each business keeps its own WABA, all reachable with one API key                              | One WABA per Twilio account or subaccount (one subaccount per extra WABA)                               |
| Keep a number that is on the WhatsApp Business app | Yes (Meta coexistence)                                                                                                     | Their self sign-up guide asks you to delete the WhatsApp or WhatsApp Business app account first         |
| Pricing model                                      | Subscription per WhatsApp number, with a monthly allowance of outbound messages                                            | Pay as you go, per message                                                                              |
| Provider fee per message                           | None                                                                                                                       | $0.005 per inbound or outbound message, plus $0.001 per failed message                                  |
| Meta's fees                                        | Billed by Meta to your WABA, no markup from Genuka                                                                         | Passed through by Twilio on your Twilio bill, on top of its own fee                                     |
| Monthly platform fee                               | From 5,000 FCFA or $19 per number (Starter, monthly billing)                                                               | None                                                                                                    |
| Paying the provider                                | Mobile Money (XAF, XOF) or card (EUR, USD)                                                                                 | Credit card; PayPal in some regions; wire transfer or ACH for accounts invoiced on an annual commitment |
| Docs languages                                     | French and English (SDK guides in English)                                                                                 | English                                                                                                 |
| Webhooks                                           | JSON, signed with HMAC-SHA256 plus a timestamp (`X-Genuka-Signature`), 5 retries, replay from the dashboard                | Status callbacks signed with HMAC-SHA1 (`X-Twilio-Signature`)                                           |
| SDKs                                               | TypeScript (`@genuka/whatsapp`), OpenAPI 3.1 spec at `/openapi.json`                                                       | C#/.NET, Java, Node.js, PHP, Python, Ruby, Go                                                           |
| AI-agent tooling                                   | MCP server (`@genuka/whatsapp-mcp`, being published to npm), `/llms.txt`, Markdown version of every docs page              | `@twilio-alpha/mcp`, an alpha MCP server exposing Twilio's public APIs                                  |
| Testing before go-live                             | 7-day free trial on your own number, no card required. No sandbox                                                          | Twilio Sandbox for WhatsApp                                                                             |
| Other channels                                     | WhatsApp only                                                                                                              | SMS, MMS, RCS and WhatsApp in one API                                                                   |
| Africa focus                                       | Prices in FCFA, Mobile Money in Cameroon, Côte d'Ivoire, Senegal, Benin, Burkina Faso, the Republic of the Congo and Gabon | Global platform, prices in USD                                                                          |

## How much does WhatsApp cost on Twilio vs Genuka WA?

Both bills have two layers: what Meta charges for the messages, and what the provider charges for
its service. Meta's layer is the same whichever provider you choose. The provider's layer is where
the models differ.

**Twilio** charges $0.005 for every WhatsApp message, inbound or outbound, plus $0.001 for each
message that ends in a `failed` status, with no monthly fee. Meta's fee for each message is added
to the same Twilio bill. Twilio mentions that volume discounts may apply.

**Genuka WA** charges a subscription per number. The base price covers your first number and each
extra number costs less as the tier rises. Each tier includes a monthly allowance of outbound
messages per paid number, pooled across the account: on Growth, each number added to the plan
($8 or 2,200 FCFA a month) adds 5,000 messages to the allowance, whether or not it is connected.
Inbound messages are never counted or charged. Genuka never bills a message: Meta bills your WABA
directly, with no markup.

Provider cost for sending from **one number**, monthly billing, Meta's fees excluded. The Genuka
WA column shows the cheapest setup for each volume:

| Outbound messages per month | Twilio | Genuka WA                                   |
| --------------------------- | ------ | ------------------------------------------- |
| 500                         | $2.50  | $19 or 5,000 FCFA (Starter)                 |
| 5,000                       | $25    | $49 or 10,000 FCFA (Growth)                 |
| 10,000                      | $50    | $57 or 12,200 FCFA (Growth, 2 paid numbers) |
| 15,000                      | $75    | $65 or 14,400 FCFA (Growth, 3 paid numbers) |
| 30,000                      | $150   | $89 or 21,000 FCFA (Growth, 6 paid numbers) |

Past the allowance, the API refuses sends (402 `plan_limit_messages`) until you add numbers to the
plan, move up a tier or reach the next period; Twilio simply bills each extra message.

Two things move these numbers. Every customer reply also costs $0.005 on Twilio, so a two-way
conversation doubles the Twilio column; on Genuka WA replies are free. And yearly billing lowers
Genuka WA's base price to $15, $39 and $119 a month (3,000, 8,000 and 25,000 FCFA). The full grid,
including extra numbers, is on the [pricing page](https://wa.genuka.com/en#pricing) and, in Markdown, at
[`/pricing.md`](https://wa.genuka.com/pricing.md).

> [!WARNING]
> **For low-volume one-way notifications, Twilio is cheaper**
>
> If you mostly send notifications nobody answers and you pay in USD, Twilio's per-message fee
> stays below our price up to about 13,000 messages a month; above that, Genuka WA costs less.
> When customers reply, that threshold drops to around 5,000 outbound messages. Genuka WA also
> wins when you need FCFA pricing and Mobile Money, or when you run several client businesses under
> one account.

### What does Meta charge, whichever provider you pick?

Since July 1, 2025, Meta charges per delivered template message, by category (marketing, utility,
authentication) and by the recipient's country code. Since **October 1, 2026**, Meta also charges
service messages (the free-form replies you send inside the 24-hour customer service window) at
the same rate as utility and authentication messages in that market, and utility templates sent
inside that window are charged too. Messages sent within the 72-hour free entry point window
opened by a Click to WhatsApp ad stay free.

None of that depends on the provider. What changes is who sends you the bill: Twilio passes Meta's
fee through on your Twilio invoice; with Genuka WA, Meta bills your WABA on the payment method you
add in WhatsApp Manager. Until one is added, template sends fail with Meta error `131042`.

## How do I connect a WhatsApp number on each platform?

On **Twilio**, you upgrade your account, then run Self Sign-up: log in with Facebook, create or
pick a WABA, and verify the number by SMS or voice call. All senders on a Twilio account (or
subaccount) must sit in the same WABA; to manage several, Twilio has you create one subaccount per
client. If you are a software vendor onboarding *your* clients, Twilio's Tech Provider
Program asks you to create your own Meta app, complete business verification and pass Meta's App
Review; Twilio says these first steps usually take 3 to 4 weeks.

On **Genuka WA**, Genuka already is the Tech Provider, so there is no Meta app to create and no App
Review to pass:

1. ### Create an account

   Sign up, and your workspace opens on a 7-day free trial with one number. No card is required.

2. ### Connect the number through Embedded Signup

   Open **Numbers**, then **Add a number**: Meta's Embedded Signup runs right in your dashboard. On
   Scale and Enterprise, you can instead copy your **Connect link** and send it to the business that
   owns the number; add `?ref=<your-client-id>` to it to know which client connected which number.
   See [Connecting a number](https://wa.genuka.com/en/docs/onboarding).

3. ### Add a payment method on the WABA, then send

   Meta bills the WABA directly, so its owner adds a payment method in WhatsApp Manager. Then create
   an API key and send your first message: see the [quickstart](https://wa.genuka.com/en/docs/quickstart).

Whichever provider you choose, Meta's own limits apply to the business behind the number: a new
business portfolio starts at 250 unique recipients per moving 24-hour period, outside the customer
service window, and verifying the business with Meta is one of the ways to raise it to 2,000.

## Can I keep using the WhatsApp Business app on the same number?

On Genuka WA, yes. Meta's coexistence mode lets a number already registered on the WhatsApp
Business app connect to the API while the app keeps working for one-to-one chats, and history stays
in sync. Meta's conditions: app version 2.24.17 or later, history synced within 24 hours of
onboarding, and a fixed throughput of 20 messages per second for that number. Only a number
registered on the regular consumer WhatsApp app has to be freed first. Step by step:
[Coexistence](https://wa.genuka.com/en/docs/guides/coexistence).

Twilio's self sign-up guide, as of today, tells you to delete the WhatsApp or WhatsApp Business app
account on the number before registering it. If coexistence matters to you, check Twilio's current
documentation for any other path.

## How do webhooks and SDKs compare?

**Webhooks.** Twilio posts status callbacks to your URL and signs each request with
`X-Twilio-Signature`, an HMAC-SHA1 computed from your auth token, the URL and the request
parameters. Genuka WA posts one JSON event per delivery, with Meta's raw value untouched inside,
signed with `X-Genuka-Signature`: an HMAC-SHA256 of the timestamp and the raw body, so a captured
request cannot be replayed later. Failed deliveries are retried 5 times over about 8.5 hours, and
any delivery can be replayed from the dashboard. Details in [Webhooks](https://wa.genuka.com/en/docs/webhooks).

**SDKs.** Twilio maintains server-side libraries in seven languages. Genuka WA ships one,
[`@genuka/whatsapp`](https://wa.genuka.com/en/docs/library) for TypeScript, which validates payloads before the network
call and maps Meta's error codes to decisions. From any other language you call the REST API
directly, or generate a client from the OpenAPI spec at `/openapi.json`.

**AI agents.** Twilio publishes `@twilio-alpha/mcp`, an alpha MCP server that exposes its public
APIs. Genuka WA provides an MCP server, `@genuka/whatsapp-mcp` (being published to npm), a
`/llms.txt` index, and a Markdown version of every docs page (add `.mdx` to its URL). See
[AI agents](https://wa.genuka.com/en/docs/guides/ai-agents).

## What changes in my code if I move from Twilio?

Twilio sends a WhatsApp template as a form-encoded request with a `whatsapp:` prefix on each number
and a Content SID for the template:

```bash title="Twilio (from Twilio's docs)"
curl -X POST "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json" \
  --data-urlencode "ContentSid=HXXXXXXXXX" \
  --data-urlencode "To=whatsapp:+18551234567" \
  --data-urlencode "From=whatsapp:+15005550006" \
  --data-urlencode "ContentVariables=$CONTENT_VARIABLES_OBJ" \
  --data-urlencode "MessagingServiceSid=MGXXXXXXXX" \
  -u $TWILIO_API_KEY:$TWILIO_API_SECRET
```

On Genuka WA, the same send is a JSON body. The sender is a `connectionId` (list yours with
`GET /api/v1/connections`), and the template is referenced by its name and language:

**curl**

```bash
curl -X POST https://wa.genuka.com/api/v1/messages \
  -H "Authorization: Bearer $GENUKA_WA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "connectionId": "con_1",
    "to": "+237690000001",
    "template": { "name": "order_shipped", "language": "en_US", "variables": ["Alice", "#1024"] }
  }'
```

**Node.js**

```ts
const res = await fetch("https://wa.genuka.com/api/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.GENUKA_WA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    connectionId: "con_1",
    to: "+237690000001",
    template: { name: "order_shipped", language: "en_US", variables: ["Alice", "#1024"] },
  }),
});

const { data } = await res.json(); // { messageId: "wamid.…" }
```

**Python**

```python
import os
import requests

res = requests.post(
    "https://wa.genuka.com/api/v1/messages",
    headers={"Authorization": f"Bearer {os.environ['GENUKA_WA_API_KEY']}"},
    json={
        "connectionId": "con_1",
        "to": "+237690000001",
        "template": {"name": "order_shipped", "language": "en_US", "variables": ["Alice", "#1024"]},
    },
    timeout=10,
)
res.raise_for_status()
print(res.json()["data"]["messageId"])
```

**PHP**

```php
<?php
$ch = curl_init("https://wa.genuka.com/api/v1/messages");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer " . getenv("GENUKA_WA_API_KEY"),
        "Content-Type: application/json",
        "User-Agent: acme-crm/1.0",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "connectionId" => "con_1",
        "to" => "+237690000001",
        "template" => ["name" => "order_shipped", "language" => "en_US", "variables" => ["Alice", "#1024"]],
    ]),
]);
$response = json_decode(curl_exec($ch), true);
echo $response["data"]["messageId"];
```

| On Twilio                             | On Genuka WA                                   |
| ------------------------------------- | ---------------------------------------------- |
| `From=whatsapp:+…`                    | `connectionId`, from `GET /api/v1/connections` |
| `To=whatsapp:+…`                      | `to`, in international format with the `+`     |
| `ContentSid` + `ContentVariables`     | `template: { name, language, variables }`      |
| Basic auth with an API key and secret | `Authorization: Bearer pk_live_…`              |
| `X-Twilio-Signature` on callbacks     | `X-Genuka-Signature` on webhooks               |

Every message type (text, media, buttons, lists, templates) goes through the same endpoint: see
[Sending messages](https://wa.genuka.com/en/docs/messages) and the [API reference](https://wa.genuka.com/en/docs/api).

## When should you choose Twilio instead?

* **You need SMS, MMS or RCS next to WhatsApp.** Twilio covers them in the same Messaging API;
  Genuka WA is WhatsApp only.
* **Your traffic is one-way and modest.** Notifications nobody replies to cost less on Twilio's
  pay-as-you-go pricing than on our plans billed in USD, up to about 13,000 messages a month.
* **You want a sandbox before connecting a real number.** Twilio has one; Genuka WA does not.
* **Your team works in Java, C#, Go or Ruby and wants an official SDK.** Twilio maintains one per
  language; we ship TypeScript and an OpenAPI spec.
* **You want Meta's fees on the same invoice as your provider's.** Twilio passes them through;
  with Genuka WA, Meta bills your WABA separately.

## When is Genuka WA the better fit?

* **You bill in FCFA or pay by Mobile Money.** Plans are priced in XAF and XOF and paid from a
  Mobile Money wallet; card is available in EUR and USD.
* **Your customers write back.** Inbound messages cost nothing on our side, so conversations do not
  double your bill.
* **The number already runs on the WhatsApp Business app.** Coexistence keeps the app working.
* **You onboard numbers for other businesses.** From the Scale tier, share one connect link, tag
  each client with `?ref=`, and manage every WABA from one API key, without becoming a Tech
  Provider yourself.
* **You want French documentation.** All API docs exist in French and English (the TypeScript SDK
  guides are English only).

## FAQ

### Is Genuka WA cheaper than Twilio for WhatsApp?

It depends on volume and replies. For one-way notifications billed in USD, Twilio's $0.005 per
message costs less than our plans up to about 13,000 messages a month; above that, Genuka WA costs
less, by adding numbers to the Growth plan (each one adds 5,000 messages to the allowance for $8).
Once customers reply, Twilio charges each reply as well: at 5,000 outbound messages a month with as
many replies, both cost about $50, and above about 5,700 Genuka WA costs less (10,000 messages: $57
against $100). Meta's own fees are the same on both.

### Do Twilio and Genuka WA both use the official WhatsApp API?

Yes. Both send through Meta's WhatsApp Business Platform. Genuka WA is a Meta Tech Provider: you
connect your own WABA through Meta's Embedded Signup and Meta bills that WABA directly.

### Can I pay for WhatsApp with Mobile Money?

You can pay your Genuka WA subscription by Mobile Money in XAF or XOF. Twilio's help center lists
credit cards, PayPal in some regions, and wire transfer or ACH for monthly invoicing, which is
reserved for commitments of at least $12,000 a year; it says local payment methods are not
supported yet. In both cases, Meta's own message fees are not paid by Mobile Money: Twilio adds
them to its invoice, and with Genuka WA Meta charges the payment method on your WABA.

### Does Twilio charge for incoming WhatsApp messages?

Yes. Twilio's pricing page lists $0.005 per message, inbound or outbound. Genuka WA does not charge
for incoming messages, and they do not count against your plan's allowance.

### Do I still need Meta business verification?

Not to become a provider: Genuka holds the Tech Provider status. Meta still applies its limits to
your business, though. A new business starts at 250 unique recipients per moving 24-hour period,
outside the customer service window, and verifying it is one way to raise that limit. To send
one-time codes (authentication templates), you do need a verified business: without it, creating
those templates is refused. See
[WhatsApp API without Meta verification](https://wa.genuka.com/en/docs/guides/without-meta-verification).

## Sources

Read on October 8, 2026.

* Twilio, WhatsApp pricing: [https://www.twilio.com/en-us/whatsapp/pricing](https://www.twilio.com/en-us/whatsapp/pricing)
* Twilio, WhatsApp Self Sign-up: [https://www.twilio.com/docs/whatsapp/self-sign-up](https://www.twilio.com/docs/whatsapp/self-sign-up)
* Twilio, Overview of the WhatsApp Business Platform with Twilio: [https://www.twilio.com/docs/whatsapp/api](https://www.twilio.com/docs/whatsapp/api)
* Twilio, WhatsApp docs and Sandbox: [https://www.twilio.com/docs/whatsapp](https://www.twilio.com/docs/whatsapp)
* Twilio, Tech Provider Program: [https://www.twilio.com/docs/whatsapp/isv/tech-provider-program](https://www.twilio.com/docs/whatsapp/isv/tech-provider-program)
* Twilio, Tech Provider Program integration guide: [https://www.twilio.com/docs/whatsapp/isv/tech-provider-program/integration-guide](https://www.twilio.com/docs/whatsapp/isv/tech-provider-program/integration-guide)
* Twilio, Send WhatsApp notification messages with templates: [https://www.twilio.com/docs/whatsapp/tutorial/send-whatsapp-notification-messages-templates](https://www.twilio.com/docs/whatsapp/tutorial/send-whatsapp-notification-messages-templates)
* Twilio, Messaging overview: [https://www.twilio.com/docs/messaging](https://www.twilio.com/docs/messaging)
* Twilio, Server-side SDKs: [https://www.twilio.com/docs/libraries](https://www.twilio.com/docs/libraries)
* Twilio, Webhooks security: [https://www.twilio.com/docs/usage/webhooks/webhooks-security](https://www.twilio.com/docs/usage/webhooks/webhooks-security)
* Twilio, Register WhatsApp senders for ISVs (subaccounts): [https://www.twilio.com/docs/whatsapp/isv/register-senders](https://www.twilio.com/docs/whatsapp/isv/register-senders)
* Twilio Help Center, About Payment Types: [https://support.twilio.com/hc/en-us/articles/49507358452635-About-Payment-Types](https://support.twilio.com/hc/en-us/articles/49507358452635-About-Payment-Types)
* Twilio Help Center, Can I Use PayPal to Pay Twilio?: [https://support.twilio.com/hc/en-us/articles/223183368-Can-I-Use-PayPal-to-Pay-Twilio](https://support.twilio.com/hc/en-us/articles/223183368-Can-I-Use-PayPal-to-Pay-Twilio)
* Twilio Alpha, MCP server: [https://github.com/twilio-labs/mcp](https://github.com/twilio-labs/mcp)
* Meta, WhatsApp Business Platform pricing: [https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing)
* Meta, Pricing updates for service and utility messages: [https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/non-template-messages](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/non-template-messages)
* Meta, Solution Partners and Tech Providers: [https://developers.facebook.com/documentation/business-messaging/whatsapp/solution-providers/overview](https://developers.facebook.com/documentation/business-messaging/whatsapp/solution-providers/overview)
* Meta, Onboarding customers as a Tech Provider: [https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-customers-as-a-tech-provider](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-customers-as-a-tech-provider)
* Meta, Onboarding WhatsApp Business app users (coexistence): [https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users](https://developers.facebook.com/documentation/business-messaging/whatsapp/embedded-signup/onboarding-business-app-users)
* Meta, Messaging limits: [https://developers.facebook.com/documentation/business-messaging/whatsapp/messaging-limits](https://developers.facebook.com/documentation/business-messaging/whatsapp/messaging-limits)
* Meta, Error codes: [https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes)
