Webhooks
Configurar tu webhook
Contrato exacto de verificación, prueba y restricciones del endpoint.
Revisado el 28 de septiembre de 2026 · WhatsAut
Una dirección HTTPS pública
Usá un dominio con certificado válido en el puerto 443. No se admiten direcciones IP literales, destinos privados, credenciales, fragmentos ni parámetros de consulta en la URL configurada.
No se siguen redirecciones. Configurá la dirección final y comprobá que todas sus resoluciones DNS sean públicas.
Responder el desafío GET
Comprobá hub.mode=subscribe y compará hub.verify_token con el secreto configurado en tu servidor. Si coincide, devolvé hub.challenge como texto con HTTP 200.
El cuerpo debe ser exactamente el desafío: sin JSON, comillas, HTML ni salto de línea. Un token incorrecto debe rechazarse. No registres los parámetros de esta petición porque incluyen el token.
GET /whatsapp?hub.mode=subscribe&hub.verify_token=TOKEN_DE_EJEMPLO&hub.challenge=123456
HTTP/1.1 200 OK
Content-Type: text/plain
123456Aceptar la prueba POST
WhatsAut envía un evento sintético y espera HTTP 2xx. Reconocelo por object y test; no lo conviertas en un mensaje ni dispares una venta, un bot o una notificación al cliente.
El request_id identifica la prueba. La última respuesta y su identificador aparecen en los detalles de la conexión.
{
"object": "whatsaut_webhook_test",
"event": "whatsaut.webhook_test",
"request_id": "ejemplo-sin-datos-reales",
"sent_at": "2026-09-28T12:00:00+00:00",
"test": true
}Firmas: límite actual
X-Hub-Signature-256 usa HMAC-SHA256 con el secreto de la app de Meta. El token de verificación GET no sirve para comprobar esa firma.
WhatsAut no distribuye el App Secret. Para eventos reales de mensajes, estados y el subconjunto administrativo documentado podés usar la verificación remota con una clave webhooks:verify. Esa consulta envía el cuerpo original a WhatsAut y lo procesa en memoria sin guardarlo. El servicio no verifica pings sintéticos ni todos los eventos de gestión; consultá el alcance en Verificar firmas.
Un ping aceptado prueba disponibilidad; no prueba autenticidad de todos los eventos ni entrega real de WhatsApp.
Los pings sintéticos tienen además X-WhatsAut-Test-Signature-256, que sí se valida con tu verify token y la URL exacta del panel. Usá verify_test_ping del ejemplo Python; esta firma sólo autoriza la prueba, nunca mensajes reales. La guía Pruebas del receptor explica el contrato.