Skip to main content

Mensagem de Template

O tipo TEMPLATE envia uma mensagem baseada em um template pré-aprovado do WhatsApp Business, referenciado por id. É útil para notificações transacionais e mensagens iniciadas pela empresa fora da janela de atendimento de 24 horas, cenários em que o WhatsApp só permite conteúdo aprovado. O envio funciona como uma Mensagem de Texto: o destinatário vai em to e o template é identificado por templateId. Quando o template possui variáveis ou componentes estruturados (cabeçalho, corpo, botões, carrossel), os valores são informados em components.
Esta página trata apenas do envio de uma mensagem de template. Para criar, listar e acompanhar a aprovação de templates, veja Gerenciar Templates.

Payload

Campos

string
required
Deve ser "TEMPLATE".
Address
required
Endereço do destinatário. Veja formatos de endereço.
uuid
required
Id do template pré-aprovado que será enviado.
object[]
Lista de componentes do template que serão preenchidos com os valores das variáveis. Cada componente possui um type que indica a seção do template (header, body, button ou carousel) e uma lista parameters com os valores que preenchem as variáveis daquela seção. Obrigatório apenas quando o template exigir variáveis ou componentes estruturados; omita quando o template não tiver nenhum.
Além dos campos acima, a mensagem aceita os campos comuns de envio: quotedMessage, deliveryStrategy, priority e deliveryDeadline. Veja Campos Comuns.

Componentes (components)

Cada item de components é um objeto com type discriminando a seção do template. Os valores de type são em minúsculas.

header — Cabeçalho

Preenche o cabeçalho do template. Aceita um único parâmetro, compatível com o formato declarado no template: texto para HEADER TEXT, ou mídia (image, video, document) para cabeçalho de mídia.

body — Corpo

Preenche as variáveis do corpo do template. Os parâmetros vão na mesma ordem das variáveis ({"{{1}}"}', {{2}}, …) definidas no corpo do template. Quando o template usa variáveis nomeadas ({{nome}}), cada parâmetro identifica a sua em parameter_name.

button — Botão

Preenche um botão específico do template. É necessário um componente por botão, identificado pela posição em index (começando em 0, na ordem em que foram declarados no template). O campo sub_type indica o tipo do botão: quick_reply, url, copy_code ou flow.
Preenche os cartões de um template carrossel. Cada cartão é identificado por card_index e possui sua própria lista de components (seguindo a mesma estrutura: header, body, button).

Parâmetros (parameters)

Cada item de parameters tem um type que determina o tipo de valor enviado. Os valores de type são em minúsculas.
string
required
Tipo do parâmetro. Valores: "text", "currency", "date_time", "image", "video", "document", "location", "payload", "coupon_code".

text

Valor de texto — o caso mais comum, usado no cabeçalho TEXT e no corpo.
string
Valor de texto que preenche a variável.
string
Nome da variável, quando o template usa variáveis nomeadas ({{nome}}) em vez de posicionais. Omita no caso posicional.

currency

Valor monetário. O provedor formata o valor conforme o locale de quem recebe.
string
Texto exibido quando o locale do destinatário não é suportado.
string
Código ISO 4217 da moeda (ex.: "BRL", "USD").
integer
Valor multiplicado por 1000 — R$ 12,34 vai como 12340. Evita ponto flutuante.

date_time

Data/hora. O provedor exibe o valor de fallback informado.
string
Texto de data/hora exibido ao destinatário.

image, video, document

Mídia para cabeçalho. Informe link (URL pública) ou id (id de mídia já carregada).
URL pública do arquivo. O provedor baixa o conteúdo deste endereço.
string
Id de mídia já carregada no provedor. Alternativa a link.
string
Nome exibido do arquivo. Usado apenas em document.

location

Localização para cabeçalho do tipo LOCATION. Latitude e longitude vão como string.
string
Latitude como string (ex.: "-23.5505").
string
Longitude como string (ex.: "-46.6333").
string
Nome do local.
string
Endereço do local.

payload

Payload do botão quick_reply — o valor é devolvido no webhook quando o cliente clica no botão.
string
Valor retornado no webhook de clique do botão.

coupon_code

Código do botão copy_code — o código que o cliente copia.
string
Código que será copiado pelo cliente ao tocar no botão.

Exemplos

Template com variáveis no corpo

Template com cabeçalho de mídia

Template com botão

Template sem variáveis

Quando o template não possui variáveis nem componentes estruturados, omita o campo components:

Com prioridade e estratégia de entrega

Use correlationId para correlacionar o envio com o seu próprio identificador de rastreamento. Ele é retornado nos webhooks de status da mensagem.

Resposta

O packageId identifica o pacote aceito para envio. Acompanhe a entrega pelos webhooks de status (MESSAGE_SENT, MESSAGE_DELIVERED, MESSAGE_READ).
Os componentes e parâmetros enviados devem corresponder exatamente à estrutura definida no template aprovado. Componentes fora de ordem, com type incompatível ou em número diferente do esperado podem fazer o provedor rejeitar o envio.