Skip to main content
Você já sabe o que é contabilidade: um registro honesto do dinheiro que entra, do dinheiro que sai e do que é possuído versus devido. Esse registro importa para o que você constrói: um ledger, uma carteira, um fluxo de pagamentos, uma plataforma bancária. No momento em que um software começa a guardar dinheiro de outras pessoas, ele herda as regras da contabilidade, nomeando-as ou não. As mesmas ideias que mantêm os livros de um lojista honestos impedem que seu sistema perca ou invente silenciosamente o saldo de um cliente.

Dinheiro é uma promessa, e promessas precisam de um ledger


Um saldo em um app é uma promessa, não dinheiro guardado em uma caixa. A promessa é uma reivindicação de que determinado valor pertence a alguém e pode ser movido ou retirado. A única coisa que torna essa promessa real é o registro por trás dela. Perca o registro, ou deixe-o se desviar, e o dinheiro efetivamente deixa de existir. Ou pior, passa a existir duas vezes. Por isso todo produto financeiro, por baixo da interface, é antes de tudo um problema de manutenção de registros. Transferências, tarifas, liquidação e extratos, tudo isso repousa sobre uma pergunta: quem possui o quê, agora? A contabilidade é a disciplina que responde a essa pergunta de forma confiável há séculos.

Por que partidas dobradas são um requisito de sistema, não uma convenção


Imagine que um cliente move $50 de uma carteira para outra. Se a primeira carteira cai $50 e a segunda sobe $50, os totais registrados coincidentes permitem que o sistema verifique seu registro interno dessa transferência. Se apenas um lado é registrado, a divergência é um sinal para investigar, não uma prova de que o evento de negócio estava correto. É por isso que existem as partidas dobradas. Elas dão a uma transação uma restrição verificável: os lados registrados devem coincidir. Codifique isso como uma regra e você tem um controle de consistência:
  • Um movimento registra as contas que participam dele. O registro identifica as contas afetadas pela transação.
  • Os lados registrados devem ser iguais. Totais coincidentes tornam o lançamento verificável aritmeticamente.
  • Uma divergência aparece imediatamente. Se os lados registrados não coincidem, a transação pode ser rejeitada antes que a inconsistência se acumule.
O Midaz aplica isso diretamente: ele rejeita uma transação quando a origem, o destino e os totais de envio resolvidos divergem. Essa verificação tem valor, mas não prova autorização, seleção de conta, classificação, avaliação ou correção completa do negócio.

Equilíbrio é um controle de consistência


Registros equilibrados tornam uma parte de uma transação continuamente testável: os valores registrados coincidem. Fazer débitos e créditos coincidirem detecta uma divergência nos valores registrados. Na contabilidade, Ativos = Passivos + Patrimônio Líquido é uma equação em nível de demonstração, não uma verificação de runtime que o Midaz aplica após cada operação. Registros podem estar equilibrados enquanto uma conta está errada, uma transação não tem autorização, um valor tem a classificação errada, ou outro registro obrigatório não existe. Sistemas financeiros ainda dependem desse controle. Registrar os dois lados dá ao equilíbrio um alarme útil: quando ele se rompe, os valores registrados estão inconsistentes e o sistema deve investigar antes de prosseguir. Registros equilibrados mantêm consistentes os valores por trás de um saldo. Você ainda precisa de conciliação e de controles separados para confiar nele por completo:

Sistemas financeiros são sistemas contábeis com outra roupagem


Reduza uma plataforma de core banking à sua base e você encontra um ledger. Reduza o ledger e você encontra partidas dobradas, aplicadas por código em vez de por um contador com uma caneta. O vocabulário do produto muda (contas, transações, operações, saldos), mas as mesmas ideias contábeis permanecem, agora em escala e em tempo real. Isso molda o que você constrói:
  • A contabilidade é o modelo de dados. Contas, lançamentos e saldos são a fonte da verdade do app, não um detalhe de implementação encaixado em um app de pagamentos.
  • As propriedades de segurança usam controles contábeis. Um lançamento equilibrado detecta valores registrados divergentes. Autorização, classificação e integridade exigem controles adicionais.
  • Os problemas difíceis vêm da contabilidade em escala. Você lida com muitas transferências ao mesmo tempo, mantém cada cópia dos dados em concordância e prova o que aconteceu muito depois do fato. Tudo se resume a manter esse registro equilibrado correto em milhões de movimentos.
Aprenda a contabilidade uma vez e boa parte do design de sistemas para de parecer arbitrário. As restrições em que você continua esbarrando são regras seculares para não perder o controle do dinheiro, escritas como código.
Veja isso no produtoEssas ideias têm contrapartes diretas na Lerian e no Midaz: contas, transações, operações e movimentos equilibrados. Veja como elas se mapeiam em Contabilidade na Lerian, ou entre nos Fundamentos de core banking.

Próximos passos


A seguirComece com Ativos, passivos e patrimônio líquido, a equação sobre a qual tudo repousa.