Skip to content

Quickstart

This guide takes you from sign-up to a first message sent through the API and a reply received back. There are five steps, and the second one (connecting your WhatsApp number) is the one people skip most: without it, every send answers 409 number_not_connected.

You need a phone with WhatsApp on the number that will send the messages. Turbo Notify connects to it as a linked device, the same way WhatsApp Web does, and the phone keeps working as usual.

That is why there is no Meta sign-up and no message template approval: Turbo Notify is an independent service, not affiliated with Meta, and does not use the official WhatsApp Business API. Every send follows a pace that helps protect your number, and the good practices keep it healthy.

1. Create your account

Create a free account at dashboard.turbonotify.com. If you already have one, sign in and go to the next step.

2. Connect your main number

The main number is the WhatsApp that sends and receives your account’s messages. You connect it in the dashboard:

  1. In the dashboard, open Numbers (opens in a new tab) and, on the Main number card, click Connect main number.
  2. Choose QR code or Pairing code.
  3. On the phone, open WhatsApp at Linked devices > Link a device. For the QR code, point the camera at the screen. For the code, tap Link with phone number instead and type the code shown in the dashboard.
  4. The card now shows the number as connected, and Turbo Notify appears under Linked devices on the phone with your organization’s name.

To check it through the API, GET /v1/numbers/main returns status: "connected" (see Status).

3. Create an API key

In the dashboard, open API keys (opens in a new tab) and create a key with the Full access template. The value is shown only once: copy it and store it somewhere safe. Every request carries the key in the Authorization: Bearer YOUR_KEY header (details in API key).

4. Send your first message

Replace YOUR_KEY with your key and the recipient with a WhatsApp number of yours, country code included:

turbo-notify.sh
curl -X POST \
https://api.turbonotify.com/v1/messages \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": {"number": "+5511988887777"},
"content": {"text": "Your order is confirmed!"}
}'

The 202 response means Turbo Notify accepted the message. Delivery to WhatsApp happens right after, asynchronously:

HTTP status: 202
{
  "message_id": "msg_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
  "status": {
    "state": "pending",
    "at": "2025-07-16T10:00:00Z",
    "error": null
  }
}

To follow the delivery, get the message by its message_id:

turbo-notify.sh
curl https://api.turbonotify.com/v1/messages/msg_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 \
-H "Authorization: Bearer YOUR_KEY"
HTTP status: 200
{
  "id": "msg_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
  "organization_id": "org_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
  "number_alias": "main",
  "number_id": "num_0a1b2c3d4e5f60718293a4b5c6d7e8f9",
  "from": {
    "contact_id": "ct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
    "name": "My Company",
    "number": "5511977776666",
    "alias": "main"
  },
  "to": {
    "number": "5511988887777"
  },
  "preview": "Your order is confirmed!",
  "content_expired": false,
  "text": "Your order is confirmed!",
  "content_type": "text",
  "direction": "outbound",
  "channel": "whatsapp",
  "origin": "tn",
  "at": "2025-07-16T10:00:00Z",
  "status": {
    "state": "delivered",
    "at": "2025-07-16T10:00:05Z"
  }
}

Delivery states are listed in Message status.

5. Receive replies

When someone replies, Turbo Notify produces a message.received event. You get it in one of two ways:

OptionHow it worksWhen to use it
WebhookTurbo Notify sends a signed POST to your endpoint for every event. Set the URL in the dashboard, under Webhooks (opens in a new tab) . Available from the Lone Wolf plan.You have a public HTTPS endpoint and want to react right away.
Event pollingYou call GET /v1/events from time to time (scope events:read). Available on every plan.You have no public endpoint, you are testing, or you are on the free plan.

Both deliver the same events in the same format. To choose, see Event polling.

What can go wrong

ResponseWhat it meansWhat to do
409 number_not_connectedThe sending number is not connected to WhatsApp.Go back to step 2 and connect the main number. If it was connected, check that Turbo Notify was not removed from Linked devices on the phone.
401 not_authenticatedThe key is missing, wrong or revoked.Check the Authorization: Bearer YOUR_KEY header.
403 insufficient_scopeThe key lacks the operation’s scope (required_scope names it).Use a key with that scope, or the Full access template.
400 invalid_phone_numberThe recipient is not a valid phone number.Send the number with its country code, such as +5511988887777.
429 send_rate_spacingYou sent before the minimum interval between messages of your plan.Wait the seconds in the Retry-After header. This pace protects your number.
429 messages_quota_exceeded or 402 contact_quota_exceededThe cycle’s message or contact quota is used up.See Quota and usage.
Message with state: "failed"WhatsApp did not accept the message.The status.error field carries the code and a hint. See Message status.

Every code is listed in Error codes.

Next steps