wav1
DashboardOpenAPI document
GETTING STARTED

Send your first message

wa is a self-hosted WhatsApp gateway: one instance, one Postgres database, your own encryption key. Five steps from invite to delivered.

1

Get invited

There is no sign-up. The person running this instance creates your account and sends you an invite link.

2

Add a device

In the dashboard, add a device and name it after the system that will send from it.

3

Link a number

Open WhatsApp on the phone → Settings → Linked devices → Link a device, and scan the QR code wa shows. The status walks qr → connecting → connected.

4

Create a device token

On the device page, create a token. It is shown once — store it where your backend reads its secrets, never in the repository.

5

Send, then listen

POST to /v1/send with that token. Point the device webhook URLs at your backend and verify the signature to receive replies and delivery status.

The one call you need

shell
curl -X POST https://api.sapa.tokoaplikasi.id/v1/send \
  -H "Authorization: Bearer $WA_DEVICE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "target": "628123456789", "message": "wa is wired up." }'

A 200 means the message was accepted and queued, not that it arrived. Follow the id it returns, or wait for the status webhook.

Vocabulary

Device, token, send, webhook — deliberately the same four nouns as Fonnte, so an existing integration ports with a base-URL change.

Under the hood

WhatsApp's own multi-device protocol over a WebSocket. No browser, no Chromium, no third party in the message path.