Zindua
WhatsApp guide

Meet the anti-ban Guardian

Your linked WhatsApp number is an asset. Burst traffic looks like spam. The Guardian watches every WhatsApp send so your line stays safe and your project stays online.

Blinking green eyes mean protection is active. Official SDKs cooperate automatically. You focus on OTP UX.

Protects your number

Rapid or parallel OTP floods put business lines at ban risk. The Guardian paces delivery so one noisy integration cannot burn the number you scanned in the dashboard.

Blocks overload

Abuse, retries storms, and accidental loops are treated as hostile load. When traffic is unsafe, sends are held or refused so the rest of the platform (and your account) stays healthy.

Works with official SDKs

Node, PHP, Python, and .NET SDKs cooperate with the Guardian automatically on WhatsApp sends. You call send(); pacing and protection stay on our side.

Why it exists

Spam burns numbers. We refuse that outcome.

If an integration floods WhatsApp, the Guardian intervenes. That is how we keep your linked line and the rest of Zindua safe.

WhatsApp treats aggressive OTP patterns as abuse. When that happens, your business number is what gets restricted, not ours. The Guardian is there so a bug, a load test, or a bad actor cannot silently destroy the line you connected.

Safe traffic continues. Unsafe bursts are slowed or stopped. If someone tries to overwhelm the channel on purpose, the Guardian still stands in the way: your account and number are not free fire for spam machines.

How you stay safe

Build like a good neighbor

No special knobs required. Use official SDKs and sensible product UX.

  • Send WhatsApp OTP from your backend only (never from mobile or browser).
  • Design resend UX with a short cooldown so users cannot hammer WhatsApp.
  • Prefer a job queue for any bulk or retry path; never fire parallel WhatsApp bursts.
  • If you see a wait message, slow down; the Guardian is protecting your linked line.
Update

Already installed? Upgrade once

Already on Zindua? Upgrade your official SDK so WhatsApp sends cooperate with the Guardian automatically. No config change. Just update the package.

Node.js / TypeScript v1.2.8

npm install @zindua/sdk@1.2.8

PHP / Composer v1.0.1

composer update zindua/sdk

Python / PyPI v1.0.2

pip install -U zindua-sdk

.NET / NuGet v1.0.1

dotnet add package Zindua.Sdk --version 1.0.1
SDKs

Automatic in every official stack

Call send on WhatsApp. The SDK and Guardian work together. You focus on OTP UX.

Node.js / TypeScript

npm install @zindua/sdk

import { Zindua } from "@zindua/sdk";

const zindua = new Zindua({ apiKey: process.env.ZINDUA_API_KEY! });

// WhatsApp OTP: Guardian + SDK cooperate automatically
await zindua.send({
  to: "+243812345678",
  channel: "whatsapp",
  template: "otp-verification",
  lang: "fr",
  variables: { code: "482910" },
});

PHP

use Zindua\Client;

$zindua = new Client(['apiKey' => getenv('ZINDUA_API_KEY')]);

// WhatsApp OTP: protection is automatic with the official SDK
$zindua->send([
    'to' => '+243812345678',
    'channel' => 'whatsapp',
    'template' => 'otp-verification',
    'variables' => ['code' => '482910'],
]);

Python

from zindua import Zindua
import os

zindua = Zindua(api_key=os.environ["ZINDUA_API_KEY"])

# WhatsApp OTP: Guardian + SDK cooperate automatically
zindua.send(
    to="+243812345678",
    channel="whatsapp",
    template="otp-verification",
    variables={"code": "482910"},
)

C# / .NET

await zindua.SendAsync(new ZinduaSendOptions
{
    To = "+243812345678",
    Channel = "whatsapp",
    Template = "otp-verification",
    Variables = new Dictionary<string, string> { ["code"] = "482910" },
});
// WhatsApp OTP: protection is automatic with Zindua.Sdk

Ready to connect WhatsApp?

Scan QR in the dashboard, then send OTP through the Guardian-protected pipeline.