# Mapeamento dos 4 documentos do cliente (17/07): ACCS, Relatórios Vulci, BACENJUD, 4111/APIX001/6209/AMES

Cada item classificado por sistema responsável (core / cabine SPB / cabine PIX / cabine STA / integração) com status EXISTE, PARCIAL ou FALTA, evidência arquivo:linha (4 trilhas paralelas de investigação de código) e validação viva onde aplicável. Itens de cabine SPB e cabine PIX ficam para DEPOIS de fechado o escopo core (ordem definida pelo dono).

## Validação viva executada (HML, 17/07, como admin autenticado)

| Endpoint | Resultado |
|---|---|
| GET /api/v1/regulatory/ccs (registros CCS) | 200 |
| GET /api/v1/regulatory/ccs/accs001/files (arquivos ACCS001) | 200 |
| GET /api/v1/regulatory/sisbajud/orders | 200 |
| GET /api/admin/cadoc/obrigacoes (painel CADOC) | 200 |
| GET /api/v1/regulatory/simba/lookup | 200 |
| GET /api/v1/cosif/pix-reconciliation | 200 |

Estado de deploy: tudo que está na main até bf545798 está no ar (HML core:160 / PRD core:64 conferidos por task-def nesta sessão).

---

## Documento 1: ACCS (CCS)

Sistema dominante: CORE (geração, estado, telas) + cabine STA (transporte) + NATS (`monetarie.sta.file.received`; envio outbound é HTTP `POST /api/v1/files` na cabine).

| Requisito | Status | Evidência |
|---|---|---|
| ACCS001/002/003/009 automáticos | PARCIAL FORTE | Job diário 01:00 BRT gera E envia (`workers/cadoc/ccs_accs001_daily_job.ex:65`); UTF-16BE na fronteira (`use_cases/ccs/sta_submission.ex:163`); ACCS002 autoridade (`:577`); parsers ACCS003 (`accs003_parser.ex:73`) e ACCS009 (`accs009_parser.ex:78`) e TAMBÉM ACCS004. Poller de fallback 5 min. |
| Notificação automática por E-MAIL | FALTA | Mailer genérico existe (`mailer.ex:16`) mas NENHUM ponto do fluxo CCS o chama. Acompanhamento hoje é in-app (banner + dashboard). |
| Tela de controle com campos mínimos | EXISTE (rótulos parciais) | `CcsOperationsView.vue:1271-1382` (colunas Data/Hora, Nº Remessa, Status Aguardando/Aceito/Rejeitado, Resp BCB) + timeline (`ccsTimeline.ts`) + descrição de erro traduzida (`error_dictionary.ex:119`). Campo "status da transmissão" separado do "status do processamento" é ajuste de apresentação (o modelo usa status unificado). |
| Grade horária nominal (09:00...20:42) | FALTA | Só 1 cron (01:00 BRT) + recepção event-driven. Os slots nomeados do cliente (abertura/fechamento CCS, consolidação clientes/procuradores etc.) não estão modelados. |
| Erro no ACCS002 com descrição do BACEN | EXISTE | `sta_submission.ex:375/742` + `ErrorDictionary` + XML cru baixável; alerta de lacuna regulatória por dia sem ACCS001 (`use_cases/cadoc/ccs.ex:1298`). |
| Relatório de movimentações de contas enviadas ao BACEN (filtros, export PDF/Excel, consolidado/analítico) | FALTA como relatório | Dados prontos em `ccs_records` (`schemas/regulatory/ccs/ccs_record.ex:34-49`) + endpoint `ccs_controller.ex:69`; NÃO há tela de relatório com as 8 colunas nem export PDF/Excel (CCS hoje só exporta CSV client-side). |

Pendências core: notificação por e-mail, grade horária nominal (se o dono quiser espelhar), relatório de movimentações com export.

## Documento 2: Relação de Relatórios Vulci

