Em sistemas financeiros, detalhes não são apenas detalhes. Um pequeno erro de cálculo pode comprometer reconciliações, afetar resultados contábeis e, em última instância, abalar a confiança de uma operação. Por isso, no core banking da Lerian, tratar valores monetários com precisão é mais do que uma escolha técnica, é um compromisso de arquitetura.
Neste artigo, explicamos por que abandonamos a modelagem tradicional de valores com “inteiro + escala” e adotamos o formato decimal como string no Midaz, nosso ledger open source.
O problema: precisão perdida no caminho
O modelo clássico usado por muitos sistemas financeiros é composto por dois campos:
jsonCopiarEditar{ "amount": 100, "scale": 2 } // representa R$1,00
Esse formato evita o uso de float
ou double
, que são inadequados para representar dinheiro devido à sua natureza binária e imprecisa. No entanto, ele também introduz complexidade:
- É necessário compor e decompor valores para cálculos;
- As bibliotecas que lidam com esse formato nem sempre são padronizadas;
- As conversões no frontend e backend geram margem para erro.
No fim das contas, tratar dinheiro como unidade fracionada + escala exige mais código, mais validação e mais atenção.
A escolha da Lerian: decimais como strings
Para resolver esses problemas, o Midaz agora armazena os valores monetários como strings decimais explícitas e essa mudança traz uma série de vantagens:
- Precisão absoluta: sem arredondamentos automáticos ou conversões implícitas;
- Integração mais simples: com SDKs, frontends e ferramentas de analytics que esperam valores legíveis;
- Menos margem para bugs: não há mais necessidade de recompor o valor em tempo de execução.
Além disso, esse modelo é compatível com até 18 casas decimais, cobrindo desde moedas fiduciárias até ativos digitais altamente fracionáveis.
Para os desenvolvedores, isso significa:
- Redução de código auxiliar para tratar valores;
- Mais confiança nos testes de precisão;
- Visualização mais clara nos logs, interfaces e exportações.
Para nós, arquitetura é confiança
Na Lerian, a arquitetura do sistema precisa refletir o que o mercado espera da operação: clareza, controle e confiança. E quando se trata de movimentar dinheiro, cada centavo precisa ser exato, auditável e compreensível.
Essa mudança na modelagem de valores monetários é mais uma camada da nossa visão: entregar um core que respeita a complexidade do setor financeiro sem repassar essa complexidade para quem opera.
Midaz é open source, auditável e evolui com a sua operação.
Com essa mudança, seu sistema ganha mais precisão e seu time, mais liberdade.
Freedom at the core.
#letsledgertogether