Mensagens Ricas
Envie conteúdo interativo: botões de resposta rápida, botões de URL, copiar para clipboard, códigos Pix, vCards e localizações.
Apenas o operador (lado da empresa) pode enviar mensagens ricas. O cliente pode responder a elas como texto regular.
Formato dos Anexos
O campo attachments contém uma string JSON criptografada descrevendo os elementos interativos. Criptografe com a mesma chave AES por mensagem usada para content. A identidade do operador também é incorporada aqui para que o cliente renderize o avatar correto por mensagem.
JSON de anexos
{
"operator": {
"uuid": "agent-42",
"name": "Maria Silva",
"image": "https://cdn.example.com/avatars/maria.png",
"gravatarHash": "md5-of-operator-email"
},
"buttons": [
{ "type": "reply", "label": "Sim" },
{ "type": "reply", "label": "Não" },
{ "type": "url", "label": "Abrir site", "url": "https://example.com" },
{ "type": "copy", "label": "Copiar código", "value": "ABC-1234" },
{ "type": "pix", "label": "Copiar Pix", "value": "00020126..." }
],
"vcard": {
"name": "John Doe",
"phone": "+5511999998888",
"organization": "Acme Inc."
},
"location": {
"latitude": -23.5505,
"longitude": -46.6333,
"name": "São Paulo",
"address": "Av. Paulista, 1000"
}
} Tipos de Botão
| Tipo | Campos Obrigatórios | Descrição |
|---|---|---|
reply | label | Botão de resposta rápida. Envia o texto do label como resposta. |
url | label, url | Abre a URL no navegador. |
copy | label, value | Copia o valor para o clipboard. |
pix | label, value | Igual ao copy, mas com ícone Pix. |
Regras de Renderização
- Até 3 botões: renderiza inline abaixo da mensagem.
- Mais de 3: renderiza um botão "Mais" que abre um modal.
- Localização: renderiza nome/endereço com link para abrir no mapa.
- vCard: renderiza cartão de contato com nome, telefone e organização.
Enviando uma Mensagem Rica
cURL
curl -X POST https://api.ixblix.app/api/messages/company \
-H "X-API-Key: smci_xxxx" \
-H "Content-Type: application/json" \
-d '{
"conversationId": "conv_xxxx",
"content": "<texto criptografado>",
"iv": "...",
"authTag": "...",
"encryptedKey": "...",
"selfEncryptedKey": "...",
"keyId": "...",
"attachments": "<string JSON criptografada>"
}' O backend armazena o ciphertext como-is. Nunca descriptografa ou inspeciona os anexos.