Pular para o conteúdo

Migrar da Z-API

Esta página ajuda quem já integra com a Z-API a levar a integração para o LiteZap. Os nomes à esquerda são os recursos como a Z-API os apresenta na documentação dela; à direita, o equivalente no LiteZap. Z-API é marca da respectiva empresa; o LiteZap é um projeto independente.

Tema Z-API LiteZap
Credencial ID e token da instância na URL, mais token de segurança da conta Authorization: Bearer <token>: token da instância (lzi_...) ou token admin (lza_...). Nada de token na URL.
URL Por instância /v1/instances/{id}/...
Envio Um endpoint por tipo de mensagem Um endpoint, POST /v1/instances/{id}/messages, com type (text, image, video, audio, document, sticker, gif, ptv, location, contact, poll, reaction, edit, revoke, pin, forward). Veja tipos.
Resposta do envio Id da mensagem 202 com o item da fila; com ?wait=true, 200 com wa_message_id. Idempotência por client_message_id.
Fila Fila com intervalo configurável Fila persistente por instância com ritmo, rampa para números novos, janela de horário e verificação de número.
Webhooks Uma URL por tipo de evento Vários webhooks (globais ou por instância), cada um com filtros (message.*, *), assinatura HMAC, retry por 24h e dead-letter.
Payload Formato próprio por evento Envelope único {id, type, version, instance_id, timestamp, data}. Veja eventos.
Tempo real (via webhook) Também por SSE, sem servidor público.
Erros Variados Envelope único {error: {code, message, retryable}}. Veja erros.
Hospedagem Nuvem da Z-API Seu PC ou seu servidor; nuvem LiteZap em construção. Licença Apache-2.0.

Legenda: Disponível já funciona; Parcial cobre parte do recurso; Ainda não viável, ainda não feito; Exp experimental, fora da trilha principal; Avaliar depende de engenharia reversa ou tem valor baixo; Fora não planejado.

Na matriz completa (159 recursos da Z-API, revisada com o código atual), o LiteZap tem 115 prontos, 3 parciais, 23 faltando (a maioria administração avançada de canais, catálogo e mensagens interativas) e 18 fora do escopo de propósito.

