Saltar para o conteúdo

Tipos de mensagem

Nove tipos de mensagem, um só corpo de pedido

Um pedido de envio indica um canal, um destinatário e um tipo, com o conteúdo sob uma chave com o nome desse tipo. Esta página mostra cada tipo, o corpo que o produz e onde é suportado.

Matriz de suporte

Que canal aceita que tipo

Um canal indica o que aceita em capabilities. Enviar um tipo que o canal não suporta devolve 400 unsupported_message_type e nada é cobrado.

Suporte dos tipos de mensagem por tipo de canal
TipoWhatsAppSMSSMS OTPTelegramMessengerInstagramTikTok
TextotextSuportadoSuportadoSuportadoSuportadoSuportadoSuportadoSuportado
AnexosattachmentsSuportadoSuportadoNão suportadoSuportadoSuportadoSuportadoSuportado
ModelotemplateSuportadoNão suportadoNão suportadoNão suportadoNão suportadoNão suportadoNão suportado
Botões de respostabuttonSuportadoNão suportadoNão suportadoSuportadoSuportadoSuportadoSuportado
ListalistSuportadoNão suportadoNão suportadoNão suportadoNão suportadoNão suportadoNão suportado
Botão de URLcta_urlSuportadoNão suportadoNão suportadoNão suportadoNão suportadoNão suportadoNão suportado
LocalizaçãolocationSuportadoNão suportadoNão suportadoSuportadoNão suportadoNão suportadoNão suportado
ContactoscontactsSuportadoNão suportadoNão suportadoSuportadoNão suportadoNão suportadoNão suportado
SondagempollNão suportadoNão suportadoNão suportadoSuportadoNão suportadoNão suportadoNão suportado
type: "text"

Texto

Texto simples, aceite por todos os tipos de canal. Defina preview_url para permitir que o canal apresente uma pré-visualização da ligação.

body: de 1 a 4096 caracteres.

  • WhatsApp Business
  • SMS
  • SMS OTP
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "text",
  "text": {
    "body": "A sua encomenda n.º 1042 foi expedida. Acompanhe-a em https://example.com/t/1042",
    "preview_url": true
  },
  "reference": "order-1042"
}
type: "attachments"

Anexos

Um item multimédia por mensagem, referenciado por um URL https: imagem, vídeo, documento, áudio, mensagem de voz ou autocolante, com uma legenda opcional.

Exatamente um item. caption: até 1024 caracteres.

  • WhatsApp Business
  • SMS
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "attachments",
  "attachments": [
    {
      "type": "image",
      "url": "https://example.com/receipts/1042.jpg",
      "caption": "O recibo da sua encomenda n.º 1042."
    }
  ]
}
type: "template"

Modelo

Um modelo de WhatsApp aprovado, com variáveis. Os modelos são as únicas mensagens que o WhatsApp aceita fora da janela de atendimento ao cliente de 24 horas.

name e language têm de corresponder a um modelo aprovado do canal.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "template",
  "template": {
    "name": "order_out_for_delivery",
    "language": {
      "code": "en"
    },
    "components": [
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "Marta"
          },
          {
            "type": "text",
            "text": "#1042"
          },
          {
            "type": "text",
            "text": "18:00"
          }
        ]
      }
    ]
  }
}
type: "button"

Botões de resposta

Uma mensagem com até três respostas rápidas. O ID do botão tocado regressa ao seu webhook num evento message.received.

De 1 a 3 botões. title: até 20 caracteres.

  • WhatsApp Business
  • Telegram
  • Messenger
  • Instagram
  • TikTok
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "button",
  "button": {
    "body": {
      "text": "A sua mesa para dois está reservada para hoje às 19:30. Continua a poder vir?"
    },
    "action": {
      "buttons": [
        {
          "reply": {
            "id": "confirm",
            "title": "Confirmar"
          }
        },
        {
          "reply": {
            "id": "reschedule",
            "title": "Reagendar"
          }
        },
        {
          "reply": {
            "id": "cancel",
            "title": "Cancelar reserva"
          }
        }
      ]
    }
  }
}
type: "list"

Lista

Um menu que se abre a partir de um único botão, com linhas agrupadas em secções com título.

action.button: até 20 caracteres.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "list",
  "list": {
    "body": {
      "text": "Que equipa o pode ajudar hoje?"
    },
    "action": {
      "button": "Escolher equipa",
      "sections": [
        {
          "title": "Equipas",
          "rows": [
            {
              "id": "orders",
              "title": "Encomendas",
              "description": "Entregas, devoluções e reembolsos"
            },
            {
              "id": "billing",
              "title": "Faturação",
              "description": "Faturas e métodos de pagamento"
            },
            {
              "id": "technical",
              "title": "Suporte técnico",
              "description": "Configuração e resolução de problemas"
            }
          ]
        }
      ]
    }
  }
}
type: "cta_url"

Botão de URL

Uma mensagem com um botão que abre um URL, para páginas de seguimento, pagamentos e ligações de início de sessão.

Um botão por mensagem.

  • WhatsApp Business
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "cta_url",
  "cta_url": {
    "body": {
      "text": "A sua encomenda está a caminho. Acompanhe-a em tempo real."
    },
    "action": {
      "parameters": {
        "display_text": "Seguir encomenda",
        "url": "https://example.com/t/1042"
      }
    }
  }
}
type: "location"

Localização

Um marcador com um nome e uma morada que se abre na aplicação de mapas do destinatário.

latitude e longitude são indicadas em graus decimais.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "location",
  "location": {
    "latitude": 25.2048,
    "longitude": 55.2708,
    "name": "Ponto de recolha",
    "address": "Sheikh Zayed Road, Dubai"
  }
}
type: "contacts"

Contactos

Um ou mais cartões de contacto. O array é encaminhado para o canal tal como está, pelo que utiliza o formato de contactos do próprio fornecedor.

O exemplo mostra o formato de contactos do WhatsApp.

  • WhatsApp Business
  • Telegram
POST /v1/messages
{
  "channel": "ch_7Hq2mN5vB8cX1zL0pK3j",
  "to": "+971501234567",
  "type": "contacts",
  "contacts": [
    {
      "name": {
        "formatted_name": "Apoio ao cliente",
        "first_name": "Apoio"
      },
      "phones": [
        {
          "phone": "+971800123456",
          "type": "WORK"
        }
      ]
    }
  ]
}
type: "poll"

Sondagem

Uma sondagem nativa do Telegram com uma pergunta e um conjunto de opções.

Apenas Telegram.

  • Telegram
POST /v1/messages
{
  "channel": "ch_4Tn8rW2yK6dF9sA1mQ5v",
  "to": "584201337",
  "type": "poll",
  "poll": {
    "question": "Quando devemos entregar a sua encomenda?",
    "options": [
      "Manhã, das 09:00 às 12:00",
      "Tarde, das 12:00 às 17:00",
      "Noite, das 17:00 às 21:00"
    ]
  }
}

Experimente todos os tipos na sandbox

Cada conta tem um canal de sandbox para cada tipo de canal. Envie qualquer tipo que este suporte com uma chave de teste, e nada é entregue nem cobrado.