Skip to content

Mensagens

A API de mensagens permite enviar mensagens e consultar o histórico de um chat.

Se você só precisa listar e transferir conversas, veja: Chats.

Listar Mensagens

GET https://chat.mehub.app/api/v1/chats/{token}/messages

Retorna todas as mensagens de um chat específico.

Headers

NomeTipoObrigatórioDescrição
AuthorizationstringSimToken de autenticação. Ex: Bearer seu_token

Path Parameters

NomeTipoObrigatórioDescrição
tokenstringSimToken do chat

Query Parameters

NomeTipoObrigatórioDescrição
pageintegerNãoNúmero da página. Default: 1
per_pageintegerNãoRegistros por página (máx: 100). Default: 20
typestringNãoFiltrar por tipo: text, image, video, audio, document, sticker, vcard, template
directionstringNãoFiltrar por direção: incoming (recebida), outgoing (enviada)
visibilitystringNãoFiltrar por visibilidade: client (visível), internal (nota interna)
attendantintegerNãoFiltrar por ID do atendente
contentstringNãoBuscar no conteúdo da mensagem (busca parcial)

Exemplo de requisição

bash
curl -X GET "https://chat.mehub.app/api/v1/chats/abc123def456/messages?direction=incoming&type=text" \
  -H "Authorization: Bearer SEU_TOKEN"

Response

json
{
  "success": true,
  "data": [
    {
      "id": 209376,
      "signature": null,
      "content": "Oi",
      "type": "text",
      "token": "[email protected]_3AFB2A6FED425D60C735",
      "direction": "incoming",
      "visibility": "client",
      "created_at": "2025-10-29T17:58:47.000000Z",
      "is_forwarded": false,
      "user": null,
      "file": null
    },
    {
      "id": 209372,
      "signature": "Luiz Ferreira",
      "content": "oi",
      "type": "text",
      "token": "[email protected]_3EB03CDBD351B1FAC8C59B",
      "direction": "outgoing",
      "visibility": "client",
      "created_at": "2025-10-29T17:58:36.000000Z",
      "is_forwarded": false,
      "user": {
        "id": 2,
        "name": "Luiz Ferreira",
        "email": "[email protected]",
        "type": "admin"
      },
      "file": null
    }
  ],
  "pagination": {
    "total": 2,
    "per_page": 20,
    "current_page": 1,
    "last_page": 1
  }
}

Campos do Response

CampoTipoDescrição
idintegerID único da mensagem
signaturestring/nullAssinatura do atendente
contentstringConteúdo da mensagem
typestringTipo: text, image, video, audio, document, sticker, vcard, template
directionstringincoming (recebida) ou outgoing (enviada)
visibilitystringclient (visível) ou internal (nota interna)
is_forwardedbooleanSe foi encaminhada
userobject/nullUsuário que enviou (apenas outgoing)
fileobject/nullArquivo anexado

Enviar Mensagem

POST https://chat.mehub.app/api/v1/messages

Envia uma mensagem para um contato. Suporta texto, mídia e templates.

Headers

NomeTipoObrigatórioDescrição
AuthorizationstringSimToken de autenticação. Ex: Bearer seu_token

Request Body

NomeTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país. Ex: 5531900000000
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringNãoTipo: text, image, video, audio, document, sticker, vcard, template. Default: text
contentstringCondicionalConteúdo da mensagem. Obrigatório para type: text
pathstringCondicionalURL pública do arquivo. Obrigatório para tipos de mídia
captionstringNãoLegenda do arquivo (para mídia)
namestringCondicionalNome do contato. Obrigatório para type: vcard
contactstringCondicionalTelefone do contato. Obrigatório para type: vcard
idintegerCondicionalID do template. Obrigatório para type: template
componentsarrayCondicionalComponentes com variáveis. Obrigatório para type: template

Tipos de Envio


Mensagem de texto

POST https://chat.mehub.app/api/v1/messages

Envia uma mensagem de texto simples para o contato.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimtext
contentstringSimConteúdo da mensagem
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "content": "Olá! Como posso ajudar você hoje?",
    "type": "text"
  }'

Imagem

POST https://chat.mehub.app/api/v1/messages

Envia uma imagem para o contato. Formatos suportados: JPG, JPEG, PNG.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimimage
pathstringSimURL pública da imagem
captionstringNãoLegenda da imagem
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "path": "https://exemplo.com/produto.jpg",
    "caption": "Confira nossa promoção!",
    "type": "image"
  }'

Vídeo

POST https://chat.mehub.app/api/v1/messages

Envia um vídeo para o contato. Formatos suportados: MP4.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimvideo
pathstringSimURL pública do vídeo
captionstringNãoLegenda do vídeo
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "path": "https://exemplo.com/video.mp4",
    "caption": "Tutorial do produto",
    "type": "video"
  }'

