O que você executa
O core é o repositório público Hub-Ventures/watahub, também publicado comowatahub no npm (0.2.0). Ele roda em Cloudflare Workers ou no Node.js 20+. A licença é MIT.
Você configura o segredo do seu app da Meta, um token de verificação do webhook e uma chave de API do Watahub com 32 caracteres ou mais. O gateway guarda o token da Meta de cada linha e nunca o devolve. Seu agente recebe cada evento normalizado em SUBSCRIBER_WEBHOOK_URL e responde com POST /v1/messages no seu host do gateway, não em https://cloud.watahub.dev.
Primeira execução local
Você precisa de Node.js 20 ou posterior, pnpm (corepack enable usa a versão fixada no repositório) e um app da Meta com o produto WhatsApp.
WATAHUB_API_KEY e SUBSCRIBER_WEBHOOK_SECRET:
.env. O gateway lê process.env e não carrega o .env sozinho, então inicie-o com --env-file do Node:
status ok, service watahub e version 0.2.0.
O passo a passo completo — app da Meta, primeiro envio, primeiro webhook de entrada e Embedded Signup — está no guia Getting started do core. Para Cloudflare Workers, Node, Docker ou um proxy reverso, use Deployment.
Conectar uma linha
No Self-host você conclui uma linha comPOST /v1/onboarding/connect (o código do Embedded Signup, o id do WABA, o id do número e o PIN) ou com um token de system user em META_SYSTEM_USER_TOKEN. Veja o Getting started.
Os clientes da Cloud usam links de conexão hospedados. Essas páginas não se aplicam aqui.
Webhooks
O core encaminha um POST assinado por cada entrega da Meta para a sua única URL de assinante. Os cabeçalhos sãox-watahub-signature (sha256= mais o HMAC-SHA256 hexadecimal em minúsculas do corpo exato, com SUBSCRIBER_WEBHOOK_SECRET), x-watahub-delivery-id e Idempotency-Key (o mesmo valor do id de entrega). Deduplique em x-watahub-delivery-id. O catálogo de eventos está em Webhooks and events.
Não siga a página de webhooks da Cloud para isso. Essa página documenta os webhooks de desenvolvedor em cloud.watahub.dev: X-Webhook-Event, X-Webhook-Signature sem prefixo sha256= e X-Idempotency-Key. Um destino administrativo antigo da Cloud pode parecer com o assinante do core; não é o guia de Self-host.