Skip to content
WaveSenda
Start free
4 numbers connected · 1.2M messages this month

WhatsAppinfrastructurethat stays up.

Send and receive over a REST API. Run AI agents on your conversations. And watch a health engine that tells you a number is at risk before it gets banned, not after.

Unlimited messages · from $4/mo · no card for the trial
Throughput · msg/sLIVE
Delivered
99.4%
p50 latency
340ms
Health
94/100
REST + webhooks
Send, receive, media, groups
AI agents
Answer from your own knowledge
Flows
Automations without code
Ban-risk engine
Scored and paced continuously
01

Integrate

# Send a WhatsApp message.
curl https://api.wavesenda.com/api/v1/messages/send/ \
  -H "Authorization: Bearer ws_live_…" \
  -d '{"session":"support","to":"+237612345678",
       "text":"Your order is on its way."}'
202 Accepted
{
  "id": "0193f0a2-4c7e-7000…",
  "status": "queued",
  "session": "support"
}

Queued, not sent-and-blocked. Outbound traffic is paced per number to protect it — you get the id immediately and the delivery result by webhook. Pass wait: true when you genuinely need the WhatsApp id inline.

02

Everything on the wire

TEXTText, replies, mentionsQuote, react, edit and delete for everyone.
MEDIAImages, video, documentsUploaded once, sent many times. Type sniffed, not trusted.
VOICEVoice notes, in and outTranscribed on arrival, and answered in voice where a customer spoke — in your own voice, cloned from a recording of it.
PAYMoney in the threadRaise a payment from the conversation and send a secure card link, collected into the merchant’s own account.
LIVEA standby numberIf a number is lost, agents, flows and open conversations move to the next one.
LOOSEPromises, keptReads what you said you would do out of your own chats, and reminds you the morning it is due.
ORDROrders read from chatGroup messages turned into an order you confirm. Nothing is charged until you do.
FINDFind any recipientGroup ids are invisible in WhatsApp. Sync them, resolve a number, or just have someone message you.
GROUPGroups and channelsCreate, promote, invite links, participant-level results.
HOOKSigned webhooksHMAC, retries with backoff, a delivery log and one-click replay.
CAPTWebhook captureA receiver we host, so you can see a real delivery before you write one.
SESSMulti-number sessionsQR or pairing code, auto-reconnect, encrypted credentials.
PLAYSandbox playgroundSend, inject an inbound message, watch the webhook fire. No code.
SDKTyped SDKsTypeScript, Python, PHP, Go, plus an MCP server.
PLUGDrop-in integrationsn8n, Shopify and WooCommerce, with no glue code to maintain.
03

The part that keeps you alive

Every unofficial API is one bad campaign from a dead number.

So we score each number continuously — reply rate, failure rate, opt-outs, connection stability — and act on it. Traffic is paced with randomised gaps and typing simulation. New numbers ramp over weeks instead of blasting on day one. When the score drops, sending throttles automatically; when it drops further, it stops.

A competitor sells you a pipe and lets you find out. This is the difference.

Session health/100
support
connected
94
sales
connecting
71
broadcast
logged out
28
04

Agents that know when to stop

Is the blue one still in stock in medium?
AI agent · 0.86
Yes — blue is in stock in medium and large. Delivery is 1–2 working days, $4.
Can I pay on delivery? And I need it by Friday.
Handed off to a human
Confidence 0.41 — delivery guarantees are not in the knowledge base.

A confident wrong answer is worse than no answer.

Agents answer from a knowledge base you upload and can call your own APIs to check a real order. When they are not sure, they fetch a person and hand over a summary of the thread — rather than guessing on your business’s behalf.

  • Everything the AI writes is marked, in the inbox and the audit log.
  • Thumbs-down with a correction becomes knowledge. No retraining.
  • Replies in the customer’s language, including from a voice note.
  • Every run is logged with its cost, confidence and tools called.