| # | Item | Sistema | Status |
|---|---|---|---|
| 1 | Extratos diários (PDF/Excel/CSV e OFX) | core (+PIX/SPB) | PARCIAL: extrato core = CSV+OFX (`statement_engine.ex:85/101`); Reports Hub = CSV/XLSX/PDF; nenhum ponto único entrega os 4 formatos do MESMO extrato |
| 2 | Avisos de Créditos Geral | core | FALTA (dados brutos existem nas cabines, relatório não) |
| 3 | Movimentações diárias Analítico/Sintético | SPB (+core) | PARCIAL: SPB tem analítico+sintético (`extract_controller.ex:15/85`, `reports_controller.ex:80`); falta o relatório único no core |
| 4 | Tarifas: relatório por conta, débito automático, crédito na instituição, ESTORNO | core | EXISTE COMPLETO (`fee_charger.ex:87/341`, `monthly_batch_worker.ex:59`, `tariff_controller.ex:28` reverse/waive, telas FeesConsolidated/FeesByClient) |
| 5 | Remuneração SPI: relatório diário + crédito automático | cabine PIX | PARCIAL: crédito automático JÁ EXISTE (`camt060_requests.ex:203` correlaciona camt.053 REMN e credita); falta o RELATÓRIO diário formal exportável |
| 6 | Tarifa Uso SLB | cabine SPB | FALTA (tabela slb_operations foi dropada; sem handler) |
| 7 | Devolução de TED com validação CNPJ/CPF/Agência/Conta + STR0010 automático | cabine SPB | PARCIAL: motor STR0010 completo (`devolution_engine.ex:104/409`); o disparo é comandado pelo core; o gatilho automático na entrada e a conferência de titularidade estão na frente paralela (fixes locais de matching de TED, sessão money-path) |
| 8 | Relatório diário de todas as movimentações | transversal | PARCIAL (cada sistema tem o seu; sem consolidado único) |
| 9 | Saldo SPI e SPB | SPB + PIX | EXISTE por cabine (`balance_report_controller`, camt060 saldo); sem consolidação única |
| 10 | PIX Recebido e Enviado | cabine PIX | PARCIAL (dados no template statement, só CSV, sem tela dedicada) |
| 11 | TED/SPB Recebido e Enviado | cabine SPB | EXISTE (`reports_controller.ex:129`, ted-analytics, export CSV/XLSX/PDF) |
| 12 | APIX mensal em TXT | cabine PIX | PARCIAL: APIX001 existe (`apix_controller.ex:24/76`) mas exporta XML, não TXT (confirmar com o cliente qual formato o BACEN dele exige; o CADOC 1201/APIX001 do core envia XML ao BACEN) |
| 13 | Volumetria SPI | cabine PIX | FALTA |
| 14 | Posição de Saldos por Gerente | core | FALTA (não há conceito de carteira por gerente em relatório) |
| 15 | Todos em PDF/Excel/CSV + extratos OFX | transversal | PARCIAL (Reports Hub e export SPB cobrem 3 formatos; PIX reports só CSV; OFX só nos extratos core e PIX) |

Itens CORE a atacar nesta frente: 1 (formatos do extrato), 2, 3 (versão core), 14, e a parte core do 8. Itens SPB (3, 6, 7, 11-formatos) e PIX (5-relatório, 10, 12, 13) ficam para depois do core, conforme ordem do dono.

## Documento 3: BACENJUD (SISBAJUD)

Sistema: CORE (lógica + telas) + STA (transporte 5301/5302). Tela roteada real: `SisbajudView.vue` (o `SisbajudDetailView.vue` é órfão/mock).