Áudio

POST https://chat.mehub.app/api/v1/messages

Envia um áudio para o contato. Formatos suportados: MP3, OGG.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimaudio
pathstringSimURL pública do áudio
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "path": "https://exemplo.com/audio.mp3",
    "type": "audio"
  }'

Documento

POST https://chat.mehub.app/api/v1/messages

Envia um documento para o contato. Formatos suportados: PDF, DOC, DOCX, XLS, XLSX, TXT, ZIP.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimdocument
pathstringSimURL pública do documento
captionstringNãoLegenda do documento
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "path": "https://exemplo.com/catalogo.pdf",
    "caption": "Catálogo de produtos 2025",
    "type": "document"
  }'

Sticker

POST https://chat.mehub.app/api/v1/messages

Envia um sticker para o contato. Formato suportado: WEBP.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimsticker
pathstringSimURL pública do sticker
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "path": "https://exemplo.com/sticker.webp",
    "type": "sticker"
  }'

Contato (vCard)

POST https://chat.mehub.app/api/v1/messages

Envia um cartão de contato para o destinatário.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimvcard
namestringSimNome do contato a ser compartilhado
contactstringSimTelefone do contato a ser compartilhado
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "name": "João Silva",
    "contact": "+55 31 90000 0000",
    "type": "vcard"
  }'

Template (somente texto)

POST https://chat.mehub.app/api/v1/messages

Envia um template de mensagem contendo apenas texto com variáveis.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimtemplate
idintegerSimID do template cadastrado
componentsarraySimComponentes com as variáveis do template
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "type": "template",
    "id": 1,
    "components": [
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "João" },
          { "type": "text", "text": "BEMVINDO10" }
        ]
      }
    ]
  }'

Template com Header (imagem)

POST https://chat.mehub.app/api/v1/messages

Envia um template de mensagem com imagem no cabeçalho e variáveis no corpo.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimtemplate
idintegerSimID do template cadastrado
componentsarraySimComponentes com header (imagem) e body (variáveis)
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "type": "template",
    "id": 2,
    "components": [
      {
        "type": "header",
        "parameters": [
          { "type": "image", "path": "https://exemplo.com/pedido.jpg" }
        ]
      },
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "Maria" },
          { "type": "text", "text": "12345" },
          { "type": "text", "text": "25/12/2025" }
        ]
      }
    ]
  }'

Template com Botão Dinâmico

POST https://chat.mehub.app/api/v1/messages

Envia um template de mensagem com botão de URL dinâmica.

CampoTipoObrigatórioDescrição
phonestringSimNúmero do destinatário com código do país
channelstringSimToken do canal que enviará a mensagem
attendantintegerNãoID do atendente a ser vinculado à mensagem
typestringSimtemplate
idintegerSimID do template cadastrado
componentsarraySimComponentes com body (variáveis) e button (URL dinâmica)
bash
curl -X POST "https://chat.mehub.app/api/v1/messages" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "5531900000000",
    "channel": "abc123def456",
    "type": "template",
    "id": 3,
    "components": [
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "Carlos" },
          { "type": "text", "text": "98765" },
          { "type": "text", "text": "150,00" }
        ]
      },
      {
        "type": "button",
        "sub_type": "url",
        "index": 0,
        "parameters": [
          { "type": "text", "text": "ABC123XYZ" }
        ]
      }
    ]
  }'

Estrutura dos Componentes do Template

CampoTipoObrigatórioDescrição
typestringSimTipo: header, body, button
parametersarraySimLista de parâmetros/variáveis
sub_typestringCondicionalSubtipo do botão: url, quick_reply. Obrigatório para type: button
indexintegerCondicionalÍndice do botão, começando em 0. Obrigatório para type: button

Tipos de Parâmetros

TipoCampoDescrição
texttextTexto simples
imagepathURL pública de imagem
videopathURL pública de vídeo
documentpathURL pública de documento

Response

json
{
  "success": true,
  "message": "Mensagem enviada com sucesso.",
  "data": {
    "message": {
      "id": 209380,
      "content": "Olá! Como posso ajudar você hoje?",
      "type": "text",
      "token": "[email protected]_3EB0ABC123XYZ",
      "direction": "outgoing",
      "visibility": "client",
      "created_at": "2025-11-27T14:30:00.000000Z"
    },
    "chat": {
      "token": "xyz789abc123",
      "status": "waiting",
      "is_open": true
    },
    "contact": {
      "phone": "5531900000000",
      "name": "5531900000000"
    }
  }
}

Erros

Exemplo de erro estruturado:

json
{
  "success": false,
  "message": "Não foi possível enviar a mensagem.",
  "errors": [
    {
      "code": "CHANNEL_DISCONNECTED",
      "message": "O canal está desconectado. É necessário reconectar para enviar mensagens."
    }
  ]
}