Saltar al contenido principal
Usa Self-host cuando quieras correr el gateway open source en tu propia infraestructura. Operas una app de Meta, una clave API y un webhook de suscriptor, y puedes conectar las líneas que esa app permita. Esto no es la cuenta Cloud. Cloud está en app.watahub.dev y se documenta en el resto de este sitio. Si solo quieres una clave API de Watahub y una página de conexión alojada, vuelve a la introducción y sigue Cloud.

Qué corres

El core es el repositorio público Hub-Ventures/watahub, también publicado como watahub en npm (0.2.0). Corre en Cloudflare Workers o en Node.js 20+. La licencia es MIT. Configuras el secreto de tu app de Meta, un token de verificación del webhook y una clave API de Watahub de 32 caracteres o más. El gateway guarda el token de Meta de cada línea y nunca lo devuelve. Tu agente recibe cada evento normalizado en SUBSCRIBER_WEBHOOK_URL y responde con POST /v1/messages contra tu host del gateway, no contra https://cloud.watahub.dev.

Primera ejecución local

Necesitas Node.js 20 o posterior, pnpm (corepack enable usa la versión fijada en el repositorio) y una app de Meta con el producto WhatsApp.
Genera WATAHUB_API_KEY y SUBSCRIBER_WEBHOOK_SECRET:
Completa .env. El gateway lee process.env y no carga .env por sí solo, así que arráncalo con --env-file de Node:
Un proceso sano responde JSON con status ok, service watahub y version 0.2.0. El recorrido completo —app de Meta, primer envío, primer webhook de entrada y Embedded Signup— está en la guía Getting started del core. Para Cloudflare Workers, Node, Docker o un proxy inverso, usa Deployment.

Conectar una línea

En Self-host terminas una línea con POST /v1/onboarding/connect (el código de Embedded Signup, el id del WABA, el id del número y el PIN) o con un token de system user en META_SYSTEM_USER_TOKEN. Consulta Getting started. Los clientes de Cloud usan enlaces de conexión alojados. Esas páginas no aplican aquí.

Webhooks

El core reenvía un POST firmado por cada entrega de Meta a tu única URL de suscriptor. Las cabeceras son x-watahub-signature (sha256= más el HMAC-SHA256 hexadecimal en minúsculas del cuerpo exacto, con SUBSCRIBER_WEBHOOK_SECRET), x-watahub-delivery-id e Idempotency-Key (el mismo valor que el id de entrega). Deduplica con x-watahub-delivery-id. El catálogo de eventos está en Webhooks and events. No sigas la página de webhooks de Cloud para esto. Esa página documenta los webhooks de desarrollador en cloud.watahub.dev: X-Webhook-Event, X-Webhook-Signature sin prefijo sha256= y X-Idempotency-Key. Un destino administrativo antiguo de Cloud puede parecerse al suscriptor del core; no es la guía de Self-host.

Lo que se queda en Cloud

El Inbox alojado, los registros de siete días, la custodia de tokens para muchos tenants, los enlaces de conexión alojados, los webhooks de desarrollador, la CLI y MCP vienen con Cloud / Enterprise Edition, no con el core open source.

Guías oficiales del core