NubankCli
NubankCli é um aplicativo de console que importa as transações do cartão de crédito e da NuConta em forma de arquivos JSONs segregados por usuário. Além disso, ele prove alguns comandos simples que ajudam a visualizar/sumarizar as transações importadas via linha de comando.
Install / Use
/learn @juniorgasparotto/NubankCliREADME
Deprecated
<div style="background:#ff4d4f;color:white;padding:10px 14px;border-radius:6px;font-weight:600;"> ⚠️ Projeto descontinuado: este repositório não está mais ativo devido às limitações impostas pelo Nubank, que impedem o uso de sua API. </div>NubankCli
NubankCli é um aplicativo de console que importa as transações do cartão de crédito e da NuConta em forma de arquivos JSONs segregados por usuário. Além disso, ele prove alguns comandos simples que ajudam a visualizar/sumarizar as transações importadas via linha de comando.
Inicio rápido
Para iniciar é muito rápido e você pode fazer isso em qualquer terminal. Todo o material é focado no bash, caso queria usar outro terminal será necessário adaptação.
Um ponto importante é que a execução dessa CLI foi feita para rodar ao lado do código fonte, como acontece com outras linguagens como Python, Node e PHP. Isso ajuda em evoluções e correções de bugs, um .exe compilado seria uma caixa preta e não é o meu proposito.
Vale destacar que caso queira faze-lo nada deverá te impedir, basta executar o comando dotnet publish -c Release e obter o compilado.
-
Caso não tenha o
dotnet coreinstalado, faça-o pelo link: https://dotnet.microsoft.com/download -
Faça o clone do projeto no seu local preferido e defina o comando simplificador
nu:# Baixa o código na sua pasta corrente git clone https://github.com/juniorgasparotto/NubankCli.git # Entra na pasta cd NubankCli # Faça o build do código para evitar que a compilação seja feita no primeiro uso dotnet build "src/NubankCli/NubankCli.csproj" # Define um alias para o arquivo ./nu no qual contém um simplificador da execução do .net alias nu=./nu # Ou defina de maneira global e permanente echo alias nu="`pwd`/nu" >> ~/.bashrc; source ~/.bashrc; -
Faça o login na CLI usando suas credencias do aplicativo NuBank
nu login [cpf] [senha]-
As informações do seu login ficarão salvas na pasta
src/NubankCli/UsersData/[cpf]. Aqui temos o arquivouser-infoque contém o seu token atual e os links descobertos da sua conta. -
Você permanecerá logado até que o token do NuBank expire, normalmente demora-se 7 dias.
-
-
Após isso, será necessário fazer a segunda parte da autenticação e se tudo ocorreu bem, você verá um QRCode no seu terminal. Utilize o seu aplicativo do nubank em seu celular para validar o QRCode, use o menu:
Ícone de configurações > Perfil > Acesso pelo site -
Após a validação pelo celular, digite
enterpara prosseguir -
Se tudo ocorrer bem você já estará logado e agora será possível importar suas transações de crédito e débito
-
Para importar as transações do cartão de crédito use:
# Importa tudo sem nenhum filtro nu import-credit # Importa com filtro de data de inicio apenas nu import-credit --start 2020-01-01 # Importa com filtro de data fim apenas nu import-credit --end 2020-02-01 # Importa com filtro de data de inicio e fim nu import-credit --start 2020-01-01 --end 2020-02-01 -
Para importar as transações do cartão de débito (nuconta) use:
# Importa tudo sem nenhum filtro nu import-debit # Importa com filtro de data de inicio apenas nu import-debit --start 2020-01-01 # Importa com filtro de data fim apenas nu import-debit --end 2020-02-01 # Importa com filtro de data de inicio e fim nu import-debit --start 2020-01-01 --end 2020-02-01 -
Para visualizar os extratos do seu cartão de crédito que foram importados, utilize o comando:
# Visualiza todos os extratos importados de acordo com as datas de abertura e fechamento cada boleto # Pode usar nas 3 formas: Simplificada, Singular e Plural nu get stat creditcard nu get statement creditcard nu get statements creditcard # Visualiza todos os extratos importados de forma mensal (forma longa) nu get stat creditcard --by-month- Os dados importados de cartão de crédito ficaram dentro da sua pasta de usuário nas sub-pastas:
src/NubankCli/UsersData/[cpf]/card-credit
- Os dados importados de cartão de crédito ficaram dentro da sua pasta de usuário nas sub-pastas:
-
Para visualizar os extratos do seu cartão de débito que foram importados, utilize o comando:
# Pode usar nas 3 formas: Simplificada, Singular e Plural nu get stat nuconta nu get statement nuconta nu get statements nuconta- Os dados importados de cartão de débito ficaram dentro da sua pasta de usuário nas sub-pastas:
src/NubankCli/UsersData/[cpf]/nuconta.
- Os dados importados de cartão de débito ficaram dentro da sua pasta de usuário nas sub-pastas:
-
Para visualizar os extratos consolidados do cartão de crédito e débito (nuconta), utilize o comando:
# Exibe extratos do cartão de crédito e débito (Pode usar nas 3 formas: Simplificada, Singular e Plural) nu get stat nu get statement nu get statements # Exibe extratos consolidando ambos os cartões de forma mensal (forma longa) nu get stat --merge # Exibe extratos consolidando ambos os cartões de forma mensal (forma curta) nu get stat -m -
Para visualizar todas as transações importadas, utilize o comando:
# Simplificada nu get trans # Singular nu get transaction # Plural nu get transactions # Para visualizar mais colunas nu get transactions -o wide # Visualizar transações que iniciam com "IOF": nu get transactions "IOF" # Visualizar transações que tenham o ID: nu get transactions "5f52f4f6" -
Para verificar quem está logado + informações do usuário:
nu whoami -
Para deslogar utilize o comando abaixo ou apague o arquivo
src/NubankCli/UsersData/[cpf]/user-info.json:nu logout
Outros comandos
Para importar os dados de cartão de crédito de forma mensal:
nu import-credit --statement-type ByMonth
Obtém apenas os extratos no qual contém alguma entrada SEM considerar pagamentos de boletos:
nu get stat --where 'Transactions.Where(t => t.Value > 0 && !t.IsBillPayment).Sum(t => t.Value) > 0'
Ordena os extratos por valor de entrada do maior para o menor:
nu get stat --sort 'Transactions.Where(t => t.Value > 0).Sum(t => t.Value) DESC'
Comandos avançados para filtragem das transações importadas:
# Obtem as transações com filtro (forma curta -w): Apenas transações de entrada de valor (recebimentos)
nu get trans -w "Value > 0"
# Obtem as transações com filtro (forma longa --where): Apenas transações de saída de valor (pagamentos)
nu get trans --where "Value < 0"
# Obtem as transações ordenas por data (forma curta -s): Menor para o maior (mais antigas primeiro)
nu get trans -s "EventDate ASC"
# Obtem as transações ordenas por data (forma longa --sort): Maior para o menor (mais recentes primeiro)
nu get trans --sort "EventDate DESC"
# Obtem as maiores transações de saída
nu get trans -w "Value < 0" --sort "Value ASC"
# Obtem as maiores transações de entrada
nu get trans -w "Value > 0" --sort "Value DESC"
# Filtra pelo nome do cartão (nesse caso não obtem nada da NuConta)
nu get trans -w 'CardName="credit-card"'
# Obtem as transações de um extrato especifico (Start é a data de abertura da fatura - OpenDate)
nu get trans -w 'Statement.Start == "2020-05-17" && !IsBillPayment' -s "PostDate DESC, EventDate DESC"
# Obtem com uma quantidade mair de itens por página
nu get trans -S 100
# Obtem sem paginação
nu get trans -S 0
# Obtem em formato de JSON sem paginação removendo o cabeçalho e rodapé
nu get trans -o json -S 0 --verbose none
Contribuíndo
Para contribuir basta ter instalado o Visual Studio Code ou o próprio Visual Studio Community e fazer as adaptações que ache necessárias. Vale dizer que o projeto é bem simples e não contém diversos recursos como:
- Geração de boleto
- Conta de investimento
- Login com certificado
- Refresh Token
Fique a vontade para fazer essas evoluções ;)
Wiremock
A pasta Wiremock contém algumas massas de dados que pode auxiliar na correção de bugs ou evoluções. Para usa-lo, basta instalar o wiremock e usar os arquivos desta pasta na execução do .jar do wiremock.
Os passos para executar usando o wiremock são:
-
Baixe o wiremock standalone: http://wiremock.org/docs/running-standalone/
-
Execute o wiremock apontando para a pasta onde temos a nossa massa de dados de testes:
java -jar "C:\wiremock-standalone-2.27.2.jar" --port 6511 --root-dir "C:\NubankCli\wiremock" --match-headers Content-Type,Authorization,Accept- OBS: Estou considerando que todos os artefatos estejam na
C:, troque para o caminho onde você baixou oWiremocke oNubankCli.
- OBS: Estou considerando que todos os artefatos estejam na
-
Abra o arquivo
C:\NubankCli\src\NubankCli\settings.jsone altere a propriedade:enableMockServer: true -
Por padrão, a porta
6511já está configurada nesse arquivo na propriedademockUrl, caso queira altera-la, mude o arquivo de configurações e execute o wiremock novamente na porta correta.
Wiremock UI
Caso queria usar uma interface para o Wiremock, eu aconselho o WiremockUI, uma interface criada por mim que pode te ajudar a visualizar e manipular os servidores e arquivos do wiremock. Vale dizer que é uma interface exclusiva para Windows, para outros S.O é necessário usar o .jar diretamente.
https://github.com/juniorgasparotto/WiremockUI
SysCommand
Esse projeto usa a biblioteca SysCommand, um parser de linha de comando para .net criado por mim que simplifica todo o trabalho de aplicações para console. O link abaixo contém todas as informações:
https://github.com/juniorgasparotto/SysCommand
Agradecimentos
Esse projeto foi desenvolvido baseado na ideia de alguns outros repositórios no qual gostaria de fazer os devidos agradecimentos:
- https://github.com/lira92/nubank-dotnet
- https://github.com/andreroggeri/pynubank
- https://github.com/SpentBook/nubank-importer
Related Skills
node-connect
354.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
