quinta-feira, 11 de fevereiro de 2016

Fatura do NuBank em CSV

O Que é NuBank?

Para quem não conhece, NuBank é um cartão de crédito que não te cobra anuidade e tem um ótimo atendimento, além de um aplicativo para celular bastante fácil de usar (é sua única interface com eles). Em resumo: eles estão fazendo o que em geral os bancos não fazem e estão lucrando com isso! Já faz alguns meses que estou usando e recomendo! Se quiser saber mais detalhes acesse a página deles.

Problemas

O NuBank, apesar de muito bom, para mim poderia melhorar em alguns detalhes:

  • Ainda não dá para transferir as milhas do cartão para compra de passagens aéreas;
  • Ainda não consigo colocar o pagamento da fatura como débito automático no Banco do Brasil (parece que só está disponível para Santander);
  • É chato ter que usar o PDF da fatura para conferir meus gastos.

Quando estou no Brasil tento usar o NuBank para todas as compras, pois isso facilita muito o controle dos meus gastos - caso não concorde que gastar no cartão é melhor para ter o controle dos gastos então leia o adendo (quando estou fora evito usar o cartão de crédito pois o IOF para compras internacionais é de 6,38%). Porém, como a fatura vem por email em PDF e não dá pra exportar para outros formatos pelo aplicativo, torna-se trabalhoso (e chato) demais o processo de jogar os gastos para minha planilha financeira pessoal e conferí-los. Como adoro programar e programar é, em resumo, automatizar coisas, resolvi criar um software para fazer a conversão da fatura do NuBank PDF para CSV (que antes eu fazia manualmente). :D

Convertendo a Fatura

O código do software está todo na minha conta no GitHub, chama-se nubank-to-csv. Ele foi escrito em Python usando a minha biblioteca rows (para facilitar a extração para CSV e qualquer outro formato tabular) e a biblioteca lxml para extrair os dados do HTML que é gerado pelo pdftohtml. Fique à vontade para contribuir com o script caso você manje dos paranauê (fiz uma lista de sugestões de contribuição).

O fluxo então é esse:

Fatura em PDF >[pdftohtml]> Fatura em HTML >[nubank-to-csv]> Fatura em CSV

Depois de instalar o nubank-to-csv e suas dependências basta rodar dois comandos:

pdftohtml fatura.pdf
python nubank.py faturas.html fatura-lindona.csv

O arquivo na segunda linha é faturas.html (com "s") mesmo -- esse arquivo é gerado pelo pdftohtml (junto com outros) depois da conversão. Você pode deletar os arquivos gerados pelo pdftohtml depois disso. Esse comando não segue bem a filosofia do UNIX e é bem inflexível (não dá pra especificar o nome do arquivo de saída, por exemplo). :-/

Uma coisa legal do script é que ele já junta as entradas relacionadas a IOF com o gasto que gerou o IOF, facilitando bastante meu controle! :D

Convertendo o CSV para Outro Formato

Se você tem a command-line interface da biblioteca rows instalada (pip install rows ou apt-get install rows) você também pode converter o CSV para diversos outros formatos, como XLS, XLSX, JSON, SQLite, HTML e TXT. Para converter, basta rodar:

rows convert fatura-lindona.csv fatura.xls

Caso queira outro formato em vez de XLS, basta trocar "xls" ali pela extensão desejada que o software é esperto o suficiente para identificar. :)

Adendo: Controle das Contas

Muita gente prefere evitar o uso do cartão de crédito para ter mais controle das contas (já vi muitos conselhos vindos de profissionais do ramo financeiro sobre evitar o uso do cartão). Eu prefiro usar o cartão sempre que possível (quando estou no Brasil) pois quando gasto em dinheiro em geral esqueço facilmente com o que gastei (e eu gosto de saber com o que gastei meu dinheiro - essa é a primeira ação para conseguir manter uma vida financeira saudável).

Muita gente se assusta quando eu digo isso porque a maior parte das pessoas que usa o cartão de crédito tem "uma surpresa" quando chega a fatura. Eu nunca tenho surpresas pois:

  • Na planilha onde controlo meus ganhos e gastos já tenho estimativas de entrada e saída para os próximos meses;
  • Duas vezes por semana vejo pelo aplicativo do NuBank o que gastei nos últimos dias e lanço na planilha do próximo mês (que é quando terei que pagar a fatura); e
  • Quando a fatura chega eu a converto para CSV, abro no LibreOffice e confiro se está de acordo com o que lancei na minha planilha financeira anteriormente.

Com esses simples passos eu sei exatamente o valor da fatura que virá e tenho como me conter caso esteja gastando demais!

Curtiu? Que tal compartilhar com seus amigos? ;)

Dúvidas e sugestões? Comente! :)

Nenhum comentário:

Postar um comentário