Análise de Crédito¶
O que é¶
A avaliação de crédito de um contato pelo analista da mesa — decidir aprovar,
recusar ou enviar direto para CCB com base no Open Finance, score e demais dados do
contato. Não é uma rota própria: é a aba ?tab=analise-credito&analise_id=… da
ficha-do-contato (/contatos/:id), alcançada pelos atalhos ▶ (iniciar análise), 👁 (ver
análise) e + (criar proposta) do card da Mesa no kanban-comercial — todos abrem essa
mesma aba em nova aba do navegador.
A aba mostra os relatórios de Open Finance do contato (rendas, contas, transações, débitos
concorrentes, despesas recorrentes, risk insights) quando o provedor é Belvo; para
Klavi (ou contato sem Open Finance) mostra um estado vazio apontando para o console Klavi
— ver AnaliseCreditoSection.tsx. É sobre esses dados, mais o histórico/score do contato, que
o analista decide.
O ciclo¶
- Mesa aberta —
GarantirMesaAbertaUseCasegarante que existe 1 análise ativa para o contato (contatos_mesa), criando ou reabrindo conforme o status anterior. Ver detalhe em mesa. - Iniciar análise (▶, botão "Iniciar análise" no card sticky
StickyAcoesAnalise) —IniciarAnaliseUseCasemove a mesa paraAnalisando, gravaanalista_atual/analista_atual_id(o analista que clicou vira o responsável) e emiteanalise.iniciada→ o negocio espelha a etapa (Mesa → Em Análise). "Trava" o contato: só quem iniciou pode decidir (outro analista vê banner informativo, sem ação). - Decidir (com a análise em
Analisandoe o analista logado = analista atual, o card sticky mostra 3 ações mutuamente exclusivas): - Aprovar — abre o dialog
EditPropostaDialogem modo criação (modoFinalizarAnalise) para criar a(s) proposta(s); "Salvar e Adicionar Nova" permite criar mais de uma proposta na mesma aprovação, mantendo o dialog aberto. Ao salvar,AprovarAnaliseUseCaseregistra a decisão (status = 'Aprovado',analista/analista_decisao) e emiteanalise.aprovada→ o negócio vai para Comercial/Aguardando Apresentação. Ver proposta para o que acontece a partir daí no Kanban. - Recusar — abre
DialogRegistrarRecusa;RecusarAnaliseUseCaseregistra a recusa (motivo, analista) emrecusados, muda a mesa paraNegadoe emitecontatos-mesa.recusado→ o negócio é arquivado no kanban-comercial. Como side-effect isolado (BullMQ, não bloqueia a recusa em si), agenda o envio de uma mensagem de recusa ao cliente via Chatwoot (com delay configurável — recusa manual é imediata; recusas automáticas costumam ter uma janela de revisão antes de notificar). - Enviar para CCB — rota alternativa que pula a criação de proposta:
EnviarParaCcbUseCasemuda a mesa direto paraEnvio da CCBe emiteanalise.ccb→ o negócio vai direto para Mesa F2/Cadastrar CCB. Usado quando a formalização já está decidida sem precisar do ciclo normal de proposta no Comercial. - Um caso derivado do fluxo de aprovação: se o convênio escolhido na criação da proposta
está inativo, ou os parâmetros de endividamento/comprometimento do convênio excedem o
limite, o próprio dialog de proposta oferece recusar por esse motivo específico
(
Convênio inativo/Endividamento acima do limite/Comprometimento acima do limite), reaproveitando o mesmoRecusarAnaliseUseCase. - Depois de decidir — a aba tenta fechar a própria janela (assumindo que foi aberta via
window.openpelo board ou pela fila da Mesa); se o navegador não deixar, navega de volta para/credito/analise/em-analise.
O card sticky (StickyAcoesAnalise) decide qual dos 6 estados mostrar puramente a partir de
contatos_mesa.status + analista_atual/analista_atual_id: sem análise válida (erro), Em
análise (não iniciada), Analisando + sou eu (ações), Analisando + outro analista (banner),
Aprovado/Negado (banner com decisão) e demais status (Pendência, Aguardando aceite,
Envio da CCB — banner neutro).
Como se relaciona¶
- negocio — o negócio referencia a análise por
negocio.analise_id → contatos_mesa.id; cada evento do ciclo acima (analise.iniciada,analise.aprovada,contatos-mesa.recusado,analise.ccb) é o que move o negócio no kanban-comercial (ver mapa completo de eventos lá e em mesa). - proposta — N propostas nascem da mesma análise (
analise_idcompartilhado); a aprovação e a criação de proposta acontecem no mesmo dialog, mas são passos distintos (dá pra aprovar sem nunca ter passado por "Enviar para CCB", e vice-versa). - kanban-comercial — os atalhos ▶/👁/+ do card da Mesa nesse board são a porta de entrada para esta aba; ver também pipe-e-etapa para as etapas de Mesa F1/F2 que os eventos acima destravam.
Regras de negócio¶
⚠️ A documentar. Esta tela ainda não tem as regras de negócio levantadas do código.
O que entra aqui: invariante (o que nunca pode acontecer), permissão (quem pode fazer o quê), bloqueio (o que impede a ação e a mensagem que o usuário vê), cálculo (fórmula e arredondamento) e efeito colateral (o que mais muda quando isso acontece).
Regra só entra aqui com origem no código — arquivo e linha. Regra que alguém "acha que é assim" é pior que seção vazia, porque vira decisão de produto baseada em memória.
Onde vive no código¶
- API:
apps/api-menos-juros/src/v2/mesa-analise/application/use-cases/ garantir-mesa-aberta.use-case.ts,iniciar-analise.use-case.ts,aprovar-analise.use-case.ts,recusar-analise.use-case.ts,enviar-para-ccb.use-case.ts,criar-proposta.use-case.ts.- Eventos:
domain/events/{analise-iniciada,analise-aprovada,analise-ccb,contatos-mesa-recusado,contatos-mesa-criado,contatos-mesa-reaberta}.event.ts. - Controller:
presentation/controllers/analise-transicao.controller.ts. - CRM:
apps/crm-menos-juros/client/src/pages/contatos/central/components/AnaliseCreditoSection.tsx(relatórios de Open Finance) +analise-credito/StickyAcoesAnalise.tsx(as 6 branches de ação/estado) +components/EditPropostaDialog.tsx(criação de proposta em modo aprovação) +components/analises/DialogRegistrarRecusa.tsx+domains/mesa-analise/analises/hooks/{use-iniciar-analise,use-aprovar-analise,use-enviar-para-ccb,use-registrar-recusa}.ts. - DB:
supabase/migrations/— tabelacontatos_mesa(status, analista_atual, analista_atual_id, data_inicio_analise, data_decisao, analista_decisao) erecusados.
Relacionado¶
mesa · ficha-do-contato · kanban-comercial · negocio · proposta · pipe-e-etapa
Histórico¶
- 2026-07-10: primeira ingestão desta funcionalidade no wiki, aprofundando o ciclo de decisão da análise (iniciar/aprovar/recusar/enviar para CCB) já citado en passant em ficha-do-contato e kanban-comercial.