Zindua

Instant communication platform for businesses, optimized for developers.

Product
  • WhatsApp
  • Campaigns
  • Bot builder
  • MailGuard
  • Verify
  • Pricing
Developers
  • Documentation
  • Node.js
  • Next.js
  • PHP
  • FastAPI
  • MCP / Cursor
Solutions
  • Public sector
  • Health & care
  • Banking & fintech
  • NGOs & associations
  • SaaS & product teams
  • All solutions
Company
  • About
  • Blog
  • Contact
  • Status
  • Terms
  • Privacy

Product

  • WhatsApp
  • Campaigns
  • Bot builder
  • MailGuard
  • Verify
  • Pricing

Developers

  • Documentation
  • Node.js
  • Next.js
  • PHP
  • FastAPI
  • MCP / Cursor

Solutions

  • Public sector
  • Health & care
  • Banking & fintech
  • NGOs & associations
  • SaaS & product teams
  • All solutions

Company

  • About
  • Blog
  • Contact
  • Status
  • Terms
  • Privacy

© 2026 Zindua, Inc. All rights reserved.

System status
Zindua
How it WorksPricingCompare
Sign in
Get started

Channel · WhatsApp OTP

Verification codes and alerts

Via your connected number. Transactional OTP and alerts from your business line. Guide v1.1. One API for Node, Python, PHP, or raw REST.

Same key as email and PushMirror.

npm install @zindua/sdk
Get API keySee docs
Anti-ban Guardian

Your number

Connect via QR in the dashboard. OTPs, alerts and notifications come from your business line.

Same API

Switch channel to whatsapp in send(): templates and variables stay identical.

Anti-ban Guardian

Protects your linked number from spam floods. Official SDKs cooperate automatically.

Multi-language

Pass lang: fr, en, sw, ar; template fallback is automatic.

Every stack

Node, Python, PHP, WordPress on one REST contract for WhatsApp messages.

Live logs

Trace delivery status in Dashboard → Logs for every WhatsApp send.

Send

Code examples

Pick a stack. The snippet updates. Same payload everywhere.

REST / curl

POST

Same payload as the SDKs. Send OTP from any backend.

curl.sh

Shell
curl.sh
curl -X POST https://zindua.run/api/v1/send \  -H "Authorization: Bearer $ZINDUA_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "to": "+243812345678",    "channel": "whatsapp",    "template": "otp-verification",    "lang": "fr",    "variables": { "code": "482910" }  }'

Setup

Connect and send

Five steps from QR scan to production OTP.

01

Create a project

Sign up at zindua.run and create a project. Copy your API key from the dashboard.

02

Connect WhatsApp

Open Projects → WhatsApp, scan the QR with your business phone, then set a sender name.

03

Ask users to save your number

Download the contact card from the dashboard and show it in your app before the first WhatsApp message. Recipients who save the contact see your name in the chat list.

04

Create a template

Add any template (OTP, alert, receipt…) with variables. Zindua prefixes messages with your sender name automatically.

05

Send from your backend

POST to /api/v1/send with channel: whatsapp. Optionally enable “Send contact card on first message” in the dashboard. Each new number gets the card once.

Webhooks

Know when your line is ready or down

Subscribe in Dashboard → Settings. These events cover your linked WhatsApp line and delivery receipts for messages Zindua sent.

EventWhatsApp

Session linked

whatsapp.session_linked

Fired once when a project successfully links a WhatsApp number (first connect). Use it to mark the line ready in your ops tools.

webhook-payload.json
1# Subscribe in Dashboard → Settings → Webhooks, then handle POSTs.2# Header: X-Zindua-Event: whatsapp.session_linked | whatsapp.session_ended | whatsapp.message.status | campaign.launched3#4# Example body:5# {6#   "id": "…",7#   "type": "whatsapp.session_ended",8#   "version": "2026-04-13",9#   "created": "2026-08-01T00:00:00.000Z",10#   "data": {11#     "projectSlug": "my-app",12#     "phoneE164": "+243812345678",13#     "status": "ended",14#     "reason": "logged_out",15#     "dashboardUrl": "https://zindua.run/dashboard/developper/projects/my-app/whatsapp"16#   }17# }

Header: X-Zindua-Event. Subscribe in Dashboard → Settings → Webhooks.

Checklist

Before you ship

Smoke-test key and channels before production sends.

01

Phone number in E.164 format (+243…)

02

WhatsApp session connected and green in dashboard

03

Sender name set (brand prefix on every message)

04

Ask users to save your number before important WhatsApp traffic

05

Template slug exists with required variables (OTP, alerts, notifications…)

06

API key on server only, never in mobile or browser

07

Use a resend cooldown / queue so users cannot flood WhatsApp

08

Optional: subscribe to WhatsApp session webhooks in Dashboard → Settings

Test with the CLI

npx @zindua/cli@latest doctor

No-code WordPress?

OTP login and WooCommerce alerts with the official plugin.

WordPress pluginHow it works