Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Nova Funcionalidade] Notificação de pagamentos #62

Closed
renatofrota opened this issue Oct 9, 2020 · 75 comments
Closed

[Nova Funcionalidade] Notificação de pagamentos #62

renatofrota opened this issue Oct 9, 2020 · 75 comments
Assignees
Labels
funcionalidade-nova sugestão de nova funcionalidade melhoria algo está funcionando, mas poderia ser melhor

Comments

@renatofrota
Copy link

Trazendo uma discussão que foi aberta na issue #9 (mas não era o foco original da issue) e ficou sem resposta por lá, trago para essa issue em forma de sugestão.

Visando oferecer uma experiência mais próxima à do cartão de débito e facilitando a adoção do Pix em pequenos estabelecimentos comerciais, que hoje contam com um comprovante gerado e impresso imediatamente pelas "maquininhas" de cartão, seria interessante que o QR Code utilizado para realizar as cobranças (ou a chave que está vinculada a ele) tivesse um webhook vinculado, para o qual o próprio BACEN (ou o PSP recebedor) enviaria um request (notificação).

Isso facilitaria que desenvolvedores de software oferecessem um serviço que inclua a notificação de pagamentos aos clientes de seus sistemas de ERP/cobrança. O recebedor do Pix receberia uma notificação de novo pagamento diretamente no celular ou em seu sistema de cobrança, sem precisar de um contrato para acesso à PIX API junto ao PSP.

Em 99,9% dos casos o único recurso da API estritamente necessário para um nível mínimo de controle a ser utilizado por pequenos estabelecimentos é esse, que permite uma notificação ou "baixa" de um pagamento. Os demais, são bem mais restritos a empresas de médio e grande porte.

Do ponto de vista da segurança, também é interessante evitar a necessidade de que um desenvolvedor tenha acesso (e armazene) tokens de API dos clientes, especialmente estes sendo pequenos clientes, sem um departamento de desenvolvimento, segurança ou tecnologia de maneira geral e não podendo realizar as integrações necessárias por conta própria.

Não considero isso propriamente como uma "automação" mas como um requisito básico para adoção do Pix em larga escala em muitos negócios de pequeno porte. Sem este tipo de funcionalidade, fica bem inviável o comerciante verificar os pagamentos (o fluxo de uma pequena padaria de bairro já seria suficientemente grande a ponto de inviabilizar a adoção imediata do Pix), enquanto o cartão de débito fornece uma confirmação segura e instantânea que o Pix, sem tal recurso sugerido, não oferece de forma facilitada e acessível.

@ninrod ninrod self-assigned this Oct 9, 2020
@ninrod ninrod added the melhoria algo está funcionando, mas poderia ser melhor label Oct 9, 2020
@rubenskuhl
Copy link

Me parece que há dois casos aqui: os que precisam dos recursos do QR-Code dinâmico, e os que podem funcionar com os recursos do QR-Code estático. Para o QR-Code dinâmico eu não vejo outra alternativa que não a API Pix.

Agora, para QR-Code estático poderia haver algum tipo de push notification, ao estilo Firebase ou Firehose. Cada fornecedor de automação poderia ter um endereço na plataforma (ex: 0xAB312BF3) e o cliente configuraria no seu banco (via autenticação já existente) algo como "notificar recebimentos da chave X para 0xAB312BF3".

A pergunta de 1 milhão de notas de R$200 é se isso é cost-effective o suficiente para permitir que varejos de ticket médio menor e com fornecedores de automação que cobram preços acessíveis usufruam disso.

@renatofrota
Copy link
Author

renatofrota commented Oct 10, 2020

Agora, para QR-Code estático poderia haver algum tipo de push notification, ao estilo Firebase ou Firehose. Cada fornecedor de automação poderia ter um endereço na plataforma (ex: 0xAB312BF3) e o cliente configuraria no seu banco (via autenticação já existente) algo como "notificar recebimentos da chave X para 0xAB312BF3".

Na verdade eu pensei em algo muito mais simples do que isso.

O MercadoPago (assim como o PayPal, PagSeguro e outros intermediadores e gateways), permitem que o cliente configure no painel da sua conta qual é a URL que receberá as notificações de pagamento. Todo pagamento é notificado para aquela URL, não importa se foi um envio de dinheiro de outra pessoa (espontâneo), um pagamento solicitado (seja diretamente ou por recursos como o "rachar contas"), por um link de pagamento, por uma venda do catálogo interno de produtos, por uma transação iniciada via API de cobrança, por um redirecionamento ao sistema de checkout em um e-commerce, etc, etc... todo dinheiro recebido é sempre notificado para aquela URL (exceto em casos onde uma cobrança criada via API especifique que os pagamentos oriundos daquela cobrança em particular devem ser notificados a uma URL específica, ou seja, é possível "sobrescrever" a URL configurada na conta do recebedor).

Isso dá uma abertura gigantesca para integrações super facilitadas, bastando o fornecedor de soluções orientar ao seu cliente "vá no painel da sua conta e coloque essa URL X para receber as notificações de pagamento". Elas nem precisam ser criadas via API(!) e o cliente poderá fazer uso de diversas soluções de gerenciamento de pedidos/cobranças e até traçar métricas/B.I. em cima dessas notificações, sem que essa ferramenta seja a encarregada de criar as cobranças. E ainda permite, inclusive, que a mesma conta seja utilizada em múltiplas integrações mais avançadas, bastando que as cobranças tenham uma URL de notificação definida no momento da sua criação (no campo específico da API para tal).

@rubenskuhl
Copy link

Isso seria um problema de segurança, pois se poderia forçar qualquer PSP a fazer requisições a pontos não confiáveis da Internet ou mesmo a confiáveis tentando se parecer como um ataque. Por exemplo, www.presidencia.gov.br/etc/passwd (não é bem isso mas não vou documentar formas de ataque, mas entendedores entenderão). Por isso a idéia de usar um sistema de mensageria pública já estabelecido.

O que você descreveu é o WebHook disponível na API Pix, mas lá há um procedimento de mútua autenticação que faz com que nenhuma requisição HTTP seja enviada antes do estabelecimento de uma sessão TLS onde as duas partes sabem suas contra-partes. E esse tipo de setup de autenticação faz falta na hora em que se deixa o cliente entrar qualquer coisa.

@renatofrota
Copy link
Author

Isso seria um problema de segurança, pois se poderia forçar qualquer PSP a fazer requisições a pontos não confiáveis da Internet ou mesmo a confiáveis tentando se parecer como um ataque.

Acho que você forçou a barra absurdamente nessa interpretação. Um request disparado somente no evento de um pagamento recebido, mesmo considerando um custo mínimo de R$ 0,01 por Pix enviado para disparar esse gatilho, seria extremamente custoso e ineficiente. Qualquer pessoa interessada em fazer um ataque de requisições certamente não usaria esse método.

Além disso, o PSP (ou o BACEN) vai ignorar completamente qualquer retorno que essa URL prover, não executá-lo.

