Extrato de cartões do Banco do Brasil no GnuCash

No meu aprendizado de python desenvolvi um script para converter extratos de cartão de crédito, gerados através do site do Banco do Brasil, para o formato OFX. Possibilitando a importação no gerenciador de finaças GnuCash.

Bem… Eu tenho uma conta no Banco do Brasil e utilizo o GnuCash para cuidar das minhas finanças. Sempre exporto os meus extratos para o formato OFX e importo no GnuCash. Porém, para o extrato do cartão de credito, VISA no meu caso, o Banco do Brasil só oferece a opção de exportar para TXT. Então, para evitar fadiga, eu criei um “script” em python que converte este arquivo TXT para OFX.

Agora posso importar o extrato do Cartão de credito do Banco do Brasil no GnuCash e não perder tempo digitando linha a linha.

P.S.: Cartoes Master Card tambem sao suportados, e voce pode importar varios cartoes diferentes que o gnucash vai considerar contas distintas. (agradecimentos ao Daniel Roviriego)

Disponibilizei uma versão web onde você pode começar a converter seus extratos agora mesmo! Acesse: http://bbvisa2ofx.yepdev.com

O source está disponível no github, espero que seja util para mais alguém: http://github.com/yepdev/bbvisa2ofx

High skilled software engineer and generalist, delighted with learning new technologies and new ways to effectively solve problems. Strong analytical skills, fast learner and concise programming style. Skilled with Ruby on Rails, Java and PHP. Experienced with Python, Django, JavaScript, jQuery, HTML5 and CSS. Good knowledge of MySQL and Postgres, concurrency and Project Management. Likes bikes, adventures and travelling.

