API: Webhooks

El webhook te permite recibir notificaciones HTTP en tu servidor cuando ocurran eventos relacionados con tu cuenta (mensajes recibidos, cambios de status, conexion/desconexion).

Aplica a toda la cuenta del cliente, no a un celular especifico. Si tienes varios celulares, todos usan el mismo webhook.

Eventos disponibles

EventoCuando se dispara
messages.receivedCuando llega un mensaje a CUALQUIER celular de tu cuenta
message.statusCuando un mensaje enviado cambia de estado (enviado, entregado, leido, error)
session.statusCuando un celular se conecta o desconecta de WhatsApp
allAtajo para los 3 eventos anteriores

GET /api/webhook.php

Lee la configuracion actual del webhook. URL completa: https://api.multimensajes.com/api/webhook.php

Ejemplo cURL

curl -X GET 'https://api.multimensajes.com/api/webhook.php' \
  -H 'Authorization: Bearer WA_69_2e5ded25cd94d7b4'

Respuesta (200)

{
  "ok": true,
  "configurado": true,
  "cliente_id": 55,
  "url": "https://mi-app.example.com/webhook/multimensajes",
  "has_secret": true,
  "eventos": ["messages.received", "message.status", "session.status"],
  "activo": true,
  "updated_at": "2026-08-09 20:30:00"
}

Si el webhook no esta configurado, devuelve configurado: false.


POST /api/webhook.php

Crea o actualiza el webhook. URL completa: https://api.multimensajes.com/api/webhook.php

Body (JSON)

{
  "url": "https://mi-app.example.com/webhook/multimensajes",
  "secret": "mi_secret_para_firma_hmac",
  "eventos": ["messages.received", "message.status", "session.status"],
  "activo": true
}

Ejemplo cURL

curl -X POST 'https://api.multimensajes.com/api/webhook.php' \
  -H 'Authorization: Bearer WA_69_2e5ded25cd94d7b4' \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://mi-app.com/wh","secret":"s3cr3t","eventos":["all"],"activo":true}'

Como verificar la firma HMAC

Si configuraste un secret, cada POST que te enviamos incluye el header X-MultiMensajes-Signature: sha256=<hmac>. En tu servidor:

// PHP
$expected = 'sha256=' . hash_hmac('sha256', file_get_contents('php://input'), $secret);
if (!hash_equals($expected, $_SERVER['HTTP_X_MULTIMENSAJES_SIGNATURE'] ?? '')) {
    http_response_code(401);
    exit('firma invalida');
}
// Node.js
const expected = 'sha256=' + crypto.createHmac('sha256', secret)
  .update(rawBody).digest('hex');
if (expected !== req.headers['x-multimensajes-signature']) {
  return res.status(401).send('firma invalida');
}

DELETE /api/webhook.php

Elimina el webhook. Los eventos dejaran de enviarse a tu servidor. URL completa: https://api.multimensajes.com/api/webhook.php

Ejemplo cURL

curl -X DELETE 'https://api.multimensajes.com/api/webhook.php' \
  -H 'Authorization: Bearer WA_69_2e5ded25cd94d7b4'

Payload que recibirás

El body es JSON con esta estructura:

{
  "evento": "messages.received",
  "timestamp": "2026-08-09T20:30:00-06:00",
  "cliente_id": 55,
  "celular_id": 69,
  "data": {
    "from": "5218711281619",
    "message": "Hola!",
    "type": "text",
    "wasenderapi_msg_id": "..."
  }
}

Siguiente: Como usar Postman →