Guía Rápida
Siga estos pasos para configurar y recibir webhooks de Evolution Go.Prerrequisitos
Antes de configurar webhooks, necesita:- Tener Evolution Go instalado y ejecutándose — vea la guía de instalación
- Tener una instancia creada — vea Primeros Pasos
- Tener su API Key (
GLOBAL_API_KEYconfigurada en.env) - Tener una URL accesible para recibir los eventos
Paso 1: Conectar la instancia con webhook
Configure el webhook al conectar su instancia enviando una solicitud al endpoint de conexión.Método
Header
Body
Ejemplo con cURL
Ejemplo con JavaScript
Ejemplo con Python
Paso 2: Emparejar con WhatsApp
Después de la conexión, recibirá un eventoQRCode en su webhook con la imagen del QR Code en base64:
- Abra WhatsApp en su celular
- Vaya a Configuración > Dispositivos vinculados > Vincular un dispositivo
- Escanee el QR Code recibido en su webhook (decodifique el campo
qrcodebase64 para mostrar la imagen)
Si prefiere usar Pairing Code en vez de QR Code, envíe el campo
phone en el body:Paso 3: Confirmar la conexión
Después del emparejamiento exitoso, recibirá una secuencia de eventos:PairSuccess → Connected → OfflineSyncCompleted. Si recibió estos 3 eventos, su webhook está correctamente configurado.
Paso 4: Recibir mensajes
A partir de ahora, cada mensaje recibido en WhatsApp será enviado como eventoMessage a su URL.
Procesando en su servidor
Configuración Detallada
La configuración de webhooks se realiza al momento de conectar la instancia, a través del endpointPOST /instance/connect.
Webhook por Instancia
Al conectar una instancia, puede definir la URL del webhook y los eventos que desea recibir:POST /instance/connect
Parámetros
Webhook Global
Puede definir un webhook global mediante variable de entorno. Recibirá eventos de todas las instancias, además de los webhooks individuales de cada instancia..env
Cuando están configurados, ambos webhooks se activan: el global (definido por
WEBHOOK_URL) y el de la instancia (definido en webhookUrl). Esto permite tener un sistema centralizado de monitoreo junto con integraciones específicas por instancia.Tipos de Eventos
Al configurar el webhook, puede suscribirse a los siguientes tipos de eventos:Estructura del Payload
Todos los webhooks se envían como solicitudesHTTP POST con Content-Type: application/json. La estructura base del payload es:
Payloads por Evento
QRCode
Emitido cuando se genera un nuevo QR Code para emparejamiento.PairSuccess
Emitido cuando el emparejamiento del dispositivo se completa exitosamente.Message
Emitido cuando se recibe un mensaje. El payload varía según el tipo de mensaje. Todos los eventos de mensaje comparten la misma estructura base endata, con el objeto Info conteniendo metadatos y Message conteniendo el contenido.
Campos comunes del objeto Info
Campos comunes adicionales
Text
Image
CuandoWEBHOOK_FILES=true (predeterminado), el campo base64 contiene la imagen codificada. Si MinIO/S3 está configurado, se agrega mediaUrl en vez de base64.
Video
Audio
Document
Cuando
WEBHOOK_FILES=true (predeterminado), los mensajes con multimedia incluyen el contenido del archivo como base64 dentro del objeto Message. Si MinIO/S3 está configurado, el campo mediaUrl se agrega en vez de base64.Receipt
Emitido para confirmaciones de lectura y entrega. El campostate en el nivel raíz indica el tipo: Read, ReadSelf o Delivered.
Connected
Emitido cuando la instancia se conecta exitosamente a WhatsApp.LoggedOut
Emitido cuando la instancia se desconecta de WhatsApp.OfflineSyncCompleted
Emitido cuando la sincronización offline de mensajes se completa tras la reconexión.CallOffer
Emitido cuando se recibe una llamada.CallRelayLatency
Emitido con información de latencia durante una llamada en curso.CallTerminate
Emitido cuando una llamada es finalizada.JoinedGroup
Emitido cuando la instancia entra en un grupo.GroupInfo
Emitido cuando las informaciones de un grupo son actualizadas (nombre, descripción, participantes, etc.).NewsletterJoin
Emitido cuando la instancia entra en un canal/newsletter.Política de Reintentos
Evolution Go posee un sistema automático de reintentos para garantizar la entrega de los webhooks:
Si los 5 intentos fallan, el evento se descarta y se registra un log de error.
Canales de Entrega Alternativos
Además de webhooks HTTP, Evolution Go soporta otros canales de entrega de eventos:RabbitMQ / AMQP
Envío via colas AMQP. Configure con
rabbitmqEnable: "enabled" en la conexión de la instancia y las variables AMQP_URL, AMQP_GLOBAL_ENABLED y AMQP_GLOBAL_EVENTS.NATS
Envío via NATS messaging. Configure con
natsEnable: "enabled" en la conexión y las variables NATS_URL, NATS_GLOBAL_ENABLED y NATS_GLOBAL_EVENTS.WebSocket
Reciba eventos en tiempo real via WebSocket. Configure con
websocketEnable: "enabled" en la conexión de la instancia.Múltiples canales pueden activarse simultáneamente. Por ejemplo, puede recibir eventos via webhook HTTP y RabbitMQ al mismo tiempo.