📚 Série: Automação & Integrações → API WhatsApp | Evolution API | N8N Automação
O que é Webhook?
Webhook é um método HTTP que permite sistemas enviarem notificações automáticas em tempo real quando eventos específicos ocorrem. Funciona como “API reversa” onde o servidor envia dados para sua aplicação, eliminando polling e reduzindo latência para milissegundos. Usado em 80% das integrações modernas.
Diferente de APIs tradicionais onde você consulta dados periodicamente (polling), webhooks empurram informações instantaneamente quando algo acontece.
Por que Webhook é essencial em 2025
Vantagens vs Polling tradicional
| Característica | Webhook | Polling |
|---|---|---|
| Latência | <100ms | 5-60s |
| Requisições | 1 por evento | Milhares/dia |
| Custo API | R$ 0,001/evento | R$ 50-200/mês |
| Carga servidor | Mínima | Alta |
Webhooks economizam 95% das requisições vs polling, reduzindo custos e aumentando velocidade. Segundo pesquisa Salesforce, 79% das empresas usam webhooks em 2025.
Tutorial: Webhook com Flask Python
Setup inicial
from flask import Flask, request, jsonify
import hmac
import hashlib
app = Flask(__name__)
WEBHOOK_SECRET = "seu_segredo_compartilhado"
@app.route('/webhook/whatsapp', methods=['POST'])
def webhook_whatsapp():
# 1. Validar assinatura
payload = request.get_data()
signature = request.headers.get('X-Hub-Signature-256', '')
hash_esperado = hmac.new(
WEBHOOK_SECRET.encode(),
payload,
hashlib.sha256
).hexdigest()
if not hmac.compare_digest(hash_esperado, signature.replace('sha256=', '')):
return jsonify({"error": "Assinatura inválida"}), 401
# 2. Processar dados
data = request.get_json()
mensagem = data['entry'][0]['changes'][0]['value']['messages'][0]
numero = mensagem['from']
texto = mensagem['text']['body']
# 3. Responder rápido (< 5s)
return jsonify({"status": "ok"}), 200
if __name__ == '__main__':
app.run(port=5000)
Caso Real: E-commerce reduziu 95% de requisições
Empresa: Loja online eletrônicos (500 pedidos/dia)
Problema:
- Polling Mercado Pago a cada 30s
- 2.880 requisições/dia desnecessárias
- Latência 15-45s pagamento → aprovação
- 12% carrinho abandonado
- Custo: R$ 180/mês
Solução:
- Webhook Mercado Pago
- Flask + Celery + Redis
- Validação HMAC SHA256
- Deploy VPS $20/mês
Resultados (3 meses):
- ✅ Requisições: -95% (2.880 → 142/dia)
- ✅ Latência: -93% (15-45s → <2s)
- ✅ Carrinhos abandonados: -42% (12% → 7%)
- ✅ Conversão: +17% (78% → 91%)
- ✅ Custo: -96% (R$ 180 → R$ 8/mês)
- ✅ ROI: 1.200%
Principais provedores
Meta Cloud API:
- Configurar em Meta Developer Console
- Eventos: messages, message_status
- Signature: X-Hub-Signature-256
Evolution API:
- Open-source, sem aprovação Meta
- evolution-api.com
- Webhook por instância
- Eventos: message, status, qrcode
Pagamentos
Stripe:
- 100+ eventos disponíveis
- stripe.com/docs/webhooks
- Retry automático (3x)
Mercado Pago:
- Events: payment, merchant_order
- Configurar em: mercadopago.com.br/webhooks
CRM
Pipedrive:
- 20+ eventos (deal.updated, person.created)
- pipedrive.readme.io/docs/webhooks
HubSpot:
- Workflows + webhooks
- developers.hubspot.com
Segurança: validação obrigatória
HMAC SHA256 (recomendado)
import hmac
import hashlib
def validar_hmac(payload_bytes, signature, secret):
hash_esperado = hmac.new(
secret.encode(),
payload_bytes,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(hash_esperado, signature)
# Uso:
if not validar_hmac(request.get_data(), signature, SECRET):
return 'Inválido', 401
Sem validação, qualquer um pode enviar POST falso e simular eventos fraudulentos.
Deploy com HTTPS (obrigatório)
# Nginx + SSL grátis
sudo apt install nginx certbot python3-certbot-nginx
# Configurar
sudo nano /etc/nginx/sites-available/webhook
# Obter SSL
sudo certbot --nginx -d webhook.seudominio.com.br
Webhooks exigem HTTPS. Use Certbot para SSL grátis Let’s Encrypt.
Próximos passos
- Integração API: Guia Completo - REST, GraphQL e autenticação
- API WhatsApp - Enviar/receber mensagens
- Evolution API - Setup WhatsApp completo
- N8N Automação - Workflows sem código
Sobre o autor: Felipe Zanoni é especialista em integrações webhook, com 400+ implementações para empresas brasileiras e 5.000+ webhooks processados diariamente.