Gateway de WhatsApp para receber e enviar mensagens via API/Webhook utilizando Node.js, Express e WPPConnect.
- 📱 Conexão com WhatsApp via WPPConnect
- 🔄 Auto-reconexão e persistência de sessão
- 📨 API para enviar mensagens
- 🔔 Webhook para receber mensagens
- 🚫 Ignora mensagens de status e grupos
- 📵 Rejeita ligações automaticamente
├── src/
│ ├── config/ # Configurações centralizadas
│ ├── services/ # Serviços (WhatsApp, Webhook)
│ ├── routes/ # Rotas da API
│ ├── middlewares/ # Middlewares Express
│ ├── utils/ # Utilitários (Logger)
│ └── app.js # Configuração Express
├── tokens/ # Sessões (auto-gerado)
├── .env # Variáveis de ambiente
└── index.js # Entry point
# Instalar dependências
npm install
# Configurar variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações
# Iniciar
npm start| Variável | Descrição | Padrão |
|---|---|---|
PORT |
Porta do servidor | 3000 |
WEBHOOK_URL |
URL para enviar mensagens recebidas | - |
SESSION_NAME |
Nome da sessão WhatsApp | whatsapp-gateway |
LOG_LEVEL |
Nível de log (debug, info, warn, error) | info |
GET /health
GET /api/status
POST /api/send-message
Content-Type: application/json
{
"number": "5511999999999",
"message": "Sua mensagem aqui"
}
Resposta:
{
"success": true,
"message": "Mensagem enviada com sucesso",
"data": {
"messageId": "...",
"to": "5511999999999"
}
}Quando uma mensagem é recebida, ela é enviada via POST para o WEBHOOK_URL configurado:
{
"name": "Nome do Contato",
"number": "5511999999999",
"messageType": "text",
"message": "Conteúdo da mensagem",
"timestamp": "2024-01-15T12:00:00.000Z"
}Tipos de mensagem: text, image, video, audio, document, sticker
- Execute
npm start - Escaneie o QR Code exibido no terminal com seu WhatsApp
- Após conectar, a sessão será salva automaticamente
- Nas próximas execuções, a conexão será restaurada sem QR Code
MIT