45 thoughts on “Extrato de cartões do Banco do Brasil no GnuCash

  1. Marco Máximo

    Parabéns cara! Veio muito a calhar, pois estou usando os dois nesse momento. Banco do Brasil e Gnucash.
    Muito obrigado.

  2. Rodrigo Primo

    Parabéns! Também utilizo o BB e o Gnucash e esse script vai ser muito útil. Obrigado.

    Você chegou a pensar em implementar suporte a compras feitas em dólar?

    No parser isso é simples de resolver, o que eu não sei é se um mesmo arquivo OFX pode lidar com diferentes moedas. Não conheço esse formato e não cheguei a pesquisar.

    Seria legal suportar isso pois compras feitas no exterior na versão atual do script são consideras mas vem sem o valor.

  3. Rodrigo Primo

    Pensei em outra possível implementação que talvez seja mais simples. Ao invés de exportar o arquivo com valores em real e em dólar, converter os valores em dólar para real e exportar tudo em nessa moeda.

    Quando existe alguma entrada em outra moeda que não o real, no extrato vem a taxa de conversão utilizada então não deve ser tão complicado implementar. Se nos próximos dias eu codar alguma coisa envio um patch mas resolvi publicar aqui antes caso alguém se anime e faça antes 🙂

  4. José Coelho

    Rodrigo,
    Achei interessante a idéia, mas no meu cartão normalmente as compras em dolar já vem convertidas para o real, a coluna de real já vem preenchida (Não sei se é pelo fato de eu sempre usar Paypal para as compras no exterior).
    Mas bem, não vou poder mexer por agora, estou atolado no momento, mas assim que possível posso dar uma olhada. Quanto ao seu patch, será muito bem recebido 😀

    Obrigado pela força.

  5. Rodrigo Primo

    Legal, enviei um patch pelo Google Code 🙂

    Espero que seja útil. Se tiver alguma sugestão de melhoria antes de incorporar ao código dá um toque.

  6. Leonardo Cardoso

    Parabéns pelo script que está funcionando muito bem em ambiente Cygwin também.

    Coloquei comentários no site do Google Code sobre a aplicação do patch acima. Além disso, adicionei 3 bugs e postei uma correção para todos eles.

  7. Davi

    Isso vai quebrar um galhão! Só não estou conseguindo rodar o script no Mac.. baixei o Pyhton e estou usando o Python Launcher para rodar o arquivo.. mas não acontece nada.. alguem pode dar uma ajuda?

  8. José Coelho

    Dae Davi,

    Este script python não possui interface gráfica. Portanto para você poder converter seu arquivo, você precisa fazer o seguinte.

    1. Baixe o bbvisa2ofx-0.15.tar.gz.
    2. Extraia o bbvisa2ofx-0.15.tar.gz. Vai ficar na pasta ~/Downloads/bbvisa2ofx-0.15
    3. Abra o terminal do Mac. (cmd+espaço, digitar Terminal, enter)
    4. No terminal digite: cd ~/Downloads/bbvisa2ofx-0.15 (aperte enter)
    5. Digite: python setup.py install
    6. Baixe o arquivo .txt do cartão de credito para pasta Downloads/
    7. No terminal digite: cd ~/Downloads/ (aperte enter)
    8. No terminal digite: bbvisa2ofx nome_do_seu_arquivo.txt

    Pronto, na mesma pasta vai aparecer um arquivo .ofx

  9. Matheus

    Ola Jose,

    Como eu faco para rodar o programa em windows?

    Muito obrigado,

    Matheus

  10. José Coelho

    Olá Matheus,

    Cara, não uso windows, mas vou ver se consigo dar um norte para você.

    Antes gostaria de lembra-lo que esta aplicação, ao menos por enquanto, não possui interface gráfica.

    Primeiro de tudo você precisa ter o python intalado no seu windows.
    http://forum.guiadohacker.com.br/showthread.php?t=2570

    Depois precisa baixar o aplicativo do http://code.google.com/p/bbvisa2ofx/
    Extrair o conteúdo do arquivo bbvisa2ofx-0.15.tar.gz
    Abrir o terminal (Iniciar -> Executar -> cmd -> Enter)
    Navegar até a pasta em que você extraiu os arquivos. Ex: cd C:\Downloads\bbvisa2ofx\
    Executar o comando: python setup.py install
    Baixar o txt do seu cartão de credito
    Executar o comando no terminal: bbvisa2ofx c:\caminho\para\o\txt\do\cartao\nome_do_seu_arquivo.txt

    Não testei e não sei se funciona, dê seu feedback. Se tiver mais dúvidas manda ae

  11. Late Mr.Douglas

    Olá José Coelho. Parabéns pelo trabalho! Estou precisando dessa conversão por conta do MoneyLog.

    Infelizmente, ainda utilizo Windows em casa e tentei, ainda sem sucesso, utilizar o script pelo Windows. Segue o passo-a-passo e o erro no final:

    ####################################
    1 – Baixei e instalei o Python 3 3.2.2 no caminho “C:\Python32\”
    (http://www.superdownloads.com.br/download/177/python/);
    2 – Descompactei o arquivo “bbvisa2ofx-0.15.tar.gz” para o arquivo “bbvisa2ofx-0.15.tar”;
    3 – Descompactei o arquivo “bbvisa2ofx-0.15.tar” para a pasta “C:\Arquivos de programas\bbvisa2ofx-0.15\”;
    4 – Abri o prompt de comando e acessei o diretório “C:\Arquivos de programas\bbvisa2ofx-0.15\bbvisa2ofx\”;
    5 – Executei o comando “C:\Python32\python setup.py install”;
    6 – Depois, executei o comando
    “C:\Python32\python bbvisa2ofx C:\Arquivos de programas\MoneyLog_Beta\extratos\faturaCartao201107.txt” (dentro da pasta C:\Arquivos de programas\bbvisa2ofx-0.15\bbvisa2ofx\build\scripts-3.2) e recebi a seguinte mensagem de erro:

    File “bbvisa2ofx”, line 20
    print “File not found: %s” % pathTxt
    ^
    SyntaxError: invalid syntax
    ####################################

    Não entendo nada de Python, mas acredito que a variável “pathTxt” não consiga “ler” o caminho no formato Windows.

    Abraços,
    Douglas

  12. Reimundo

    Obrigado pelo script, será que tem um script para os fundos de investimento? será possível pegar as cotas automáticamente online?

  13. José Coelho

    Dae Late.

    Tenta rodar sem o C:\Python32\python, rode diretamente bbvisa3ofx no terminal. Ao menos no linux é assim que funciona.
    Abs

  14. José Coelho

    Cara, não entendi muito bem sua dúvida. Eu não uso a parte de fundos de investimento do gnucash então acredito o que o BBVisa2Ofx não vai ajudar nisso.

    Abs

  15. Marcelo

    Cara, grande iniciativa a sua. Pena que estou sem Linux por aqui. No Windows eu não consegui usar. Aparece “bbvisa2ofx.py”, line 98 print “Exported %s” % pathofx syntaxerror: invalid syntax. Tem como eu corrigir isso aqui?

  16. Reimundo

    Disculpa, provavelmente seja meu português ruim 🙂 só perguntava em caso que você tenha feito um outro script para pegar as cotas dos fundos e a previdência do BB online automaticamente (utilizando o perl Finance:Quote por exemplo), mas eu acho pela sua resposta que não trabalha com eles.

    Obrigado.

  17. Alexandre Alencar

    Meus parabéns. Execelente scritpt. Rodando direitinho no meu macbook. (Para instalar precisa estar com root). Estou escolhendo ainda qual programa de finanças utilizar. No Jfinanças o formato do arquivo gerado não foi reconhecido. No FinanceDesktop, reconhecido, mas não como extrato de cartão, o que não permite utilizar na conta apropriada, mas se cria uma conta bancária a importação ocorre sem problemas.

    Muitissimo Obrigado!!!!

  18. Fernando

    O programa é um sonho para quem como eu lança mais de 100 registros do cartão do bb na mão. Mas não tenho mac e não estou conseguindo fazer funcionar no windows de jeito nenhum (nem a versão nova – mesmo erro). Por que não faz uma versão compilada para windows? Ia ser muito bom!

  19. Bruno Guimarães

    Creio que avancei no windows, porém estou tendo a seguinte mensagem:

    “ImportError: No module named Tkinter”

    Para chegar nesse ponto, tive que dar umas alteradas no código que baixei (pura intuição).

    Alguém sabe como resolvo o problema dessa importação?

  20. José Coelho

    Olá Natalia,

    Poderia dar mais informações sobre o erro?
    Está dando erro na versão WEB ou offline?
    Qual o arquivo que você está tentando converter?
    Está aparecendo alguma mensagem de erro?

    Obrigado.

  21. Ricardo

    Olá, suporta faturas do Visa Personnalite (Itau)?
    Parabens pela excelente inciativa!

  22. José Coelho

    Olá Ricardo.

    Você já tentou usar a aplicação em http://bbvisa2ofx.yepdev.com/ ?

    Como não possuo conta no itaú não tenho como testar. Se você me enviar o arquivo TXT gerado pelo Banco itaú posso dar uma olhada. (Você pode alterar Conta, Valores e descrições para manter sua privacidade)

    Abs

  23. Luciano

    Opa, tudo bem!?

    Uso ja a um tempo o seu site http://bbvisa2ofx.yepdev.com/ para meu controle financeiro, muito bem implementado! Parabens!

    Porem, o link nao funciona mais. Voce tem este codigo implementado em algum outro host? Sou uma “topeira” em python e nao sei rodar isso em meu computador.

    Teria alguma outra alternativa online, como a do yepdev?

    Obrigado!

  24. José Coelho

    Olá.
    Que bom que você está utilizando. Só vi agora que você falou que está fora do ar. Vamos publicar novamente e eu te aviso.

  25. renata

    Oi José,
    agora até conseguir realizar a importação, mas o mac acaba salvando automaticamente em uma um no txt documento. Existe alguma coisa que possa fazer? Já tentei salvar sem esse final txt (desculpa se estou falando alguma atrocidade de programação), mas o problema persiste.
    Agradeço sua ajuda!!
    Abcs

  26. renata

    Oi José (3 post no mesmo dia. Desculpa)
    Vi uma dica sua pra mac la em cima e tentei aplicar. Acho que fiz tudo certo, mas continua dando erro. so um detalhe pra diferença do nome do arquivo (bbvisa2ofx) pois foi assim que foi salvo n pasta.
    tem algum ajuste que preciso fazer?
    muito, muito obrigada!!

    Last login: Wed Sep 24 23:47:40 on ttys000
    MacBook-Pro-de-renata-2:~ renatapatriota$ cd ~/Downloads/bbvisa2ofx
    MacBook-Pro-de-renata-2:bbvisa2ofx renatapatriota$ python setup.py install
    running install
    running build
    running build_py
    running build_scripts
    running install_lib
    creating /Library/Python/2.7/site-packages/bbvisa2ofx
    error: could not create ‘/Library/Python/2.7/site-packages/bbvisa2ofx’: Permission denied
    MacBook-Pro-de-renata-2:bbvisa2ofx renatapatriota$ cd ~/Downloads/MacBook-Pro-de-renata-2:Downloads renatapatriota$ bbvisa2ofxfaturaCartao.txt
    -bash: bbvisa2ofxfaturaCartao.txt: command not found
    MacBook-Pro-de-renata-2:Downloads renatapatriota$

  27. José Coelho

    Olá Renata.

    Neste caso, tem que rodar como root para realizar a instalação.

    Utilize o comando:
    $ sudo python setup.py install

    Vai pedir sua senha.

    Qualquer dúvida só dar um toque 🙂

  28. José Coelho

    Olá Renata.

    Poderia me enviar o arquivo que você baixou? Assim posso verificar se deu algum problema específico.

    meu e-mail é contato (arroba) josecoelho.com

  29. José Coelho

    Olá Fernando. Não tenho, mas é possível desenvolver.

    Você sabe algo de programação? Posso te ajudar no projeto.

    Podemos analisar este formato e ver se conseguimos fazer uma versão do bbvisa2ofx para este seu formato.

    Abs

  30. Jose

    Ola Jose Coelho,
    Belo trabalho!
    Utilizo o GnuCash no Ubuntu e quero importar do cartão VISA Personalité. Só consigo um extrato em arquivo PDF
    Voce tem uma ideia do melhor caminho?
    obrigado

Leave a Comment

Your email address will not be published. Required fields are marked *

*
*