@feinstein
Copy link

feinstein commented Oct 14, 2020

Esse issue é EXATAMENTE o meu caso.

Eu queria desenvolver um App para pequenos comerciantes poderem verificar em tempo real os Pix que foram pagos, sem precisar deixar o App do Banco deles aberto no caixa.

Seria perfeito se pudesse colocar um URL a ser chamado no fim de uma transação que informasse todos os dados do QR Code, tanto para estáticos quanto dinâmicos, bem como se houve erro ou não na operação.

O PSP do pagador teria que chamar esse URL no fim do pagamento, já que é ele que viu o QR Code e detém a URL do webhook, mas fica super difícil falar de cobrança disso, já que o PSP do pagador não é vinculado em nada com o recebedor, logo deveria ser de graça esse serviço. Em outras palavras, como eu vou pagar para o PSP do pagador por essa informação? Eu teria que assinar contrato com todos os PSPs do Brasil.

O quanto possível é isso nesse momento? Quais são os impedimentos?

O fluxo que eu vejo é:

  1. Usuário pagador lê o QR Code (estático ou dinâmico).
  2. O PSP do pagador faz a transferência do dinheiro pela API Pix.
  3. O PSP do recebedor recebe o dinheiro da transferência Pix.
  4. O meu servidor (que não é um PSP nem nada, só um App) recebe uma call com as informações da operação Pix que acabou de se concluir.
  5. Meu App pode mostrar ao caixa que a operação foi feita com sucesso e nota fiscal pode ser impressa.

@renatofrota
Copy link
Author

@feinstein esse é exatamente o cenário que eu vejo. Será essencial para a maioria das pessoas que querem, efetivamente, adotar o Pix como meio principal de pagamento em seus estabelecimentos comerciais, receber as notificações de pagamento (e poder escolher o endereço de forma simplificada). Isso poderia estar vinculado à própria chave, no meu ponto de vista. Recebeu um Pix na chave X -> manda uma notificação no webhook dela.

É um processo tão previsível, simples e óbvio (análogo ao que acontece nas maquininhas de cartão) que me surpreende que não tenha sido levantada essa discussão ainda. Como trabalhar com o Pix de forma segura e prática, sem ter que ficar abrindo o app do banco pra verificar se um pagamento caiu? Só consigo pensar nessa forma e "vincular" o acesso a esse recurso aos demais recursos oferecidos pela API Pix (que, convenhamos, não será assim tão simples, prática e - financeiramente - acessível) me parece bastante estranho.

@feinstein
Copy link

Pois é.... Gostaria muito de saber quais são os impedimentos pra isso, se sequer existe algum e se tiver, como contornar.

@felipedelima19
Copy link

Seria excelente se dentro dos payloads dos recursos /cob e /pix tivéssemos o parâmetro url de notificação, para enviar, a cada transação, em qual url aquela transação deve ser notificada.

Isso eliminaria os 3 endpoints de webhooks e daria muito mais flexibilidade para as integrações.

@renatofrota
Copy link
Author

Seria excelente se dentro dos payloads dos recursos /cob e /pix tivéssemos o parâmetro url de notificação, para enviar, a cada transação, em qual url aquela transação deve ser notificada.

Isso eliminaria os 3 endpoints de webhooks e daria muito mais flexibilidade para as integrações.

Entendo que a URL de notificação poderia ser vinculada à chave Pix e o PSP recebedor (ou o próprio BACEN) simplesmente enviaria um request para essa URL notificando que um pagamento foi recebido. Um request informando meramente o txid + o valor recebido seria suficiente para validação dos pagamentos num cenário onde o Pix esteja substituindo o cartão de débito num comércio presencial.

O terminal de caixa pode ficar em comunicação com um sistema [que pode ser externo e] que fica recebendo essas notificações de pagamento continuamente e exibindo sempre a última transação recebida [para o seu txid predeterminado].

O mesmo modelo também resolveria cenários de integração mais básicos para e-commerces, usando unicamente QR Codes estáticos, cujos txid seriam referências diretas ao número do pedido, por exemplo.

A definição de uma URL de notificação para uma cobrança especifica poderia substituir ou ser adicional (de forma configurável) à URL de notificação definida para a chave Pix.

@ninrod ninrod mentioned this issue Oct 20, 2020
@ninrod ninrod changed the title Notificação de pagamentos Nova funcionalidade: Notificação de pagamentos Oct 20, 2020
@ninrod ninrod changed the title Nova funcionalidade: Notificação de pagamentos [Nova funcionalidade] Notificação de pagamentos Oct 20, 2020
@feinstein
Copy link

@ninrod continuando a discussão do #98:

Desde que seja muito bem fundamentado, há chance. Ainda não entendi este caso de uso específico. Em particular, essa funcionalidade abriria a possibilidade de haver, do ponto de visto do PSP recebedor, uma infinidade de URLs diferentes para que notificações sejam efetivadas. Problemas de segurança também me ocorrem: como garantir que cada uma dessas urls esteja inserida em um contexto de segurança adequado?

Você pode explicar melhor quais são as suas dúvidas? Estou entendendo haver várias, talvez não explicamos bem o nosso problema e como isso viria a ser uma solução.

Quanto as que você já definiu acima:

  • ... essa funcionalidade abriria a possibilidade de haver, do ponto de visto do PSP recebedor, uma infinidade de URLs diferentes para que notificações sejam efetivadas.

Por que? As especificações do Pix podem impor um limite a isso. Por exemplo: "Um QR Code só pode ter no máximo 3 URLs. Se tiver mais que isso o PSP não é obrigado a chamar nenhuma URL que venha depois das 3 primeiras" (na realidade eu só vejo necessidade de 1 URL, mas coloquei 3 por ser algo razoável a meu ver para alguma funcionalidade futura desconhecida agora).

  • ... como garantir que cada uma dessas urls esteja inserida em um contexto de segurança adequado?

O que seria "um contexto de segurança adequado"? HTTPS não é suficiente? Ou você está falando de outra coisa?

Eu vi alguém mencionando a possibilidade de DDoS, mas eu honestamente não consegui ver como isso seria viável. Estaríamos falando de 1 request por pagamento, seria um DDoS bem lerdo e bem caro. Qual seria o cenário onde isso aconteceria? Hackear uma loja web e introduzir um URL no QR Code da loja pra a cada venda ter um disparo ao alvo do DDoS?

@ninrod
Copy link
Member

ninrod commented Oct 20, 2020

@feinstein ,

você pode explicar melhor quais são as suas dúvidas? Estou entendendo haver várias, talvez não explicamos bem o nosso problema e como isso viria a ser uma solução.

Podem me ajudar a entender, em detalhe, a proposta? Entendi que a proposta gira em torno de atribuir a uma cobrança uma URL específica para "notificação". Supondo 10M de cobranças, (há usuários recebedores que geram 10milhões de cobranças por mês), potencialmente, do ponto de vista do PSP recebedor, teria-se em mãos 10 milhões de URLs diferentes para notificar, respectivamente, cada uma destas cobranças. Entendi corretamente a proposta?

