POST /v1/wa/messages, com a mesma assinatura de requisição. A Zapster converte o seu payload para o formato da Cloud API da Meta automaticamente.
Antes de começar
- Você precisa de uma instância WABA conectada.
- Mensagens livres (texto, mídia, botões) só são entregues dentro da janela de conversa de 24 horas, que abre quando o cliente manda mensagem para o seu número. Fora da janela, use um template aprovado pela Meta.
- Instâncias WABA não enviam para grupos. Se precisar de grupos, use uma instância não oficial. Veja o comparativo em WABA vs não oficial.
YOUR_API_TOKEN pelo seu token de API e YOUR_INSTANCE_ID pelo ID da instância WABA.
As mensagens livres (texto, mídia e botões) enviadas por uma instância oficial são gratuitas até 30 de setembro de 2026. A partir de 1 de outubro de 2026, a Meta passa a cobrar por elas. Entenda o que muda na seção Cobrança das mensagens em 2026, mais abaixo.
Texto simples
Mídia (imagem, vídeo ou documento)
Envie a mídia por URL pública ou base64 no campomedia. O tipo (imagem, vídeo, documento) é detectado automaticamente a partir do arquivo. Para documentos, você pode informar fileName para controlar o nome exibido no WhatsApp.
Botões interativos
Em WABA, botões viram mensagens interativas da Cloud API e seguem as regras da Meta: até 3 botõesreply, ou exatamente 1 botão url, sem misturar os dois tipos. Botões call e copyable não existem em mensagem de sessão (veja Erros comuns). A matriz completa está em Mensagem com botões.
Quando você envia media junto com botões, a mídia vira o cabeçalho da mensagem interativa (imagem, vídeo ou documento; áudio não é suportado). Se enviar media.caption e text juntos, o caption tem prioridade e vira o corpo da mensagem.
Botões de resposta rápida (reply) com imagem
Botão de link (url) com imagem
Lembre: em WABA só pode existir 1 botãourl na mensagem, e ele não pode ser combinado com botões reply.
Template (fora da janela de 24h)
Templates precisam ser criados e aprovados na Meta antes do envio. O campotemplate é mutuamente exclusivo com text e media.
O objeto
template é um espelho do formato da Meta. A Zapster embrulha apenas name e language (que vira { "code": ... }) e repassa o array components exatamente como você o envia para a Cloud API, sem reinterpretar. Por isso, use o mesmo formato da documentação de templates da Cloud API da Meta.components descreve as partes do template que recebem valores no envio:
header: cabeçalho com mídia (imagem, vídeo ou documento) ou com uma variável de texto.body: o corpo, onde entram as variáveis do texto aprovado.button: os botões que têm valor dinâmico, como opayloadde uma resposta rápida ou o sufixo de uma URL.
{{1}}, {{2}}, preenchidas pela ordem do array parameters) ou nomeadas ({{customer_name}}, preenchidas por parameter_name). Cada template usa um estilo ou o outro, nunca os dois juntos. Os valores enviados precisam corresponder ao que o template aprovado espera.
Exemplo simples (variável posicional)
Com header, variáveis posicionais e botões
Este template tem cabeçalho de imagem, duas variáveis posicionais no corpo ({{1}} e {{2}}) e dois botões: um de resposta rápida (com payload) e um de URL dinâmica (o texto vira o sufixo anexado à URL base do template). O index do botão segue a ordem em que ele aparece no template aprovado.
Variáveis nomeadas
Quando o template foi aprovado com variáveis nomeadas, cada parâmetro leva umparameter_name além de type e text. O restante da requisição (o recipient, os headers, o name e o language) é igual aos exemplos acima. Muda apenas o conteúdo de components:
components (variáveis nomeadas)
Não misture variáveis posicionais e nomeadas no mesmo template. Use
parameter_name apenas quando o template foi aprovado com variáveis nomeadas; caso contrário, use a forma posicional (só type e text, na ordem em que aparecem).Cobrança das mensagens em 2026
O canal oficial do WhatsApp (WABA) é pago, e quem cobra pelas mensagens é a Meta, não a Zapster. São duas coisas separadas: a assinatura da sua instância na Zapster, de um lado, e o que a Meta cobra pelo envio das mensagens, do outro. A cobrança da Meta é feita através da conta de WhatsApp Business ligada ao seu número. Em 2026 a Meta muda a forma de cobrar as mensagens livres, que são justamente as que você aprende a enviar neste guia. Esta seção resume, em português claro, o que a documentação oficial da Meta descreve de um jeito nem sempre fácil de entender.O que é uma “mensagem de serviço”
É toda mensagem livre (texto, mídia ou botões) que você envia em resposta a um cliente, dentro da janela de 24 horas. Pela definição da Meta, é qualquer mensagem que não seja um template. São exatamente as mensagens deste guia. Até hoje elas são gratuitas, assim desde novembro de 2024.O que muda e quando
Quanto vai custar
A Meta ainda não publicou os valores. Segundo a documentação, os preços que entram em vigor em 1 de outubro de 2026 serão anunciados até 1 de setembro de 2026. O preço de uma mensagem de serviço vai acompanhar o preço já usado para mensagens de utilidade e autenticação, que varia conforme o país do cliente. A Meta informou que não haverá desconto por volume para mensagens de serviço.O que continua igual
- A regra da janela de 24 horas não muda: mensagens livres só saem com a janela aberta. O que muda é que elas deixam de ser gratuitas.
- Os templates já eram pagos e seguem com a cobrança própria deles.
- Essa cobrança é só do canal oficial (WABA). Instâncias não oficiais (QR code) não passam por essa cobrança da Meta.
Em resumo
Hoje, responder um cliente dentro da janela de 24 horas não custa nada. A partir de 1 de outubro de 2026, cada uma dessas respostas passa a ter um custo cobrado pela Meta. Se você envia muitas mensagens de atendimento, vale acompanhar o anúncio de preços de setembro de 2026 e já incluir esse custo no seu planejamento.Fonte: WhatsApp Business Platform: Non-Template Messages Pricing, documentação oficial da Meta. As datas e os valores são definidos pela Meta e podem mudar.
Erros comuns
Quando o payload usa um recurso que a Cloud API não suporta, a Zapster rejeita a requisição na hora com um erro400 explicando o motivo. Nada é descartado ou adaptado silenciosamente.
Próximos passos
- Mensagem com botões para a matriz completa de suporte por tipo de conexão
- WABA vs não oficial para escolher o tipo de instância
- Conectando uma instância WABA