Referencia completa de respuestas HTTP, estados de mensaje, cuotas diarias y troubleshooting.
Todas las respuestas de la API de WhatsBoost siguen un formato JSON consistente con tres campos:
{
"status": 200,
"message": "Mensaje descriptivo o false",
"data": "Datos de respuesta o false"
}
| Campo | Tipo | Descripcion |
|---|---|---|
status | integer | Codigo HTTP de estado. Indica si la operacion fue exitosa (200) o si hubo un error (4xx, 5xx). |
message | string|false | Mensaje descriptivo del resultado. En caso de exito puede ser un mensaje como "Message has been sent!". En caso de error, describe el problema. |
data | mixed|false | Datos adicionales de la respuesta: ID del mensaje creado, datos del OTP, listado de registros, etc. false si no hay datos que devolver. |
{
"status": 200,
"message": "Message has been sent!",
"data": 15234
}
{
"status": 401,
"message": "Invalid API secret supplied!",
"data": false
}
A continuacion se detalla cada codigo de estado HTTP que puede devolver la API, junto con todos los mensajes de error posibles y las acciones recomendadas para resolverlos.
| Mensaje | Contexto | Accion |
|---|---|---|
"Message has been sent!" | SMS o WhatsApp enviado correctamente | El campo data contiene el ID del mensaje. Guardalo para rastreo. |
"OTP has been sent!" | Codigo OTP generado y enviado | El campo data contiene el OTP y el timestamp de expiracion. |
"OTP is valid!" | Verificacion OTP exitosa | Procede con el flujo de verificacion del usuario. |
"Campaign has been created!" | Campana masiva creada | El campo data contiene el ID de la campana. |
"USSD request has been sent!" | Peticion USSD enviada al dispositivo | Espera la respuesta via webhook o consulta el estado. |
| Mensaje | Contexto | Accion |
|---|---|---|
"Waiting for QR scan" | Flujo de conexion WhatsApp (escaneo QR) | El campo data contiene la cadena QR. Muestra el codigo QR al usuario y espera la confirmacion. |
| Mensaje | Causa | Que hacer |
|---|---|---|
"Invalid Parameters!" |
Faltan parametros obligatorios o el formato es incorrecto. | Verifica que envias todos los parametros requeridos (secret, phone, message, etc.) y que el Content-Type es correcto. |
"Invalid phone number!" |
El numero de telefono no tiene formato internacional valido. | Usa formato E.164 con prefijo de pais: +34612345678. No incluyas espacios, guiones ni parentesis. |
"Message is too short!" |
El contenido del mensaje esta vacio o tiene menos caracteres de los permitidos. | Asegurate de que el campo message contiene al menos 1 caracter. |
"Message is too long!" |
El mensaje excede el limite maximo de caracteres permitido. | Reduce la longitud del mensaje. Para SMS el limite tipico es 160 caracteres por segmento. |
"Invalid media URL!" |
La URL del archivo multimedia no es valida o no es accesible. | Verifica que la URL es publica y accesible desde Internet. Debe empezar por https://. |
"Invalid media type!" |
El tipo de medio especificado no es valido. | Usa uno de los tipos permitidos: image, video, audio, document. |
"Unsupported media file type!" |
La extension del archivo no esta soportada para el tipo de medio indicado. | Imagenes: jpg, png, gif, webp. Video: mp4, 3gp. Audio: mp3, ogg, amr. Documentos: pdf, doc, docx, xls, xlsx, ppt, pptx. |
"QR string is too short to be valid!" |
La cadena QR proporcionada para vincular WhatsApp es demasiado corta. | Asegurate de copiar la cadena QR completa generada por el dispositivo. |
"We detected inappropriate content in your message!" |
El filtro de contenido detecto material inapropiado en el texto del mensaje. | Revisa el contenido del mensaje y elimina cualquier texto que pueda ser considerado spam, abusivo o inapropiado. |
"We detected inappropriate content in your media!" |
El filtro de contenido detecto material inapropiado en el archivo multimedia. | Verifica que el archivo multimedia cumple con las politicas de uso aceptable. |
| Mensaje | Causa | Que hacer |
|---|---|---|
"Invalid API secret supplied!" |
La API Key enviada en el parametro secret no existe o esta desactivada. |
Verifica que la API Key es correcta y esta activa en Dashboard > API Keys. Comprueba que no tenga espacios en blanco adicionales. |
| Mensaje | Causa | Que hacer |
|---|---|---|
"This API key doesn't have permission to use this endpoint!" |
La API Key no tiene el permiso necesario para el endpoint solicitado. | Edita la API Key en el Dashboard y activa el permiso correspondiente (sms, whatsapp, otp, ussd). |
"Subscription has no permission to use SMS/WhatsApp services!" |
Tu plan de suscripcion no incluye acceso a este servicio. | Actualiza tu plan a uno que incluya el servicio de SMS o WhatsApp segun corresponda. |
"Account is not subscribed to any premium package!" |
Tu cuenta no tiene ninguna suscripcion activa. | Contrata un plan premium desde Dashboard > Suscripciones. |
"Maximum allowed number of sent messages has been reached!" |
Has alcanzado el limite diario de mensajes enviados de tu plan. | Espera a que se reinicie la cuota a medianoche o actualiza a un plan con mayor limite. |
"You have reached the maximum number of allowed chats!" |
Has alcanzado el limite de chats simultaneos de WhatsApp. | Espera a que se completen los chats actuales o actualiza tu plan. |
"Not enough credits to send this message!" |
No tienes suficientes creditos para enviar a traves de pasarela SMS. | Recarga creditos desde Dashboard > Creditos. |
"Selected WhatsApp server is at full capacity" |
El servidor WhatsApp seleccionado no acepta mas conexiones. | Selecciona otro servidor WhatsApp disponible o espera a que se libere capacidad. |
"Device is not available!" |
El dispositivo Android esta desconectado o no responde. | Verifica que el dispositivo esta encendido, con conexion a Internet y con la app WhatsBoost activa. |
"OTP is invalid or expired!" |
El codigo OTP proporcionado no coincide o ha caducado. | Solicita un nuevo codigo OTP. Recuerda que los codigos tienen una ventana de validez limitada. |
"Maximum number of USSD requests has been reached!" |
Has alcanzado el limite diario de peticiones USSD. | Espera al reinicio de cuota a medianoche o actualiza tu plan. |
| Mensaje | Causa | Que hacer |
|---|---|---|
"Device doesn't exist!" |
El ID de dispositivo proporcionado no existe en tu cuenta. | Obtiene la lista de dispositivos con GET /api/get/devices y usa un ID valido. |
"WhatsApp account doesn't exist!" |
La cuenta WhatsApp especificada no esta registrada en tu cuenta. | Consulta tus cuentas con GET /api/get/wa.accounts y verifica el ID. |
"Specified gateway doesn't exist!" |
La pasarela SMS con el ID indicado no existe o no esta disponible. | Consulta las pasarelas disponibles con GET /api/get/rates. |
"WhatsApp phone number does not exist!" |
El numero de telefono de destino no tiene una cuenta de WhatsApp activa. | Verifica que el numero es correcto y tiene WhatsApp instalado. Considera enviar por SMS como alternativa. |
| Mensaje | Causa | Que hacer |
|---|---|---|
"System configuration error!" |
Error interno en la configuracion del sistema WhatsBoost. | Reintenta en unos minutos. Si persiste, contacta soporte tecnico. |
"Unable to connect to WhatsApp servers!" |
WhatsBoost no pudo establecer conexion con los servidores de WhatsApp. | Reintenta en 30 segundos. Puede ser un problema temporal de red. Comprueba el estado de tu cuenta WhatsApp. |
"WhatsApp account is disconnected!" |
La sesion de WhatsApp se ha cerrado (posiblemente se escaneo el QR en otro dispositivo). | Reconecta la cuenta desde Dashboard > WhatsApp escaneando el codigo QR nuevamente. |
"Failed sending WhatsApp chat!" |
Error al intentar enviar el mensaje a traves de WhatsApp. | Verifica que la cuenta esta conectada y el numero destino es valido. Reintenta con backoff exponencial. |
"Gateway was unable to send your message!" |
La pasarela SMS no pudo procesar el envio del mensaje. | Prueba con otra pasarela SMS disponible. Si el error persiste, el proveedor puede tener problemas temporales. |
| Mensaje | Causa | Que hacer |
|---|---|---|
"All WhatsApp servers are at full capacity" |
Todos los servidores WhatsApp disponibles estan al maximo de su capacidad. | Espera unos minutos y reintenta. En periodos de alta demanda, implementa un sistema de cola con reintentos progresivos. |
Cada mensaje enviado a traves de la API pasa por una serie de estados internos. Puedes consultar el estado actual de un mensaje en los endpoints GET /api/get/sms.sent o GET /api/get/wa.sent.
| Codigo | Estado | Descripcion | Es estado final? |
|---|---|---|---|
| 1 | Pendiente | El mensaje esta en la cola de envio esperando ser procesado por el dispositivo o pasarela. | No |
| 2 | En proceso | El mensaje se esta enviando. Se ha entregado al dispositivo o pasarela y se espera confirmacion (callback). | No |
| 3 | Enviado | El mensaje ha sido enviado y entregado correctamente al destinatario. | Si |
| 4 | Fallido | El envio del mensaje ha fallado. Puede deberse a un numero invalido, dispositivo desconectado, timeout u otro error. | Si |
Al enviar un SMS, debes especificar el modo de envio con el parametro mode. Cada modo tiene parametros adicionales obligatorios.
| Modo | Valor | Parametro adicional | Descripcion | Coste |
|---|---|---|---|---|
| Dispositivo | mode=devices |
device (UUID), sim (opcional, 1 o 2) |
El SMS se envia desde un dispositivo Android vinculado a tu cuenta. Utiliza la tarjeta SIM del dispositivo. | Sin coste adicional (coste del operador movil) |
| Creditos | mode=credits |
gateway (ID de pasarela) |
El SMS se envia a traves de una pasarela SMS profesional. Se descuentan creditos de tu saldo. | Variable segun pasarela y destino |
mode=devices para pruebas y envios de bajo volumen. Para envios masivos o cuando necesites deliverability profesional, usa mode=credits con una pasarela confiable.
Cada plan de suscripcion tiene limites diarios y de recursos que se reinician automaticamente a medianoche en la zona horaria del usuario. Cuando se alcanza un limite, la API devuelve un error 403.
| Parametro | Descripcion | Reinicio |
|---|---|---|
send_limit | Numero maximo de SMS que puedes enviar por dia | Medianoche |
receive_limit | Numero maximo de SMS que puedes recibir por dia | Medianoche |
wa_send_limit | Numero maximo de mensajes WhatsApp que puedes enviar por dia | Medianoche |
wa_receive_limit | Numero maximo de mensajes WhatsApp que puedes recibir por dia | Medianoche |
ussd_limit | Numero maximo de peticiones USSD por dia | Medianoche |
| Parametro | Descripcion |
|---|---|
device_limit | Numero maximo de dispositivos Android que puedes vincular |
wa_account_limit | Numero maximo de cuentas WhatsApp que puedes conectar |
webhook_limit | Numero maximo de webhooks que puedes configurar |
action_limit | Numero maximo de acciones (action hooks) que puedes crear |
contact_limit | Numero maximo de contactos en tu agenda |
apikey_limit | Numero maximo de API Keys que puedes generar |
scheduled_limit | Numero maximo de mensajes programados simultaneos |
Puedes consultar el estado actual de tu suscripcion y limites restantes con:
curl -X GET "//whatsboost.netapi/get/subscription?secret=TU_API_KEY"
Respuesta de ejemplo:
{
"status": 200,
"message": false,
"data": {
"name": "Plan Pro",
"send_limit": 1000,
"receive_limit": 500,
"wa_send_limit": 5000,
"wa_receive_limit": 2000,
"ussd_limit": 100,
"device_limit": 5,
"wa_account_limit": 3,
"webhook_limit": 10,
"action_limit": 10,
"contact_limit": 5000,
"apikey_limit": 5,
"scheduled_limit": 100
}
}
WhatsBoost ofrece una serie de endpoints GET para consultar datos de tu cuenta. Todos requieren el parametro secret con tu API Key y soportan paginacion.
| Parametro | Tipo | Default | Descripcion |
|---|---|---|---|
page | integer | 1 | Numero de pagina |
limit | integer | 10 | Registros por pagina |
| Endpoint | Descripcion | Paginado |
|---|---|---|
| Cuenta | ||
/api/get/credits | Saldo de creditos SMS disponible | No |
/api/get/earnings | Ganancias acumuladas (si aplica) | No |
/api/get/subscription | Detalles de la suscripcion activa y limites | No |
| SMS | ||
/api/get/sms.sent | Historial de SMS enviados | Si |
/api/get/sms.received | Historial de SMS recibidos | Si |
/api/get/sms.campaigns | Listado de campanas SMS | Si |
/api/get/sms.pending | Mensajes SMS en cola (pendientes de envio) | Si |
/api/get/wa.sent | Historial de mensajes WhatsApp enviados | Si |
/api/get/wa.received | Historial de mensajes WhatsApp recibidos | Si |
/api/get/wa.campaigns | Listado de campanas WhatsApp | Si |
/api/get/wa.pending | Mensajes WhatsApp en cola | Si |
/api/get/wa.accounts | Cuentas WhatsApp conectadas | Si |
/api/get/wa.groups | Grupos de WhatsApp disponibles | Si |
/api/get/wa.servers | Servidores WhatsApp con estado y capacidad | Si |
| Dispositivos y contactos | ||
/api/get/devices | Dispositivos Android vinculados | Si |
/api/get/contacts | Agenda de contactos | Si |
/api/get/groups | Grupos de contactos | Si |
/api/get/unsubscribed | Numeros que han solicitado baja (opt-out) | Si |
| Otros | ||
/api/get/ussd | Historial de peticiones USSD | Si |
/api/get/rates | Tarifas y pasarelas SMS disponibles | Si |
/api/get/shorteners | Acortadores de URL configurados | Si |
curl -X GET "//whatsboost.netapi/get/sms.sent?secret=TU_API_KEY&page=2&limit=25"
Soluciones rapidas a los problemas mas comunes al integrar la API de WhatsBoost.
secret, no como api_key.GET /api/get/subscription.+34612345678.+.GET /api/get/wa.servers para ver disponibilidad.application/x-www-form-urlencoded o multipart/form-data.Copia este prompt en tu asistente de IA para implementar un manejo de errores robusto con la API de WhatsBoost.
Eres un desarrollador experto en integraciones de APIs. Necesito implementar un manejo de errores robusto para la API de WhatsBoost.
API BASE URL: //whatsboost.netapi/
FORMATO DE RESPUESTA:
Todas las respuestas son JSON con: status (int), message (string|false), data (mixed|false).
CODIGOS DE ERROR:
- 400: Parametros incorrectos. No reintentar, corregir el request.
- 401: API Key invalida. Verificar el parametro "secret".
- 403: Sin permisos o limites alcanzados. Verificar plan y cuotas.
- 404: Recurso no encontrado (dispositivo, cuenta, pasarela).
- 500: Error del servidor. Reintentar con backoff exponencial.
- 503: Servidores a capacidad maxima. Reintentar con backoff.
ESTADOS DE MENSAJE:
1=Pendiente, 2=En proceso, 3=Enviado, 4=Fallido.
REQUISITOS:
1. Implementa una funcion wrapper que maneje todos los codigos de error.
2. Para errores 500/503, reintentar hasta 3 veces con backoff exponencial (1s, 2s, 4s).
3. Para errores 403 de limite, encolar el mensaje y reintentar despues de medianoche.
4. Logear todos los errores con timestamp, endpoint, parametros y respuesta.
5. Implementar circuit breaker: si hay 5 errores 500 consecutivos, pausar 5 minutos.
Mi stack es: [INDICA TU STACK AQUI]