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 |
|
| 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 |
- Suba o LiteZap (quickstart ou self-hosted) e crie uma instância
por número.
- 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.
- Troque a autenticação para
Authorization: Bearer.
- 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.
- Cadastre um webhook com os tipos que você usava e verifique a assinatura
(como). Adapte o parser ao envelope único.
- 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.