← Blog · 21 de junho de 2026 · 9 min de leitura
Relato do fundador

Achei 25 transações duplicadas no meu app, corrigi na mão e construí a correção pra nunca mais precisar

Eu uso o meu próprio app para o meu próprio dinheiro, que é a única forma honesta de construir um. Algumas semanas atrás sentei para reconciliar um mês e vi que meu livro estava mais pesado do que o banco dizia. Vinte e cinco linhas não deviam estar ali. Algumas eram fotos de comprovantes com o ano errado, outras eram parcelas de cartão empilhadas num só dia, e as constrangedoras eram duplicatas comuns que uma função que eu já tinha lançado deveria pegar. Acontece que essa função nunca rodava de verdade. Aqui vai a história inteira e o que ela me ensinou sobre por que os apps de finanças dobram o seu gasto.

Estou escrevendo na minha voz, não na do Capi, porque isto é uma confissão antes de ser uma lição. É fácil colocar um painel bonitinho na frente das pessoas e nunca olhar de perto os próprios números. No dia em que olhei de perto, peguei meu produto mentindo para mim por acidente, e a correção foi mais simples e mais humilhante do que eu esperava. Se você já desconfiou que o seu app de orçamento infla os totais no silêncio, é assim que se descobre, e é assim que o problema se resolve de verdade.

Por que eu tinha 25 transações duplicadas no meu próprio app?

Três falhas se somaram de uma vez. Um modelo de visão leu um lote de fotos de comprovantes e colocou o ano errado em algumas, então elas foram parar no mês errado. Um PDF de cartão jogou todas as parcelas na data da compra, então uma única conta dividida pareceu uma cobrança repetida. E o pior, minha própria etapa de dedupe marcava as duplicatas na pré-visualização da importação mas nunca salvava a marcação, então o commit final relia os dados sem marca e inseria tudo do mesmo jeito. Somando, vinte e cinco linhas.

Nenhuma dessas era exótica. Cada uma é aquele tipo de falha pequena e chata que escapa quando uma função é testada em pedaços e nunca de ponta a ponta com dados reais. O erro de ano só apareceu porque eu fotografo comprovantes na correria e alguns estavam amassados. O empilhamento de parcelas só apareceu porque eu importo um PDF do Inter que lista as parcelas. E o fantasma do dedupe só apareceu porque enviei uma fatura que se sobrepunha a uma que eu já tinha mandado, que é exatamente a situação para a qual o dedupe existe. Meu próprio mês bagunçado era o caso de teste que eu nunca tinha escrito.

O que causa transações duplicadas em apps de finanças?

As causas comuns são uma compra pendente e a versão efetivada ambas mantidas, uma reconexão que reimporta uma janela já carregada, a mesma conta adicionada duas vezes, um lançamento manual colidindo com a importação automática e falhas de leitura como parcelas caindo numa só data. Cada uma infla o total em silêncio, e a maioria dos apps não avisa quando acontece. Você só percebe quando uma categoria fica alta demais ou o mês não bate com a fatura.

Fui a fundo na versão entre apps disso em por que os apps de orçamento duplicam transações, mas o resumo é que duplicata é um problema de entrada, não de usuário. Bancos mandam a mesma cobrança duas vezes em dois estados. Open Finance e agregadores repuxam janelas sobrepostas depois que a conexão cai. Migrações entre apps, como a leva de gente que saiu do Mint quando ele fechou em 23 de março de 2024, carregam as cópias junto. A transação é real uma vez. O encanamento é o que transforma uma em duas.

Qual era o bug na minha própria função de dedupe?

Era o pior tipo de bug, daqueles que parecem funcionar. A pré-visualização da importação detectava as linhas duplicadas certinho e as marcava para pular, então na tela a função parecia operar. Mas a marca vivia só na memória durante a pré-visualização e nunca era gravada de volta na importação preparada. Quando eu confirmava, o commit relia os dados originais, sem marca, e inseria cada linha, inclusive as que deveriam ser puladas. A contagem de dedupe ficava em zero para sempre, e eu lia isso como nenhuma duplicata, não como nada pulado.

Essa distância entre parecer certo e estar certo é o perigo inteiro de software financeiro. Um painel que mostra um número limpo soa autoritário mesmo quando o número está errado, um ponto que defendi com calma em por que os apps de finanças mentem sobre o seu gasto. Meu dedupe era teatro: a pré-visualização me tranquilizava enquanto o commit a ignorava. A correção foram três linhas que persistem o resultado marcado para o commit ler os mesmos dados que a pré-visualização mostrou. A lição me custou uma tarde de limpeza manual e um bom tanto de orgulho.

Como corrigir transações duplicadas na mão?

