qrsgen¶
WhatsApp ↔ HTTP API bridge en Go. Mantiene una sesión WhatsApp Web por instancia (vía whatsmeow) y la expone como una API HTTP REST estándar lista para producción.
Tu sistema (n8n / CRM / app custom)
│
│ HTTP REST + Bearer auth (+ HMAC opcional)
▼
qrsgen ────► WebSocket TLS ────► Meta servers
│
│ HTTP POST con incoming msgs + lifecycle events
▼
Tu webhook endpoint
⚠️ Antes de usar, lee el Disclaimer — riesgos WhatsApp ToS, GDPR, limitación de responsabilidad. No afiliado con WhatsApp / Meta.
Sub-apartados de esta sección¶
- Características destacadas — outbox, BanWatcher, audit log, usage tracking, HMAC, hardening, avatar sync, formato adaptativo del prefijo de grupo, sincronización de reacciones, typing indicators, read receipts y mark-as-read bidireccional, observabilidad de features real-time, soporte para location, polls, media polish, retroactive name update con persistencia Postgres (v0.40-v0.43) — reescritura de headers + rename del contact en Chatwoot cuando añades un contacto a la agenda WhatsApp, y quote/reply context bidireccional (v0.42 + v0.44) — citas WhatsApp como blockquote sobre los mensajes en Chatwoot, y reply nativo cuando el agente quote-replea desde Chatwoot.
- Por dónde empezar — caminos para integrar, entender, desplegar u operar.
- Estado del proyecto — telemetría en vivo (QRs conectados / escaneados, instalaciones, mensajes).
- Licencia y avisos legales — MIT, disclaimer, notice + riesgos importantes.
Otras secciones¶
- Arquitectura — flujos internos, tablas Postgres, composición del binario.
- API — endpoints, payloads, lifecycle webhooks, recetas curl.
- Deployment — stack swarm, env vars, telemetría pública, multi-VPS.
- Security — siete capas (Bearer / HMAC / firewall / TLS / hardening / audit / backups).
- Operations — runbook diario, troubleshooting, alerting.
- Integrations — recetas para n8n, Python, etc.
Glosario¶
Bridge: programa intermediario que traduce entre dos protocolos. qrsgen hace de bridge entre el protocolo binario de WhatsApp y HTTP REST.
WhatsApp Web / Multi-Device: API no oficial de WhatsApp que permite a clientes externos (no oficial app) mantener una sesión vinculada a un número escaneando un QR. Multi-Device permite hasta 4 dispositivos simultáneos por número.
whatsmeow: librería Go open-source que implementa el protocolo WhatsApp Web. Es lo que qrsgen usa para hablar con Meta.
Instancia: una sesión WhatsApp dentro del proceso qrsgen. Una instancia = un número de teléfono. Un solo binario gestiona N instancias en paralelo.
Lifecycle event: notificación HTTP que qrsgen POSTea cuando ocurre algo relevante en una instancia (conexión, desconexión, QR generado, strike, etc.).