Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.hadem.chat/llms.txt

Use this file to discover all available pages before exploring further.

POST https://api.hadem.com.br/v1/channels/:channelId/messages

Autenticação

Authorization: Bearer hm_live_xxxxxxxxxxxx
Não sabe onde gerar o token? Veja Getting Started.

Exemplos

curl -X POST "https://api.hadem.com.br/v1/channels/ch_123/messages" \
  -H "Authorization: Bearer hm_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "contact": { "value": "5511999999999", "type": "phone" },
    "message": {
      "type": "text",
      "text": { "value": "Olá! Como posso ajudar?" }
    }
  }'

Parâmetros

contact

CampoTipoObrigatórioDescrição
valuestringNúmero de telefone ou e-mail do contato
type"phone" | "email"Tipo do identificador. Padrão: "phone"
namestringNome do contato

message

CampoTipoObrigatórioDescrição
type"text" | "template" | "media"Tipo da mensagem
flowIdstringAssocia o envio a um flow existente na conta
closeConversationbooleanEncerra a conversa aberta antes de enviar

Tipos de mensagem

Texto

{
  "contact": { "value": "5511999999999", "type": "phone" },
  "message": {
    "type": "text",
    "text": { "value": "Sua mensagem aqui." }
  }
}

Template

{
  "contact": { "value": "5511999999999", "type": "phone" },
  "message": {
    "type": "template",
    "template": {
      "name": "nome_do_template",
      "variables": [
        { "key": "name", "value": "Maria" }
      ]
    }
  }
}

Mídia

{
  "contact": { "value": "5511999999999", "type": "phone" },
  "message": {
    "type": "media",
    "media": {
      "mediaType": "image",
      "mimetype": "image/png",
      "filename": "imagem.png",
      "caption": "Legenda opcional",
      "base64": "<conteúdo em base64>"
    }
  }
}
base64 e mediaUrl são alternativos — envie pelo menos um dos dois. Valores aceitos em mediaType: image, video, document, audio.

Resposta

{
  "requestId": "7ce15b8a-76ec-4acd-b5d5-0b0f9a6ce8f4"
}
CampoTipoDescrição
requestIdstringIdentificador do envio. Use nos logs para rastrear a entrega.

Erros

StatusDescrição
400 Bad RequestBody inválido ou campos incompatíveis
401 UnauthorizedToken ausente ou inválido
403 ForbiddenToken sem permissão para enviar mensagens
404 Not FoundCanal não encontrado ou não pertence à conta
429 Too Many RequestsLimite de requisições atingido
5xxErro interno
{
  "statusCode": 404,
  "error": "Not Found",
  "message": "Channel not found",
  "requestId": "7ce15b8a-76ec-4acd-b5d5-0b0f9a6ce8f4"
}