- Navios
- 28 de maio de 2026 às 21:01 UTC
- Autor
- Kamo
- Enviar
- 0c59054
Movimento monetário (P1): - EmpréstimoPaymentPostingService: markSuceedAndPost / markFalhou / markReturnedAndReverse / markDesembolsoSucedeu / markDrawDesembolsado. Ordem de atribuição bloqueada: taxas → juros → principal. Avançamento automático do estado DELINQUENT ↔ ACTIVO ↔ PAID OFF baseado no equilíbrio resultante. - StripeWebhookService não é mais log-only: payment intent.succeed / payment failed / charge.refunded (ACH return) / discurse.created+closed / payout.payed+ falhou todo o avanço do livro de registros via PostingService. - NachaReturnCode + RetryScheduler: roteamento de código R conforme com NACHA R01/R09 tentar até 2× / 5 dias de intervalo, R07/R10/R29 revogar o mandato, retries esgotado flip LoanPagamentoMétodo → REQUIRES REVERIFY. Materialização comercial-vertical: * * **************** agora cria Engajamento (EMPRÉSTIMOS PRÓPRIOS, COMPROMISSOS), Compromisso (ACTIVO, com preços + termos JSON instantâneos), Ordem (AUTHORIZED, subtotal=principal), e threads seus IDs voltar para Loan.commitmentUid / engaymentUid / OriginaryOrderUid in A mesma transacção. Trabalhos de Cron (lógica real, não esboços): - CoolingOffAdvanceJob: coloca um pagamento PENDING DISBURSEMENT OUT para TODOS OS DISCURSOS DE PEDIDOS Empréstimo cuja refrigeração tenha decorrido. - InteresseAccrualJob: exercício diário de juros simples no principalBalance Empréstimos ACTIVO + DELINQUENT. - DeclaraçãoGenerationJob: prestação por data, LOC por ciclo declaração com aproximação ADB + avaliação anual da taxa + pagamento automático A agendar. - AutoDebitRunJob: dispara PENDING auto-débitos + pagamentos DISBURSEMENT OUT + NACHA retries via StripeConnectService com chaves de idempotência. - ReconciliaçãoJob: re-sum noturno de taxas/principal/equilíbrio do registro; correção de deriva registrada + auditada. - ReminderDispatchJob: puxa notificações SCHEDULED para além do agendadoFor e entrega através do NotificationDispatchService. Notificações: - Está bem. HTTP POST real para EmailService (/api/email/transactional/send) e VOIPService (/api/voip/sms/send, /api/voip/voice/send), templateKey = "empréstimo.{kind lowercase}". Validação: - LoanProductValidationService: aplica APR ≤ limite de estado (por tipo), Controlos do tipo proibidos, sanidade mínima/máxima-principal. Ligado LoanProductService.create + update. Carregamento: - LoanChargeOffService.queue() lista empréstimos D120; .confirm() muda status CHARGED OFF e escreve um evento de auditoria CHARGE OFF RECORDED. - LoanChargeOffController expõe **************************** Navegação de auditoria: - EmpréstimoAuditEventController expõe ****************************