Zindua

Instant communication platform for businesses, optimized for developers.

Product
  • WhatsApp
  • Campaigns
  • PushMirror
  • MailGuard
  • Pricing
  • Compare
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
  • PushMirror
  • MailGuard
  • Pricing
  • Compare

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

Pipeline · SDK & API

From send() to the inbox.
Six steps. One API.

Call the SDK. We isolate the project, resolve the template, queue, and dispatch. Email, WhatsApp, or push. Same contract.

OTP is a template, not a separate product. Campaigns stay on the dashboard desk.

See docs

One call

The path after send().

Connect a channel, pick a template, deliver. Isolation, i18n, queue, and webhooks are already in the pipe.

Your app

API Key
znd_live_…
SDK call
TypeScript / Node.js

Zindua engine

Project resolve
Decrypt creds
Template lookup
Lang resolve
Inject variables
Quota & log

Delivery

Your channel
Email · WA · Push
Delivered
Notification landed

Six steps

What happens on the wire.

Step 01

Call the SDK

Install @zindua/sdk and call send(). Template slug, optional language, channel. One line. Infrastructure stays out of your app.

Step 02

Project isolation

The request is authenticated and isolated to your project. Each project has its own API key, templates, and connectors.

Step 03

i18n and engine

The engine fetches the slug. If a language is requested, that version renders. Otherwise the project default. No fallback logic in your code.

Step 04

Redis-backed queue

The rendered message is enqueued with retries, priority, and rate limits so deliverability stays even when volume spikes.

Step 05

Universal dispatch

Zindua sends through the connector you already run: Gmail, Outlook, SMTP, WhatsApp on your number, or PushMirror in the app. Provider details stay on our side.

Step 06

Delivered and tracked

The message lands. Open, click, bounce, and read events come back to the dashboard and your webhooks.

send.ts · Step 01Auto
import { Zindua } from '@zindua/sdk'; const client = new Zindua({  apiKey: process.env.ZINDUA_KEY,}); await client.send({  to: 'user@example.com',  channel: 'email',  template: 'welcome',  lang: 'fr',  variables: { name: 'Alex' },});

WhatsApp

Notices on the number they already save.

Connect the line once. Pickup windows, fee reminders, clinic slots, and OTP when you need a code. Same send(). Campaigns stay a desk.

Scan and connect

Dashboard, project, WhatsApp. Scan the QR with your service phone. Pause or unlink anytime.

Your API key only

Call from the backend with znd_live_ keys. Keys never touch the browser. Sessions stay on our servers.

One API, every channel

Use channel: whatsapp, email, or push. Same templates, variables, and logs.

POST /v1/send
whatsapp.json · json
{
  "to": "+243812345678",
  "channel": "whatsapp",
  "template": "pickup-ready",
  "variables": { "order": "ZND-4821" }
}
WhatsApp docs

Reliability

Built in, not bolted on.

< 15ms median latency

From API call to queue, before the provider even sees it.

Zinc stack sculpture for latency

AES-256-GCM encryption

Credentials encrypted at rest. Never stored in plain text.

Zinc ring sculpture for encryption

Automatic retries

Up to 5 attempts with exponential backoff. Reliability by default.

Zinc burst sculpture for retries

Full observability

Every event logged. Every error surfaced. Every delivery tracked.

Zinc pyramids sculpture for logs