Pular para o conteúdo principal

Visao geral

A VZaps trabalha com mais de um mecanismo de autenticacao, e cada endpoint usa apenas o conjunto necessario para aquele fluxo.

JWT para integradores (API publica)

Para obter um JWT sem enviar e-mail e senha em uma rota de integracao, use POST /token com o client_token e o client_secret da conta (definidos em Seguranca no app). A resposta segue o mesmo formato de access_token e expires_in dos fluxos autenticados por sessao. Este endpoint nao utiliza Turnstile.
HeaderQuando usarObservacao
Authorization: Bearer <jwt>Criacao de instancia, listagem, billing e acesso a instancia como donoObtido via POST /token ou pelo app web; obrigatorio em PUT /instances/create, POST /instances/list, POST /instances/{id}/subscribe, POST /instances/{id}/resume-subscription e PUT/DELETE /instances/{id}/cancel
X-Client-TokenIntegracoes server-to-server e chamadas autenticadas por tokenDeve pertencer ao dono da instancia
X-Instance-TokenEndpoints da instancia sem JWTE retornado no response de criacao da instancia

Regras praticas

Instancia e billing

  • Use JWT no header Authorization.
  • Nesses endpoints, nao use o token da instancia como substituto.

Listar instancias

Use POST /instances/list com Authorization: Bearer <JWT> e no corpo os parametros de paginação e filtro (page, size, filter, sort, sortDesc). Este fluxo documentado assume sempre JWT.
curl -X POST "https://api.vzaps.com/instances/list" \
  -H "Authorization: Bearer SEU_JWT" \
  -H "Content-Type: application/json" \
  -d '{"page":1,"size":20,"filter":{},"sort":"createdAt","sortDesc":true}'

Instancia (sessao, chat, webhook e demais)

Voce pode usar um dos dois modos:
  1. JWT do dono da instancia.
  2. X-Instance-Token junto com X-Client-Token.
A API valida a instancia e o X-Client-Token do dono antes de processar a requisicao.

Exemplo com JWT

curl -X GET "https://api.vzaps.com/instances/INSTANCE_ID/session/status" \
  -H "Authorization: Bearer SEU_JWT"

Exemplo com tokens da instancia

curl -X GET "https://api.vzaps.com/instances/INSTANCE_ID/session/status" \
  -H "X-Instance-Token: TOKEN_DA_INSTANCIA" \
  -H "X-Client-Token: SEU_CLIENT_TOKEN"

Boas praticas

  • Nao exponha X-Client-Token e X-Instance-Token em aplicacoes front-end publicas.
  • Separe credenciais por ambiente.
  • Armazene o token da instancia retornado em PUT /instances/create logo apos a criacao.
  • Em caso de erro Forbidden, valide primeiro se a instancia pertence ao usuario ou ao X-Client-Token enviado.