Enviar mensagem: um exemplo por tipo

Cada tipo com o pedido, a resposta e o que chega no webhook (com a chave "Comparar com a uazapi" ligada, também o pedido da uazapi ao lado). Como o envio funciona está em Enviar mensagens. Uma rota para todos os tipos, POST /messages, no lugar das 11 rotas /send/*. O corpo é plano, com o formato da mensagem recebida (type e os campos do tipo soltos) e a resposta é a própria mensagem. As rotas /send/* continuam iguais.

TipouazapiOrkesio (type)
Texto/send/texttext
Texto com prévia de link/send/texttext
Imagem/send/mediaimage
Vídeo/send/mediavideo
Vídeo redondo/send/mediavideo_note
Áudio/send/mediaaudio
Voz/send/mediavoice
Documento/send/mediadocument
Figurinha/send/mediasticker
Localização/send/locationlocation
Contato/send/contactcontacts
Enquete/send/menupoll
Botões/send/menubuttons
Lista/send/menulist
Carrossel/send/carouselcarousel
Pedido de localização/send/location-buttonlocation_request
Cobrança (PIX, boleto, link)/send/request-paymentpayment
Botão PIX/send/pix-buttonpayment
Evento/send/eventevent
Modelo (API oficial)— (só na Orkesio)template

Campos comuns

uazapiOrkesio
numberto (número, id do WhatsApp, LID, grupo, canal ou @bsuid; na resposta a conversa vem em chat_id)
replyidreply_to (o id; na resposta o resumo da citada vem em quoted)
mentions (texto com vírgulas), "all"mentions[], mention_all
forwardforwarded
track_source, track_idtrack_source, track_id (iguais)
delay, async, readchat, readmessagesoptions{delay_ms, async, read_chat, read_messages}

uazapi

{
  "number": "120363028782550019@g.us",
  "text": "@5511999999999 seu pedido chegou",
  "replyid": "AC1FACA14F3FA7A19DB5FB19D7035506",
  "mentions": "5511999999999",
  "delay": 1500,
  "readchat": true,
  "async": true,
  "track_source": "crm",
  "track_id": "pedido-42"
}

Orkesio

{
  "to": "120363028782550019@g.us",
  "type": "text",
  "text": "@5511999999999 seu pedido chegou",
  "reply_to": "AC1FACA14F3FA7A19DB5FB19D7035506",
  "mentions": [
    "5511999999999"
  ],
  "track_source": "crm",
  "track_id": "pedido-42",
  "options": {
    "delay_ms": 1500,
    "read_chat": true
  }
}

Resposta Orkesio

Fila por padrão (só nesta rota): a resposta volta na hora com status: queued, e o resultado (sent ou failed, com o motivo) chega em message.status. Para esperar o envio sair, mande "options": {"async": false}: a resposta vem com status: pending ou com o erro. Na uazapi é o contrário (síncrono, e async: true para a fila), e as /send/* continuam assim. Erro do pedido (campo faltando, to inválido) responde 400 na hora, nos dois modos. A citação já vem com a prévia (quoted.preview).

{
  "id": "3EB05DCE1D4036FCE241C6",
  "chat_id": "120363028782550019@g.us",
  "author": {
    "id": "5511888888888@s.whatsapp.net",
    "phone": "5511888888888",
    "lid": "987654321098765@lid",
    "name": "Loja"
  },
  "direction": "out",
  "sent_at": "2026-10-17T12:00:00.000Z",
  "type": "text",
  "text": "@5511999999999 seu pedido chegou",
  "sent_by": "api",
  "status": "queued",
  "mentions": [
    "5511999999999"
  ],
  "track_source": "crm",
  "track_id": "pedido-42",
  "reply_to": "AC1FACA14F3FA7A19DB5FB19D7035506",
  "quoted": {
    "author": {
      "id": "5511999999999@s.whatsapp.net",
      "name": "Maria Souza"
    },
    "type": "text",
    "preview": "Chegou?"
  }
}

Erros

uazapiOrkesio
{"error": "Missing number or text"}{"error": "invalid_request", "message": "text é obrigatório."}
(cada rota um texto)unsupported_for_channel quando o canal não tem o tipo (template no Web; event e payment na oficial)