Pular para o conteúdo principal

Visão geral

O SDK de conexão é um modal pronto que você embute no seu próprio software. O seu cliente clica em “conectar”, escaneia o QR Code (ou usa o número de telefone) e a instância Z-API dele conecta — tudo sem você construir nenhuma tela.
  • Carrega com uma única tag <script> — expõe window.ZAPIConnector.
  • Independente de framework (React, Vue, Angular, HTML puro…).
  • Isolado via Shadow DOM: o CSS do seu site não afeta o modal, e o modal não afeta o seu.
  • Personalizável (tema claro/escuro + cores) e traduzível (pt/en, ou seus próprios textos).

Testar no playground

Gere um token, escolha as opções e abra o conector ao vivo em https://app.z-api.io/demo.html.
O SDK cobre os mesmos cenários do painel Z-API: QR Code, número de telefone, autenticação por chave de acesso (extensão) e migração de uma sessão do WhatsApp Web já conectada.

Como funciona

A integração tem três partes: o seu backend gera um token de sessão, o seu site carrega o SDK e abre o conector com esse token.
1

Seu backend gera o token

O seu servidor chama a Z-API (com o seu Client-Token) e recebe um token de sessão curto e descartável. Veja gerar token do SDK.
2

Seu site carrega o SDK

Inclua a tag <script> que expõe window.ZAPIConnector.
3

Seu site abre o conector

Chame ZAPIConnector.open({ token }) com o token retornado pelo backend.

1. Gere o token (no seu backend)

Quem fala com a Z-API é o seu backend, porque essa chamada usa o seu Client-Token, que nunca deve chegar ao navegador.
curl --location 'https://api.z-api.io/instances/{instanceId}/token/{instanceToken}/sdk-connector-token' \
--header 'Client-Token: SEU_CLIENT_TOKEN'
Resposta:
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
Devolva esse token ao seu frontend, sem alterá-lo. Documentação completa do endpoint: Gerar token do SDK.
O token é gerado pelo seu backend e é de uso único para o conector. Nunca exponha o seu Client-Token nem as credenciais da instância (instanceId e token) no frontend.

2. Carregue o SDK

Inclua a tag <script> na sua página. Essa URL sempre serve a versão mais recente — você não precisa atualizar nada quando lançarmos correções e melhorias.
<script src="https://app.z-api.io/sdk.js" async></script>
Isso expõe window.ZAPIConnector globalmente.

3. Abra o conector

Quando o cliente clicar em conectar, busque o token no seu backend e chame open(). Ele devolve uma Promise<boolean> que fica pendente até o modal fechar e resolve true se o canal conectou:
async function conectar(instanceId) {
  const { token } = await fetch(`/sdk-token/${instanceId}`).then((r) =>
    r.json(),
  );

  const conectado = await ZAPIConnector.open({ token });
  if (conectado) {
    atualizarInstancias();
  }
}

Opções

ZAPIConnector.open(options) aceita:
OpçãoTipoDescrição
tokenstring (obrigatório)Token de sessão retornado pelo seu backend. Passe como veio — o SDK escolhe a experiência de conexão a partir dele.
theme"light" | "dark" | ThemeOptionsTema de cores. Padrão: "light". Veja Temas.
locale"pt" | "en" | stringIdioma da interface. Detectado do navegador quando omitido.
messagesPartial<Messages>Sobrescreve textos individuais ou traduz para outro idioma. Veja Mensagens.
methods{ qr?, phone?, migrate? }Quais opções de conexão exibir. Cada uma é true por padrão. Veja Métodos de conexão.
containerstring | HTMLElementOnde montar o modal. Padrão: document.body.

Temas

Passe um modo ("light" ou "dark"), ou um objeto ThemeOptions para sobrescrever cores específicas por modo:
ZAPIConnector.open({
  token,
  theme: {
    mode: "dark",
    light: { accent: "#25d366" },
    dark: { accent: "#00a884", surface: "#111b21" },
  },
});
Tokens de cor (ThemeColors, todos opcionais):
TokenDescrição
overlayCor do fundo escurecido atrás do modal
surfaceCor de fundo do cartão do modal
surfaceAltFundo secundário (abas, campos, caixas)
textCor do texto principal
textMutedCor do texto secundário
borderCor das bordas
accentCor de destaque (botões, links, realces)
accentContrastCor do texto sobre a cor de destaque

