pynubank
pynubank copied to clipboard
Não é possível acessar os dados da Nuconta (Extrato, saldo, etc)
Clonei o repo do zero e gerei o certificado rodando o comando pynubank no terminal.
Escrevi esse arquivo:
from pynubank import Nubank
nu = Nubank()
nu.authenticate_with_cert('[FILTERED]', '[FILTERED]', 'cert.p12')
print(nu.get_account_balance())
E estou recebendo esse erro:
Traceback (most recent call last):
File "[FILTERED]/pynubank-test/test.py", line 7, in <module>
print(nu.get_account_balance())
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pynubank/auth_mode.py", line 23, in wrapper
return function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pynubank/nubank.py", line 235, in get_account_balance
data = self._make_graphql_request('account_balance')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pynubank/nubank.py", line 52, in _make_graphql_request
return self._client.post(self._query_url,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pynubank/utils/http.py", line 49, in post
return self._handle_response(post(url, json=json, headers=self._headers, **self._cert_args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/pynubank/utils/http.py", line 35, in _handle_response
raise NuRequestException(response)
pynubank.exception.NuRequestException: The request made failed with HTTP status code 401
Só pra ter certeza, você trocou 'CPF' e 'SENHA' pelo seu CPF e sua senha ?
@andreroggeri sim. 😅
Outros métodos tipo o get_account_feed funcionam?
Eu tenho uma automação rodando aqui normalmente
@andreroggeri só como contexto extra: na verdade eu não uso sua lib, mas escrevi minha própria implementação baseado no trabalho que você e outros fizeram em descobrir como o app do Nubank funciona.
Minha implementação basicamente é uma integração entre o Nubank e o You Need a Budget (YNAB). Eu tenho um job no Google Cloud que roda todo dia 1am. Ele falhou pela primeira vez dia 23 de agosto com um 401 da ghostflame. Inicialmente eu pensei que fosse alguma coisa com o certificado, e quando rodei meu script pra gerar um novo, percebi que o www-authenticate não estava mais vindo (por isso abri a #418). Mas depois de resolver o problema (adicionar o header de correlation) e gerar um novo certificado, o 401 permaneceu.
Tentei usar sua lib (como descrevi na issue), mas está com o mesmo problema da minha. Logo, estou assumindo que o Nubank mudou a API dia 23 (porque dia 22 estava funcionando normal a integração). Na verdade esse job roda a meses (desde Maio), essa foi a primeira vez que falhou com um 401.
Eu queria fazer a engenharia reversa no app pra descobrir como o Nubank tá fazendo agora, mas não tenho o tooling necessário e nem muito conhecimento de apps nativos (Android e iOS). 🥲
Outros métodos tipo o get_account_feed funcionam?
401 também. Imagino que todos os métodos que usam a ghostflame terão o mesmo problema.
@andreroggeri estava pensando aqui, o 401 idealmente vem com o "jeito" de como o cliente deveria se autenticar nos headers. Citando a MDN:
This status code is sent with an HTTP WWW-Authenticate response header that contains information on how the client can request for the resource again after prompting the user for authentication credentials.
Daí fui ver o WWW-Authenticate da resposta da ghostflame e olha o que achei:
'www-authenticate': 'challenge-platform deep-link="nuapp://dev_auth"',
Parece que precisa autenticar com o app de alguma forma. Acho que a alegria das integrações acabaram (ao menos com a ghostflame). 😢
Talvez eles estejam fazendo rollout gradual, pois a minha automação continua funcionando.
Vai ser difícil eu ajudar se não conseguir reproduzir :/
Por aqui, no meu app em node que possui a parte da autenticação baseada no pynubank, por enquanto, tudo ok. Fiz o processo de obtenção de certificado, refreshToken e etc. do zero e está ok. Vou ficar de olho também
acabei de clonar a repo e recebo 401 tambem
Aqui tou recebendo 401 também...
Agora parou aqui também 😭
E por aqui também, 401 e nada do saldo de conta corrente. Por enquanto os endpoints das consultas ao cartão de crédito estão funcionando
estou exatamente como o @diegomdrs, que droga, acabei de montar um programinha legal aqui com sua api será que esse é o fim?
Recebendo 401 em métodos que envolvem transações da conta, transações de cartão de crédito tudo ok.
Olhando pelo site aparenta ter alguma alteração afetando:
Também estou obtendo o 401.
Recentemente reportei um problema em um dos endpoints do Nubank na Hackerone enquanto trabalhava no https://github.com/Bezouro/nubank.ts e o problema foi resolvido semana passada (bate com a data que esse problema começou a ocorrer, coincidencia? hmm) fui afetado por isso tbm e agora to correndo atrás pra descobrir como lidar com isso... quaisquer novidades deixo registrado aqui tbm
O interessante é que o header trás o deeplink nuapp://dev_auth o que sugere que talvez o nubank esteja percebendo que estamos acessando a api por fora do app e talvez em breve tenhamos uma forma de obter um token de api proprio para desenvolvedores.
Pelo e-mail que recebi, depois da primeira autenticação, acredito que fosse necessário o reconhecimento biométrico, na autorização do novo dispositivo. Não cheguei a inspecionar os requests, mas suponho que seja isso. Esse sendo mesmo o caso, acredito que vamos ter que esperar por uma API oficial/pública mesmo….
On Thu, Aug 31, 2023 at 20:39 Bruno Bezouro @.***> wrote:
Recentemente reportei um problema em um dos endpoints do Nubank na Hackerone enquanto trabalhava no https://github.com/Bezouro/nubank.ts e o problema foi resolvido semana passada (bate com a data que esse problema começou a ocorrer, coincidencia? hmm) fui afetado por isso tbm e agora to correndo atrás pra descobrir como lidar com isso... quaisquer novidades deixo registrado aqui tbm
O interessante é que o header trás o deeplink nuapp://dev_auth o que sugere que talvez o nubank esteja percebendo que estamos acessando a api por fora do app e talvez em breve tenhamos uma forma de obter um token de api proprio para desenvolvedores.
— Reply to this email directly, view it on GitHub https://github.com/andreroggeri/pynubank/issues/419#issuecomment-1701914515, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJZKI27S7WHF6F3EQRXDN3XYEOE3ANCNFSM6AAAAAA4AHAVOQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>
+1
Uma pena que meu dispositivo de testes quebrou, era o único aparelho rooteado que eu tinha to tentando configurar um emulador, mas sem webcam é complicado pra fazer os dois estágios da autenticação
@Bezouro ontem eu tava dando uma explorada no app e vi que eles estão fazendo detecção de root / magisk e afins.
Você já tem algum método para não ser detectado ?
Eu vi que bloquear a requisição não é o suficiente :/
@andreroggeri Nunca tive problema com isso, eu usava um nexus 5 com custom rom, e root via magisk, até semana passada aqui estava funcionando perfeito, tenho que conferir agora :(
Vou tentar arrumar outro celularzin de cobaia, eu tenho um s10+ aqui mas o knox me quebra
Eu sei que no magisk tem umas paradas pra "ocultar" o root . Você tinha algo do tipo ativo ?
é, pelo o que eu tava vendo, o comportamento do app mudou também... Não tem mais como acessar as coisas da conta sem fazer o segundo passo de autenticação. 😢
Eu vou dar mais uma investigada, mas acho improvável que consigamos burlar isso. Provavelmente a parte de cartões deve ser bloqueada em breve também.
Poxa! Que tristeza essa thread! 😮
Minha automação começou a falhar ontem na conta as coisas relacionadas a cartão estão de boa.
@lipemorais liga pros seus contatos de lá e pede pra deixarem um backdoor hahahah
isso, faz essa pra gente, @lipemorais
Eu sei que no magisk tem umas paradas pra "ocultar" o root . Você tinha algo do tipo ativo ?
@andreroggeri Não, nunca cheguei a ativar isso pra o nubank, porem para outros apps eu ja usei (e até que funciona bem) se vc mudar o pacote do magisk pra um aleatorio, e usar a feature de esconder normalmente da bom (se for custom rom, vale a pena tbm conferir o build.prop pra n deixar detectavel que é custom rom)
é, pelo o que eu tava vendo, o comportamento do app mudou também... Não tem mais como acessar as coisas da conta sem fazer o segundo passo de autenticação. 😢
Eu vou dar mais uma investigada, mas acho improvável que consigamos burlar isso. Provavelmente a parte de cartões deve ser bloqueada em breve também.
Esse era meu medo quando reportei o problema pra eles, eles verem que tem gente usando a api e começar a barrar tudo...
sempre curti usar a api do nubank por conta daquele tweet então nunca me preocupei, mas agora da uma tristeza ver que ta tudo dificultando (mais do que ja era)
Negocio se pa é todo mundo ficar chamando o suporte solicitando acesso a API kkkk
tem algum outro banco que tenha api igual essa ? estou pensando em migrar