MANUAL
WhatsApp Enterprise
Introducción
Qué es WhatsApp Enterprise?
WhatsApp Enterprise (Meta Business API) es la API OFICIAL de Meta/Facebook para integrar WhatsApp en aplicaciones empresariales. A diferencia de soluciones no oficiales como Baileys, esta API:
- Tiene soporte oficial de Meta
- Garantiza 99.9% de disponibilidad (SLA)
- No tiene riesgo de ban por automatización
- Permite enviar mensajes masivos con templates aprobados
Diferencia con Baileys
| Característica | Baileys | Meta Enterprise |
|---|---|---|
| Costo | Gratis | Pago por mensaje |
| Estabilidad | Variable | 99.9% SLA |
| Riesgo de ban | Sí | No |
| Setup | Escanear QR | Verificar negocio |
| Ideal para | Desarrollo | Producción |
Cuándo usar Meta Enterprise?
- Tienes un negocio legalmente constituido
- Necesitas atención al cliente 24/7
- Quieres enviar notificaciones/campañas masivas
- El costo por mensaje es viable para tu negocio
Requisitos Previos
Requisitos de Negocio
- Empresa legalmente constituida
- Sitio web activo de la empresa
- Política de privacidad publicada
- Número de teléfono dedicado (no usado en WhatsApp personal)
Requisitos Técnicos
- Servidor con IP pública
- Certificado SSL válido (HTTPS obligatorio)
- Puerto 7071 accesible desde Internet
- Fararoni Core instalado y funcionando
- Java 25+ con --enable-preview
Cuentas Necesarias
- Cuenta de Facebook personal (del administrador)
- Cuenta de Meta for Developers
- WhatsApp Business Account (se crea durante el proceso)
Cifrado de Canales
# Producción (recomendado para WhatsApp Enterprise)
export FARARONI_CHANNELS_ENCRYPTION_KEY="$(openssl rand -base64 32)"
export FARARONI_ENV=production
java --enable-preview -jar fararoni-core-1.0.0.jar --server
# Desarrollo local
export FARARONI_DEV_MODE=true
# La key se genera automáticamenteConfiguración en Meta Business
Paso 3.1: Crear App en Meta for Developers
- Ir a https://developers.facebook.com
- Click en "My Apps" → "Create App"
- Seleccionar tipo: "Business"
- Nombre: "Fararoni WhatsApp" (o el nombre de tu empresa)
- Click "Create App"
Paso 3.2: Agregar WhatsApp a la App
- En el Dashboard, buscar "WhatsApp"
- Click "Set Up"
- Meta te guiará para crear un WhatsApp Business Account
Paso 3.3: Verificar tu Negocio
- Ir a Meta Business Suite → Settings → Business Info
- Completar: nombre legal, dirección, sitio web, documentos (RFC, acta constitutiva)
- Esperar aprobación (1-5 días hábiles)
Paso 3.4: Registrar Número de Teléfono
- En WhatsApp → API Setup → "Add Phone Number"
- Ingresar el número dedicado
- Verificar vía SMS o llamada
- Guardar el Phone Number ID
Paso 3.5: Token de Acceso Permanente
- Business Settings → Users → System Users
- Click "Add" → Nombre: "Fararoni API"
- Asignar permisos:
whatsapp_business_messaging,whatsapp_business_management - Generar Token
El token de System User no expira. El token de usuario normal expira en 60 días.
Paso 3.6: Configurar Webhook
- En WhatsApp → Configuration → Webhook
- Callback URL:
https://tu-servidor.com:7071/gateway/v1/meta/webhook - Verify Token: Un string secreto (ej:
mi_token_secreto_123) - Click "Verify and Save"
Paso 3.7: Suscribirse a Eventos
En "Webhook fields", suscribirse a: messages (obligatorio). Opcional: message_template_status_update.
Configuración en Fararoni
Paso 4.1: Variables de Entorno
# WhatsApp Enterprise - Meta Business API
export META_VERIFY_TOKEN="mi_token_secreto_123"
export META_ACCESS_TOKEN="EAAGm0PX4ZCps..."
export META_PHONE_ID="123456789012345"
source ~/.bashrc # o ~/.zshrcPaso 4.2: Editar modules.yml
Ubicación: ~/.fararoni/config/modules.yml
gateway:
rest:
enabled: true
port: 7071
meta:
enabled: true
verify_token: "env:META_VERIFY_TOKEN"
access_token: "env:META_ACCESS_TOKEN"
phone_id: "env:META_PHONE_ID"
api_version: "v18.0"
channels:
whatsapp:
enabled: false # Desactivar Baileys
whatsapp_meta:
enabled: true
trust_level: SECURE_ENTERPRISE
egress_adapter: "meta_enterprise"
capabilities:
- text
- template
timeout_ms: 10000
retry_count: 3Paso 4.3: Reiniciar Fararoni
pkill -f fararoni-core
cd fararoni-core/target
java --enable-preview -jar fararoni-core-1.0.0.jar --serverVerificar Logs de Inicio
[MODULE-REGISTRY] Loaded module: OmniChannelGatewayModule
[INGRESS] RestIngressServer listening on port 7071
[META-ENTERPRISE] Meta webhook endpoint registered: /gateway/v1/meta/webhook
[META-EGRESS] Initialized for phone: 123456789012345Verificación del Webhook
Verificación Automática
Cuando configuras el webhook en Meta, envía una petición GET:
GET /gateway/v1/meta/webhook?hub.mode=subscribe&hub.challenge=1234567890&hub.verify_token=mi_token_secreto_123Fararoni debe responder con el número del hub.challenge.
Verificación Manual
curl "https://tu-servidor.com:7071/gateway/v1/meta/webhook?hub.mode=subscribe&hub.challenge=test123&hub.verify_token=mi_token_secreto_123"Respuesta esperada: test123
Pruebas de Conectividad
Enviar Mensaje de Prueba (desde Meta)
- En Meta for Developers → WhatsApp → API Setup
- En "Send and receive messages", hay un número de prueba
- Agregar tu número personal como destinatario de prueba
- Enviar mensaje de prueba
Recibir Mensaje en Fararoni
Desde tu WhatsApp personal, envía un mensaje al número Enterprise. Verificar en logs:
[META-WEBHOOK] Received message from: 5212291234567
[OmniChannel] Processing message: "Hola"
[OmniChannel] Response sent to: 5212291234567Troubleshooting
Error: "Webhook verification failed"
- Verificar que
META_VERIFY_TOKENcoincida exactamente - Verificar que el puerto 7071 sea accesible desde Internet
- Verificar certificado SSL
Error: "Invalid OAuth access token"
Token expirado o incorrecto. Regenerar token en Meta for Developers, actualizar META_ACCESS_TOKEN y reiniciar.
Error: "Phone number not registered"
El Phone ID no corresponde al número verificado. Copiar el correcto desde Meta for Developers → WhatsApp → Phone Numbers.
Los mensajes no llegan a Fararoni
- El webhook está suscrito a
messages - El firewall permite tráfico al puerto 7071
- El servidor tiene certificado SSL válido
tail -f ~/.fararoni/logs/fararoni.log | grep METAEl robot no responde
Verificar: mensaje llega al bus (agency.input.whatsapp), OmniChannelRouter procesa, egress funciona ([META-EGRESS]).
Costos y Facturación
Modelo de Precios de Meta (2026)
Meta cobra por conversación, no por mensaje individual:
| Tipo de Conversación | Costo Aprox. (MXN) |
|---|---|
| Marketing | $0.80 - $1.50 |
| Utility | $0.40 - $0.80 |
| Authentication | $0.30 - $0.60 |
| Service (iniciada por usuario) | $0.15 - $0.30 |
Ventana de 24 horas
Si el usuario inicia la conversación, tienes 24 horas para responder GRATIS. Después de 24 horas, solo puedes enviar templates aprobados (con costo).
Templates (Mensajes Masivos)
- Crear template en Meta Business → WhatsApp → Message Templates
- Esperar aprobación (1-24 horas)
- Usar desde Fararoni:
metaAdapter.sendTemplate("5212291234567", "welcome_message", "es");Facturación
Meta factura mensualmente. Se requiere método de pago (tarjeta de crédito). Puedes configurar alertas de gasto en Meta Business Suite.
Anexos
Checklist de Implementación
PRE-REQUISITOS
[ ] Empresa legalmente constituida
[ ] Sitio web con política de privacidad
[ ] Número de teléfono dedicado
[ ] Servidor con HTTPS y puerto 7071 abierto
META BUSINESS
[ ] App creada en Meta for Developers
[ ] WhatsApp Business Account creado
[ ] Negocio verificado
[ ] Número registrado
[ ] Token de System User generado
[ ] Webhook configurado y verificado
[ ] Suscripción a evento "messages"
FARARÓNI
[ ] Variables de entorno configuradas
[ ] modules.yml actualizado
[ ] gateway.meta.enabled: true
[ ] channels.whatsapp_meta.enabled: true
[ ] Fararoni reiniciado
PRUEBAS
[ ] Webhook verification exitosa
[ ] Mensaje de prueba recibido
[ ] Respuesta enviada correctamenteComandos Útiles
# Ver logs en tiempo real
tail -f ~/.fararoni/logs/fararoni.log | grep -E "(META|WHATSAPP)"
# Verificar health del gateway
curl http://localhost:7071/gateway/v1/health
# Ver variables de entorno
echo $META_ACCESS_TOKEN | head -c 20
echo $META_PHONE_ID
echo $META_VERIFY_TOKENAutor: Equipo Fararoni | Versión: 1.0