Hackear uma loja web e introduzir um URL no QR Code da loja pra a cada venda ter um disparo ao alvo do DDoS?

Pensando rapidamente, vejo um problema que seria forjar notificações Pix. Veja que é fácil obter o txid dinâmico referente a uma cobrança. Se um hacker sabe que o usuário recebedor utiliza este "esquema de notificações", e se o endpoint servido pelo web sever do usuário recebedor não possui uma camada de segurança adequada, seria possível forjar notificações que estabeleçam que a cobrança foi liquidada, lesando o usuário recebedor por meio de, por exemplo, levá-lo a liberar uma mercadoria tendo em vista este recebimento fake.

@rubenskuhl
Copy link

rubenskuhl commented Oct 20, 2020

Eu vi alguém mencionando a possibilidade de DDoS, mas eu honestamente não consegui ver como isso seria viável. Estaríamos falando de 1 request por pagamento, seria um DDoS bem lerdo e bem caro. Qual seria o cenário onde isso aconteceria? Hackear uma loja web e introduzir um URL no QR Code da loja pra a cada venda ter um disparo ao alvo do DDoS?

A menção não era a DDoS, mas a requisições maliciosas que causariam problemas para o PSP, onde o PSP ficaria parecendo como culpado de um ataque. E a resposta a esse falso ataque por parte de uma rede ou sistema pode ser o bloqueio da rede do PSP, gerando um DoS (mas não um DDoS).

@rubenskuhl
Copy link

Pensando rapidamente, vejo um problema que seria forjar notificações Pix. Veja que é fácil obter o txid dinâmico referente a uma cobrança. Se um hacker sabe que o usuário recebedor utiliza este "esquema de notificações", e se o endpoint servido pelo web sever do usuário recebedor não possui uma camada de segurança adequada, seria possível forjar notificações que estabeleçam que a cobrança foi liquidada, lesando o usuário recebedor por meio de, por exemplo, levá-lo a liberar uma mercadoria tendo em vista este recebimento fake.

Provavelmente essa forma de notificação dependesse de assinatura digital do BACEN, para que possa trafegar em canal inseguro e mesmo assim ser reconhecida como legítima. Não poderia ser assinatura do PSP pois alguém fora do SFN não consegue reconhecer quais os PSPs autorizados.

@feinstein
Copy link

Podem me ajudar a entender, em detalhe, a proposta? Entendi que a proposta gira em torno de atribuir a uma cobrança uma URL específica para "notificação". Supondo 10M de cobranças, (há usuários recebedores que geram 10milhões de cobranças por mês), potencialmente, do ponto de vista do PSP recebedor, teria-se em mãos 10 milhões de URLs diferentes para notificar, respectivamente, cada uma destas cobranças. Entendi corretamente a proposta?

Sim, seria isso, mas a meu ver, corrija-me se estiver errado, se um PSP precisa fazer 10M de cobranças ao mês, então já serão 10M de requests à API Pix do bacen de qualquer forma. Se adicionarmos 1 URL, no pior dos casos a gente dobra isso para 20M de requests: 10M ao bancen e 10M ao URL de notificação. Dobrar fica pesado para esses PSPs que já tem a estrutura toda para 10M?

Pensando rapidamente, vejo um problema que seria forjar notificações Pix. Veja que é fácil obter o txid dinâmico referente a uma cobrança. Se um hacker sabe que o usuário recebedor utiliza este "esquema de notificações", e se o endpoint servido pelo web sever do usuário recebedor não possui uma camada de segurança adequada, seria possível forjar notificações que estabeleçam que a cobrança foi liquidada, lesando o usuário recebedor por meio de, por exemplo, levá-lo a liberar uma mercadoria tendo em vista este recebimento fake.

Sim, concordo, por isso que na minha sugestão anterior eu sugeri que houvesse um banco de dados disponibilizado pelo bacen onde a origem dos requests pudesse ser verificada de forma simples, através de uma assinatura digital onde as public keys fossem disponibilizadas pelos bacen, atrelado ao id do PSP. Talvez existam opções melhores, eu não sou especialista em segurança e não conheço todas as soluções de autenticação mutua, mas acredito que existam soluções pra isso e não seja um impedimento total a essa modificação.

@ninrod
Copy link
Member

ninrod commented Oct 20, 2020

Provavelmente essa forma de notificação dependesse de assinatura digital do BACEN, para que possa trafegar em canal inseguro e mesmo assim ser reconhecida como legítima. Não poderia ser assinatura do PSP pois alguém fora do SFN não consegue reconhecer quais os PSPs autorizados.

Apenas expondo o ponto de vista do BCB, se entendi corretamente, neste caso, entendo que o BACEN assumiria um papel central na segurança da solução e acredito que estaríamos falando de uma carga brutal pensando no potencial de notificações para atender todo o país. Estabelecer essa comunicação BACEN x [todos os usuários recebedores do Brasil] seria uma arquitetura sem precedentes. Há, inclusive, questões jurídicas potencialmente envolvidas: joje o BACEN estabelece comunicações com instituições reguladas e neste cenário proposto, os usuários recebedores estariam fora do alcance regulatório do BACEN.

@feinstein
Copy link

feinstein commented Oct 20, 2020

@rubenskuhl:

A menção não era a DDoS, mas a requisições maliciosas que causariam problemas para o PSP, onde o PSP ficaria parecendo como culpado de um ataque. E a resposta a esse falso ataque por parte de uma rede ou sistema pode ser o bloqueio da rede do PSP, gerando um DoS (mas não um DDoS).

Você diz como e.g. colocar um SQL Injection num HTTP GET dentro de um QR Code e ai o PSP que faria o SQL Injection? Acho que o nome dessa vulnerabilidade é Open Redirect.

Realmente isso poderia ser um vetor de ataque, alguém tem ideais de como contornar isso de forma simples? Queria evitar um banco de dados de cadastro de URL seguras, pois isso iria dificultar a inclusão de apps pequenos como o meu, adicionar burocracia e seria mais um request para o PSP.

@rubenskuhl
Copy link

@rubenskuhl:

A menção não era a DDoS, mas a requisições maliciosas que causariam problemas para o PSP, onde o PSP ficaria parecendo como culpado de um ataque. E a resposta a esse falso ataque por parte de uma rede ou sistema pode ser o bloqueio da rede do PSP, gerando um DoS (mas não um DDoS).

Você diz como e.g. colocar um SQL Injection num HTTP GET dentro de um QR Code e ai o PSP que faria o SQL Injection? Acho que o nome dessa vulnerabilidade é Open Redirect.

Realmente isso poderia ser um vetor de ataque, alguém tem ideais de como contornar isso de forma simples? Queria evitar um banco de dados de cadastro de URL seguras, pois isso iria dificultar a inclusão de apps pequenos como o meu, adicionar burocracia e seria mais um request para o PSP.