| Bloco | Status | Evidência/lacuna |
|---|---|---|
| A. Resumo das ordens | QUASE COMPLETO | CPF/CNPJ, processo, tipo, valores, status: ok. FALTA nome do titular (não persistido na ordem; só resolvido no preview do upload). "Solicitação de informações" é módulo próprio (5308, requisicao_info), fora desta tela. |
| B.1 Dados da ordem | QUASE COMPLETO | Protocolo, processo, autor, tipo, recebimento, protocolização: ok. Natureza da ação sai como CÓDIGO cru (sem decodificação). |
| B.2 Dados do bloqueio | QUASE COMPLETO | Valores em centavos, conta real (agência/conta), situação: ok. Falta nome do titular. |
| B.3 Vara/Juízo | FALTA na prática | Schema `judicial_courts` completo (`judicial_court.ex:26-40`) mas o 5305 só popula código+nome, sem FK/JOIN com a ordem; a tela mostra só o código. Tribunal/endereço/e-mail/tipo de justiça nunca preenchidos. |
| B.4 Atendimento EDITÁVEL | FALTA o bloco inteiro | Não existem status editável, justificativa, observações, data/hora manual nem usuário responsável (nenhum schema judicial tem ator). O modelo atual é processamento automático. |
| C. Transferência com aceite do operador | DIVERGE | O TRANSFER (registro 07) processa AUTOMÁTICO (`processor.ex:303-354`), liquida o hold no TB (`collect_funds`) e responde 01, SEM gate de conferência manual, SEM a transferência bancária real para os dados da ordem (dados parseados em `parser.ex:135-137` mas não usados para pagamento) e SEM COSIF (adiado por design). |

Pendências core (feature, escopo relevante): nome do titular persistido, decodificação da natureza, Vara/Juízo ponta a ponta (depende do leiaute oficial do 5305), bloco de atendimento editável com ator, e o fluxo C com aceite do operador + pagamento real (este último toca money-path: coordenar com a frente paralela).

## Documento 4: 4111, APIX001, 6209 e AMES

Sistema: CORE (geração + rastreio `cadoc_submissions`/`regulatory_files`) + cabine STA (transmissão) + NATS (`monetarie.sta.regulatory.upload` / `monetarie.sta.file.*`).

| Arquivo | Geração | Envio STA | Status/histórico/retorno/reenvio | Veredito |
|---|---|---|---|---|
| 4111 (diário) | EXISTE (`generator_4111.ex:33`, fonte `cosif_account_balances`) | EXISTE (PCAD4111, `sta_delivery.ex:124`) | EXISTE (pipeline completo + resend `cadoc_controller.ex:376`) | COMPLETO |
| APIX001/1201 (mensal) | EXISTE (`cadoc1201/generator.ex:22`, fix do zerado aplicado) | EXISTE | EXISTE (`regulatory_files`) | COMPLETO |
| 6209 (trimestral) | EXISTE (`generator_6209.ex:37`, BACEN.ZIP com 8 TXT) | EXISTE (PCAD6209) | EXISTE | COMPLETO |
| AMES (esporádico) | FALTA (sem gerador; a cabine STA só reconhece o prefixo) | PARCIAL (genérico) | PARCIAL (sem tracker no core) | LACUNA |

SIMBA: extração robusta EXISTE (`simba/generator.ex:36`, 5 TSV cifrados, endpoints vivos, lookup 200 em HML) mas ISOLADA: fora do gerador rápido do painel (por design) e sem o ciclo STA fechado (o design prevê transmissão pelo SIMBA Transmissor, não pela cabine).

IMPORTANTE sobre o texto do cliente: o documento pede que os 4 arquivos deixem de ser manuais. Para 4111/APIX001/6209 o ciclo completo JÁ EXISTE no core+STA (geração no layout, envio, aceite/rejeição, histórico, reenvio). O gap real é (a) AMES ponta a ponta (feature nova: solicitação BACEN -> resposta simples ou SIMBA -> envio -> aceite, com tela) e (b) validação operacional com o BACEN vivo de cada um (4111/6209 nunca tiveram aceite comprovado em PRD nesta gestão; seguir o playbook do CCS).

## Divisão de execução (ordem do dono: core primeiro)

FRENTE CORE (agora): relatório de movimentações CCS com export; e-mails de notificação CCS; relatórios core do doc 2 (itens 1, 2, 3, 14); SISBAJUD B.3/B.4/nome do titular; AMES tracker/tela (a parte que não é money-path). R2 e R1 são reparo/config, tratados à parte.

FRENTE SPB (depois): Tarifa SLB, devolução automática STR0010 na entrada (coordenar com a sessão money-path, que já tem fixes locais de matching), relatórios SPB restantes.

FRENTE PIX (depois): relatório de remuneração SPI, PIX recebido/enviado dedicado, volumetria, formato do APIX da cabine.
