Texto com prévia de link
Texto com a prévia do link montada por você: título, descrição e imagem.
text: o texto, com o link. A prévia é do primeiro link do texto.link_preview: os dados da prévia.titleedescriptionaparecem no cartão;image_urlé a imagem;large: truemostra a imagem grande. Sem o campo, a api monta a prévia sozinha (truefaz o mesmo);falsedesliga.
Na API oficial vai só o pedido de prévia: a Meta monta o cartão, sem o título e a descrição daqui.
Canais
| Canal | Funciona | Observação |
|---|---|---|
| WhatsApp (Web) | Sim | |
| WhatsApp (API oficial) | Sim | |
| Sim | ||
| Messenger | Sim | |
| Telegram | Em parte | Até 4096 caracteres. |
Pedido
POST /messages com "type": "text". Testar
{
"to": "5511999999999",
"type": "text",
"text": "Veja o pedido: https://loja.exemplo/p/42",
"link_preview": {
"title": "Pedido 42",
"description": "Acompanhe a entrega",
"image_url": "https://loja.exemplo/p/42.jpg",
"large": true
}
}
Na uazapi
POST /send/text, que continua funcionando. Na uazapi a prévia ia em campos soltos (linkPreview, linkPreviewTitle, linkPreviewDescription, linkPreviewImage); na Orkesio fica tudo em link_preview.
{
"number": "5511999999999",
"text": "Veja o pedido: https://loja.exemplo/p/42",
"linkPreview": true,
"linkPreviewTitle": "Pedido 42",
"linkPreviewDescription": "Acompanhe a entrega",
"linkPreviewImage": "https://loja.exemplo/p/42.jpg",
"linkPreviewLarge": true
}{
"to": "5511999999999",
"type": "text",
"text": "Veja o pedido: https://loja.exemplo/p/42",
"link_preview": {
"title": "Pedido 42",
"description": "Acompanhe a entrega",
"image_url": "https://loja.exemplo/p/42.jpg",
"large": true
}
}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": "text",
"text": "Veja o pedido: https://loja.exemplo/p/42",
"link_preview": {
"url": "https://loja.exemplo/p/42",
"title": "Pedido 42",
"description": "Acompanhe a entrega"
},
"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": "ExtendedTextMessage",
"mediaType": "",
"messageTimestamp": 1792238400000,
"source": "web",
"status": "",
"text": "Veja o pedido: https://loja.exemplo/p/42",
"content": {
"text": "Veja o pedido: https://loja.exemplo/p/42",
"matchedText": "https://loja.exemplo/p/42",
"title": "Pedido 42",
"description": "Acompanhe a entrega",
"JPEGThumbnail": "/9j/4AAQ...",
"contextInfo": {}
},
"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": "text",
"text": "Veja o pedido: https://loja.exemplo/p/42",
"link_preview": {
"url": "https://loja.exemplo/p/42",
"title": "Pedido 42",
"description": "Acompanhe a entrega"
},
"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": "text",
"text": "Veja o pedido: https://loja.exemplo/p/42",
"link_preview": {
"url": "https://loja.exemplo/p/42",
"title": "Pedido 42",
"description": "Acompanhe a entrega",
"thumbnail": "/9j/4AAQ..."
},
"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"
}
]
}
}