Eu não vejo solução para isso usando HTTP. A solução que já comentei de mensageria pública ao estilo Google Firebase e similar é o caminho que vejo para isso.

@feinstein
Copy link

feinstein commented Oct 20, 2020

@rubenskuhl Como assim "mensageria pública ao estilo Google Firebase"?

@feinstein
Copy link

@ninrod:

Apenas expondo o ponto de vista do BCB, se entendi corretamente, neste caso, entendo que o BACEN assumiria um papel central na segurança da solução e acredito que estaríamos falando de uma carga brutal pensando no potencial de notificações para atender todo o país. Estabelecer essa comunicação BACEN x [todos os usuários recebedores do Brasil] seria uma arquitetura sem precedentes. Há, inclusive, questões jurídicas potencialmente envolvidas: joje o BACEN estabelece comunicações com instituições reguladas e neste cenário proposto, os usuários recebedores estariam fora do alcance regulatório do BACEN.

Mas o bacen precisaria estabelecer esse contato? Não seria apenas incluir na atual mensagem que o PSP já recebe, notificando que houve uma transação Pix, um campo que contém os dados da transferência, assinada pelo bacen? Dai o PSP apenas reenvia esse dado assinado com um nonce para a notificacao da URL. O dono da URL verifica que a transacao é correta pois vai estar assinada pelo bacen. Acredito que o nonce e um timestamp devem evitar ataques de replay. Nesse caso o PSP que faria a conexão, o bacen precisa apenas assinar.

@ninrod
Copy link
Member

ninrod commented Oct 20, 2020

O MercadoPago (assim como o PayPal, PagSeguro e outros intermediadores e gateways), permitem que o cliente configure no painel da sua conta qual é a URL que receberá as notificações de pagamento. Todo pagamento é notificado para aquela URL, não importa se foi um envio de dinheiro de outra pessoa (espontâneo), um pagamento solicitado (seja diretamente ou por recursos como o "rachar contas"), por um link de pagamento, por uma venda do catálogo interno de produtos, por uma transação iniciada via API de cobrança, por um redirecionamento ao sistema de checkout em um e-commerce, etc, etc... todo dinheiro recebido é sempre notificado para aquela URL (exceto em casos onde uma cobrança criada via API especifique que os pagamentos oriundos daquela cobrança em particular devem ser notificados a uma URL específica, ou seja, é possível "sobrescrever" a URL configurada na conta do recebedor).

Entendo que essa descrição aproxima-se bastante ao cenário proposto pela API Pix hoje, via webhooks. A diferença é que essa URL única é a única possibilidade (você não consegue estabelecer uma URL por pagamento) e no lugar do dashboard você usa o webhook.

Isso dá uma abertura gigantesca para integrações super facilitadas, bastando o fornecedor de soluções orientar ao seu cliente "vá no painel da sua conta e coloque essa URL X para receber as notificações de pagamento". Elas nem precisam ser criadas via API(!) e o cliente poderá fazer uso de diversas soluções de gerenciamento de pedidos/cobranças e até traçar métricas/B.I. em cima dessas notificações, sem que essa ferramenta seja a encarregada de criar as cobranças. E ainda permite, inclusive, que a mesma conta seja utilizada em múltiplas integrações mais avançadas, bastando que as cobranças tenham uma URL de notificação definida no momento da sua criação (no campo específico da API para tal).

Poderia ser um cenário, o PSP recebedor apresentar um dashboard para configurar URLs de notificação "por fora da API". Em todo caso, preocupa-me as questões de segurança levantadas aqui.

@ninrod
Copy link
Member

ninrod commented Oct 20, 2020

Mas o bacen precisaria estabelecer esse contato? Não seria apenas incluir na atual mensagem que o PSP já recebe, notificando que houve uma transação Pix, um campo que contém os dados da transferência, assinada pelo bacen? Dai o PSP apenas reenvia esse dado assinado com um nonce para a notificacao da URL. O dono da URL verifica que a transacao é correta pois vai estar assinada pelo bacen. Acredito que o nonce e um timestamp devem evitar ataques de replay. Nesse caso o PSP que faria a conexão, o bacen precisa apenas assinar.

Ok, entendo. O PSP recebedor poderia efetuar o "relay" da mensagem assinada pelo BACEN, evitando o problema da carga. Em tese, baseado na premissa de que sempre o usuário recebedor verificaria a corretude da assinatura, você teria um nível de segurança. Não sei dizer se seria o suficiente.

O foco aqui seria atender o fluxo QR Estático -> Confirmação de recebimento?

Apenas para entender a necessidade de negócio: se estabelecermos que o PSP do recebedor poderia fornecer em dashboard e mesma funcionalidade de webhooks, mas seguir exatamente o formato estabelecido pelo callback do webhook, resolveria a questão?

@renatofrota
Copy link
Author

renatofrota commented Oct 21, 2020

É esse request para o seu sistema é uma chamada de API, não há outro nome para isso e o impacto regulatório é claro.

É o PSP acionando uma URL no meu sistema - a API é minha, não do PSP. Totalmente fora do escopo da regulação do Pix. Só vejo como um problema se o BACEN agora resolveu, de uma hora pra outra, proibir que os PSPs ofereçam serviços tecnológicos de quaisquer natureza que não a API Pix. laughing

APIs não são diodos, as interações entre sistemas são API em qualquer dos sentidos de atuação. E sim, um PSP oferecendo algo que se refira ao Pix em cima de qualquer recurso tecnológico é parte da atuação do PSP regulada pelo BACEN. É parte de entrar no sistema financeiro regulado, não é vale tudo, e principalmente não é seguir o manual da start-up de criar barreiras de entrada para os possíveis concorrentes.

Não é diminuindo a necessidade de regulação que se deve defender casos de uso, e sim mostrando o real valor disso para a sociedade.

Então intermediadores, fintechs, bancos... que ofereciam notificações de pagamento de qualquer outra espécie deverão deixar de fazê-lo, no caso específico do pagamento que entrou na conta ser um Pix? Não vejo o menor sentido.

Seguindo por este raciocínio, então, aplicativos de gestão financeira como o GuiaBolso, que acessa minhas contas bancárias e me auxilia no meu planejamento financeiro, não poderá ler os pagamentos que eu receber quando estes forem Pix (somente DOCs e TEDs)?

E ainda seguindo a mesma lógica, os aplicativos dos bancos, sejam desktop/web/mobile que possuem funcionalidade de exportar o meu extrato, também não poderão exportar as transações que forem envios/recebimentos Pix?

Complicou!

@rubenskuhl
Copy link

rubenskuhl commented Oct 21, 2020

APIs não são diodos, as interações entre sistemas são API em qualquer dos sentidos de atuação. E sim, um PSP oferecendo algo que se refira ao Pix em cima de qualquer recurso tecnológico é parte da atuação do PSP regulada pelo BACEN. É parte de entrar no sistema financeiro regulado, não é vale tudo, e principalmente não é seguir o manual da start-up de criar barreiras de entrada para os possíveis concorrentes.
Não é diminuindo a necessidade de regulação que se deve defender casos de uso, e sim mostrando o real valor disso para a sociedade.

