Enviando Mensagens
Aprenda como enviar diferentes tipos de mensagens através da API do ZapFlare.
Pré-requisitos
Antes de enviar mensagens, você precisa:
- API Key válida - Gere uma API Key
- Instância conectada - Crie e conecte uma instância
- Número de destino - Com código do país (ex: 5511999999999)
Tipos de Mensagens
Mensagem de Texto
O tipo mais simples e comum:
bash
curl -X POST https://api.zapflare.io/whatsapp/instances/{instanceId}/send-text \
-H "Authorization: Bearer SEU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "5511999999999",
"message": "Olá! Esta é uma mensagem do ZapFlare."
}'Mensagem com Formatação
Use formatação para destacar informações:
javascript
const response = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}/send-text`, {
method: 'POST',
headers: {
'Authorization': 'Bearer SEU_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
to: "5511999999999",
message: `*Negrito* _itálico_ ~tachado~
📌 *Pedido #1234*
• Status: Confirmado
• Total: R$ 150,00
• Entrega: 20/01/2024`
})
});Mensagem com Mídia
Envie imagens, vídeos e documentos:
javascript
// Enviar imagem
const response = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}/send-media`, {
method: 'POST',
headers: {
'Authorization': 'Bearer SEU_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
to: "5511999999999",
mediaType: "image",
mediaUrl: "https://exemplo.com/produto.jpg",
caption: "Novo produto disponível!"
})
});
// Enviar documento
const docResponse = await fetch(`https://api.zapflare.io/whatsapp/instances/${instanceId}/send-media`, {
method: 'POST',
headers: {
'Authorization': 'Bearer SEU_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
to: "5511999999999",
mediaType: "document",
mediaUrl: "https://exemplo.com/catalogo.pdf"
})
});Boas Práticas
1. Validação de Números
Sempre valide o formato:
- Inclua código do país
- Remova caracteres especiais
- Exemplo:
+55 (11) 99999-9999→5511999999999
2. Tratamento de Erros
javascript
try {
const response = await sendMessage(data);
if (!response.ok) {
const error = await response.json();
console.error('Erro:', error.message);
// Retry logic
if (error.code === 'RATE_LIMIT') {
await sleep(60000); // Aguarda 1 minuto
return sendMessage(data);
}
}
} catch (error) {
console.error('Erro de rede:', error);
}3. Rate Limiting
Respeite os limites da API e implemente fila para grandes volumes de mensagens.
4. Conteúdo
- Evite spam
- Personalize mensagens
- Respeite horários comerciais
- Obtenha consentimento
Resposta da API
Ao enviar uma mensagem, você receberá:
javascript
{
"success": true,
"data": {
"id": "msg_abc123",
"status": "queued",
"timestamp": "2024-01-15T10:30:00Z"
}
}Exemplos Práticos
Sistema de Notificações
javascript
class WhatsAppNotifier {
constructor(apiKey, instanceId) {
this.apiKey = apiKey;
this.instanceId = instanceId;
}
async notifyOrder(phone, order) {
const message = {
to: phone,
message: `✅ *Pedido Confirmado*\n\n` +
`Número: #${order.id}\n` +
`Total: R$ ${order.total}\n` +
`Entrega estimada: ${order.deliveryDate}\n\n` +
`Acompanhe: ${order.trackingUrl}`
};
return this.sendText(message);
}
async sendText(data) {
const response = await fetch(
`https://api.zapflare.io/whatsapp/instances/${this.instanceId}/send-text`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}
);
return response.json();
}
}