Enviar mensagens
Envie mensagens pelos três canais com um único endpoint. A chamada é assíncrona: o broker valida, aceita com 202 e entrega à Meta em background.
POST /v1/messagesAuthorization: Bearer lidmo_sk_...Content-Type: application/json| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
channel |
string | sim | whatsapp | instagram | messenger |
to |
string | sim | destinatário (telefone E.164 no WhatsApp; PSID/IGSID nos demais) |
type |
string | sim | text | image | video | audio | document | sticker | template | interactive |
text |
objeto | — | quando type: text |
media |
objeto | — | quando type é um tipo de mídia |
template |
objeto | — | quando type: template |
interactive |
objeto | — | quando type: interactive |
Resposta 202 Accepted:
{ "status": "accepted", "channel": "whatsapp", "to": "5511999999999" }O resultado final da entrega (enviado/entregue/lido/falhou) chega como um evento
message.status no seu webhook.
{ "channel": "whatsapp", "to": "5511999999999", "type": "text", "text": { "body": "Olá! Seu pedido saiu para entrega.", "preview_url": false }}media.kind repete o tipo; forneça link (URL pública) ou id (mídia já
enviada à Meta). caption e filename são opcionais.
{ "channel": "whatsapp", "to": "5511999999999", "type": "image", "media": { "kind": "image", "link": "https://seu-cdn.com/comprovante.png", "caption": "Comprovante" }}Template (WhatsApp)
Seção intitulada “Template (WhatsApp)”Mensagens iniciadas pela empresa fora da janela de 24h usam templates
aprovados. Informe name, language e os components com seus parameters.
{ "channel": "whatsapp", "to": "5511999999999", "type": "template", "template": { "name": "confirmacao_pedido", "language": "pt_BR", "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "A-1234" } ] } ] }}Interativa (botões / lista)
Seção intitulada “Interativa (botões / lista)”{ "channel": "whatsapp", "to": "5511999999999", "type": "interactive", "interactive": { "type": "button", "body": "Confirma o agendamento?", "buttons": [ { "id": "yes", "title": "Sim" }, { "id": "no", "title": "Não" } ] }}Para lista, use "type": "list", button_text (rótulo do CTA) e sections com
rows (id, title, description).
Janela de 24h (WhatsApp)
Seção intitulada “Janela de 24h (WhatsApp)”Respostas livres (texto/mídia/interativa) só podem ser enviadas dentro de 24h
após a última mensagem do contato. Fora disso, use um template. A resposta de
erro da Meta, quando ocorre, chega no evento message.status.