Pular para o conteúdo

Visão geral

O zapgate é o gateway de mensageria WhatsApp da aviait: várias instâncias (números) gerenciadas por uma única API REST, cada uma com sua própria sessão whatsmeow, estilo uazapi.

  • api — a superfície que você integra. Autenticação, CRUD de instância e de webhook, guard rails (allowlist, rate limit) e os endpoints de envio. Nunca fala com o WhatsApp diretamente.
  • worker — dono das sessões whatsmeow de verdade: pareamento por QR, reconexão automática, envio real de mensagem. A api fala com ele só por uma rede interna, nunca exposta ao host.
  • dispatcher — entrega os webhooks configurados, com assinatura HMAC e backoff exponencial em caso de falha.

Cada instância é um número de WhatsApp pareado, identificado por um id (UUID) e autenticado por um token próprio (devolvido só na criação ou na rotação — nunca aparece de novo em nenhuma listagem). Toda instância tem:

  • status / desiredState — conectada, desconectada, etc.
  • mode — hoje só sandbox é usado em produção interna: restringe o envio a uma allowlist de números de destino.
  • allowlist, minIntervalS, dailyCap — limites anti-banimento (ver Instâncias).

Autenticação de operador vs. token de instância

Seção intitulada “Autenticação de operador vs. token de instância”

Existem dois jeitos diferentes de autenticar, para dois públicos diferentes:

  • Operador humano (painel administrativo): usuário+senha ou o ADMIN_TOKEN break-glass — ver Autenticação.
  • A própria instância (uso self-service/programático): o token dela, enviado no header token — usado nas rotas /instance/send/*, /instance/status, etc., sem nunca precisar de :id na URL (a instância se identifica por quem ela é, nunca por um ID alheio).
  • Não é um cliente WhatsApp oficial — o WhatsApp proíbe clientes não-oficiais. Use números de teste, nunca um número principal.
  • Não é (ainda) um produto pronto para uso comercial — é uma plataforma em evolução ativa.