Biblioteca não oficial para acesso a dados de sua conta NuBank.
- Utilize com resposabilidade e segurança.
- Não exponha seus dados em ambientes não controlados.
- A qualquer momento o Nubank poderá mudar dados e protocolos e poderá "quebrar" sua aplicação.
- O Autor não se responsabiliza pela má utilização, por perdas ou prejuízos.
- Contribuia para o projeto :-)
Projeto inicial em desenvolvimento.
- É gerado um access-token com validade de 7 dias. Ele é reutilizado (cache) durante 24 horas. Quando a validade do access-token for menor que 6 dias, um novo access-token é gerado.
- Criação de solicitação de pagamento PIX (example5.php)
- Acompanhamento de pagamento de solicitação
- Cache dos detalhes das transações (para evitar consultas repetidas)
Copyright 2021 William Knak - https://github.com/WKnak/NubankPHP Licensed under the Apache License, Version 2.0 (the "License")
A autenticação desta API reproduz o procedimento de autenticação de um aplicativo oficial do NuBank, e por isso exige vários passos. Será necessário informar seu CPF e sua senha de acesso por 2 vezes, e depois disso não será necessário informar nem manter estes dados em nenhum arquivo. O acesso será mantido enquanto o refreshToken for válido.
A autenticação acontece em 3 partes, as duas primeiras de forma manual, e a última de forma automatizada e recorrente, muito útil para Scripts automatizados (e utilizadas nos exemplos disponibilizados)
Foram disponibilizados 2 scripts PHP para a autenticação manual, eles encontram-se dentro da pasta console:
autenticar_parte1.php
e autenticar_parte2.php
. Eles precisarão ser executados em forma de "Console Interativo", ou seja, diretamente no terminal, pois vai lhe pedir dados de Input.
Para rodar o script de forma interativa, basta abrir o console do seu sistema operacional e executar primeiro php autenticar_parte1.php -a
, e depois php autenticar_parte2.php -a
.
Os seguintes passos serão completados na primeira parte da autenticação manual:
- criação de um par de chaves PKCS12
- realização a confirmação de CPF/senha usando as chaves geradas
- aguardar o NuBank enviar um e-mail com um código de validação para o endereço vinculado à sua conta
- digitação o código recebido no console
- NuBank assina sua chave gerando um certificado de consumidor que será usado para próximos acessos
Na segunda parte da autenticação manual novamente será solicitado usuário/senha, com a finalidade de obter os tokens de acessos. Os seguintes passos serão completados:
- informar CPF/senha novamente.
- esta informação será assinada pelo seu certificado consumidor.
- NuBank vai enviar um refresh-token com validade inicial de 7 dias.
- O refresh-token será salvo para ser usado nas requisições automatizadas em conjunto com o certificado.
Todos os exemplos disponibilizados (1 a 4 até o momento), vão realizar a autenticação utilizando o certificado de consumidor e o refresh-token para realizar uma nova autenticação, para então obter o access-token válido para a sessão.
A cada autenticação automatizada, a validade do Refresh-Token é estendida para 7 dias novamente (server-side). Em princípio poderá funcionar indefinidamente se houver pelo menos 1 acesso a cada sete dias (necessita testes).
Os arquivos .gql
são queries em GraphQL utilizadas para a realização das consultas. É possível acessá-las através do software Insomnia - https://insomnia.rest/download, necessitando informar o accessToken
válido.
No fórum do NuBank existem várias referências a projetos já iniciados para atender a esta demanda. O desenvolvimento desta biblioteca NubankPHP foi possível através destes projetos.
Existe uma manifestação no Twitter da conta oficial do Nubank sobre o acesso à API: "todos os nossos apps funcionam através de API públicas mas não temos documentações ou ferramentas p/ integrações c/ outros serviços :/" - https://twitter.com/nubank/status/766665014161932288
- Projeto Nubank-API (Javascript) - https://github.com/Astrocoders/nubank-api (descontinuado)
- Projeto pynubank (Python) - https://github.com/andreroggeri/pynubank
- Projeto NubankCli (C#) - https://github.com/juniorgasparotto/NubankCli
- Fórum do Nubank