Getting started: connect your WhatsApp number in 60 seconds
This is the whole onboarding, start to finish. Grab your phone.
1. Create an account and a number
Register in the dashboard, then click Add number. Give it a label — you'll thank yourself when you have four of them. The first number on your account starts a 5-day Premium trial, so every feature is unlocked while you test.
2. Link WhatsApp
Open the number and go to the Connect tab. You'll see a QR code. On your phone: WhatsApp → ⋮ (Android) or Settings (iPhone) → Linked devices → Link a device → scan.
No camera, or linking a number on a different phone? Enter that number in the Link with a code box, press Get code, and type the 8-character code under Link with phone number instead.
Within a few seconds the tab shows Connected with your WhatsApp name and number. You can put the phone away now; the session lives on the server.
3. Send your first message
Switch to the API tab. Your key is at the top. Below it is a Quick test box — type a number (yours is fine) and a message, hit Send, and watch it arrive. The response shows the queue ID and status.
From code, it's a single request:
curl -X POST https://signup.wagate.net/v1/messages \
-H "X-API-Key: wg_your_key" -H "Content-Type: application/json" \
-d '{"to":"61412345678","text":"Hello from WAGate 👋"}'
Phone numbers can be in any format — +61 412 345 678, 61412345678, with or without the plus. Just include the country code.
4. Receive replies with a webhook
On the Webhook tab, paste the URL of a script on your server and tick the events you care about. Every incoming message is POSTed there as JSON, signed with the secret shown on the page. The Recent deliveries table shows each attempt and your server's response code — invaluable when debugging.
A minimal PHP receiver:
$body = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_WAGATE_SIGNATURE'] ?? '';
if (!hash_equals('sha256='.hash_hmac('sha256', $body, $secret), $sig)) { http_response_code(401); exit; }
$evt = json_decode($body, true);
if ($evt['event'] === 'message.received') {
// $evt['data']['from'], $evt['data']['body'] …
}
http_response_code(200);
5. Watch it work
The Messages tab lists everything in and out with status, and a 30-day chart. If something fails, the error is right there in the row. That's it — you're live.
Try WAGate free for 5 days
Link your WhatsApp number, get an API key and send your first message in minutes. No card required — pay with crypto when you're ready.
Start free trial See plans