Lista
Texto com um botão que abre a lista de opções, agrupadas em seções.
text: o texto. Com mais de uma linha, a primeira é o cabeçalho (em negrito) e o resto é o corpo. A lista não aceita mídia.button_text: o texto do botão que abre a lista.footer: o rodapé, em cinza.choices[]: os itens.title: o texto do item.id: o que volta no clique (option_id). Semid, vale otitle.description: a linha de baixo, em cinza.section: a seção do item. Itens com a mesmasectionficam juntos, na ordem em que vierem.
Para responder pela inbox a uma lista que chegou, mande "type": "interactive_reply" com a mensagem em reply_to e o id do item em option_id.
Canais
| Canal | Funciona | Observação |
|---|---|---|
| WhatsApp (Web) | Sim | |
| WhatsApp (API oficial) | Sim | |
| Em parte | Vira respostas rápidas (até 13). | |
| Messenger | Em parte | Vira respostas rápidas (até 13). |
| Telegram | Em parte | Vira um botão por item. |
Pedido
POST /messages com "type": "list". Testar
{
"to": "5511999999999",
"type": "list",
"text": "Escolha o setor",
"button_text": "Ver setores",
"choices": [
{
"id": "vendas",
"title": "Vendas",
"section": "Atendimento"
},
{
"id": "suporte",
"title": "Suporte",
"description": "Dúvidas e problemas",
"section": "Atendimento"
},
{
"id": "boleto",
"title": "Segunda via",
"section": "Financeiro"
}
]
}
Na uazapi
POST /send/menu, que continua funcionando. Na uazapi a seção era um item "[Título]" no meio da lista; na Orkesio cada item de choices diz a sua section. A resposta pela inbox era um texto >1 respondendo à mensagem; na Orkesio é type: interactive_reply.
{
"number": "5511999999999",
"type": "list",
"text": "Escolha o setor",
"listButton": "Ver setores",
"choices": [
"[Atendimento]",
"Vendas|vendas",
"Suporte|suporte|Dúvidas e problemas",
"[Financeiro]",
"Segunda via|boleto"
]
}{
"to": "5511999999999",
"type": "list",
"text": "Escolha o setor",
"button_text": "Ver setores",
"choices": [
{
"id": "vendas",
"title": "Vendas",
"section": "Atendimento"
},
{
"id": "suporte",
"title": "Suporte",
"description": "Dúvidas e problemas",
"section": "Atendimento"
},
{
"id": "boleto",
"title": "Segunda via",
"section": "Financeiro"
}
]
}Resposta
A própria mensagem (OrkesioMessage), no formato do message.sent e da busca. No WhatsApp Web volta na hora com status: queued: por padrão o envio vai pela fila (com options.async: false, espera o envio e volta a mensagem enviada). É o pedido no formato da mensagem: o arquivo, a miniatura e a prévia do link chegam no message.sent. Na API oficial volta depois que a Meta aceita, com status: pending. O resultado chega em message.status (a falha também em message.failed).
{
"id": "3EB05DCE1D4036FCE241C6",
"chat_id": "5511999999999@s.whatsapp.net",
"author": {
"id": "5511888888888@s.whatsapp.net",
"phone": "5511888888888"
},
"direction": "out",
"sent_at": "2026-10-17T12:00:00.000Z",
"category": "unsent",
"type": "list",
"text": "Escolha o setor",
"choices": [
{
"id": "vendas",
"title": "Vendas",
"section": "Atendimento"
},
{
"id": "suporte",
"title": "Suporte",
"description": "Dúvidas e problemas",
"section": "Atendimento"
},
{
"id": "boleto",
"title": "Segunda via",
"section": "Financeiro"
}
],
"sent_by": "api",
"status": "queued"
}
Na uazapi
O content da uazapi é o proto do WhatsApp; aqui vai resumido (...).
{
"id": "5511888888888:3EB05DCE1D4036FCE241C6",
"messageid": "3EB05DCE1D4036FCE241C6",
"chatid": "5511999999999@s.whatsapp.net",
"chatlid": "123456789012345@lid",
"fromMe": true,
"isGroup": false,
"groupName": "",
"sender": "987654321098765@lid",
"sender_pn": "5511888888888@s.whatsapp.net",
"sender_lid": "987654321098765@lid",
"senderName": "",
"messageType": "ListMessage",
"mediaType": "",
"messageTimestamp": 1792238400000,
"source": "web",
"status": "",
"text": "Escolha o setor",
"content": {
"description": "Escolha o setor",
"buttonText": "Ver setores",
"listType": 1,
"sections": [
"..."
]
},
"quoted": "",
"edited": "",
"reaction": "",
"vote": "",
"buttonOrListid": "",
"convertOptions": "",
"pinned": false,
"owner": "5511888888888",
"wasSentByApi": true,
"track_source": "",
"track_id": "",
"response": {
"status": "success",
"message": "Message sent successfully"
}
}{
"id": "3EB05DCE1D4036FCE241C6",
"chat_id": "5511999999999@s.whatsapp.net",
"author": {
"id": "5511888888888@s.whatsapp.net",
"phone": "5511888888888"
},
"direction": "out",
"sent_at": "2026-10-17T12:00:00.000Z",
"category": "unsent",
"type": "list",
"text": "Escolha o setor",
"choices": [
{
"id": "vendas",
"title": "Vendas",
"section": "Atendimento"
},
{
"id": "suporte",
"title": "Suporte",
"description": "Dúvidas e problemas",
"section": "Atendimento"
},
{
"id": "boleto",
"title": "Segunda via",
"section": "Financeiro"
}
],
"sent_by": "api",
"status": "queued"
}No webhook
O que chega no seu webhook (ou em GET /events) depois do envio.
message.sent
Quando a mensagem sai. O evento message.sent
{
"id": "evt_01JAB3K9ZQ7V0M4T8R2X6WYD5H",
"type": "message.sent",
"created_at": "2026-10-17T12:00:00.000Z",
"inbox": {
"id": "r0269625d29bfbd",
"name": "loja",
"phone": "5511888888888",
"channel": "whatsapp_web"
},
"data": {
"message": {
"id": "3EB05DCE1D4036FCE241C6",
"chat_id": "5511999999999@s.whatsapp.net",
"author": {
"id": "5511888888888@s.whatsapp.net",
"phone": "5511888888888"
},
"direction": "out",
"sent_at": "2026-10-17T12:00:00.000Z",
"category": "conversation",
"type": "list",
"text": "Escolha o setor",
"choices": [
{
"id": "vendas",
"title": "Vendas",
"section": "Atendimento"
},
{
"id": "suporte",
"title": "Suporte",
"description": "Dúvidas e problemas",
"section": "Atendimento"
},
{
"id": "boleto",
"title": "Segunda via",
"section": "Financeiro"
}
],
"sent_by": "api"
},
"chat": {
"id": "5511999999999@s.whatsapp.net",
"lid": "123456789012345@lid",
"type": "direct"
}
}
}
message.status
sent, delivered, read e played (áudio e voz), um evento por mudança; failed se o envio falhar. O evento message.status
{
"id": "evt_01JAB3K9ZQ7V0M4T8R2X6WYD6J",
"type": "message.status",
"created_at": "2026-10-17T12:00:05.000Z",
"inbox": {
"id": "r0269625d29bfbd",
"name": "loja",
"phone": "5511888888888",
"channel": "whatsapp_web"
},
"data": {
"chat": {
"id": "5511999999999@s.whatsapp.net",
"lid": "123456789012345@lid",
"type": "direct"
},
"status": "delivered",
"at": "2026-10-17T12:00:05.000Z",
"messages": [
{
"id": "3EB05DCE1D4036FCE241C6"
}
]
}
}
Quando o contato responde
message.received
O contato escolheu Suporte. option_id é o id do item, description vem junto e reply_to é a mensagem da lista. O evento message.received
{
"id": "evt_01JAB3M2K8P4R6T8V0X2Z4B6D8",
"type": "message.received",
"created_at": "2026-10-17T12:03:00.000Z",
"inbox": {
"id": "r0269625d29bfbd",
"name": "loja",
"phone": "5511888888888",
"channel": "whatsapp_web"
},
"data": {
"message": {
"id": "AC1FACA14F3FA7A19DB5FB19D7035506",
"chat_id": "5511999999999@s.whatsapp.net",
"author": {
"id": "5511999999999@s.whatsapp.net",
"phone": "5511999999999",
"lid": "123456789012345@lid",
"name": "Maria Souza"
},
"direction": "in",
"sent_at": "2026-10-17T12:03:00.000Z",
"category": "conversation",
"type": "interactive_reply",
"kind": "list",
"option_id": "suporte",
"text": "Suporte",
"description": "Dúvidas e problemas",
"reply_to": "3EB05DCE1D4036FCE241C6",
"quoted": {
"id": "3EB05DCE1D4036FCE241C6",
"direction": "out",
"type": "list",
"preview": "Escolha o setor"
}
},
"chat": {
"id": "5511999999999@s.whatsapp.net",
"lid": "123456789012345@lid",
"type": "direct"
}
}
}