{"id":20666318,"url":"https://github.com/juniorgasparotto/nubankcli","last_synced_at":"2025-10-19T20:32:02.267Z","repository":{"id":50263738,"uuid":"310129916","full_name":"juniorgasparotto/NubankCli","owner":"juniorgasparotto","description":"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.","archived":false,"fork":false,"pushed_at":"2023-05-20T03:16:37.000Z","size":160,"stargazers_count":62,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T10:22:24.438Z","etag":null,"topics":["bank-importer","card-credit","cli","nu-conta","nubank","nubank-importer","nubankcli","nuconta"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juniorgasparotto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-04T22:16:14.000Z","updated_at":"2025-02-16T23:39:19.000Z","dependencies_parsed_at":"2024-11-16T19:37:08.298Z","dependency_job_id":"24052d35-a770-4869-b2e2-c7592a53e68d","html_url":"https://github.com/juniorgasparotto/NubankCli","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorgasparotto%2FNubankCli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorgasparotto%2FNubankCli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorgasparotto%2FNubankCli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorgasparotto%2FNubankCli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juniorgasparotto","download_url":"https://codeload.github.com/juniorgasparotto/NubankCli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249740324,"owners_count":21318686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bank-importer","card-credit","cli","nu-conta","nubank","nubank-importer","nubankcli","nuconta"],"created_at":"2024-11-16T19:36:53.122Z","updated_at":"2025-10-19T20:32:02.193Z","avatar_url":"https://github.com/juniorgasparotto.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NubankCli\n\nNubankCli é 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.\n\n# Inicio rápido\n\nPara 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.\n\nUm 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. \n\nVale destacar que caso queira faze-lo nada deverá te impedir, basta executar o comando `dotnet publish -c Release` e obter o compilado.\n\n1. Caso não tenha o `dotnet core` instalado, faça-o pelo link: https://dotnet.microsoft.com/download\n2. Faça o clone do projeto no seu local preferido e defina o comando simplificador `nu`:\n\n    ```bash\n    # Baixa o código na sua pasta corrente\n    git clone https://github.com/juniorgasparotto/NubankCli.git\n\n    # Entra na pasta\n    cd NubankCli\n\n    # Faça o build do código para evitar que a compilação seja feita no primeiro uso\n    dotnet build \"src/NubankCli/NubankCli.csproj\"\n\n    # Define um alias para o arquivo ./nu no qual contém um simplificador da execução do .net\n    alias nu=./nu\n\n    # Ou defina de maneira global e permanente\n    echo alias nu=\"`pwd`/nu\" \u003e\u003e ~/.bashrc; source ~/.bashrc;\n    ```\n\n3. Faça o login na CLI usando suas credencias do aplicativo NuBank\n\n    ```\n    nu login [cpf] [senha]\n    ```\n\n    * As informações do seu login ficarão salvas na pasta `src/NubankCli/UsersData/[cpf]`. Aqui temos o arquivo `user-info` que contém o seu token atual e os links descobertos da sua conta.\n\n    * Você permanecerá logado até que o token do NuBank expire, normalmente demora-se 7 dias.\n\n4. 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:\n\n    ```\n    Ícone de configurações \u003e Perfil \u003e Acesso pelo site\n    ```\n\n5. Após a validação pelo celular, digite `enter` para prosseguir\n\n6. Se tudo ocorrer bem você já estará logado e agora será possível importar suas transações de crédito e débito\n\n7. Para importar as transações do cartão de crédito use:\n\n    ```bash\n    # Importa tudo sem nenhum filtro\n    nu import-credit\n\n    # Importa com filtro de data de inicio apenas\n    nu import-credit --start 2020-01-01\n\n    # Importa com filtro de data fim apenas\n    nu import-credit --end 2020-02-01\n\n    # Importa com filtro de data de inicio e fim\n    nu import-credit --start 2020-01-01 --end 2020-02-01\n    ```\n\n8. Para importar as transações do cartão de débito (nuconta) use:\n\n    ```bash\n    # Importa tudo sem nenhum filtro\n    nu import-debit\n\n    # Importa com filtro de data de inicio apenas\n    nu import-debit --start 2020-01-01\n\n    # Importa com filtro de data fim apenas\n    nu import-debit --end 2020-02-01\n\n    # Importa com filtro de data de inicio e fim\n    nu import-debit --start 2020-01-01 --end 2020-02-01\n    ```\n\n9. Para visualizar os extratos do seu cartão de crédito que foram importados, utilize o comando:\n\n    ```bash\n    # Visualiza todos os extratos importados de acordo com as datas de abertura e fechamento cada boleto\n    # Pode usar nas 3 formas: Simplificada, Singular e Plural\n    nu get stat creditcard\n    nu get statement creditcard\n    nu get statements creditcard\n\n    # Visualiza todos os extratos importados de forma mensal (forma longa)\n    nu get stat creditcard --by-month\n    ```\n\n    * 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`\n\n10. Para visualizar os extratos do seu cartão de débito que foram importados, utilize o comando:\n\n    ```bash\n    # Pode usar nas 3 formas: Simplificada, Singular e Plural\n    nu get stat nuconta\n    nu get statement nuconta\n    nu get statements nuconta\n    ```\n\n    * 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`.\n\n11. Para visualizar os extratos consolidados do cartão de crédito e débito (nuconta), utilize o comando:\n\n    ```bash\n    # Exibe extratos do cartão de crédito e débito (Pode usar nas 3 formas: Simplificada, Singular e Plural)\n    nu get stat\n    nu get statement\n    nu get statements\n\n    # Exibe extratos consolidando ambos os cartões de forma mensal (forma longa)\n    nu get stat --merge\n\n    # Exibe extratos consolidando ambos os cartões de forma mensal (forma curta)\n    nu get stat -m \n    ```\n\n12. Para visualizar todas as transações importadas, utilize o comando:\n\n    ```bash\n    # Simplificada\n    nu get trans\n\n    # Singular\n    nu get transaction\n\n    # Plural\n    nu get transactions\n\n    # Para visualizar mais colunas\n    nu get transactions -o wide\n\n    # Visualizar transações que iniciam com \"IOF\":\n    nu get transactions \"IOF\"\n\n    # Visualizar transações que tenham o ID:\n    nu get transactions \"5f52f4f6\"\n    ```\n\n13. Para verificar quem está logado + informações do usuário:\n\n    ```bash\n    nu whoami\n    ```\n\n14. Para deslogar utilize o comando abaixo ou apague o arquivo `src/NubankCli/UsersData/[cpf]/user-info.json`:\n\n    ```bash\n    nu logout\n    ```\n\n# Outros comandos\n\nPara importar os dados de cartão de crédito de forma mensal:\n\n```bash\nnu import-credit --statement-type ByMonth\n```\n\nObtém apenas os extratos no qual contém alguma entrada SEM considerar pagamentos de boletos:\n\n```bash\nnu get stat --where 'Transactions.Where(t =\u003e t.Value \u003e 0 \u0026\u0026 !t.IsBillPayment).Sum(t =\u003e t.Value) \u003e 0'\n```\n\nOrdena os extratos por valor de entrada do maior para o menor:\n\n```bash\nnu get stat --sort 'Transactions.Where(t =\u003e t.Value \u003e 0).Sum(t =\u003e t.Value) DESC'\n```\n\nComandos avançados para filtragem das transações importadas:\n\n```bash\n# Obtem as transações com filtro (forma curta -w): Apenas transações de entrada de valor (recebimentos)\nnu get trans -w \"Value \u003e 0\"\n\n# Obtem as transações com filtro (forma longa --where): Apenas transações de saída de valor (pagamentos)\nnu get trans --where \"Value \u003c 0\"\n\n# Obtem as transações ordenas por data (forma curta -s): Menor para o maior (mais antigas primeiro)\nnu get trans -s \"EventDate ASC\"\n\n# Obtem as transações ordenas por data (forma longa --sort): Maior para o menor (mais recentes primeiro)\nnu get trans --sort \"EventDate DESC\"\n\n# Obtem as maiores transações de saída\nnu get trans -w \"Value \u003c 0\" --sort \"Value ASC\"\n\n# Obtem as maiores transações de entrada\nnu get trans -w \"Value \u003e 0\" --sort \"Value DESC\"\n\n# Filtra pelo nome do cartão (nesse caso não obtem nada da NuConta)\nnu get trans -w 'CardName=\"credit-card\"'\n\n# Obtem as transações de um extrato especifico (Start é a data de abertura da fatura - OpenDate)\nnu get trans -w 'Statement.Start == \"2020-05-17\" \u0026\u0026 !IsBillPayment' -s \"PostDate DESC, EventDate DESC\"\n\n# Obtem com uma quantidade mair de itens por página\nnu get trans -S 100\n\n# Obtem sem paginação\nnu get trans -S 0\n\n# Obtem em formato de JSON sem paginação removendo o cabeçalho e rodapé\nnu get trans -o json -S 0 --verbose none\n```\n\n# Contribuíndo\n\nPara 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:\n\n* Geração de boleto\n* Conta de investimento\n* Login com certificado\n* Refresh Token\n\nFique a vontade para fazer essas evoluções ;)\n\n## Wiremock\n\nA 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.\n\nOs passos para executar usando o wiremock são:\n\n1. Baixe o wiremock standalone: http://wiremock.org/docs/running-standalone/\n2. Execute o wiremock apontando para a pasta onde temos a nossa massa de dados de testes:\n\n    ```bash\n    java -jar \"C:\\wiremock-standalone-2.27.2.jar\" --port 6511 --root-dir \"C:\\NubankCli\\wiremock\" --match-headers Content-Type,Authorization,Accept\n    ```\n    \n    * OBS: Estou considerando que todos os artefatos estejam na `C:`, troque para o caminho onde você baixou o `Wiremock` e o `NubankCli`.\n\n3. Abra o arquivo `C:\\NubankCli\\src\\NubankCli\\settings.json` e altere a propriedade: `enableMockServer: true`\n4. Por padrão, a porta `6511` já está configurada nesse arquivo na propriedade `mockUrl`, caso queira altera-la, mude o arquivo de configurações e execute o wiremock novamente na porta correta.\n\n## Wiremock UI\n\nCaso 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.\n\nhttps://github.com/juniorgasparotto/WiremockUI\n\n## SysCommand\n\nEsse 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:\n\nhttps://github.com/juniorgasparotto/SysCommand\n\n\n## Agradecimentos\n\nEsse projeto foi desenvolvido baseado na ideia de alguns outros repositórios no qual gostaria de fazer os devidos agradecimentos:\n\n* https://github.com/lira92/nubank-dotnet\n* https://github.com/andreroggeri/pynubank\n* https://github.com/SpentBook/nubank-importer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniorgasparotto%2Fnubankcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuniorgasparotto%2Fnubankcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniorgasparotto%2Fnubankcli/lists"}