05

Follow-ups that read the reply

A drip that branches on what they said.

Most automation sends message two a day after message one and calls that a sequence. A flow asks what came back first — and two of its steps are a model, so “are they asking about price or about delivery?” is a branch rather than a rule you have to write.

Built on a canvas, in plain English, by whoever runs the number. A reply stops the whole thing by default, because a drip talking over a live conversation is worse than no drip at all.

Nodesblue = model
MESSAGESend a message — Personalised, with media, from the number you choose.
WAITWait — Hours or days. The contact carries on with their life.
CONDITIONBranch — On a reply, a tag, or what the reply contained.
CLASSIFYUnderstand — Routes on what they meant. Categories typed as sentences.
AGENTAnswer — An agent writes the next message itself, to a goal you set.
TAGTag — Label the contact so the rest of your setup can see it.
STOPStop — Leave the flow. Replying stops it on its own.
Triggered by a keyword, a first message, a tag, or your own API call
06

The promises nobody wrote down

You said you would send it tomorrow.

Your business runs in these chats, and the promises you make in them are written down nowhere. Not in a CRM, not on a list — just in a thread that is four hundred messages long by Thursday.

WaveSenda reads them out as they are made, on both sides, and keeps them somewhere you can see. At seven the next morning you get the ones falling due. Mark them done, or say it was never a promise — that is the whole interface.

It records obligations, not people. No sentiment score, no relationship rating, nothing that profiles whoever you are talking to — only what was promised, by whom, and whether it has happened.

In a group it keeps the decisions too. “Ok agreed” means nothing on its own, so it reads the messages around it — and a week later nobody has to scroll back to find out whether the date was ever settled.

Loose ends · we promised
send the quote
Ada · said Friday · overdue
deliver 20 cups
Douala group · said tomorrow
call back about the invoice
Mr Tabi · said this evening
07

The day the number dies

Banned at 9am. Trading by 9:04.

This runs on WhatsApp’s consumer service, and numbers on it do get banned. Everything else here exists to make that unlikely. This exists for the morning it happens anyway.

A standby number sits connected and idle, doing nothing at all. When the health engine calls the primary dead — or you press the button, because you usually know before it does — everything moves across.

The people who were mid conversation are told where to find you, on the new number, in the thread they were already in. That message is the difference between an outage and a lost customer list.

Failover · what moves
Agentsanswering on the new number
Flowsrunning, mid-sequence
Webhookspointing at the same endpoint
Open conversationscarried across, in place
08

Start from something that works

An empty flow editor is where a trial ends.

Import a ready-made flow and edit it like anything else. Every one of them stops the moment the customer replies, and every one arrives switched off so nothing is sent to anybody before you have read it.

Abandoned cart recovery

Ask once, offer help, then stop.

Appointment reminder

The day before and the morning of.

Unpaid invoice reminder

Firm, polite, and it stops when they answer.

Browse all templates
09

Get paid without leaving the chat

The sale was agreed here. So is the payment.

Raise a payment request in the conversation where the price was agreed. The buyer gets a card checkout, you get a receipt, and the record stays attached to the thread instead of living in a spreadsheet.

The money lands in your own Stripe account, never ours. Stripe verifies you, holds the funds, pays them out and owns the disputes — which is why a payment cannot be raised until you have connected one.

What it costs

We keep a small percentage of what you collect, taken by Stripe at the moment of the charge rather than invoiced later. Higher plans reduce it, and on Business we take nothing at all.

It never applies to your subscription — only to money you collect from your own customers. Stripe’s processing fee is separate and goes to them.

See the rate by plan →
10

Flat monthly. Unlimited messages.

Basic
$4 /mo
1 numbers
    Pro
    $11 /mo
    3 numbers
      Plus
      $25 /mo
      6 numbers
        Business
        $40 /mo
        10 numbers
          Start the 3-day trial →No card required for the trial · cancel any time