Snapshot baixável
O catálogo inteiro como arquivo único — JSON ou SQLite — autocontido, indexado, consultável offline. Para quem prefere zero dependência operacional de terceiros.
Toda instituição financeira convive com a mesma planilha esquecida — a lista das normas que se aplicam a ela. Nós a escrevemos uma vez. Versionamos. Mantemos. Você consome.
O mapeamento de processos em uma instituição financeira é um meio para encontrar os riscos e pontos de controle necessário para mitigar esses riscos. De uma forma geral, os processos são próprios da IF. Entretanto, os riscos podem ser categorizados em temas de um chassi mais estável, baseado nos princípios e normas regulatórias e prudenciais. Então, o objetivo principal desse chassi padrão é oferecer um meio padronizado de apresentação do ambiente de controles para os riscos a partir de uma ferramenta que deveria se conectar a qualquer realidade local, de forma que o "para" seja atingido a partir de qualquer "de" em linguagem de padronização e descrição de processos.
A regulação financeira brasileira é bem robusta. CMN, BCB, CVM, SUSEP, COAF, ANPD, B3, BSM, ANBIMA — cada um com seu próprio instrumento, sua própria periodicidade, sua própria forma de revogar e alterar normas e complementar. Essas alterações normalmente ampliam a cobertura de riscos e, em alguns casos, alteram as métricas de gestão de riscos vigentes.
O Chassi de Controles Internos existe para resolver isso de uma única vez, em aberto. Um catálogo curado, versionado, expondo normas, processos, riscos e seus vínculos qualificados — o tipo de ativo que uma indústria inteira precisa, mas que ninguém consegue justificar manter sozinho. Esse chassi tem o objetivo de ser agnóstico em relação à realidade local de cada instituição financeira, permitindo uma visualização padronizada do ambiente de controles para os principais temas de riscos inerentes que qualquer IF tem apenas pelo exercício de sua atividade fim.
Não é um SaaS de controles internos. Não armazenamos CNPJ, estrutura, posições, estratégia. Recebemos atributos. Devolvemos a fatia aplicável. Nada mais transita. Por design — e por licença.
O valor está no catálogo, não no código. Código é simples — público, sob MIT. Catálogo é trabalho de curadoria contínua, e é exatamente por isso que a curadoria é colaborativa: ninguém deveria manter isso sozinho, e ninguém deveria pagar pelo que pode ser coletivo.
O catálogo inteiro como arquivo único — JSON ou SQLite — autocontido, indexado, consultável offline. Para quem prefere zero dependência operacional de terceiros.
Endpoints idempotentes, cacheáveis, documentados em OpenAPI 3.1. Passe a descrição da entidade — tipo, segmento, atividades — e receba a fatia aplicável.
Pacote oficial que embute o snapshot e a engine de filtragem. Atualizações via gerenciador de pacotes. Para integração nativa em aplicações e pipelines de dados.
# Banco múltiplo S2 com câmbio comercial e crédito PJ curl -X POST https://chassiro-api.fly.dev/v1/instancia \ -H "Content-Type: application/json" \ -d '{ "tipo_entidade": "ENT_BANCO_MULTIPLO", "segmento": "S2", "atividades": ["ATV_CAMBIO_COMERCIAL", "ATV_CREDITO_PJ"] }'
import requests resp = requests.post( "https://chassiro-api.fly.dev/v1/instancia", json={ "tipo_entidade": "ENT_BANCO_MULTIPLO", "segmento": "S2", "atividades": ["ATV_CAMBIO_COMERCIAL", "ATV_CREDITO_PJ"], }, ) fatia = resp.json() print(fatia["contagens"]) # → {"normas": 18, "processos": 52, "riscos": 14}
const resp = await fetch( "https://chassiro-api.fly.dev/v1/instancia", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ tipo_entidade: "ENT_BANCO_MULTIPLO", segmento: "S2", atividades: ["ATV_CAMBIO_COMERCIAL", "ATV_CREDITO_PJ"], }), } ); const fatia = await resp.json(); console.log(fatia.contagens); // → {normas: 18, processos: 52, riscos: 14}
-- consulta direta no snapshot SQLite SELECT n.id, n.tipo, n.numero, n.ano, n.ementa FROM normas n WHERE n.status = 'vigente' AND ( NOT EXISTS (SELECT 1 FROM norma_aplicabilidade_tipo_entidade WHERE norma_id = n.id) OR EXISTS (SELECT 1 FROM norma_aplicabilidade_tipo_entidade WHERE norma_id = n.id AND tipo_entidade_id = 'ENT_BANCO_MULTIPLO') ) AND ( NOT EXISTS (SELECT 1 FROM norma_aplicabilidade_segmento WHERE norma_id = n.id) OR EXISTS (SELECT 1 FROM norma_aplicabilidade_segmento WHERE norma_id = n.id AND segmento_id = 'S2') );
O conteúdo regulatório é relativamente estável. Normas são publicadas, alteradas ou revogadas, mas a topologia do que existe — quem regula o quê, qual processo é dono, qual risco é endereçado — é estrutura.
Cada IF já tem RCSA em planilha ou ferramenta proprietária, BIA na área de continuidade, sistemas de RH (PeopleSoft por exemplo), sistema de custos, plano de auditoria, áreas de resultado. Cada um criou o próprio mapa de processos, a própria taxonomia de riscos, o próprio glossário e isso não deveria ser um problema pois cada área entende sua forma de atuação da maneira mais eficiente com base na sua proposta de mapeamento, cobertura, análise e compreensão do arcabouço regulatório.
Uma camada de IA recebe a saída heterogênea desses sistemas e a
encaixa no vocabulário canônico do chassi. Uma matriz exportada do
PeopleSoft, uma planilha de BIA, um plano de auditoria —
tudo é normalizado contra os mesmos processo_id e
risco_id do catálogo.
Indicadores agregáveis pela hierarquia N0 → N4,
apontamentos rastreáveis até a norma de origem, cobertura
mensurável distinguindo nominal de efetiva via vínculos
qualificados. Em outras palavras, o que toda área de
controles internos quer ter, sem abrir mão das bases internas das áreas.
O chassi mantém duas hierarquias paralelas: P0 → P4 de processos e R0 → R4 de riscos. Controles alocam no nível mais granular do risco e agregam para cima através de ambas as hierarquias simultaneamente.
Cada nó tem um nucleo — universal, bancário, mercado de
capitais, seguros, previdência, capitalização ou conglomerado — que
governa a quem aquele nó se aplica.
Norma e processo não se relacionam de forma binária. Três níveis
distinguem cobertura efetiva de cobertura nominal:
primária (o processo é a materialização do cumprimento),
secundária (contribui), informativa
(princípios apenas).
Cada norma carrega listas explícitas de tipos_entidade,
segmentos e atividades aos quais se
aplica. Vazio significa sem restrição. Um banco S2 com
câmbio recebe uma fatia diferente de uma DTVM, sem ambiguidade.
Ferramenta em Python que lê CSVs internos da casa (apontamentos, KRIs, autoavaliação, BIA), combina com seis fontes externas públicas (BACEN, CVM SAS, ANBIMA, Procon, mídia, Reclame Aqui) e gera, em uma única execução, um parecer estruturado, um nine-box impacto × controles × cobertura e uma tabela consolidada. Roda local, em modo offline, sem dependência externa.
# 1. clonar e entrar no diretório do pipeline git clone https://github.com/walterCNeto/ChassiRO.git cd ChassiRO/tools # 2. rodar com os dados sintéticos do Banco Modelo S.A. python analisar.py --offline # 3. abrir os outputs gerados em output/ output/nine_box.html # visualização interativa output/parecer.md # parecer estruturado output/resultado_consolidado.csv # tabela detalhada
chassi.json ou
chassi.sqlite uma vez, versione junto com sua
aplicação, e consuma localmente — equivalente a usar uma
biblioteca instalada na sua infra. Zero comunicação externa,
zero metadata vazando, zero dependência de disponibilidade de
terceiros. Para protótipos e exploração, a API ao vivo em
chassiro-api.fly.dev está disponível, mas em
ambientes com governança rigorosa de fluxo de dados externos
(bancos, asset managers, seguradoras), prefira o snapshot.
ENT_BANCO_MULTIPLO, S2,
ATV_CREDITO_PJ) — não há campo para CNPJ, nome de
instituição, posições, estratégia ou controles. Não armazenamos
nada entre chamadas, não temos autenticação, não temos
persistência por usuário. O código é open source (MIT) e
auditável. Mesmo assim, o caminho de menor atrito com áreas de
SI é sempre o snapshot.