WhatsApi es una API REST para enviar mensajes automáticos por WhatsApp desde tus aplicaciones: códigos OTP, notificaciones, alertas y avisos transaccionales.
Hay dos formas de enviar mensajes:
https://cloud.voltgo.net/whatsapp — todos los ejemplos usan esta URL.Desde tu panel → Mi número, elige Código QR (desde una PC/tablet) o Código de emparejamiento (desde el mismo teléfono). En WhatsApp para Android:




Según la guía oficial de WhatsApp, en iPhone el proceso es:



Todas las llamadas a la API requieren tu API Key en el header Authorization.
Authorization: Bearer wa_tu_api_key_aqui
Encuentra tu key en el panel → API Key. Puedes rotarla ahí mismo si se compromete.
/whatsapp/api/sendEnvía un mensaje de texto (hasta 4096 caracteres). Soporta emojis, saltos de línea y formato de WhatsApp (*negrita*, _cursiva_, ~tachado~, ```monospace```).
50257110284200 → {"queued":false,"sent":true,"sessionId":"…","msgId":"…"} — enviado de inmediato.202 → {"queued":true,"id":"…","held":true/false} — no había número disponible; quedó en cola (ver Cola y respaldo).4xx/5xx → {"error":"CODIGO"} — ver códigos de error.curl -X POST https://cloud.voltgo.net/whatsapp/api/send \
-H "Authorization: Bearer wa_tu_api_key" \
-H "Content-Type: application/json" \
-d '{ "to": "50257110284",
"text": "Tu código de verificación es: *483920*" }'
/whatsapp/api/pingVerifica que tu API Key funciona → {"ok":true,"clientId":"…"}
/whatsapp/api/mePerfil de tu cliente: límites del plan, sesiones vinculadas, vencimiento y uso (hoy / mes / encolados).
/whatsapp/api/statsContadores de uso → {"today":N,"month":N,"queued":N}
/whatsapp/api/check?to=NUMEROVerifica si un número está en WhatsApp antes de enviar → {"to":"…","exists":true}. Requiere una sesión conectada; si no hay ninguna responde 503 NO_SESSION.
Si no hay ningún número disponible para enviar (tu WhatsApp se desconectó), el mensaje no se pierde: entra a la cola y la API responde 202 {"queued":true}.
PLAN_LIMIT_DAILY, PLAN_LIMIT_MONTHLY).Todos los errores responden {"error":"CODIGO", ...detalles} con su código HTTP.
| HTTP | Código | Significado |
|---|---|---|
| 400 | INVALID_REQUEST | Falta to o text en el cuerpo. |
| 400 | INVALID_NUMBER | El número destino no tiene formato válido (8–15 dígitos con código de país). |
| 400 | TEXT_TOO_LONG | El texto supera 4096 caracteres. |
| 401 | INVALID_API_KEY | API Key ausente o inválida. |
| 403 | PLAN_EXPIRED | Tu plan venció — incluye expiredAt. Renueva desde tu panel. |
| 422 | NO_WHATSAPP | El número destino no está registrado en WhatsApp (fallo permanente — no reintentar). |
| 429 | RATE_LIMITED | Superaste el límite por minuto — reintenta en retryAfter segundos. |
| 429 | PLAN_LIMIT_EXCEEDED | Límite diario o mensual alcanzado — incluye period, limit y used. |
| 503 | QUEUE_FULL | La cola está llena (1000 mensajes) — reintenta más tarde. |
| 503 | NO_SESSION | No hay sesión conectada para la operación (solo /check). |
| Código | Significado |
|---|---|
NO_WHATSAPP | El destinatario no tiene WhatsApp. |
PLAN_LIMIT_DAILY | Se descartó de la cola: límite diario del plan ya alcanzado. |
PLAN_LIMIT_MONTHLY | Se descartó de la cola: límite mensual del plan ya alcanzado. |
SESSION_LOST u otros | Error de entrega de WhatsApp — puede reintentarse desde el historial. |
429 RATE_LIMITED con retryAfter.429 PLAN_LIMIT_EXCEEDED. Los reenvíos de cola también los respetan.NO_WHATSAPP, límites) no deben reintentarse; los temporales se reintentan solos hasta 5 veces y luego puedes reenviarlos manualmente.