Então intermediadores, fintechs, bancos... que ofereciam notificações de pagamento de qualquer outra espécie deverão deixar de fazê-lo, no caso específico do pagamento que entrou na conta ser um Pix? Não vejo o menor sentido.

O sentido é não ser essa a desculpa para lock-in numa API proprietária.

Seguindo por este raciocínio, então, aplicativos de gestão financeira como o GuiaBolso, que acessa minhas contas bancárias e me auxilia no meu planejamento financeiro, não poderá ler os pagamentos que eu receber quando estes forem Pix (somente DOCs e TEDs)?

O GuiaBolso é o caso de uso padrão do OpenBanking, que vai ter acesso às transações recebidas e a ser iniciador de pagamentos. Ele hoje não usa APIs nesses acessos, ele simula um cliente, exatamente pela falta de padronização ainda a ser criada como parte do OpenBanking.

E ainda seguindo a mesma lógica, os aplicativos dos bancos, sejam desktop/web/mobile que possuem funcionalidade de exportar o meu extrato, também não poderão exportar as transações que forem envios/recebimentos Pix?

Isso não é uma API, é apenas mais um layout de arquivos. Quer seja em formatos padronizados como ISO 20022 ou CNAB 750, quer seja num formato próprio de um banco, ele não se constitui uma API... no momento layout de arquivos não é escopo de padronização do BACEN. Tem gente que diz que os CNABs tem tanta diferença entre os bancos que isso deveria ser objeto de padronização, mas se for, o que faria mais sentido é uma padronização mais genérica do que só para Pix. Assim como o BR CODE padronizou QR-Code para uso em qualquer arranjo de pagamento.

@renatofrota
Copy link
Author

renatofrota commented Oct 21, 2020

Então intermediadores, fintechs, bancos... que ofereciam notificações de pagamento de qualquer outra espécie deverão deixar de fazê-lo, no caso específico do pagamento que entrou na conta ser um Pix? Não vejo o menor sentido.

O sentido é não ser essa a desculpa para lock-in numa API proprietária.

Mas isso não é lock-in. O MercadoPago não é o único que oferece notificações de pagamento. Todos os intermediadores e gateways de pagamento oferecem, para todos os recebimentos (e até mesmo alguns bancos "tradicionais", quando não para todos os recebimentos, ao menos para algum tipo de pagamento particular, como é o caso do Itaú Shopline).

Você precisa entender que há uma diferença entre a API Pix (que oferece vários recursos) e a API dos intermediadores e gateways:

  • A API Pix permite determinados recursos, sendo que um deles é a definição de um webhook, que será acionado somente na ocasião de um recebimento Pix.
  • Os intermediadores e gateways oferecem um serviço de notificação de pagamentos para todos os recebimentos da conta transacional.

Uma coisa não compete com a outra. O recebimento que entra na conta por meio do Pix, não será acessível por meio de uma API proprietária de forma que elementos/informações exclusivos do arranjo Pix fiquem disponíveis "por fora" da API Pix. Mas todo recebimento de dinheiro é uma "Operação" (no caso do MP) e eu entendo que, poder consultar determinados dados sobre esta transação (dados estes que também estão disponíveis em todas os demais tipos de transações que o MP é capaz de receber, tais como o nome do pagador, o valor, o horário da transação, o status - que no caso do Pix, por definição, seria sempre "approved") por meio da API proprietária do MP não interfere em nada a existência da API Pix (e o MP oferecê-la ou não). São ações sem equivalência com a consulta de transações por seu txid, criação ou consulta de cobranças, etc - ações estas, sim, disponíveis exclusivamente pela API Pix.

Inclusive, há bancos tradicionais que oferecem APIs de comunicação para os correntistas. Estes vão deixar de oferecer consultas às transações da conta (ou limitar os retornos das consultas, omitindo os recebimentos que sejam Pix)? Aposto que não. Uma vez recebido o dinheiro na minha conta, ele é meu dinheiro. Não importa se ele veio por um Pix ou se foi uma compensação de cheque. Ele precisa estar acessível para consulta (ou ser notificado), como qualquer outro dinheiro.

@renatofrota
Copy link
Author

renatofrota commented Oct 21, 2020

Inclusive, a minha sugestão para que as notificações sejam padronizadas no Pix e acessíveis nem necessidade de um client_id para acesso à API Pix, é exatamente evitar esse "lock-in" em determinados intermediadores/gateways/PSP, tornando este um recurso universalmente acessível no âmbito do Pix e fazendo do Pix uma modalidade de recebimento preferida face a outras, justamente por essa versatilidade que a padronização traria.

Não só a facilidade de usar o Pix como substituto a maquinetas aumentaria como, também, a competitividade entre os players, se todos tiverem que oferecer as notificações. O que fizer isso melhor, atender melhor os clientes, agregar mais valor que não especificamente os "recursos Pix" (que são padronizados), terá mais sucesso.

@rubenskuhl
Copy link

Mesmo nesse argumento, com o qual eu não concordo em seu todo mas vou discorrer sobre seus desmembramentos, TxID é uma informação do arranjo Pix. Então uma API proprietária mesmo que somente notificando que o Pix de TxID tal foi realizado para a conta está em violação. Uma API proprietária que só diga "você recebeu R$ 12,34" e depois permita consulta de extrato onde aparece o TxID, também esta em violação. Agora uma que no extrato diga apenas "Pix" estaria ok.

@renatofrota
Copy link
Author

renatofrota commented Oct 21, 2020

Mesmo nesse argumento, com o qual eu não concordo em seu todo mas vou discorrer sobre seus desmembramentos, TxID é uma informação do arranjo Pix. Então uma API proprietária mesmo que somente notificando que o Pix de TxID tal foi realizado para a conta está em violação. Uma API proprietária que só diga "você recebeu R$ 12,34" e depois permita consulta de extrato onde aparece o TxID, também esta em violação. Agora uma que no extrato diga apenas "Pix" estaria ok.

Como eu disse:

Uma coisa não compete com a outra. O recebimento que entra na conta por meio do Pix, não será acessível por meio de uma API proprietária de forma que elementos/informações exclusivos do arranjo Pix fiquem disponíveis "por fora" da API Pix.

O que é uma pena. Entendo o interesse, por parte do BACEN, que haja padronização. Mas é pena limitar que parte das informações, que já estão em mãos do PSP e acessíveis pelo recebedor no app mobile não possam ser consultadas por outros meios que não a API Pix.

@renatofrota
Copy link
Author

@ninrod

Continuando o que falei na minha resposta mais acima (a primeira desde a sua última mensagem aqui neste issue e focada na questão técnica - as demais mensagens tem um cunho mais jurídico ou particular do BACEN):

Outras informações, como dados pessoais do pagador, eu entendo que o BACEN possa considerar sensíveis demais para serem enviadas diretamente na notificação (talvez possa enviar só o primeiro nome e as outras iniciais?), sendo necessário o uso da API Pix caso o estabelecimento queria obter mais informações para integrações mais completas.

