Conceitos-chave
Antes de mergulhar no processo passo a passo, é importante entender como o Midaz estrutura os dados para relatórios regulatórios:
OperationRoute e o campo code
A entidade OperationRoute é central para o mapeamento COSIF. Cada OperationRoute possui um campo code (máximo de 100 caracteres) projetado especificamente para armazenar códigos de referência externos, como códigos de contas COSIF. Quando as transações são processadas, cada operação é associada a uma OperationRoute. Ao agregar operações agrupadas por OperationRoute.code, você pode calcular saldos por conta COSIF — que é exatamente o que um balancete de verificação requer.TransactionRoute
Uma TransactionRoute agrupa múltiplas OperationRoutes (origens e destinos) em um template reutilizável. Ao criar transações, você referencia uma TransactionRoute, e o Midaz valida que as operações seguem as regras definidas.Processo passo a passo
1. Prepare seu Plano de Contas no Midaz
Configure suas Organizations, Ledgers, Assets, Account Types e Accounts de acordo com as necessidades do seu negócio. As entidades-chave para a geração do balancete de verificação são:- Account Types — definem a natureza de cada conta (ativo, passivo, patrimônio líquido, receita, despesa) usando o campo keyValue.
- OperationRoutes — mapeiam cada tipo de operação para um código COSIF através do campo code.
- TransactionRoutes — agrupam OperationRoutes em templates de transação com regras de validação.
2. Crie OperationRoutes com códigos COSIF
Para cada conta COSIF no seu plano de contas, crie as OperationRoutes correspondentes com o código COSIF no campo code. Exemplos de OperationRoutes para uma instituição financeira brasileira: OperationRoute para débitos em conta corrente (origem):| Código COSIF | Descrição | Tipos de Conta |
|---|---|---|
| 1.1.1.10-8 | Contas Correntes - Pessoas Físicas | checking_account_pf |
| 1.1.1.20-5 | Contas Correntes - Pessoas Jurídicas | checking_account_pj |
| 1.2.3.00-0 | Contas de Investimento | investment_account |
| 7.1.1.00-0 | Receita de Serviços | revenue_services |
| 8.1.1.00-0 | Despesas Administrativas | expense_admin |
3. Crie TransactionRoutes
Agrupe suas OperationRoutes em TransactionRoutes que representem padrões comuns de transação.Ao criar uma TransactionRoute, você passa um array de UUIDs de OperationRoute. Ao consultar uma TransactionRoute via API, ela retorna os objetos completos de OperationRoute com todos os seus detalhes.
4. Processe transações com rotas
Ao criar transações, referencie a TransactionRoute. Cada operação será associada à sua OperationRoute correspondente e ao código COSIF:O
asset e o value são definidos no nível do send. Operações individuais em from e to usam accountAlias (não account). O valor é expresso na menor unidade do ativo (por exemplo, centavos para BRL, então 4550 = R$ 45,50).5. Entendendo o fluxo de dados
O Midaz armazena todos os dados financeiros necessários para a geração do balancete de verificação:
- Operations — cada operação inclui um campo
routecontendo o UUID da OperationRoute - OperationRoutes — contêm o campo
codecom códigos COSIF para agregação - Account Balances — posições atuais por conta
route que referencia o UUID da OperationRoute (não o código COSIF diretamente). Para agregar por código COSIF, o Reporter faz a junção das operações com suas OperationRoutes correspondentes para acessar o campo code:
cursor, limit e type. As operações são recuperadas por conta.
O Reporter se conecta diretamente ao banco de dados do Midaz para geração de relatórios, permitindo consultas em lote e agregações eficientes. As APIs acima estão disponíveis para integrações personalizadas e consultas ad-hoc.
6. Gere seu relatório com o Reporter
O Reporter utiliza uma arquitetura orientada a templates para gerar relatórios. O processo envolve:- Selecione ou crie um template — os templates usam sintaxe Pongo2 (similar ao Django) com tags de agregação personalizadas
- Configure as fontes de dados — o Reporter consulta as tabelas do banco de dados do Midaz diretamente
- Aplique filtros — especifique intervalos de datas, tipos de conta ou outros critérios
- Gere o relatório — o Reporter agrega os dados e renderiza o template
- Exporte no formato desejado (XML, TXT, HTML, PDF, CSV, JSON)
{% sum_by collection by "field" %}— soma valores por campo{% count_by collection if condition %}— conta registros que correspondem à condição{% calc expression %}— cálculos aritméticos
7. Exporte e integre
Você pode:
- Exportar um PDF pronto para compartilhamento para auditores e reguladores
- Gerar arquivos XML formatados para envio ao BACEN
- Integrar com seus fluxos de trabalho de relatórios ou sistemas contábeis existentes
Exemplo prático — Configuração completa do Midaz
Abaixo está uma instituição fictícia, DigitalBank, mostrando como as entidades do Midaz se conectam para suportar um balancete de verificação:
Organization
Organization
Assets
Assets
Account Types
Account Types
Os códigos COSIF são definidos nas OperationRoutes através do campo
code, não nos Account Types. Os Account Types definem a natureza das contas e são usados pelas OperationRoutes para regras de validação.OperationRoutes com códigos COSIF
OperationRoutes com códigos COSIF
TransactionRoute para PIX
TransactionRoute para PIX
Exemplo de Transação
Exemplo de Transação
Exemplo de saída do balancete de verificação
Após fazer a junção das operações com suas OperationRoutes e agregar pelo campo
code, seu balancete de verificação ficaria assim:
| Código COSIF | Descrição | Débitos (R$) | Créditos (R$) | Saldo (R$) |
|---|---|---|---|---|
| 1.1.1.10-8 | Conta Corrente - PF | 150.000,00 | 145.000,00 | 5.000,00 |
| 1.1.1.20-5 | Conta Corrente - PJ | 89.000,00 | 92.500,00 | -3.500,00 |
| 1.2.3.00-0 | Investimentos | 50.000,00 | 48.000,00 | 2.000,00 |
| Total | 289.000,00 | 285.500,00 | 3.500,00 |
- XML — estruturado para envio regulatório ao BACEN
- PDF — relatório profissional para auditores e stakeholders
- TXT — arquivo plano para integração com sistemas legados
Resumo
A chave para gerar balancetes de verificação precisos com o Midaz é o uso adequado do campo
code nas OperationRoutes:
- Crie OperationRoutes com códigos COSIF no campo
code - Agrupe em TransactionRoutes para validação de transações
- Processe transações referenciando as rotas apropriadas
- Faça a junção de operações com OperationRoutes usando o campo
route(UUID) para acessar os códigos COSIF - Agregue por OperationRoute.code para calcular saldos por conta COSIF
- Gere relatórios com o Reporter usando templates que realizam a agregação automaticamente
- Conformidade regulatória com os padrões COSIF
- Agregação automática de saldos por código de conta
- Validação das operações de transação
- Relatórios flexíveis em múltiplos formatos