Você casa cada duplicata por valor, data e estabelecimento, depois apaga uma cópia e mantém a outra, nunca as duas. Fique com a versão que carrega a categoria certa e qualquer anotação que você fez, e remova a versão sem categoria. Quando a duplicata veio de uma importação ruim e não de um caso isolado, conserte a origem para a próxima importação não repetir. Depois de cada lote, reconcilie o total corrigido com a fatura do banco antes de confiar no número de novo.

Fazer na mão para vinte e cinco linhas foi cansativo mas esclarecedor. Ordenar por valor em vez de data fez os pares saltarem, porque dois valores idênticos ficam um do lado do outro enquanto a visão por data os espalha. As fotos com data errada eu simplesmente movi para o mês certo. A pilha de parcelas eu apaguei e reimportei depois que o leitor foi corrigido para espalhar as parcelas pelos meses em que elas de fato caem. No fim eu confiava no livro de novo, e tinha uma lista precisa de tudo o que o software deveria ter evitado.

Como saber se o seu app de orçamento está duplicando transações?

Compare o total do app com a fatura do banco do mesmo mês. Se o app marcar mais, ordene por valor em vez de data para revelar os pares idênticos, confira se uma versão pendente e a efetivada da mesma compra sobreviveram e procure parcelas que caem todas na data da compra. Duplicata empurra o total para cima, linha faltando puxa para baixo. A direção da diferença já te diz qual problema você tem antes de caçar uma linha só.

Se você quer uma checagem repetível, passe por estes cinco passos em qualquer app antes de confiar nos números dele.

  1. Ponha o total do app e o total real da fatura de um mês lado a lado. Total do app maior aponta duplicata.
  2. Ordene pelo valor exato, não por data, para os valores idênticos ficarem juntos.
  3. Procure uma compra pendente e o gêmeo efetivado que sobreviveram a uma sincronização.
  4. Veja se há parcelas que caem todas na data da compra em vez de se espalhar pelos meses.
  5. Filtre qualquer transação com data fora do período atual, a assinatura de uma foto ou scan que errou o ano.

Quais apps de finanças duplicam transações, e como eles deduplicam?

Todo app que eu já usei produz duplicata nas condições certas, e o que os separa é se eles pegam isso e como. Apps de sincronização dependem do agregador para vincular pendente e efetivado, o que funciona até uma reconexão repuxar uma janela antiga. Ferramentas de arquivo e chat dependem de regras de casamento na importação. Aqui vai o desenho honesto de onde vêm as cópias em cada um e como cada um tenta barrar.

App Origem comum da duplicata Como deduplica Reimportar com segurança Preço (2026)
Capi Faturas sobrepostas no upload Hash da linha, pula no commit Sim, por hash de linha Grátis 30/mês; US$ 9,90/mês ou US$ 69,90/ano
Mobills Reconexão de Open Finance Casa no sync, ajuste manual Varia pela configuração R$ 199,90/ano (ou R$ 19,90/mês)
Organizze Manual mais importação Casa na importação, você revisa Em geral, na revisão Conectado R$ 399,90/ano
YNAB Lançamento manual mais import Casa na importação, você aprova Quase sempre, ao aprovar US$ 14,99/mês ou US$ 109/ano
Mint para Credit Karma Resíduo de migração Limitado, muitas vezes manual Não, cópias carregadas Mint fechou em 2024

O YNAB é o contraste mais limpo com a minha própria abordagem, e é um bom desenho. Ele mostra as importações casadas e te faz aprovar, então o humano é a última checagem. Detalho onde Capi e YNAB diferem em Capi vs YNAB. O Copilot aposta mais forte no casamento automático de pendente para efetivado, suave quando a conexão está saudável e frágil quando não está, e comparo esse modelo em Capi vs Copilot Money. Nenhum deles está errado. Eles só põem a checagem de segurança em lugares diferentes.

O resumo. Achei 25 linhas erradas no meu próprio livro: fotos de comprovantes com o ano errado, parcelas empilhadas num só dia e duplicatas comuns que meu dedupe deixou passar porque marcava na pré-visualização mas nunca salvava a marca. Corrigi na mão e depois corrigi o código para o pulo rodar no commit, o leitor espalhar as parcelas pelos meses e datas fora de faixa vindas de fotos serem sinalizadas. O teste que pegou isso foi usar a própria coisa.

Como o Capi evita transações duplicadas agora?

O Capi gera uma impressão digital da linha de origem de cada transação com um hash e compara as novas linhas com o que já existe no seu livro, então uma fatura reenviada ou uma exportação sobreposta importa só as linhas realmente novas. Depois da auditoria eu corrigi a etapa que marcava duplicatas mas não salvava a marca, então o pulo agora roda no commit, não só na pré-visualização. O leitor de parcelas espalha as parcelas pelos meses em que elas caem, e datas de foto fora de uma faixa sã são sinalizadas em vez de salvas.

