Skip to content

Chats

A API de chats permite gerenciar as conversas da sua empresa, incluindo listagem e transferência entre canais e atendentes.

Listar Chats

GET https://chat.mehub.app/api/v1/chats

Retorna todos os chats (conversas) da empresa autenticada, incluindo informações do contato e a última mensagem.

Headers

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

Query Parameters

NomeTipoObrigatórioDescrição
pageintegerNãoNúmero da página. Default: 1
per_pageintegerNãoRegistros por página (máx: 100). Default: 20
statusstringNãoFiltrar por status: entrance, waiting, finished
is_openbooleanNãoFiltrar por chats abertos ou fechados
contactstringNãoFiltrar por ID ou telefone do contato
tagintegerNãoFiltrar por ID da tag
channelstringNãoFiltrar por token do canal
attendantintegerNãoFiltrar por ID do atendente

Exemplo de requisição

bash
curl -X GET "https://chat.mehub.app/api/v1/chats?status=waiting&is_open=true" \
  -H "Authorization: Bearer SEU_TOKEN"

Response

json
{
  "success": true,
  "data": [
    {
      "id": 1,
      "token": "abc123def456",
      "is_open": true,
      "status": "waiting",
      "unreadCount": 3,
      "contact": {
        "id": 1,
        "name": "Cliente João",
        "phone": "5511900000000"
      },
      "lastMessage": {
        "id": 42,
        "content": "Olá, preciso de ajuda!",
        "created_at": "2025-10-29T10:30:00.000000Z"
      }
    }
  ],
  "pagination": {
    "total": 15,
    "per_page": 20,
    "current_page": 1,
    "last_page": 1
  }
}

Campos do Response

CampoTipoDescrição
idintegerID único do chat
tokenstringToken identificador do chat
is_openbooleanSe o chat está aberto (true) ou fechado (false)
statusstringStatus: entrance (última mensagem foi nossa), waiting (última mensagem foi do contato), finished (atendimento finalizado, não recebe novas mensagens)
unreadCountintegerQuantidade de mensagens não lidas
contactobjectDados do contato vinculado
lastMessageobjectÚltima mensagem enviada

Transferir Chat

POST https://chat.mehub.app/api/v1/chats/{token}/transfer

Transfere uma conversa para outro canal ou atendente. Você pode transferir apenas entre canais, apenas entre atendentes, ou ambos.

CampoTipoObrigatórioDescrição
channelstringSimToken do canal de destino (16 caracteres)
attendantintegerNãoID do atendente de destino. Se não informado, vai para a fila de espera
messagestringNãoMensagem interna de contexto (máx: 1000 caracteres). Visível apenas para a equipe

Exemplo de requisição

bash
curl -X POST "https://chat.mehub.app/api/v1/chats/abc123def456/transfer" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "xyz789abc123def4",
    "attendant": 8,
    "message": "Cliente precisa falar sobre reembolso. Pedido #12345."
  }'

Response

json
{
  "success": true,
  "message": "Conversa transferida com sucesso.",
  "data": {
    "chatToken": "abc123def456",
    "channel": "xyz789abc123def4",
    "attendant": 8
  }
}

Erros

json
{
  "success": false,
  "message": "Conversa ou canal não encontrado."
}
json
{
  "success": false,
  "message": "Você não tem permissão para transferir conversas deste canal."
}
json
{
  "success": false,
  "message": "O atendente informado não tem acesso ao canal de destino."
}

Como funciona

Transferência no mesmo canal: Apenas troca o atendente responsável. O chat permanece o mesmo, mantendo todo o histórico.

Transferência para outro canal: Cria um novo chat no canal de destino, vincula o mesmo contato e inclui um link para o chat original.