A chave de validação (definida pelo recebedor junto à URL de notificação) poderia, inclusive, ser utilizada para codificar o conteúdo enviado na notificação, aumentando ainda mais a segurança.

@renatofrota
Copy link
Author

renatofrota commented Oct 21, 2020

@rubenskuhl , já que você parece estar bem por dentro da parte regulatória, se puder me ajudar, me permita voltar à questão de regulação sobre as funcionalidades técnicas que os PSPs podem oferecer aos clientes finais:

O Itaú Shopline, por exemplo, oferece a criação de cobranças e estas podem ser pagas tanto por boleto (qualquer cliente) quanto por débito em conta (somente por quem é correntista do Itaú) e todas as "baixas" são notificadas para o recebedor por um webhook. Se eu crio uma cobrança com a identificação A1B2C3, recebo a notificação de "baixa" dessa cobrança via webhook com essa identificação, não importando como foi pago.

Se o Itaú Shopline agregar a opção de o pagador efetuar o pagamento desta cobrança A1B2C3 via Pix, ele poderá me notificar que a cobrança A1B2C3 foi "baixada" (paga), através da integração Shopline que já está implantada (não importando para o recebedor que o pagamento foi um Pix e, muito menos, qual o txid que o Itaú utilizou ao gerar um QR Code para apresentar ao pagador e conciliar o pagamento internamente, só importa para mim que está pago).

Estou correto neste raciocínio ou há alguma imposição a este processo?

@rubenskuhl
Copy link

Eu acredito que boletos híbridos, inclusive os com possível pagamento via Pix, não estejam cobertos pelo escopo da API Pix. Neste caso há um outro arranjo de pagamento, um produto específico que inclusive no caso de pagamento do boleto cancela o Pix e no caso de pagamento via Pix cancela o boleto. Não é que alguém chamou o Pix de, por exemplo, de SX e na verdade é o mesmo arranjo... me parece um produto diferente. E aí entra em qualquer outro escopo regulatório, se algum existir... e o fato dele não ter ou não uma API, ortogonal à existência da API Pix.

Me parece que esse tipo de avaliação vai precisar sempre de casos específicos... casos genéricos podem parecer tranquilos, dá para imaginar casos esdrúxulos que seriam péssimos do ponto de vista regulatório, mas que cada caso precise de avaliação específica. Esse não me soa sirenes de alerta.

@renatofrota
Copy link
Author

Não é que alguém chamou o Pix de, por exemplo, de SX e na verdade é o mesmo arranjo...

🤣

Eu acredito que boletos híbridos, inclusive os com possível pagamento via Pix, não estejam cobertos pelo escopo da API Pix. Neste caso há um outro arranjo de pagamento, um produto específico que inclusive no caso de pagamento do boleto cancela o Pix e no caso de pagamento via Pix cancela o boleto. Não é que alguém chamou o Pix de, por exemplo, de SX e na verdade é o mesmo arranjo... me parece um produto diferente. E aí entra em qualquer outro escopo regulatório, se algum existir... e o fato dele não ter ou não uma API, ortogonal à existência da API Pix.

Me parece que esse tipo de avaliação vai precisar sempre de casos específicos... casos genéricos podem parecer tranquilos, dá para imaginar casos esdrúxulos que seriam péssimos do ponto de vista regulatório, mas que cada caso precise de avaliação específica. Esse não me soa sirenes de alerta.

Bom, o exemplo que eu dei (Shopline) pode ser diretamente relacionado ao que a API do MercadoPago, PagSeguro, Gerencianet, etc e etc oferecem. No fim das contas, estou vendo que integrar a API Pix e criar cobranças diretamente com ela não será a única forma de "receber um Pix" e conciliar esses recebimentos.

Se o próprio Pix oferecesse a notificação de forma mais facilitada, seria mais fácil transitar entre os PSP e a adoção do Pix como meio de recebimento principal (ou até único) aconteceria em um prazo bem mais curto para muitos tipos de negócios. Não sendo o caso (sendo necessário implementar a API Pix, que é bem mais complexa), na prática os clientes continuarão usando os integradores de sempre e a tal "abertura de mercado" oferecida pelo surgimento do Pix será menos expressiva (será um novo meio de pagamento, inovador em natureza, mas concentrado na mão dos mesmos players de sempre).

@rubenskuhl
Copy link

Se for receber um Pix, aí é Pix e precisa seguir a API Pix. Os 3 PSPs citados na mensagem acima alegaram que vão implementar a API Pix como descrito neste repositório; um deles foi descartado por cobrar MDR (%), mas os outros estão na reta final do processo de escolha para serem o PSP escolhido, com a informação clara de que só a API Pix padrão do BACEN leva a um contrato de prestação de serviços.

@renatofrota
Copy link
Author

Se for receber um Pix, aí é Pix e precisa seguir a API Pix.

Se eu, como PF ou PJ, autônomo/comerciante/prestador de serviço, usar qualquer intermediador para gerar cobranças e este (intermediador) receber os pagamentos por quaisquer meios (seja boleto, cartão, TEF, TED, criptomoeda, cheque, Pix ou sinal de fumaça), eu não tenho nada a ver com isso. A regulação do Pix se limita ao âmbito do Pix. O intermediador fazer uso do Pix para receber um valor e depois me disponibilizar esse valor (e, inclusive, me notificar que este recurso está disponível) está totalmente fora do contexto do arranjo Pix.

Se você entende o contrário, por favor, fundamente melhor.

Os 3 PSPs citados na mensagem acima alegaram que vão implementar a API Pix como descrito neste repositório; um deles foi descartado por cobrar MDR (%), mas os outros estão na reta final do processo de escolha para serem o PSP escolhido, com a informação clara de que só a API Pix padrão do BACEN leva a um contrato de prestação de serviços.

Você está trazendo informações particulares para o debate. Por favor, observe que a issue onde estamos discutindo tem um aspecto muito amplo que o seu caso de uso particular. Especificamente o trecho onde você diz "os outros estão na reta final do processo de escolha para serem o PSP escolhido" isso não fica claro para os leitores menos informados.

@rubenskuhl
Copy link

Se for receber um Pix, aí é Pix e precisa seguir a API Pix.

Se eu, como PF ou PJ, autônomo/comerciante/prestador de serviço, usar qualquer intermediador para gerar cobranças e este (intermediador) receber os pagamentos por quaisquer meios (seja boleto, cartão, TEF, TED, criptomoeda, cheque, Pix ou sinal de fumaça), eu não tenho nada a ver com isso. A regulação do Pix se limita ao âmbito do Pix. O intermediador fazer uso do Pix para receber um valor e depois me disponibilizar esse valor (e, inclusive, me notificar que este recurso está disponível) está totalmente fora do contexto do arranjo Pix.

Se você entende o contrário, por favor, fundamente melhor.

