[Conta PJ] Opção de gerar boleto
juliorsantos opened this issue · 27 comments
Falei com o suporte Nubank, porém, há muito tempo sempre a mesma resposta de "sem previsão". Vi que a atual API é para Pessoa Física. Há alguma possibilidade de API para conta CNPJ? Se houver algum endpoint ou liberação, gostaria de ajudar a desenvolver, por enquanto estou no aguardo deles.
Fala Júlio, blz?
Cara honestamente eu não sei. Eu construí essa lib em cima das requisições que o app faz.
Eu não sei se o app é o mesmo pra PJ, se for talvez seja fácil de replicar aqui, o problema é que eu não tenho conta PJ, entao não consigo implementar
Se você topar, posso te passar o caminho das pedras de como olhar as requisições, vc vai precisar de um emulador Android ou um device Android com root.
@andreroggeri Ótimo, se quiser, pode me enviar sim, por enquanto, estou fazendo algumas análises, estava pensando em criar para JS também, para quem utiliza Node, assim como eu, para fazer as integrações.
Só pra dar um up aqui, eu pedi para meus colegas mandarem sugestão de API também, e o suporte disse que "sem previsão" ainda... quem sabe, só estou esperando isso para migrar todo meu serviço de recebimento em boleto para lá
Po, acabei deixando vc no vácuo
Acho que seria mais fácil marcarmos uma call para eu te mostrar como capturar as requisições do app.
Se topar me chama no email / chats para combinarmos => a.roggeri.c@gmail.com
vc pode gravar uma "aula" e disponibilizar no yt?
vc pode gravar uma "aula" e disponibilizar no yt?
Também acho interessante que grave uma "aula" mostrando esse processo de análise. Assim, fica mais fácil para novas pessoas que, assim como nós, também tem interesse, e também para você @andreroggeri, que não vai precisar marcar call com cada pessoa individualmente.
Faça isso, por favor
vc pode gravar uma "aula" e disponibilizar no yt?
Também acho interessante que grave uma "aula" mostrando esse processo de análise. Assim, fica mais fácil para novas pessoas que, assim como nós, também tem interesse, e também para você @andreroggeri, que não vai precisar marcar call com cada pessoa individualmente.
Faça isso, por favor
😆
Se você está muito interessado ele explica aqui como ele fez
se vc ta mt interessado ele explica aq como ele fez.
@Ulisses1478 , obrigado
Fala galera, mal a demora... Acabou caindo no meu esquecimento.
Vou deixar um guia aqui pra quem quiser analisar as requisições do Nubank.
Pré Requisitos:
Dispositivo / Emulador com Root
Burp Suite instalado para analisar as requisições
Aplicativo do Nubank instalado
Proxy do Android configurado apontando para o Burp Suite
frida-server rodando no Android
adb disponível no PATH
Guia
- Fazer login no Nubank nesse dispositivo
- Baixar o certificado gerado pelo login (Fica em /data/data/com.nu.production/files/{ID_DA_SUA_CONTA}/KeyStore.default.p12
o comando para copiar éadb pull /data/data/com.nu.production/files/{ID_DA_SUA_CONTA}/KeyStore.default.p12
- Configurar o Burp Suite para utilizar o certificado do Nubank (A senha do certificado é nubank)
- Executar a aplicação pelo frida com o script que desativa o certificate pinning
frida -U -f com.nu.production -l .\frida.js --no-pause
- Navegar pela a funcionalidade que vc quer replicar aqui no
pynubank
O request deve aparecer no Burp Suite, e por lá é possível descobrir quais as querys são utilizadas para montar cada tela
@andreroggeri fantástico! Você poderia compartilhar também, por favor, como você fez pra ver o schema da API inteiro dessa forma? Basta só enviar uma requisição qualquer pelo Insomnia ou precisa configurar mais alguma coisa?
@fmsouza ele fez a query de "Schema Introspection", é só você colocar uma URL válida em um endpoint, clicar em Schema, e em Refresh Schema, e o Insomnia vai enviar ela automaticamente, e desde que os headers de autorização estejam configurados (talvez funcione sem também), o Insomnia vai salvar o schema completo da API.
Oi @rdsedmundo, obrigado pela resposta! Eu não sabia que o GraphQL server do Nubank tinha Introspection habilitado em produção, muito bom saber!
No entanto, tentei fazer tanto usando o Insomnia quanto um outro pacote do Node.js que já tô mais acostumado a usar pra esse fim, e nenhum dos casos conseguiu me entregar o Schema. Acho que pode estar faltando algum "pulo do gato" aqui.
Eu fiz o seguinte:
- Gerei um UUID
- Autenticação com senha
- Salvei a lista de endpoints públicos e privados que vem na resposta da autenticação
- Busquei a URL para o endpoint
ghostflame
, que é o que sei que é um servidor GraphQL - Enviei uma requisição que eu já sei que funciona pra ele pelo Insomnia e vi o resultado sendo entregue com sucesso.
- Apertei o botão "Refresh Schema" e recebi um erro 400, dizendo que não foi possível atualizar o Schema.
- Tentei enviar a mesma requisição para a URL que está no print do @andreroggeri com o simulador, mas essa não funcionou.
Será que você @rdsedmundo ou o @andreroggeri poderiam me dar uma luz aqui? :)
Obrigado, e feliz Páscoa pra vocês!
Aqui também parou de funcionar, provavelmente desativaram. Alguém da equipe deve estar inscrito no repositório.
Se você enviar uma query mais simples manualmente consegue ver que agora está retornando que os campos não existem.
{
__schema {
types {
name
}
}
}
{
"errors": [
{
"message": "Validation error of type FieldUndefined: Field 'types' in type '__Schema' is undefined @ '__schema/types'",
"locations": [
{
"line": 11,
"column": 5
}
],
"extensions": {}
}
]
}
@rdsedmundo é exatamente isso que ta aparecendo pra mim quando olhos os detalhes da resposta.
Uma pena, mas valeu a tentativa! haha
@andreroggeri qual emulador android você utilizou?
API 26 (Android 6.0)
@andreroggeri Estou tentando obter o certificado em /data/data/com.nu.production/files/{ID_DA_SUA_CONTA}/KeyStore.default.p12 mas o diretorio files/ está vazio.
Esse ID_DA_SUA_CONTA eu consigo obter por onde?
Vc fez login na sua conta ? Acredito que só seja criado depois que o login for feito...
Sobre o ID ele é retornado em algumas chamadas da API, mas é mais fácil listar as pastas ali dentro de files
Não sei se ajuda mas eu usei o android 10 não lembro a api
Vc fez login na sua conta ? Acredito que só seja criado depois que o login for feito...
@andreroggeri Fiz sim, estou emulando com a mesma versão da API (API 26 (Android 6.0)) (porém não possui ROOT)
Estou com dificuldade para tornar em modo ROOT e acessar os serviços do Google Play para instalar o app do Nu, vocês sugerem algum artigo?
Quando seleciono um aparelho com Google Play Services
ele não deixa eu utilizar o adb root
.
Pra ter acesso root vc precisa usar o emulador que não tem os aplicativos do google, vc instala eles dps com o opengapps (Aqui tem um artigo que eu segui pra fazer a instalação)
Pra ter acesso root vc precisa usar o emulador que não tem os aplicativos do google, vc instala eles dps com o opengapps (Aqui tem um artigo que eu segui pra fazer a instalação)
Recomendo o genymotion pra isso ele instala a isso sem o acesso root e faz automaticamente a parte do opengapps apertando um botão
Alguem conseguiu usar o pynubank com conta PJ? To com um sistema pronto faltando apenas trocar de PF para PJ.
@lazzetta me corrija se eu estiver errado, mas toda vez que você loga na conta PJ vc precisa fazer o processo biometrico (Enviar selfie) certo ? Teria que replicar isso dentro da lib (Que eu não sei se é viável)
Do resto os endpoints são os mesmos e funcionam em sua maioria.