Todo lo que necesitas saber para autenticarte en la API de WhatsBoost de forma segura.
La API de WhatsBoost utiliza un modelo de autenticacion basado en API Keys (claves secretas). Cada solicitud HTTP que envies a cualquier endpoint de la API debe incluir un parametro llamado secret con el valor de tu API Key.
| Formato | Hash SHA1 de 40 caracteres hexadecimales (a-f, 0-9) |
| Metodo de envio | Parametro secret en el cuerpo POST de la peticion |
| Protocolo | HTTPS obligatorio. Las peticiones HTTP sin cifrado seran rechazadas. |
| Cantidad por cuenta | Puedes crear multiples API Keys, cada una con permisos diferentes |
| Revocacion | Puedes eliminar una API Key en cualquier momento desde el Dashboard |
| Vinculacion | Cada API Key esta vinculada a tu cuenta de usuario y hereda tu suscripcion activa |
/api/send/sms).secret con el valor de tu API Key.401 o 403 con un mensaje explicativo.Crear una API Key es el primer paso para integrar WhatsBoost en tu aplicacion. Sigue estos pasos:
Inicia sesion en tu cuenta de WhatsBoost y navega al panel principal en Dashboard.
En el menu lateral, busca la seccion API Keys o accede directamente desde Dashboard > API Keys.
Haz clic en el boton "Crear API Key". Asigna un nombre descriptivo (por ejemplo: "Backend produccion", "Integracion CRM", "Chatbot WhatsApp").
Selecciona unicamente los permisos que necesita esta integracion. Puedes modificarlos en cualquier momento.
Es una buena practica crear una API Key separada para cada integracion o servicio que conectes con WhatsBoost. Esto te permite:
Cada API Key tiene un conjunto de permisos que determinan que endpoints puede utilizar. A continuacion se listan todos los permisos disponibles, agrupados por categoria.
Permisos necesarios para enviar mensajes, codigos OTP y ejecutar comandos USSD.
| Permiso | Descripcion | Endpoint asociado |
|---|---|---|
otp |
Generar y enviar codigos de verificacion OTP de 6 digitos por SMS o WhatsApp. | /api/send/otp |
sms |
Permiso base para servicios SMS. Requerido ademas de sms_send o sms_send_bulk. |
/api/send/sms* |
sms_send |
Enviar un SMS individual a un unico destinatario. | /api/send/sms |
sms_send_bulk |
Enviar SMS masivos (campanas) a multiples destinatarios o grupos de contactos. | /api/send/sms.bulk |
whatsapp |
Permiso base para servicios WhatsApp. Requerido ademas de wa_send o wa_send_bulk. |
/api/send/whatsapp* |
wa_send |
Enviar un mensaje de WhatsApp individual (texto, imagen, video, audio, documento). | /api/send/whatsapp |
wa_send_bulk |
Enviar mensajes de WhatsApp masivos (campanas) a multiples destinatarios o grupos. | /api/send/whatsapp.bulk |
validate_wa_phone |
Validar si un numero de telefono tiene cuenta activa de WhatsApp. | /api/send/validate |
create_whatsapp |
Crear/vincular una nueva cuenta de WhatsApp al sistema mediante QR. | /api/send/create.whatsapp |
start_sms_campaign |
Reanudar una campana SMS pausada de forma remota. | /api/remote/start.sms |
stop_sms_campaign |
Pausar una campana SMS activa de forma remota. | /api/remote/stop.sms |
start_wa_campaign |
Reanudar una campana de WhatsApp pausada de forma remota. | /api/remote/start.chats |
stop_wa_campaign |
Pausar una campana de WhatsApp activa de forma remota. | /api/remote/stop.chats |
android_ussd |
Ejecutar codigos USSD en un dispositivo Android vinculado (consultas de saldo, etc.). | /api/send/ussd |
Permisos para consultar datos, estadisticas y registros de tu cuenta.
| Permiso | Descripcion | Endpoint asociado |
|---|---|---|
get_message |
Obtener los detalles de un mensaje especifico por su ID. | /api/get/message |
get_sms_sent |
Listar todos los SMS enviados con su estado de entrega. | /api/get/sms.sent |
get_sms_received |
Listar todos los SMS recibidos en los dispositivos vinculados. | /api/get/sms.received |
get_wa_sent |
Listar todos los mensajes de WhatsApp enviados. | /api/get/wa.sent |
get_wa_received |
Listar todos los mensajes de WhatsApp recibidos. | /api/get/wa.received |
get_sms_campaigns |
Listar todas las campanas SMS con su estado y numero de contactos. | /api/get/sms.campaigns |
get_sms_pending |
Obtener la cantidad de SMS pendientes de envio en la cola. | /api/get/sms.pending |
get_wa_campaigns |
Listar todas las campanas de WhatsApp con estado y estadisticas. | /api/get/wa.campaigns |
get_wa_pending |
Obtener la cantidad de mensajes de WhatsApp pendientes en la cola. | /api/get/wa.pending |
get_wa_groups |
Listar los grupos de WhatsApp disponibles en una cuenta vinculada. | /api/get/wa.groups |
get_credits |
Consultar el saldo de creditos disponible en tu cuenta. | /api/get/credits |
get_earnings |
Consultar las ganancias generadas (para socios/partners con dispositivos globales). | /api/get/earnings |
get_subscription |
Obtener detalles de tu suscripcion actual (plan, limites, fecha de expiracion). | /api/get/subscription |
get_rates |
Consultar las tarifas de envio por pais para el modo creditos. | /api/get/rates |
get_contacts |
Listar los contactos guardados en tu libreta de direcciones. | /api/get/contacts |
get_groups |
Listar los grupos de contactos creados en tu cuenta. | /api/get/groups |
get_unsubscribed |
Listar los numeros que se han dado de baja (opt-out) de tus comunicaciones. | /api/get/unsubscribed |
get_ussd |
Consultar las respuestas de comandos USSD ejecutados previamente. | /api/get/ussd |
get_wa_accounts |
Listar las cuentas de WhatsApp vinculadas al sistema. | /api/get/wa.accounts |
get_devices |
Listar los dispositivos Android vinculados a tu cuenta. | /api/get/devices |
get_shorteners |
Listar los servicios de acortamiento de URL configurados. | /api/get/shorteners |
Permisos para crear nuevos recursos en tu cuenta.
| Permiso | Descripcion | Endpoint asociado |
|---|---|---|
create_contact |
Crear un nuevo contacto en la libreta de direcciones. | /api/create/contact |
create_group |
Crear un nuevo grupo de contactos. | /api/create/group |
Permisos para eliminar recursos. Usa estos permisos con precaucion ya que las eliminaciones son irreversibles.
| Permiso | Descripcion | Endpoint asociado |
|---|---|---|
delete_contact |
Eliminar un contacto de la libreta de direcciones. | /api/delete/contact |
delete_group |
Eliminar un grupo de contactos y desvincular sus miembros. | /api/delete/group |
delete_unsubscribed |
Eliminar un numero de la lista de bajas (opt-out). | /api/delete/unsubscribed |
delete_sms_sent |
Eliminar un registro de SMS enviado del historial. | /api/delete/sms.sent |
delete_sms_received |
Eliminar un registro de SMS recibido del historial. | /api/delete/sms.received |
delete_wa_sent |
Eliminar un registro de WhatsApp enviado del historial. | /api/delete/wa.sent |
delete_wa_received |
Eliminar un registro de WhatsApp recibido del historial. | /api/delete/wa.received |
sms y sms_send. No actives permisos de eliminacion a menos que sea estrictamente necesario.
A continuacion se muestran ejemplos basicos de como enviar tu API Key en una peticion a la API. Todos los ejemplos realizan una consulta al endpoint /api/get/credits para verificar que la autenticacion funciona correctamente.
curl -X POST //whatsboost.netapi/get/credits \
-d "secret=TU_API_KEY_DE_40_CARACTERES"
<?php
$apiKey = "TU_API_KEY_DE_40_CARACTERES";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "//whatsboost.netapi/get/credits");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
"secret" => $apiKey
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($response, true);
if ($httpCode === 200) {
echo "Creditos disponibles: " . $data["data"]["credits"];
} else {
echo "Error: " . $data["message"];
}
const apiKey = "TU_API_KEY_DE_40_CARACTERES";
const formData = new URLSearchParams();
formData.append("secret", apiKey);
const response = await fetch("//whatsboost.netapi/get/credits", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: formData
});
const data = await response.json();
if (response.ok) {
console.log("Creditos disponibles:", data.data.credits);
} else {
console.error("Error:", data.message);
}
import requests
api_key = "TU_API_KEY_DE_40_CARACTERES"
response = requests.post(
"//whatsboost.netapi/get/credits",
data={
"secret": api_key
}
)
data = response.json()
if response.status_code == 200:
print(f"Creditos disponibles: {data['data']['credits']}")
else:
print(f"Error: {data['message']}")
{
"status": 200,
"message": "Success!",
"data": {
"credits": 150.75
}
}
{
"status": 401,
"message": "Invalid API secret supplied!"
}
{
"status": 403,
"message": "This API key doesn't have permission to use this endpoint!"
}
Tu API Key es tan sensible como una contrasena. Si alguien obtiene acceso a ella, puede realizar acciones en tu nombre (enviar mensajes, leer datos, eliminar registros). Sigue estas recomendaciones para proteger tus credenciales:
Jamas incluyas tu API Key en codigo JavaScript que se ejecute en el navegador del usuario. Cualquier persona puede abrir las herramientas de desarrollo del navegador y ver el valor de secret. Esto aplica tambien a aplicaciones moviles: el trafico de red puede ser interceptado.
Nunca incluyas tu API Key directamente en el codigo fuente que subes a GitHub, GitLab, Bitbucket u otros repositorios. Usa variables de entorno (.env) o servicios de gestion de secretos (AWS Secrets Manager, HashiCorp Vault, etc.).
Todas las llamadas a la API de WhatsBoost deben realizarse desde tu backend (servidor). Si tu aplicacion frontend necesita enviar mensajes, crea un endpoint propio en tu backend que reciba la solicitud del frontend y reenvie la peticion a la API de WhatsBoost con la API Key almacenada de forma segura.
No reutilices la misma API Key en multiples proyectos. Si un servicio se ve comprometido, solo tendras que revocar la key de ese servicio sin afectar a los demas. Nombra cada key de forma descriptiva para saber a que proyecto pertenece.
Asigna a cada API Key el menor numero de permisos posible. Si un servicio solo necesita enviar SMS, no le des permisos de WhatsApp ni de eliminacion. Esto limita el dano potencial si la key se filtra. Revisa regularmente los permisos asignados.
Establece un calendario de rotacion (por ejemplo, cada 90 dias). Crea una nueva key, actualiza tu integracion para usarla, verifica que funciona correctamente y luego elimina la key antigua. Esto minimiza la ventana de exposicion ante una posible filtracion.
WhatsBoost te permite ver el historial de peticiones realizadas con cada API Key desde el Dashboard. Revisa periodicamente:
| Accion | Frecuencia | |
|---|---|---|
| □ | La API Key esta almacenada en variables de entorno, no en el codigo fuente | Al inicio del proyecto |
| □ | El archivo .env esta incluido en .gitignore |
Al inicio del proyecto |
| □ | Las llamadas a la API se realizan solo desde el servidor (backend) | Al inicio del proyecto |
| □ | Cada integracion usa una API Key diferente con permisos minimos | Al crear cada integracion |
| □ | Revisar el historial de peticiones en el Dashboard | Semanal |
| □ | Rotar API Keys y eliminar las antiguas | Cada 90 dias |
| □ | Verificar que no hay keys sin usar que puedan eliminarse | Mensual |
| □ | Revisar permisos asignados y reducir si es posible | Trimestral |
Copia y pega este prompt en ChatGPT, Claude, Gemini o tu asistente de IA favorito para que te ayude a configurar la autenticacion de forma segura.
Eres un desarrollador backend experto. Necesito integrar la API de WhatsBoost
en mi proyecto. La autenticacion funciona asi:
- Todas las peticiones son POST a //whatsboost.netapi/...
- Se envia un parametro "secret" en el cuerpo (form-data o x-www-form-urlencoded)
con el valor de la API Key (hash SHA1 de 40 caracteres).
- La API Key NO se envia como header, sino como parametro POST.
- Las respuestas son JSON con la estructura:
{"status": CODE, "message": "...", "data": {...}}
Ayudame a:
1. Crear una clase/modulo reutilizable para mi proyecto que gestione las
peticiones a la API de WhatsBoost.
2. Almacenar la API Key de forma segura (variables de entorno).
3. Manejar los errores (401, 403, 400, 500) con mensajes claros.
4. Implementar reintentos automaticos para errores transitorios (500, timeout).
Mi stack tecnologico es: [INDICA TU STACK AQUI]