O âmbito do Pix não se resume aos PSPs e ao BACEN, inclui a relação do PSP com correntistas. Por isso há a API Pix. E isso acontece de forma similar em outros arranjos, onde o instituidor do arranjo define o que quiser definir. O BACEN, e que merece aplausos por isso, resolveu padronizar a API. Ponto final, a API é padronizada. Ficar procurando buracos na regulação é algo que não terá o meu apoio e espero que o BACEN resista. Se você quiser propor soluções para os casos de uso de 3 partes, aí sim proponha, mas não ignorando os problemas relevantes que surgem para se resolver.

Os 3 PSPs citados na mensagem acima alegaram que vão implementar a API Pix como descrito neste repositório; um deles foi descartado por cobrar MDR (%), mas os outros estão na reta final do processo de escolha para serem o PSP escolhido, com a informação clara de que só a API Pix padrão do BACEN leva a um contrato de prestação de serviços.

Você está trazendo informações particulares para o debate. Por favor, observe que a issue onde estamos discutindo tem um aspecto muito amplo que o seu caso de uso particular. Especificamente o trecho onde você diz "os outros estão na reta final do processo de escolha para serem o PSP escolhido" isso não fica claro para os leitores menos informados.

É um exemplo de que como todo caso prático não tem problemas teóricos. Você escolheu a lista, não eu, e como eu já tinha lidado com todos esses prestadores pude responder o que eles propõe.

@renatofrota
Copy link
Author

Se for receber um Pix, aí é Pix e precisa seguir a API Pix.

Se eu, como PF ou PJ, autônomo/comerciante/prestador de serviço, usar qualquer intermediador para gerar cobranças e este (intermediador) receber os pagamentos por quaisquer meios (seja boleto, cartão, TEF, TED, criptomoeda, cheque, Pix ou sinal de fumaça), eu não tenho nada a ver com isso. A regulação do Pix se limita ao âmbito do Pix. O intermediador fazer uso do Pix para receber um valor e depois me disponibilizar esse valor (e, inclusive, me notificar que este recurso está disponível) está totalmente fora do contexto do arranjo Pix.
Se você entende o contrário, por favor, fundamente melhor.

O âmbito do Pix não se resume aos PSPs e ao BACEN, inclui a relação do PSP com correntistas. Por isso há a API Pix. E isso acontece de forma similar em outros arranjos, onde o instituidor do arranjo define o que quiser definir. O BACEN, e que merece aplausos por isso, resolveu padronizar a API. Ponto final, a API é padronizada. Ficar procurando buracos na regulação é algo que não terá o meu apoio e espero que o BACEN resista. Se você quiser propor soluções para os casos de uso de 3 partes, aí sim proponha, mas não ignorando os problemas relevantes que surgem para se resolver.

A relação dos PSP com os correntistas no âmbito do Pix, no que diz respeito a enviar e receber Pix, especificamente Pix, por todos os seus canais de atendimento, faz total sentido que seja padronizado (inclusive a API, para quem quiser utilizá-la), para uma melhor experiência. Mas não é porque o Pix está sendo lançado que todas as soluções de cobrança devam, imediatamente, sofrer qualquer penalização em relação à recursos (features).

Os 3 PSPs citados na mensagem acima alegaram que vão implementar a API Pix como descrito neste repositório; um deles foi descartado por cobrar MDR (%), mas os outros estão na reta final do processo de escolha para serem o PSP escolhido, com a informação clara de que só a API Pix padrão do BACEN leva a um contrato de prestação de serviços.

Você está trazendo informações particulares para o debate. Por favor, observe que a issue onde estamos discutindo tem um aspecto muito amplo que o seu caso de uso particular. Especificamente o trecho onde você diz "os outros estão na reta final do processo de escolha para serem o PSP escolhido" isso não fica claro para os leitores menos informados.

É um exemplo de que como todo caso prático não tem problemas teóricos. Você escolheu a lista, não eu, e como eu já tinha lidado com todos esses prestadores pude responder o que eles propõe.

Eu não escolhi este repositório para abrir esta issue ao acaso. Eu estou propondo uma melhoria para o Pix, que pode beneficiar a sociedade, e o meio de comunicação com a equipe que está desenvolvendo e implantando escolheu este canal. Onde mais eu deveria fazê-lo?

Não me leve a mal ou para o lado pessoal. Eu estava falando especificamente do seu comentário anterior. Para um desavisado que passar por esta issue em particular e ler aquele seu comentário, pode dar a impressão de que estamos (todos aqui) em busca de decidir algum PSP em particular para atender uma necessidade conjunta nossa. Não sei se você confundiu com a issue #57 onde você já falou mais abertamente da sua busca por um PSP. O fato é que esta issue não tinha essa discussão até esse momento e você não deixou no seu comentário que estava se referindo a sua busca pessoal por uma solução, para atender as suas necessidades (e que, convenhamos, nem tem qualquer relação com as mudanças que estamos propondo à sistemática de "Notificação de Pagamentos" que é o título desta issue aqui, #62).

@rubenskuhl
Copy link

Os comentários que faço aqui também não relação com a busca que estou fazendo, apenas volto a comentar que casos práticos são bem mais úteis nas definições de políticas públicas. Só que para isso eles precisam ser reais, não baseados em suposições que os fatos facilmente demonstrem sua não aplicabilidade.

@ninrod
Copy link
Member

ninrod commented Oct 22, 2020

Prezados, mais uma vez agradeço pelas contribuições.

Aqui e em #111 pode-se ver que os endpoints /webhook podem ser melhorados. Sugiro focarmos, como @rubenskuhl também ressaltou, nos casos de uso específicos.

Achei interessante o caso de uso listado em #111: o usuário recebedor estabelecer uma URL diferente para o recebimento de QR Estáticos.

Em alguns pontos neste repo foi mencionada a funcionalidade de estabelecer URLs diferentes por chave Pix, o que considero menos problemático do que estabelecer "por cobrança", e até interessante:

seria muito melhor eu ter autonomia para definir como quero receber as notificações de diferentes Pix, relacionados a diferentes Cobranças/chaves

Vou abrir uma nova issue para reunirmos todos os comentários a respeito de melhorias no webhook e marco vocês lá, ok?

@feinstein
Copy link

@ninrod me passou uma ideia pela cabeça que talvez possa ajudar a se evitar mTLS em um futuro esquema alternativo.

Podemos encriptar a URL do webhook usando a chave publica do PSP recebedor. Dessa forma um hacker não tem como saber qual é a URL que está dentro do QR Code, apenas o PSP recebedor saberá qual é a URL de notificação, usando sua chave privada para desencriptar a URL.

Sei que isso não soluciona tudo, nem é algo 100% garantido, mas pode ser uma camada a mais de segurança a ser adotada. Apenas uma sugestão a mais ser considerada.

@AdamTeodoro
Copy link