Idioma

Idiomas nativos: pt e en (detectados de navigator.language). Force um com locale:
ZAPIConnector.open({ token, locale: "pt" });
Para ajustar textos ou traduzir para um idioma que não seja nativo, use messages — um mapa parcial mesclado sobre o idioma selecionado. Passe só as chaves que quer mudar:
ZAPIConnector.open({
  token,
  messages: {
    title: "Conecte seu número",
    subtitle: "Aponte a câmera do WhatsApp para o código.",
  },
});

Métodos de conexão

Por padrão o modal mostra QR Code, número de telefone e o link de migração. Use methods para exibir só o que quiser:
ZAPIConnector.open({ token, methods: { phone: false, migrate: false } });
ChaveDescrição
qrAba do QR Code. Padrão true.
phoneAba do número de telefone. Padrão true.
migrateLink para migrar uma sessão do WhatsApp Web existente. Padrão true.
Quando só um método fica ativo, as abas não aparecem (vai direto para ele). Se você desativar QR e telefone ao mesmo tempo, o SDK reativa os dois para não deixar o modal sem forma de conectar.

Eventos

Acompanhe o ciclo de vida da conexão com on / off:
ZAPIConnector.on("connected", () => atualizarInstancias());
ZAPIConnector.on("status", ({ status }) => console.log(status));

ZAPIConnector.off("connected", handler);
EventoPayloadDisparado quando
connected{ phone? }o canal conectou
disconnected{ reason? }caiu ou foi desconectado
qr{ base64 }um novo QR Code foi renderizado
status{ status }o status mudou ("qr", "connected" ou "disconnected")
error{ error }ocorreu um erro
closeo usuário fechou o modal

Métodos

MétodoRetornoDescrição
open(options)Promise<boolean>Abre o modal; resolve quando ele fecha (true se conectou).
close()voidFecha o modal programaticamente.
on(event, handler)voidInscreve em um evento.
off(event, handler)voidCancela a inscrição.

Mensagens

Todo texto do modal pode ser sobrescrito por messages. Abaixo, cada chave, o valor padrão em português e para que serve. Passe apenas as chaves que quiser alterar.

Tela inicial e QR Code

ChavePadrãoDescrição
titleConecte seu WhatsAppTítulo do modal
subtitleEscaneie o QR code com seu celular para conectar.Subtítulo abaixo do título
step1Abra o WhatsApp no seu celularPasso 1 das instruções do QR
step2Toque em Configurações e depois em Aparelhos conectadosPasso 2 das instruções do QR
step3Toque em Conectar um aparelho e escaneie este códigoPasso 3 das instruções do QR
qrLoadingGerando QR code…Texto enquanto o QR carrega
qrErrorNão foi possível carregar o QR code. Tente novamente.Erro ao carregar o QR
closeFecharRótulo (aria) do botão de fechar
tabQrQR codeRótulo da aba de QR Code
tabPhoneNúmero de telefoneRótulo da aba de número de telefone

Conexão por número (web)

ChavePadrãoDescrição
phoneHintDigite seu número do WhatsApp para receber um código de pareamento.Instrução da aba de telefone
countrySearchBuscar paísPlaceholder da busca de país
phonePlaceholderNúmero de telefonePlaceholder do campo de número
submitContinuarBotão para gerar o código
phoneSendingGerando código…Estado do botão enquanto gera
codeHintDigite este código no WhatsApp:Instrução acima do código de pareamento
codeStep3Toque em Conectar com número de telefone e digite o códigoPasso para inserir o código no WhatsApp
codeBackUsar outro númeroVoltar para digitar outro número

Fluxo de conexão por número (instâncias mobile)

