Saltar al contenido
WbizTool

API v2 (beta)

Números

Un número es un número de WhatsApp o una cuenta de Telegram conectada a tu espacio de trabajo. Su id es el from con el que envías mensajes. Con la API v2 los listas, ves si cada uno está conectado y conectas un número de WhatsApp desde tu propia app, con código QR o código de vinculación.

OperaciónEndpointPermiso
Listar númerosGET /api/v2/numbersnumbers
Obtener un númeroGET /api/v2/numbers/{id}numbers
Conectar un número de WhatsAppPOST /api/v2/numbersnumbers

Una clave limitada a algunos números solo ve y vuelve a conectar esos números, y no puede añadir un número.

Listar números#

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

Todos los números del espacio de trabajo, primero los más antiguos, en una sola lista data (sin 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 siempre es null en la lista. Para seguir una conexión, obtén el número.

Obtener un número#

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

Un número. Mientras se está conectando, connect contiene el código QR que hay que escanear o el código de vinculación que hay que escribir.

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"
  }
}

Un número que no existe, o que la clave no puede usar, responde 404 number_not_found.

El objeto Number#

CampoTipoDescripción
idintegerEl ID del número: el from de un mensaje o de un recordatorio.
phonestring or nullSus dígitos con el código de país, sin +, como 919800000000. null para un número nuevo conectado por QR hasta que se escanea el código QR.
labelstringSu nombre en el panel; "" cuando no tiene.
platformstringwhatsapp o telegram.
statusstringconnected, connecting (se pidió una conexión en los últimos 10 minutos y sigue en curso) o disconnected.
login_methodstringCómo se conecta: qr o phone_code (un código de vinculación).
connectobject or nullMientras status es connecting, y solo en Obtener un número; null en los demás casos.

connect contiene:

CampoTipoDescripción
qr_code_urlstring or nullUn enlace a la imagen del código QR que hay que escanear. Cada llamada da un enlace nuevo, válido durante 10 minutos; null hasta que el servidor tiene el código QR.
pairing_codestring or nullPara phone_code: el código que hay que escribir en el teléfono. null hasta que está listo.
pairing_code_expires_atstring or nullCuándo deja de funcionar el código de vinculación.
linkingbooleantrue una vez escaneado el código QR o aceptado el código, mientras WhatsApp termina de vincular.
requested_atstring or nullCuándo se pidió la conexión.

Los mensajes enviados con un número disconnected como from se siguen aceptando: esperan y salen cuando el número vuelve a estar conectado. Los eventos de webhook para números llegarán más adelante; hasta entonces, consulta GET /numbers periódicamente para detectar un número que se desconectó.

Conectar un número de WhatsApp#

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

Cuerpo: JSON (application/json)

Pide a un servidor de WbizTool que abra WhatsApp para un número, para que puedas vincularlo desde tu propia app o sitio web, igual que en Números de WhatsApp. La respuesta es 202 con el Number, en estado connecting. Después, consúltalo periódicamente hasta que esté connected.

Necesita un plan que incluya la API de código QR; si no, responde 403 plan_required. Las cuentas de Telegram se conectan en el panel, no aquí.

Cuerpo

login_methodstringopcional

qr (predeterminado): escanear un código QR. phone_code: escribir en su lugar un código de vinculación en el teléfono, útil cuando el teléfono es la única pantalla.

phonestringObligatorio con phone_code

El número de WhatsApp que se va a vincular, en formato internacional con +, como +919876543210. No se usa con qr: el número se lee de WhatsApp después del escaneo.

number_idintegeropcional

Volver a conectar este número existente en lugar de añadir uno nuevo, por ejemplo después de que se cerrara su sesión.

# 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}'

El flujo de conexión#

  1. Pide la conexión

    POST /numbers con login_method (y phone para un código de vinculación). Guarda el id de la respuesta. Envía una Idempotency-Key para que un reintento no lo pida dos veces.

  2. Consulta el número cada pocos segundos

    GET /numbers/{id} cada 2 a 5 segundos mientras status sea connecting. El código QR o el código de vinculación aparece en connect en unos instantes; hasta entonces sus campos son null.

  3. Muestra el código QR o el código de vinculación

    QR: muestra la imagen de connect.qr_code_url; en el teléfono, abre WhatsApp → Dispositivos vinculados → Vincular un dispositivo y escanéala. Cada enlace funciona durante 10 minutos y llega uno nuevo en cada consulta, así que muestra siempre el más reciente. Código de vinculación: en el teléfono, abre WhatsApp → Dispositivos vinculados → Vincular un dispositivo → Vincular con el número de teléfono y escribe el connect.pairing_code de 8 caracteres antes de connect.pairing_code_expires_at (unos 3 minutos).

  4. Espera a que esté conectado

    Después del escaneo o del código, connect.linking es true mientras WhatsApp termina de vincular. Luego status pasa a connected y phone muestra el número. Deja de consultar.

Si no pasa nada en 10 minutos, el intento termina y status vuelve a disconnected. Vuelve a pedirlo con POST /numbers y su number_id.

Mientras un número se está conectando, otra solicitud para él responde 409 connect_in_progress con su number_id: sigue consultando ese en su lugar.

Errores al conectar#

HTTPCódigoCuándo
400validation_failedlogin_method no es qr ni phone_code, o phone_code sin phone
403plan_requiredEl plan no incluye la API de código QR
403number_limit_reachedEl plan no tiene espacio para otro número
403number_not_allowedLa clave está limitada a algunos números y number_id no es uno de ellos (o falta)
409already_connectedEse número ya está conectado
409connect_in_progressEse número se está conectando ahora mismo; number_id indica cuál
422invalid_phonephone no es un número válido en formato internacional con +
422number_not_foundnumber_id no es un número de este espacio de trabajo

Relacionado#