Z-API LiteZap
Pegar QRCode / QRCode imagem GET /qr (JSON ou ?format=png) e evento instance.qr Disponível
Conectar com telefone POST /pair-phone Disponível
Status da instância / Dados da instância GET /v1/instances/{id} e instance.status Disponível
Reiniciar POST /restart (também start e stop) Disponível
Desconectar POST /logout Disponível
Dados do celular GET /profile (plataforma, nome, nome comercial, recado, foto) Disponível
Renomear instância PATCH /v1/instances/{id} (também etiquetas e allowlist de IP) Disponível
Ler mensagens automaticamente setting auto_read em PUT /settings Disponível
Ler status automaticamente — (os status chegam no log; marcar como visto não) Ainda não
Rejeitar chamadas / mensagem de rejeição setting calls (auto_reject, reject_message) em PUT /settings e call.received Disponível
Desafio de passkey no pareamento — (exige asserção WebAuthn do site do WhatsApp; use QR ou código) Fora
Registro como aparelho principal (Mobile) — Fora
Z-API LiteZap
Enviar texto POST /messages type: text Disponível
Enviar imagem / áudio / vídeo / documento type: image / audio (ptt: true = voz) / video / document Disponível
Enviar / remover reação type: reaction (emoji: "" remove) Disponível
Ler mensagens POST /chats/{jid}/read Disponível
Atraso e “digitando” por instância (min_interval_ms, typing_simulation) e por mensagem (delay_ms, typing_ms) Disponível
Figurinha, GIF, PTV, localização, contato(s) type: sticker / gif / ptv / location / contact (tipos) Disponível
Responder citando, menções reply_to, mentions (inclusive ["all"] em grupos) Disponível
Editar, apagar, fixar, encaminhar type: edit / revoke / pin / forward, com message.edited e message.revoked Disponível
Link com prévia link_preview (auto ou cartão pronto) Disponível
Enquete e votos type: poll e message.poll_vote; votar pela API não Parcial
Eventos (agenda) — Avaliar
Produto, catálogo, pedidos — Avaliar
Botões, listas, OTP/PIX, carrossel — (respostas a eles chegam em message.button_reply) Exp
Z-API LiteZap
Configurar fila (intervalos) PUT /settings (ritmo, rampa, janela) Disponível
Status de uma mensagem na fila GET /messages/{id} Disponível
Fila GET /queue Disponível
Apagar fila / Apagar mensagem da fila DELETE /queue e DELETE /queue/{msg_id} Disponível
Z-API LiteZap
Pegar chats GET /chats (do log local, com cursor) Disponível
(histórico do chat) GET /chats/{jid}/messages Disponível
Metadata do chat GET /chats/{jid} (arquivado, fixado, silenciado, não lido) Disponível
Arquivar, fixar, silenciar, ler/não lido PATCH /chats/{jid} e chat.updated Disponível
Deletar chat DELETE /chats/{jid} Disponível
Limpar chat, expiração do chat — Ainda não
Pegar contatos / Metadata do contato GET /contacts, GET /contacts/{jid}, recado e perfil comercial Disponível
Pegar imagem do contato GET /contacts/{jid}/picture Disponível
Bloquear contato POST /contacts/{jid}/block, unblock e GET /blocklist Disponível
Adicionar / remover contato na agenda — Ainda não
Número com WhatsApp / Validação em lote POST /check-numbers (até 10 por chamada, cache e cota) Disponível
Z-API LiteZap
Criar, metadados, nome, descrição, foto, configurações Grupos (POST /groups, GET/PATCH /groups/{jid}, foto) Disponível
Participantes e admins POST /groups/{jid}/participants (add, remove, promote, demote) Disponível
Pedidos de entrada GET/POST /groups/{jid}/requests Disponível
Link de convite, redefinir, entrar, sair convite, entrar, sair Disponível
Eventos de grupo group.updated Disponível
Comunidades (criar, listar, vincular, metadados) Comunidades Disponível
Desativar comunidade — Avaliar
Proteção anti-golpe em grupos de avisos — Ainda não
Z-API LiteZap
Nome, recado e foto do perfil PATCH /profile e foto Disponível
Privacidade (visto por último, foto, recado, online, confirmação de leitura, grupos, chamadas) GET/PATCH /privacy Disponível
Mensagens temporárias padrão default_disappearing_seconds em PATCH /privacy Disponível
Contatos não permitidos (exceções) — Ainda não
Z-API LiteZap
Status (texto, imagem, vídeo) Status (POST /status) e status.received Disponível
Responder status POST /status/{msg_id}/reply, só texto Parcial
Canais (criar, seguir, silenciar, metadados, publicar) Canais e channel.message Disponível
Reagir e ler publicações de canal reagir e listar publicações; marcar como visto não Parcial
Administração avançada de canais (editar, apagar, assinantes, admins) — Avaliar
Etiquetas e perfil comercial (leitura) Etiquetas e Business e label.updated Disponível
Catálogo, coleções, perfil comercial editável — Avaliar
Listas de transmissão — (envio em massa é gatilho de banimento) Fora
Chamadas de voz / SIP — (não suportado pela biblioteca de protocolo) Fora
Z-API LiteZap
Ao receber message.received e message.reaction Disponível
Ao enviar / Notificar enviadas por mim message.sent com source: api ou device Disponível
Status da mensagem message.status (sent, delivered, read, played, failed) e message.revoked Disponível
Ao conectar / Ao desconectar instance.status Disponível
Atualizar webhooks POST /v1/webhooks, PATCH Disponível
Status do chat (presença) chat.presence (opt-in) e POST /presence/subscribe Disponível
Filtros por tipo de mensagem filters no webhook (chat, chats, exclude_chats, message_types, from_me) Disponível
Falha de proxy instance.proxy_failed (com o erro do worker, sem credenciais) Disponível
Z-API LiteZap
Criar, listar e apagar instâncias POST, GET, DELETE /v1/instances (token admin) Disponível
Configurar proxy proxy_url em PUT /settings (admin) Disponível
Assinaturas e cobrança — (é da nuvem, não do motor) Fora
Componente de conexão embutível / token do SDK Link de pareamento hospedado + <litezap-pair> e evento instance.paired Disponível
Apagar instâncias em lote POST /v1/instances/bulk Disponível
Restrição de chamadas por IP ip_allowlist na instância e nas chaves; admin_allowed_ips e trusted_proxies no servidor Disponível
MCP Server /mcp e litezap mcp, 40 ferramentas Disponível
(atendente que responde sozinho) Atendente IA embutido ou hook de agente Disponível
  1. Suba o LiteZap (quickstart ou self-hosted) e crie uma instância por número.
  2. Pareie de novo. Sessões não são transferíveis entre provedores: cada número escaneia um QR novo. Desconecte o número no provedor antigo antes, para não ter duas sessões disputando as mesmas mensagens.
  3. Troque a autenticação para Authorization: Bearer.
  4. Troque os envios pelo endpoint único com type, e passe a mandar client_message_id (o id do seu pedido, ticket etc.) para ter idempotência.
  5. Cadastre um webhook com os tipos que você usava e verifique a assinatura (como). Adapte o parser ao envelope único.
  6. Revise o volume. O LiteZap vem com ritmo, rampa e janela ligados. Se a sua operação disparava muito para contatos frios, leia as boas práticas antes de afrouxar os limites.