Visão Geral
O módulo de notificações é acionado por um cron job externo (servidor Ubuntu) que chamaPOST /notificacoes/cron/executar diariamente. A lógica percorre todas as parcelas pendentes e atrasadas de todos os locadores ativos, e dispara avisos pelos canais configurados.
Canais suportados
| Canal | Provedor | Configuração necessária |
|---|---|---|
| Brevo (SMTP) | brevoApiKey + brevoEmailRemetente | |
| SMS | Brevo (SMS) | brevoSmsApiKey + brevoSmsSender |
| WhatsApp (templates) | Meta Business API | whatsappToken + whatsappPhoneId |
| WhatsApp (texto livre) | Evolution API | EVOLUTION_API_URL + EVOLUTION_GLOBAL_KEY |
Evolution API e Meta WhatsApp são mutuamente exclusivos por disparo — se
evolutionAtivo estiver habilitado, ele tem prioridade sobre o Meta.Tipos de notificação
| Tipo | diasAntes | Disparo |
|---|---|---|
VENCIMENTO | > 0 | X dias antes do vencimento (configurável) |
VENCIMENTO | 0 | No dia do vencimento |
INADIMPLENCIA | < 0 | X dias após o vencimento (parcelas ATRASADO) |
configuracoes_notificacoes. Padrões: [3, 1, 0] para vencimento e [1, 3, 7] para inadimplência.
Cron — Executar rotina diária
Endpoint chamado pelo cron job do servidor. Não requer Firebase Auth — usaCRON_SECRET no header.
Resposta 200
Disparar manualmente
Requer autenticação e roleSUPER_ADMIN ou ADMIN. Útil para testar o fluxo sem esperar o cron.
Se informado, dispara apenas para o locador especificado. Se omitido, processa todos os locadores ativos.
Status das integrações
Retorna se cada canal está ativo e configurado. Requer roleADMIN.
Resposta 200
Histórico de notificações
Retorna as últimas notificações enviadas do usuário autenticado, ordenadas porenviadoEm decrescente.
Filtra pelo contrato específico.
Número máximo de registros retornados.
Resposta 200
Campo canaisUsados
Array com os canais que efetivamente receberam a notificação naquele disparo. Valores possíveis: email, sms, whatsapp_meta, whatsapp_evolution.