Pular para o conteúdo principal
O SDK TypeScript oficial da VZaps encapsula autenticação, chamadas HTTP, headers obrigatórios, eventos realtime e os principais recursos da API pública. Use este SDK quando quiser integrar a VZaps em aplicações Node.js, workers, backends TypeScript, CLIs ou automações server-to-server.

Requisitos

RecursoVersão
Node.js18 ou superior
TypeScript5.x recomendado
Package managernpm, yarn ou pnpm
Não exponha clientSecret nem instanceToken em front-end público. Prefira usar o SDK em backend, API routes, jobs e automações server-to-server.

Instalar

npm install @vzaps/sdk
yarn add @vzaps/sdk
pnpm add @vzaps/sdk

Criar o cliente

import { VZapsClient } from '@vzaps/sdk';

const vzaps = new VZapsClient({
  clientToken: process.env.VZAPS_CLIENT_TOKEN!,
  clientSecret: process.env.VZAPS_CLIENT_SECRET!,
});

Credenciais

O SDK trabalha com dois tipos de credenciais:
CredencialOnde usarDescrição
clientTokennew VZapsClient()Token público da conta, usado também no header X-Client-Token.
clientSecretnew VZapsClient()Segredo usado pelo SDK para obter e renovar o JWT.
instanceTokenEm cada chamada da instânciaToken da instância, enviado como X-Instance-Token.
O instanceToken não fica no cliente global. Passe sempre na chamada que opera uma instância:
await vzaps.messages.sendText({
  instanceId: 'VZ...',
  instanceToken: process.env.VZAPS_INSTANCE_TOKEN!,
  phone: '5511999999999',
  message: 'Olá pela VZaps',
});

Autenticação automática

O SDK obtém o JWT automáticamente usando clientToken e clientSecret, guarda o token em memória e renova antes do vencimento. Você raramente precisa chamar o token manualmente. Quando precisar integrar com código HTTP próprio:
const accessToken = await vzaps.auth.getAccessToken();

Opções do cliente

OpçãoTipoPadrãoUso
clientTokenstring-Obrigatório. Token da conta.
clientSecretstring-Obrigatório. Segredo da conta.
timeoutMsnumber30000Timeout HTTP em milissegundos.
tokenSkewMsnumber60000Renovar JWT antes do vencimento real.
fetchFetchLikeglobalThis.fetchCustomizar transporte HTTP em testes ou runtimes específicos.
webSocketFactoryWebSocketFactoryws no Node / WebSocket no browserCustomizar WebSocket.
userAgentstring-Header User-Agent em requests HTTP.

ESM e CommonJS

ESM:
import { VZapsClient } from '@vzaps/sdk';
CommonJS:
const { VZapsClient } = require('@vzaps/sdk');

Variáveis recomendadas

VZAPS_CLIENT_TOKEN=seu-client-token
VZAPS_CLIENT_SECRET=seu-client-secret
VZAPS_INSTANCE_ID=VZ...
VZAPS_INSTANCE_TOKEN=token-da-instância

Tipagem de respostas

Por padrão, respostas usam unknown porque a API pode evoluir. Você pode tipar a resposta esperada com generics:
interface InstanceListResponse {
  data: Array<{
    id: string;
    name: string;
    billingStatus: string;
  }>;
}

const instances = await vzaps.instances.list<InstanceListResponse>({
  page: 1,
  pageSize: 20,
});

Próximos passos