ChavePadrãoDescrição
mVerifyingVerificando número…Verificando o número informado
mMethodHintComo quer receber o código?Escolha do método de envio do código
mSmsSMSOpção de receber por SMS
mCallLigaçãoOpção de receber por ligação
mWhatsappWhatsAppOpção de receber pelo WhatsApp
mSendingEnviando…Enviando o código
mCodeHintDigite o código que você recebeuInstrução para digitar o código recebido
mWaOldHintAbra o WhatsApp no seu celular — você vai receber o código por lá. Digite-o abaixo.Instrução do método WhatsApp
mConfirmConfirmarBotão de confirmar o código
mConfirmingConfirmando…Estado enquanto confirma
mCaptchaHintDigite os caracteres da imagemInstrução do captcha
mSecurityHintDigite seu PIN (verificação em duas etapas)Instrução do PIN de duas etapas
mForgotPinEsqueci o PINLink de recuperação de PIN
mConfirmOnPhoneConfirme no seu celular e toque em ConfirmarConfirmação no aparelho
mErrorAlgo deu errado. Tente novamente.Erro genérico
mWrongCodeCódigo incorreto. Tente de novo.Código digitado incorreto
mBlockedEste número está bloqueado pelo WhatsApp.Número bloqueado
mUnblockSolicitar desbloqueioBotão para solicitar desbloqueio
mNoRoutesNão conseguimos enviar o código agora. Verifique o número e tente outro método.Nenhuma rota de envio disponível
mRateLimitMuitas tentativas. Aguarde um pouco antes de tentar de novo.Limite de tentativas atingido
mBannedEste número está banido.Número banido
mBannedTextDescreva por que este número deve ser desbanido:Texto do formulário de apelação
mSendEnviarBotão de enviar a apelação
mInReviewSeu pedido está em análise pelo WhatsApp.Apelação em análise
mPinSentEnviamos as instruções de recuperação do PIN.Instruções de recuperação enviadas
mPhoneOfflineCelular offline — as mensagens podem atrasar.Aviso de celular offline

Migração de sessão

ChavePadrãoDescrição
migrateOrouSeparador antes do link de migração
migrateLinkClique aqui e migre uma conexão do WhatsApp Web já conectada pra cáBotão que abre o fluxo de migração
migrateHintMigre sua sessão do WhatsApp Web com a extensão. Use este código:Instrução da tela de migração
migrateStep1Instale a extensão Z-API ConectorPasso 1 da migração
migrateStep2Abra o web.whatsapp.com já conectado no seu computadorPasso 2 da migração
migrateStep3Abra a extensão e digite o código acimaPasso 3 da migração
migrateBackVoltarVoltar da tela de migração

Conectado

ChavePadrãoDescrição
connectedTitleConectadoTítulo da tela de sucesso
disconnectDesconectarBotão de desconectar a instância
disconnectingDesconectando…Estado enquanto desconecta

Autenticação por chave de acesso (extensão)

ChavePadrãoDescrição
challengeTextConfirme a autenticação no seu dispositivo para conectar esta instância.Instrução da tela de autenticação
challengeButtonResolver autenticaçãoBotão para resolver a autenticação
challengeSolvingAutenticando…Estado enquanto autentica
challengeCancelCancelarCancelar a autenticação
installTitleAutenticação por chave de acessoTítulo da tela de instalação da extensão
installTextA extensão confirma sua biometria neste dispositivo para conectar.Descrição da extensão
installStep1Instale a extensão e adicione ao seu navegadorPasso 1 da instalação
installStep2Volte para esta janela — a conexão segue automaticamentePasso 2 da instalação
installButtonInstalar extensãoBotão genérico de instalar
installChromeInstalar no ChromeBotão de instalar no Chrome
installFirefoxInstalar no FirefoxBotão de instalar no Firefox
unsupportedBrowserAbra esta página no Chrome ou no Firefox para conectar com chave de acesso.Aviso em navegador sem suporte

Teste no playground

Abra o playground do SDK para gerar um token, ajustar tema, idioma e métodos, e ver o conector real funcionando.