
# 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](/docs/enviar). 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.

| Tipo | uazapi | Orkesio (`type`) |
| --- | --- | --- |
| [Texto](/docs/envio-texto) | `/send/text` | `text` |
| [Texto com prévia de link](/docs/envio-link) | `/send/text` | `text` |
| [Imagem](/docs/envio-imagem) | `/send/media` | `image` |
| [Vídeo](/docs/envio-video) | `/send/media` | `video` |
| [Vídeo redondo](/docs/envio-video-redondo) | `/send/media` | `video_note` |
| [Áudio](/docs/envio-audio) | `/send/media` | `audio` |
| [Voz](/docs/envio-voz) | `/send/media` | `voice` |
| [Documento](/docs/envio-documento) | `/send/media` | `document` |
| [Figurinha](/docs/envio-figurinha) | `/send/media` | `sticker` |
| [Localização](/docs/envio-localizacao) | `/send/location` | `location` |
| [Contato](/docs/envio-contato) | `/send/contact` | `contacts` |
| [Enquete](/docs/envio-enquete) | `/send/menu` | `poll` |
| [Botões](/docs/envio-botoes) | `/send/menu` | `buttons` |
| [Lista](/docs/envio-lista) | `/send/menu` | `list` |
| [Carrossel](/docs/envio-carrossel) | `/send/carousel` | `carousel` |
| [Pedido de localização](/docs/envio-pedir-localizacao) | `/send/location-button` | `location_request` |
| [Cobrança (PIX, boleto, link)](/docs/envio-cobranca) | `/send/request-payment` | `payment` |
| [Botão PIX](/docs/envio-pix) | `/send/pix-button` | `payment` |
| [Evento](/docs/envio-evento) | `/send/event` | `event` |
| [Modelo (API oficial)](/docs/envio-modelo) | — (só na Orkesio) | `template` |

## Campos comuns

| uazapi | Orkesio |
| --- | --- |
| `number` | `to` (número, id do WhatsApp, LID, grupo, canal ou `@bsuid`; na resposta a conversa vem em `chat_id`) |
| `replyid` | `reply_to` (o `id`; na resposta o resumo da citada vem em `quoted`) |
| `mentions` (texto com vírgulas), `"all"` | `mentions[]`, `mention_all` |
| `forward` | `forwarded` |
| `track_source`, `track_id` | `track_source`, `track_id` (iguais) |
| `delay`, `async`, `readchat`, `readmessages` | `options{delay_ms, async, read_chat, read_messages}` |

### uazapi

```json
{
  "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

```json
{
  "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`).

```json
{
  "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

| uazapi | Orkesio |
| --- | --- |
| `{"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) |