Na real poderia até ser algo mais simples, junto com os parâmetros de geração de QRCODE o recebedor do pagamento poderia colocar uma URL como opcional, então se a url estivesse presente o sistema do banco central deveria enviar uma requisição post com os dados como: horário do pagamento, status do token de pagamento como "qrcode finalizado", ou "aguardando recebimento de novos pagamentos" (para o mesmo qrcode) e status do pagamento como sendo "pagamento aprovado" ou "cancelado qrcode expirado"

@Guihgo
Copy link

Guihgo commented Feb 27, 2023

@AdamTeodoro é um ótimo recurso no mundo teórico, sem dúvidas facilitaria muito para os desenvolvedores e usuários finais. Mas no mundo real, me surgem algumas objeções.

  1. Não vejo o BACEN se beneficiando dessa feature, visto que só teria mais carga de trabalho e mais tráfego de dados em seus serviços. O BACEN deixa essa carga de trabalho para o PSP, que implementam dashboard para configuração da url de webhook sob ambiente controlado.

  2. O BACEN visa aumentar seu ecossistema para ampliar a concorrência entre as partes envolvidas. Se ele admitir essa responsabilidade, ele atira no próprio pé, pois estaria tomando uma das funções de muitos PSP e seus subordinados.

  3. O QR Code estático utiliza um protocolo adaptado do EMVco, assim chamado de BR Code, tem limite de 99 caracteres por identificador (tag). Teria que readaptar o protocolo para aceitar mais que 99 caracteres, visto que as URLs podem possuir mais que 99 caracteres. Não que seja impossível de fazer, aliás já foi feito, como o caso desta lib (emvqrcode-tools), qual permite criar qr code sob protocolo EMVco para transações em blockchain (Ethereum - EVM), visto que a hash das transações, data e assinaturas possuem mais que 99 caracteres. Mas fazer essa readaptação, demandaria, de todos PSP, o esforço para atualizarem suas bibliotecas de geração de br code com mais de 99 caracteres por tag, assim permitindo URLs completas.

  4. Apesar de haver meios técnicos para produzir essa feature e formas de se proteger às brechas na seguranças que podem vir a surgir, como já mencionado anteriormente pelo @rubenskuhl nessa issue. Na prática, essa feature torna-se inviável para o modelo de negócio limitado pela tecnologia do Pix.

Ao meu ver, essa feature só estará mais resolvida quando o Real Digital surgir, pois como ele é baseado em tecnologia blockchain, as transações ficariam em um livro onde os PSPs teriam acesso. E um modelo de negócio será a venda de consulta das transações sob demanda através de smart contracts que ficassem ouvindo as transações autorizadas e serviços que emitissem webhook, e mesmo assim, não seria responsabilidade do BACEN fazer a notificação a qualquer um. Mas teremos que esperar seu desenvolvimento para vermos como serão as novas regras e suas restrições de acesso para essa tecnologia.

Por enquanto, sugiro utilizar um PSP que te forneça a opção de webhook para recebimentos em Pix.

@AdamTeodoro
Copy link

AdamTeodoro commented Feb 28, 2023

O PIX ficaria útil e o custo não seria tanto assim é só o pessoal acomodado tirar o traseiro da cadeira e começar a criar coisas realmente úteis, pra mim tá mais pra babação de ovo de gateway de pagamento que quer meter a mão em uma porcentagem do valor transferido por pix sendo que o próprio banco central poderia cobrar o custo fixo da requisição na transferência do Pix, bem melhor que deixar os gateways de pagamentos saquearem empresas já que cobram até 5% do valor da transferência por pix que tinha o objetivo de ser gratuito, só um idiota acha que uma requisição post custaria em % do valor da transferência, isso deveria ser uma taxa fixa, independentemente do valor transferido.

@rubenskuhl
Copy link

O PIX ficaria útil e o custo não seria tanto assim é só o pessoal acomodado tirar o traseiro da cadeira e começar a criar coisas realmente úteis, pra mim tá mais pra babação de ovo de gateway de pagamento que quer meter a mão em uma porcentagem do valor transferido por pix sendo que o próprio banco central poderia cobrar o custo fixo da requisição na transferência do Pix, bem melhor que deixar os gateways de pagamentos saquearem empresas já que cobram até 5% do valor da transferência por pix que tinha o objetivo de ser gratuito, só um idiota acha que uma requisição post custaria em % do valor da transferência, isso deveria ser uma taxa fixa, independentemente do valor transferido.

São coisas diferentes aí. Uma é porque o Banco Central não presta serviços diretamente; é definição da missão do Banco Central não ser um banco de varejo. Então necessariamente as transações acontecem entre instituições autorizadas pelo Banco Central, quer elas não tenham o Banco Central no meio do arranjo (ex: boleto e cartões) quer elas tenham (ex: Pix).

A outra é porque surgiu e se estabeleceu o pagamento por % no Pix. No começo do projeto em 2020 haviam mais prestadores cobrando valores fixos do que percentuais... mas isso foi mudando e acabou-se consolidando a realidade de mais prestadores com percentuais. Curiosamente, parece ter sido quem recebe valores baixos que pressionou para isso, por equivalência com cartão de débito. Diferente de boleto, onde o usual do mercado é valor fixo independente do valor do título. Isso significa que há um subsídio cruzado entre quem recebe valores menores, pagando menos por transação, e quem recebe valores maiores, que provavelmente paga mais do que de outra forma.

Mas eu não lembro de já ter visto cobrança de 5%... o típico é algo em torno de 1%, como 0.99% (MP), 1,19% (Efí) e por aí vai. Que eu também acho estranho ao invés de valor fixo, mas aconteceu pelos motivos acima.
E quem tem volume acaba não pagando percentual.

@AdamTeodoro
Copy link

Não entendi pq seria banco de varejo se estaria prestando serviço para sistemas de empresas?, o no caso do pix para pessoa física não tá quebrando nenhuma missão do banco central?, a porcentagem que eles pegam sobre o pix é a quela velha exploração clássicas que os gateways de pagamentos já praticam criminosamente, já que não tem regulamentação, eu disse 5% com base em um caso somando todo o valor que o gateway de pagamento pegava, que seria 1,19% taxa do pix + taxa de transferência de 3,67 reais do pagarme, em porcentagem é errado já que vão lucrar por volume de transferências, isso só serve para encarecer os preços para o consumidor final e afetar negativamente nas vendas, nesse caso o gateway de pagamento ficou com aproximadamente 5% do total que era de uns 97 reais.

@rubenskuhl
Copy link

Não entendi pq seria banco de varejo se estaria prestando serviço para sistemas de empresas?, o no caso do pix para pessoa física não tá quebrando nenhuma missão do banco central?,

Para empresas também são bancos de varejo, só de outro segmento. O Banco Central é um banco de bancos, ele tem como clientes outros bancos e instituições de pagamentos.

Sobre a percentagem de gateways específicos, sugiro procurar algum da lista em #76 que tenha condições melhores.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
funcionalidade-nova sugestão de nova funcionalidade melhoria algo está funcionando, mas poderia ser melhor
Projects
None yet
Development

No branches or pull requests

8 participants