Fundamentos

Autenticação

Dois tokens, um header. Compatível com Ryze e clientes que já usam `apikey` ou Bearer.

Headers aceitos

`token: <TokenAccount|TokenInstance>` — preferido (Ryze).

`apikey: <token>` — alias comum em SDKs.

`Authorization: Bearer <token>` — também funciona (painel e integrações).

A Wagzap tenta `token`, depois `Authorization: Bearer`, depois `apikey`. O primeiro não-vazio vence.

TokenAccount

Operações de conta: `POST /api/instance/new`, `GET /api/instance/list`, delete de instância.

Também autoriza operações de uma instância da mesma conta (a Wagzap resolve pelo nome no path).

TokenInstance

Mensagens, grupos, comunidades, canais, perfil, chat, webhooks e WebSocket.

O path `{instance}` precisa bater com o nome (ou UUID) da instância dona do token. Caso contrário: 403.

Painel humano

O painel em wagzap.com.br usa JWT. Superadmin entra com senha + TOTP; tenant recebe OTP no e-mail.

O playground do admin e a aba Testar da instância usam esse JWT e disparam o mesmo código de envio da API pública — sem expor TokenInstance no browser.