Endpoint de Envío de WhatsApp

POST/api/send

Este endpoint permite enviar mensajes reales de WhatsApp utilizando la sesión Puppeteer del servidor. La solicitud debe realizarse con formato JSON y requiere autenticación segura de tipo Bearer Token.

Autenticación y Seguridad

Para poder utilizar esta API, debes incluir la cabecera Authorization con el esquema Bearer.

Ejemplo: Authorization: Bearer tu-token-secreto-1234

El token válido se configura en el archivo .env de tu servidor:

WIBOT_API_TOKEN=tu-token-secreto-1234

Parámetros del Body (JSON)

CampoTipoRequeridoDescripción
recipientstringNúmero de teléfono completo en formato internacional (ej. +5491122334455). Mínimo 10 dígitos.
messagestringContenido de texto del mensaje a enviar. Mínimo 1 carácter.

Ejemplos de Consumo

cURL (Consola / Bash)

curl -X POST http://localhost:3000/api/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer tu-token-secreto-1234" \
  -d '{
    "recipient": "+5491122334455",
    "message": "Hola, este es un mensaje automático de prueba."
  }'

JavaScript (Fetch / Async)

const sendMessage = async () => {
  const response = await fetch("http://localhost:3000/api/send", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Bearer tu-token-secreto-1234"
    },
    body: JSON.stringify({
      recipient: "+5491122334455",
      message: "Hola, este es un mensaje automático de prueba."
    })
  });

  const data = await response.json();
  console.log(data);
};

Python (Requests)

import requests

url = "http://localhost:3000/api/send"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer tu-token-secreto-1234"
}
payload = {
    "recipient": "+5491122334455",
    "message": "Hola, este es un mensaje automático de prueba."
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())

Respuestas Exitosas (200)

Retorna un JSON confirmando el encolamiento e ID del registro:

{
  "success": true,
  "messageId": "uuid-del-log",
  "status": "sent"
}

Respuestas de Error

  • 401 Unauthorized: Token incorrecto o cabecera ausente.
  • 400 Bad Request: Datos JSON faltantes o con formato incorrecto.
  • 530 Service Unavailable: Si el emulador no está conectado.