Pular para o conteúdo
WbizTool

API v2 (beta)

Números

Um número é um número de WhatsApp ou uma conta do Telegram conectada ao seu espaço de trabalho. O id dele é o from com que você envia mensagens. Com a API v2, você lista os números, vê se cada um está conectado e conecta um número de WhatsApp a partir do seu próprio app, por código QR ou código de login.

OperaçãoEndpointPermissão
Listar númerosGET /api/v2/numbersnumbers
Obter um númeroGET /api/v2/numbers/{id}numbers
Conectar um número de WhatsAppPOST /api/v2/numbersnumbers

Uma chave limitada a alguns números vê e reconecta só esses números e não pode adicionar um número.

Listar números#

GEThttps://wbiztool.com/api/v2/numbers

Todos os números do espaço de trabalho, dos mais antigos para os mais recentes, em uma única lista data (sem páginas).

curl https://wbiztool.com/api/v2/numbers \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
  "data": [
    {
      "id": 101,
      "phone": "919800000000",
      "label": "Shop",
      "platform": "whatsapp",
      "status": "connected",
      "login_method": "qr",
      "connect": null
    },
    {
      "id": 102,
      "phone": null,
      "label": "",
      "platform": "whatsapp",
      "status": "disconnected",
      "login_method": "qr",
      "connect": null
    }
  ]
}

connect é sempre null na lista. Para acompanhar uma conexão, obtenha o número.

Obter um número#

GEThttps://wbiztool.com/api/v2/numbers/{id}

Um número. Enquanto ele está se conectando, connect traz o código QR para escanear ou o código de login para digitar.

curl https://wbiztool.com/api/v2/numbers/102 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
  "id": 102,
  "phone": null,
  "label": "",
  "platform": "whatsapp",
  "status": "connecting",
  "login_method": "qr",
  "connect": {
    "qr_code_url": "https://…/qr_codes/…png?X-Amz-Signature=…",
    "pairing_code": null,
    "pairing_code_expires_at": null,
    "linking": false,
    "requested_at": "2026-10-18T11:02:15.402Z"
  }
}

Um número que não existe, ou que a chave não pode usar, responde 404 number_not_found.

O objeto Number#

CampoTipoDescrição
idintegerO id do número: o from de uma mensagem ou de um lembrete.
phonestring or nullOs dígitos com o código do país, sem +, como 919800000000. null em um número novo conectado por QR até o código QR ser escaneado.
labelstringO nome dele no painel; "" quando não tem nenhum.
platformstringwhatsapp ou telegram.
statusstringconnected, connecting (uma conexão foi pedida nos últimos 10 minutos e ainda está em andamento) ou disconnected.
login_methodstringComo ele se conecta: qr ou phone_code (um código de login).
connectobject or nullEnquanto status é connecting, e só em Obter um número; null nos outros casos.

connect tem:

CampoTipoDescrição
qr_code_urlstring or nullUm link para a imagem do código QR a escanear. Cada chamada dá um link novo, válido por 10 minutos; null até o servidor ter o código QR.
pairing_codestring or nullPara phone_code: o código a digitar no celular. null até ficar pronto.
pairing_code_expires_atstring or nullQuando o código de login deixa de funcionar.
linkingbooleantrue depois que o código QR foi escaneado ou o código foi aceito, enquanto o WhatsApp termina a vinculação.
requested_atstring or nullQuando a conexão foi pedida.

Mensagens enviadas com um número disconnected como from continuam sendo aceitas: elas esperam e saem quando ele for conectado de novo. Os eventos de webhook para números virão depois; até lá, consulte GET /numbers periodicamente para perceber um número que foi desconectado.

Conectar um número de WhatsApp#

POSThttps://wbiztool.com/api/v2/numbers

Corpo: JSON (application/json)

Pede a um servidor do WbizTool que abra o WhatsApp para um número, para que você o vincule a partir do seu próprio app ou site, como faria em Números do WhatsApp. A resposta é 202 com o Number, no status connecting. Depois, consulte-o periodicamente até ele ficar connected.

Exige um plano que inclua a API de código QR; caso contrário, responde 403 plan_required. As contas do Telegram são conectadas pelo painel, não aqui.

Corpo

login_methodstringopcional

qr (padrão): escanear um código QR. phone_code: digitar um código de login no celular, útil quando o celular é a única tela.

phonestringObrigatório para phone_code

O número de WhatsApp a vincular, no formato internacional com +, como +919876543210. Não é usado com qr: o número é lido do WhatsApp depois do escaneamento.

number_idintegeropcional

Reconectar este número existente em vez de adicionar um novo, por exemplo depois que ele foi desconectado.

# By QR code
curl -X POST https://wbiztool.com/api/v2/numbers \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"login_method": "qr"}'

# By pairing code, reconnecting number 101
curl -X POST https://wbiztool.com/api/v2/numbers \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"login_method": "phone_code", "phone": "+919876543210", "number_id": 101}'

O fluxo de conexão#

  1. Peça a conexão

    POST /numbers com login_method (e phone para um código de login). Guarde o id da resposta. Envie uma Idempotency-Key para que uma nova tentativa não peça duas vezes.

  2. Consulte o número a cada poucos segundos

    GET /numbers/{id} a cada 2 a 5 segundos enquanto status for connecting. O código QR ou o código de login aparece em connect em instantes; até lá, os campos dele são null.

  3. Mostre o código QR ou o código de login

    QR: mostre a imagem de connect.qr_code_url; no celular, abra o WhatsApp → Dispositivos conectados → Conectar dispositivo e escaneie. Cada link funciona por 10 minutos e um novo chega a cada consulta, então mostre sempre o mais recente. Código de login: no celular, abra o WhatsApp → Dispositivos conectados → Conectar dispositivo → Conectar com número de telefone e digite o connect.pairing_code de 8 caracteres antes de connect.pairing_code_expires_at (cerca de 3 minutos).

  4. Espere ficar conectado

    Depois do escaneamento ou do código, connect.linking fica true enquanto o WhatsApp termina a vinculação. Então status passa a connected e phone mostra o número. Pare de consultar.

Se nada acontecer em 10 minutos, a tentativa termina e status volta a disconnected. Peça de novo com POST /numbers e o number_id dele.

Enquanto um número está sendo conectado, outra requisição para ele responde 409 connect_in_progress com o number_id: continue consultando esse número em vez disso.

Erros ao conectar#

HTTPCódigoQuando
400validation_failedlogin_method não é qr nem phone_code, ou phone_code sem phone
403plan_requiredO plano não inclui a API de código QR
403number_limit_reachedO plano não tem espaço para outro número
403number_not_allowedA chave está limitada a alguns números, e number_id não é um deles (ou está faltando)
409already_connectedEsse número já está conectado
409connect_in_progressEsse número está sendo conectado agora; number_id diz qual
422invalid_phonephone não é um número válido no formato internacional com +
422number_not_foundnumber_id não é um número deste espaço de trabalho

Relacionados#