Webhooks de WhatsApp: mensajes directo a tu servidor
Un webhook de WhatsApp es un endpoint HTTPS que tú indicas, y Meta publica eventos en él: mensajes entrantes, estados de entrega, cambios de calidad y actualizaciones de cuenta. En un número en Coexistencia el destino puede ser tu propio servidor, así que las conversaciones no pasan por ningún proveedor.
- Meta publica los eventos directo en tu URL
- Tu endpoint, no la plataforma de un proveedor
- Un override por cuenta de WhatsApp Business
No se cobra nada durante 7 días. Cancela cuando quieras.
Lo que es toda la integración: un destino HTTPS por cuenta.
messages y smb_message_echoes, los eventos del camino de mensaje enrutados a ti.
El valor que Meta envía en su handshake GET y que tu endpoint debe devolver.
¿Qué envía Meta realmente a un webhook?
Eventos, en categorías, y la distinción entre ellas decide tu arquitectura.
El camino de mensaje lleva lo que envían los clientes y, en un número en Coexistencia, ecos de lo que tu equipo envía desde la app de WhatsApp Business. Son los campos messages y smb_message_echoes, y son los que contienen contenido de conversación.
El camino operativo lleva todo lo demás: account_update cuando cambia un estado de conexión, phone_number_quality_update cuando se mueve la calidad o el throughput, account_alerts, account_review_update, business_capability_update y phone_number_name_update. Estos no contienen contenido de conversación y son de lo que está hecho el monitoreo.
Un proveedor que se mete en el camino de mensaje recibe el primer grupo. Uno que no, no.
¿Cómo verifica Meta un endpoint?
Con una petición GET antes de entregar nada, y fallar en eso es el motivo más común de que una configuración que parece terminada nunca reciba un mensaje.
Meta llama a tu URL con hub.mode en subscribe, tu hub.verify_token, y un valor hub.challenge. Tu endpoint tiene que devolver ese challenge como cuerpo crudo de la respuesta, no envuelto en JSON y sin nada añadido. Si no lo hace, Meta nunca empieza a entregar, y ningún panel lo dirá.
El endpoint también debe ser HTTPS. Uno que devuelve un 404 en silencio, o uno detrás de una capa de autenticación que rechaza a Meta, se ve idéntico a una configuración que funciona hasta que el primer mensaje no llega.
¿El destino puede apuntar a tu propio servidor?
Sí, y esta es la parte que distingue a unos proveedores de otros.
Meta permite que una app sobrescriba dónde entrega sus webhooks una cuenta de WhatsApp Business dada. Nosotros apuntamos ese override a tu URL, lo que mueve los eventos del camino de mensaje de nuestro callback al tuyo. Nos quedamos con los eventos operativos, porque el panel y las alertas están hechos de ellos.
La consecuencia es arquitectónica, no una política que publicamos. El contenido de conversación no tiene dónde almacenarse de nuestro lado, porque nunca se nos entrega. Una cuenta sin override cae en nuestro callback por defecto, donde el handler descarta esos eventos sin persistirlos.
¿Qué pasa con el destino cuando un número se reconecta?
Se elimina, y ese es el fallo que casi nadie planifica.
El destino no es una propiedad del número de teléfono. Es un override sobre la suscripción de nuestra app a la cuenta de WhatsApp Business. Cuando una conexión se elimina, por la regla de catorce días de inactividad de Meta o por otro motivo, la app se desinstala de esa cuenta y el override se va con ella.
Reconectar restaura el envío y restaura el monitoreo. No restaura la entrega a tu servidor, y nada reporta un error, así que la primera señal es un cliente diciendo que nadie respondió. Nosotros reaplicamos el override en cada reconexión, porque esto le pasó a un número real que reconectó limpio y se quedó mudo.
Errores comunes
- Devolver JSON en el GET de verificación. Meta quiere el valor crudo de hub.challenge y nada más.
- Usar una URL temporal o de pruebas. Meta sigue entregando en ella después de que la herramienta que la generó deje de escuchar.
- Suponer que el destino sobrevive a una reconexión. Vive en una suscripción de app y se desinstala con ella.
- Poner el endpoint detrás de autenticación que rechaza la petición de Meta.
EasyCoexistence apunta el override de webhook a tu endpoint, lo valida antes de la llamada, y lo reaplica automáticamente tras cualquier reconexión. Desde US$ 9 por número al mes, bajando a US$ 2 por volumen, con los primeros 7 días gratis.
Preguntas frecuentes
¿Mis mensajes pasan por EasyCoexistence?
No. El override envía los eventos del camino de mensaje de Meta directo a tu endpoint. Los eventos de una cuenta sin override caen en nuestro callback y se descartan sin persistir.
¿Puedo cambiar el destino más adelante?
Sí, en cualquier momento, desde el panel o el conector MCP. Pasar null lo devuelve a nuestro valor por defecto.
¿Y si mi servidor está caído cuando Meta entrega?
Meta reintenta durante un periodo y luego para. Los mensajes siguen llegando a la app de WhatsApp Business en el celular, así que el negocio no pierde nada aunque la integración sí.
¿Un solo webhook sirve para varios números?
Sí. Apunta todos al mismo endpoint y ramifica por el phone number id receptor del payload.
Sigue leyendo
¿Listo para empezar?
Configura WhatsApp Coexistence en minutos, no en meses. La app sigue funcionando en el teléfono.
Empezar prueba gratisNo se cobra nada durante 7 días. Cancela cuando quieras.Verificado el