Acesse seus extratos do Nubank pelo Python (Baseado na versão js)
Disponível via pip
pip install pynubank
Primeiro de tudo, precisamos nos autenticar.
Para isso, além do seu CPF e senha usuais, precisamos de um fator extra de autenticação.
Temos 3 opções disponíveis, com seus respectivos exemplos:
- QR Code (assim como é feito no app web)
- Certificado (assim como é feito no app mobile)
- Certificado e Refresh Token
Tendo seguido com sucesso uma das opções, você pode tentar um dos exemplos a seguir!
⚠️ Atenção: O Nubank pode bloquear a sua conta por 72 horas caso detecte algum comportamento anormal ! Por conta disso, evite enviar muitas requisições. Você também pode utilizar o MockHttpClient descrito abaixo.
Você pode utilizar este recurso para receber dados falsos para testar a sua solução sem correr riscos de ser bloqueado pelo Nubank e com tempo de resposta instantâneo. Para isso, utilize o exemplo a seguir:
from pynubank import Nubank, MockHttpClient
nu = Nubank(MockHttpClient())
nu.authenticate_with_qr_code("qualquer-cpf", "qualquer-senha", "qualquer-coisa") # Essa linha funciona porque não estamos chamando o servidor do Nubank ;)
# Qualquer método chamado não passará pelo Nubank e terá o retorno instantâneo.
from pynubank import Nubank
nu = Nubank()
# Insira aqui o código para se autenticar!
# Veja a seção acima sobre autenticação para mais detalhes ;)
# Lista de dicionários contendo todas as transações de seu cartão de crédito
card_statements = nu.get_card_statements()
# Soma de todas as compras
print(sum([t['amount'] for t in card_statements]))
# Lista de dicionários contendo todas as faturas do seu cartão de crédito
bills = nu.get_bills()
# Retorna um dicionário contendo os detalhes de uma fatura retornada por get_bills()
bill_details = nu.get_bill_details(bills[1])
from pynubank import Nubank
nu = Nubank()
# Insira aqui o código para se autenticar!
# Veja a seção acima sobre autenticação para mais detalhes ;)
# Lista de dicionários contendo todas as transações de seu cartão de crédito
account_statements = nu.get_account_statements()
# Soma de todas as transações na NuConta
# Observacão: As transações de saída não possuem o valor negativo, então deve-se olhar a propriedade "__typename".
# TransferInEvent = Entrada
# TransferOutEvent = Saída
# TransferOutReversalEvent = Devolução
print(sum([t['amount'] for t in account_statements]))
# Saldo atual
print(nu.get_account_balance())
A pasta examples possui mais referencias de uso com autenticação e visualização dos dados.
- Instale os requirements
- Execute o comando pytest
$ pip install -r requirements.txt
$ pip install -r requirements-test.txt
$ pytest
Envie sua PR para melhorar esse projeto ! 😋