+254 722 117 850 Support Login
Products WhatsApp Business
Messaging · Live

WhatsApp Business. Without the Meta paperwork.

Sozuri runs the official WhatsApp Business cloud rail so you can send text, images, documents, buttons, lists and location pins from the same /v1/messaging endpoint as your SMS. One API, one bill, two channels.

Official Meta API Read receipts Interactive buttons + lists
Endpoint POST /api/v1/messaging
Channel "channel": "whatsapp"
Field style snake_case
Window 24-hour customer care
What you can send

Every WhatsApp message type, behind one envelope

Pick the type, attach the payload, post. Sozuri handles Meta's quirks so your code stays clean.

Text

Up to 4,096 characters with WhatsApp formatting (*bold*, _italic_, ~strike~, ```mono```). Quote any prior message with context.

Media

Images, video, audio, documents and stickers via a public URL. Sozuri streams the asset to Meta and tracks delivery.

Interactive buttons

Up to 3 reply buttons per message. Customer taps, your webhook fires with the button payload — no free-text parsing needed.

List menus

Multi-section picker with up to 10 rows per section. Ideal for catalogues, time-slot booking, branch selection.

Location pins

Send a named pin with lat / long, name and address — customers tap to open Maps. Receive customer-shared pins on inbound.

Statuses & reactions

Sent, delivered, read and failed states arrive as webhooks. Reactions from customers (♥, ๐Ÿ‘, etc.) too.

In the API

An interactive-button message in 12 lines.

The shape mirrors Meta's official Cloud API but the auth, retries, and webhooks are all Sozuri's. You write Kenyan-shaped JSON, we handle Meta.

Note WhatsApp payloads use snake_case field names (e.g. recipient_type) — the only Sozuri channel that does. SMS payloads stay camelCase.
Full API reference →
whatsapp-interactive.sh
# Send an interactive button message
curl -X POST "https://api.sozuri.net/v1/messaging" \
  -H "Authorization: Bearer $SOZURI_API_KEY" \
  -d '{
    "project": "Galaxion",
    "from": "+254700000111",
    "to": "+254712345678",
    "channel": "whatsapp",
    "recipient_type": "individual",
    "type": "interactive",
    "campaign": "invoice-pay",
    "interactive": {
      "type": "button",
      "body": { "text": "Invoice #4821 โ€” KSh 2,400. Pay now?" },
      "action": {
        "buttons": [
          { "type": "reply", "reply": { "id": "PAY_4821", "title": "Pay KSh 2,400" } },
          { "type": "reply", "reply": { "id": "DELAY_4821", "title": "Pay later" } }
        ]
      }
    }
  }'
Inbound

Every customer reaction arrives as a webhook

Sozuri pushes a clean JSON envelope to your callback URL for every text, button tap, list selection, reaction, media share and read receipt.

Inbound text

Customer-sent text body delivered with message_id and Unix timestamp.

Button / list taps

Your button's id comes back so you can route the action without parsing free text.

Reactions

Emoji reactions to your messages arrive as their own event with the original message_id referenced.

Statuses

Sent → delivered → read → failed. Includes Meta's error code on failure for clean retry logic.

Common questions

What's different about WhatsApp

What's the 24-hour window?

WhatsApp's customer-care window: any free-form message you send must be within 24 hours of the customer's last inbound. Outside that window you must use an approved Template Message. Sozuri surfaces this on the response so you can branch correctly.

Do I need to register my business number with Meta?

Yes — that's part of onboarding. Sozuri walks you through the WhatsApp Business Account verification, business profile, and number porting. Lead time is typically 1–2 weeks.

Are media URLs really public?

Yes, WhatsApp's servers must be able to download the asset. If your storage is behind auth, generate a short-lived signed URL just for the send. Sozuri does not proxy media.

Can I send WhatsApp through the same code that sends SMS?

Yes. The endpoint is identical (/v1/messaging). The only differences are channel: "whatsapp", snake_case field names, and the type-specific payload object (text, image, interactive, etc.).

Invoice #4821 โ€” KSh 2,400 Pay now Pay later ✓✓ read · 13:03
Your move

Meet customers where they're already typing.

WhatsApp is Kenya's most-opened inbox. Pair it with Sozuri AI Agents and you've got 24/7 support that lives where customers already are.

Chat on WhatsApp
Your first SMS in the time it takes to brew coffee. Start building in minutes