Cessão DAVOS¶
O que é¶
Passo em que uma operação de crédito é cedida ao fundo DAVOS: a partir daí a operação passa a ter as parcelas rastreadas para efeito de repasse e retorno ao fundo. É a primeira etapa do ciclo de cessao/retorno-davos — sem cessão registrada não é possível gerar retorno de uma parcela.
Como funciona¶
Tela /carteira/cessao (apps/crm-menos-juros/client/src/pages/carteira/cessao/index.tsx)
lista as operações ainda não cedidas: operacoes.cedido=false, cessao='DAVOS',
codigo_operacao_fiducia preenchido, excluindo aceite do próprio dia (hook
useOperacoesCessao({cedido:false})). O que aparece aqui é operação para a qual não foi
gerada cessão nem importado arquivo correspondente do cliente.
Duas formas de gerar a cessão, ambas terminam no mesmo estado final (cria linha em
cnab_remessa_linhas + operacoes.cedido=true + operacoes.data_cessao):
- Gerar CNAB (interno) —
handleGerarCNABchamagerarCNAB444(), que monta o arquivo CNAB 444 (.REM) e dispara o download; em seguidamarcarCedidasESalvarLinhasfaz upsert das linhas emcnab_remessa_linhas(chave de conflitonome_arquivo, codigo_operacao_ fiducia, numero_parcela) e marcaoperacoes.cedido=true. Serviço:apps/crm-menos-juros/client/src/services/cnab-cessao-service.ts. -
Importar CNAB (arquivo enviado pela FIDEM) — faz parse do CNAB 444/400 e concilia por CPF + número da parcela + valor contra as parcelas internas (
fluxo_pagamentos). O resultado é dividido em três baldes principais (mais atualizadas/protegidas, ver abaixo), e cada um tem um comportamento de gravação diferente: -
Casada — a parcela do arquivo casa com exatamente 1 parcela interna (CPF + parcela + valor). Ação: grava linha em
cnab_remessa_linhase marcaoperacoes.cedido=truecomdata_cessao= data do header do arquivo. - Órfã — a parcela do arquivo não existe no sistema (nenhuma parcela interna com
aquele CPF+parcela+valor). Ação: apenas registra no log de importação
(
log_importacao_cessao, payloadorfas) — não cria linha emcnab_remessa_linhasnem toca em nenhuma operação. Resumindo: "importou e não achou no sistema → só loga, não faz nada". - Empate — a parcela do arquivo casa com mais de uma parcela interna (ambíguo, não
dá pra decidir sozinho qual ceder). Ação: apenas registra no log
(
log_importacao_cessao, payloadempates), sem gravar nada — precisa de resolução manual. - Atualizadas/protegidas — casos de reimportação de um arquivo já processado antes.
A confirmação é atômica (RPC transacional): só as casadas geram efeito em
cnab_remessa_linhas/operacoes; órfãs e empates nunca gravam nada, só aparecem no log.
Backend: apps/api-menos-juros/src/v2/carteira/cessao/ (importar-remessa.use-case.ts,
conciliacao-remessa.service.ts, cnab-444.parser.ts).
Em ambos os casos, a operação sai da lista de não-cedidas e passa a aparecer em Cedidos
(/carteira/cessao/cedidos, filtrado por data_cessao). Verificado em produção: as 1012
operações importadas via arquivo da FIDEM estão com cedido=true.
cnab_remessa_linhasé a fonte de verdade da cessão: 1 linha por parcela cedida (identificador, CPF, nome do sacado, vencimento, valor da parcela, nome do arquivo, tipo de cessão,fluxo_pagamento_id,operacao_id, e os campos de retorno usados na etapa seguinte:nome_arquivo_retorno,data_retorno,sequencia_arquivo_retorno,cancelado_em).
Arquivos de cessão gerados pelo caminho "Gerar CNAB" também ficam registrados em
cnab_cessao_arquivos + cnab_cessao_arquivo_operacoes. Importações (caminho "Importar
CNAB") logam o resultado em log_importacao_cessao, com o payload dos baldes
casadas/órfãs/empates/atualizadas/protegidas.
Três estados que se confundem (e não são o mesmo)¶
Três situações parecidas, mas com origem e efeito diferentes:
- Órfã — parcela que veio no arquivo importado mas não está no sistema (sem parcela interna com aquele CPF+parcela+valor). Só gera log; não existe como operação nem como linha de cessão.
- Não cedida (esta tela,
/carteira/cessao) — parcela que está no sistema (fluxo_pagamentosde uma operação real), mas nenhum arquivo casou com ela e não houve "Gerar CNAB" para ela:operacoes.cedido=false. É a lista mostrada nesta tela. - Não incluída no retorno (tela retorno-davos) — parcela que está no sistema, foi
repassada ao fundo (
fluxo_pagamentos.repassado_fundo='SIM'), mas sem cessão (nenhuma linha ativa emcnab_remessa_linhas) — logo não dá pra gerar retorno dela. É o sinal de que a invariante do ciclo foi quebrada em algum ponto anterior.
Onde vive no código¶
- CRM:
apps/crm-menos-juros/client/src/pages/carteira/cessao/index.tsx,apps/crm-menos-juros/client/src/pages/carteira/cessao/cedidos.tsx,apps/crm-menos-juros/client/src/pages/carteira/cessao/importar-remessa-dialog.tsx,apps/crm-menos-juros/client/src/services/cnab-cessao-service.ts - API:
apps/api-menos-juros/src/v2/carteira/cessao/(importar-remessa.use-case.ts,conciliacao-remessa.service.ts,cnab-444.parser.ts) - DB:
operacoes(cedido,cessao,data_cessao),cnab_remessa_linhas,cnab_cessao_arquivos,cnab_cessao_arquivo_operacoes,log_importacao_cessao
Relacionado¶
carteira · cessao · cnab · repasse-ao-fundo · retorno-davos
Histórico¶
- 2026-07-16 — página criada: fluxo de geração/importação de cessão DAVOS (tela
/carteira/cessao), fonte de verdadecnab_remessa_linhas, verificação em prod (1012/1012 cedidas via FIDEM). - 2026-07-16 — detalhamento do comportamento exato de cada balde da conciliação na importação (casada grava, órfã e empate só logam) e distinção explícita entre órfã / não cedida / não incluída no retorno.