Fatura do NuBank em CSV
Autor: Álvaro Justen "Turicas" | Publicado: 2016-02-11T12:11:00-02:00

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 &gt;[pdftohtml]&gt; Fatura em HTML &gt;[nubank-to-csv]&gt; 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 &quot;s&quot;) 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 &quot;xls&quot; 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 &quot;uma surpresa&quot; 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! :)