WhatsApp for developers
Verification codes and transactional alerts from your connected business number. WhatsApp OTP guide v1.0. One API for Node, Python, PHP, or raw REST.
Watch the eyes. Click the robot.
Green lamp on means your WhatsApp line is under protection. Meet the Guardian that stops spam floods so your number does not get banned.
Your number
Connect via QR in the dashboard. OTPs and alerts 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 OTP.
Live logs
Trace delivery status in Dashboard → Logs for every WhatsApp send.
Connect and send
Four steps from QR scan to production OTP.
Create a project
Sign up at zindua.run and create a project. Copy your API key from the dashboard.
Connect WhatsApp
Open Projects → WhatsApp, scan the QR code with your business phone. Session stays on Zindua workers.
Create an OTP template
Add a template slug like otp-verification with FR/EN versions and a {{code}} variable.
Send from your backend
POST to /api/v1/send with channel: whatsapp. Never call Zindua directly from mobile apps.
Code examples
Pick your stack. Same payload everywhere.
REST / curl
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" }
}'Node (@zindua/sdk)
npm install @zindua/sdk
import { Zindua } from "@zindua/sdk";
const zindua = new Zindua({ apiKey: process.env.ZINDUA_API_KEY! });
await zindua.send({
to: "+243812345678",
channel: "whatsapp",
template: "otp-verification",
lang: "fr",
variables: { code: "482910" },
});Python (httpx)
import httpx, os
httpx.post(
"https://zindua.run/api/v1/send",
headers={"Authorization": f"Bearer {os.environ['ZINDUA_API_KEY']}"},
json={
"to": "+243812345678",
"channel": "whatsapp",
"template": "otp-verification",
"variables": {"code": "482910"},
},
timeout=30,
).raise_for_status()Before you ship
Phone number in E.164 format (+243…)
WhatsApp session connected and green in dashboard
Template slug exists with required variables
API key on server only, never in mobile or browser
Use a resend cooldown / queue so users cannot flood WhatsApp OTP
Test with the CLI
Smoke-test key and channels before production sends.
npx @zindua/cli@latest doctorNo-code WordPress?
OTP login and WooCommerce alerts with the official plugin.