Onde o Capi ainda vai precisar de você, dito sem rodeio. O hash de linha protege bem as importações de arquivo e fatura, mas uma duplicata que você digita na mão e que não casa com nada num arquivo existente é você quem tem que pegar, igual em qualquer lugar. A captura por foto e voz é rápida mas vale uma olhada antes de confirmar, já que um modelo de visão ainda pode ler errado um comprovante apagado. E nenhum app tira a necessidade de reconciliar com o banco de vez em quando. A promessa honesta é específica: reenviar a mesma fatura não dobra o seu gasto, e o dedupe que você vê na pré-visualização é o dedupe que acontece de verdade. Se você quer o quadro maior de como o Capi lida com importações, o guia de extrato para orçamento cobre isso.

O que usar o meu próprio app me ensinou sobre construir ferramentas financeiras?

Que você não pode confiar numa função que só viu funcionar numa demonstração. O dedupe parecia correto toda vez que eu testava a pré-visualização, porque a pré-visualização era a parte que funcionava. Só rodando o meu mês real, sobreposto, fotografado e cheio de parcelas pelo fluxo inteiro é que a falha apareceu. Usar o próprio produto não é um slogan aqui, é o único teste que exercita o caminho bagunçado que os usuários de fato pegam, e era o teste que eu tinha pulado.

O ponto mais fundo é que software financeiro ganha confiança sendo conferível, não parecendo polido. Prefiro te contar que meu dedupe foi teatro por um tempo e está corrigido agora do que te mostrar uma captura de tela impecável. A razão inteira de eu rastrear cada moeda e cada comprovante, que descrevi no teste de várias moedas como expat, é que os bugs só aparecem em dados reais. Vinte e cinco linhas me custaram uma tarde. Elas também deixaram o produto honestamente melhor, que é a troca que eu aceito toda vez.


Cheque o seu próprio mês atrás de duplicatas.

Envie uma fatura para o Capi, e reenviar um período sobreposto não vai dobrar o seu gasto, porque cada linha é marcada com impressão digital e o pulo roda no commit.
O Capi Grátis cobre 30 transações por mês. O Capi Core é US$ 9,90 por mês ou US$ 69,90 por ano.

Testar o Capi grátis no Telegram →

Perguntas frequentes sobre transações duplicadas

Por que eu tinha 25 transações duplicadas no meu próprio app?

Três falhas se somaram. Um modelo de visão leu um lote de fotos de comprovantes e colocou o ano errado em algumas, um PDF de cartão jogou todas as parcelas na data da compra e elas pareceram repetidas, e o pior, minha própria etapa de dedupe marcava as duplicatas na pré-visualização mas nunca salvava a marcação, então o commit relia os dados sem marca e inseria tudo. No total, 25 linhas.

O que causa transações duplicadas em apps de finanças?

As causas comuns são uma compra pendente e a versão efetivada ambas mantidas, uma reconexão que reimporta uma janela já carregada, a mesma conta adicionada duas vezes, um lançamento manual colidindo com a importação automática e falhas de leitura como parcelas caindo numa só data. Cada uma infla o total em silêncio, e a maioria dos apps não avisa quando acontece.

Como saber se o seu app de orçamento está duplicando transações?

Compare o total do app com a fatura do banco do mesmo mês. Se o app marcar mais, ordene por valor em vez de data para revelar os pares idênticos, confira se uma versão pendente e a efetivada da mesma compra sobreviveram e procure parcelas que caem todas na data da compra. Duplicata aumenta o total, linha faltando diminui.

Como o Capi evita transações duplicadas?

O Capi gera uma impressão digital da linha de origem de cada transação com um hash e compara as novas linhas com o que já existe no seu livro, então um extrato reenviado ou uma exportação sobreposta importa só as linhas realmente novas. Depois da auditoria eu também corrigi a etapa que marcava duplicatas mas não salvava a marca, então o pulo agora roda de verdade no commit, não só na pré-visualização.

Todos os apps de finanças duplicam transações?

A maioria duplica em algum momento, porque a entrada é bagunçada: compras pendentes e efetivadas, reconexões, extratos sobrepostos e migrações entre apps criam cópias. A diferença é se o app pega isso. Alguns casam na importação, alguns deixam pra você, e alguns, como eu descobri sobre o meu, lançam uma etapa de dedupe que não roda. Nenhum é imune por padrão.

Como remover transações duplicadas com segurança?

Ache a duplicata real casando valor, data e estabelecimento, depois apague uma cópia, não as duas. Fique com a versão que tem a categoria certa e qualquer anotação. Se a duplicata veio de uma importação ruim, conserte a origem para a próxima importação não repetir. Sempre reconcilie o total corrigido com a fatura do banco antes de confiar nele.

Escrito por Daniil Kozin, fundador do Capi. Mais nesta série: Melhor bot de controle financeiro no Telegram · Por que os apps duplicam transações · Extrato em PDF virando orçamento · Por que os apps de finanças mentem · Capi vs YNAB.