Closed mvleandro closed 4 years ago
Já fiz uma ponderação aqui de que o campo txid do QRCode estático não deveria ser preenchido pelo usuário, mas sim pelo PSP e deveria ser único, desta forma seria possível correlacionar diversos recebimentos a um único QRCode estático.
Não há maneira de se garantir esse processo uma vez que a "string" do QR estático pode ser facilmente gerada (inclusive via editor de texto).
deveria ser único, desta forma seria possível correlacionar diversos recebimentos a um único QRCode estático. Isto traria uma experiência de usuário muito mais fluida para o usuário final. Ex.: Usuário A gera um QRCode para dividir a conta de um bar e envia para os amigos; Amigos escaneam e pagam este QRCode; Usuário A consegue ver todos os pagamentos recebidos a partir daquele QRCode específico, gerado para esta ocasião.
@mvleandro, perfeito. Não vejo qualquer óbice em se implementar exatamente o fluxo que você descreveu tendo como base a especificação atual. Qual é exatamente o problema que você enxerga que existe na especificacão atual que impeça que um fluxo exatamente como este seja implementado?
Bem, tirando o ponto acima, o manual de experiência do usuário diz que no extrato eu devo diferenciar visualmente quando uma transação recebida é referente a um QRCode gerado. A despeito de tudo o que eu falei acima, qual é a melhor forma de identificar isso? Procurar pela presença do txid? A presença dele garante que aquele Pix partiu de um QRCode?
Exatamente.
Outra dúvida: É vedado o envio do txid quando uma transação não partir de um QRCode?
Correto.
Mais uma dúvida: O QRCode dinâmico também possui um txid. Assumindo a natureza transacional dele, posso assumir que, no caso do dinâmico, este txid é fornecido pelo PSP e é único e não é fornecido pelo usuário final, correto? Até porque, pela api de recebimento o txid é a chave principal utilizada. Meu entendimento está correto?
Não está correto o entendimento. O txid é sempre fornecido pelo usuário (o cliente da API). No caso do QR dinâmico, especificamente via PUT /cob/{txid}
, de forma idempotente.
@ninrod Não vejo qualquer óbice em se implementar exatamente o fluxo que você descreveu tendo como base a especificação atual. Qual é exatamente o problema que você enxerga que existe na especificacão atual que impeça que um fluxo exatamente como este seja implementado?
O problema é que o Manual de Experiência de usuário me obriga a manter o exato valor informado pelo cliente final e não um valor único gerado. Pela não obrigatoreidade de ser único eu não tenho como garantir esta correlação.
Não está correto o entendimento. O txid é sempre fornecido pelo usuário (o cliente da API). No caso do QR dinâmico, especificamente via PUT /cob/{txid}, de forma idempotente.
@ninrod Agora estou confuso. A implementação prevista na api de recebimento não contempla o usuário fornecendo o txid. Este campo é criado pelo PSP e é devolvido na resposta do endpoint de criação do documento. Desconheço este endpoint que você mencionou. Dúvida: A api de recebimento foi descontinuada?
@mvleandro,
O problema é que o Manual de Experiência de usuário me obriga a manter o exato valor informado pelo cliente final e não um valor único gerado. Pela não obrigatoreidade de ser único eu não tenho como garantir esta correlação.
Temos dois fluxos diferentes: um que é o usuário recebedor utilizando o Pix diretamente no seu app mobile e outro que é via API PIx. O fluxo via mobile é mais simples. Você poderia até, no seu app mobile, restringir que o usuário escolha sempre um tixd único. Mas nada vai impedir que "por fora" do app, o usuário crie um QR estático com o mesmo txid. De qualquer forma, não há problema: os pix recebidos associados a um mesmo txid estarão agrupados. Talvez seja exatamente isso que o usuário queira.
@ninrod Agora estou confuso. A implementação prevista na api de recebimento não contempla o usuário fornecendo o txid. Este campo é criado pelo PSP e é devolvido na resposta do endpoint de criação do documento. Desconheço este endpoint que você mencionou. Dúvida: A api de recebimento foi descontinuada?
No Pix temos que agir rápido e eventualmente quebrar algumas coisas; esse foi o caso com a "API de recebimentos", que passou a se chamar "API Pix". O repositório antigo foi arquivado e no readme você pode ver que há uma explicação e é mostrado o link para o repositório novo. Os links na página do Bacen também foram atualizados. A versão foi incrementada e não é compatível com a anterior, por isso incrementamos o major version seguindo o "semver".
@mvleandro , posso responder alguma questão adicional?
A respeito deste assunto não, @ninrod Obrigado!
Descreva sua dúvida ou problema Já fiz uma ponderação aqui de que o campo txid do QRCode estático não deveria ser preenchido pelo usuário, mas sim pelo PSP e deveria ser único, desta forma seria possível correlacionar diversos recebimentos a um único QRCode estático. Isto traria uma experiência de usuário muito mais fluida para o usuário final. Ex.:
1) Usuário A gera um QRCode para dividir a conta de um bar e envia para os amigos; 2) Amigos escaneam e pagam este QRCode; 1) Usuário A consegue ver todos os pagamentos recebidos a partir daquele QRCode específico, gerado para esta ocasião.
Meu primeiro ponto é: É realmente a palavra final do BACEN este ponto a respeito do txid? Porque deixar o identificador aberto (e não único) só torna a experiência mais complicada para o usuário final. Ele terá que ficar vendo várias entradas soltas no extrato e procurando pelo identificador que ele mesmo criou (e que pode ser repetido, o que torna as coisas mais confusas ainda).
Bem, tirando o ponto acima, o manual de experiência do usuário diz que no extrato eu devo diferenciar visualmente quando uma transação recebida é referente a um QRCode gerado. A despeito de tudo o que eu falei acima, qual é a melhor forma de identificar isso? Procurar pela presença do txid? A presença dele garante que aquele Pix partiu de um QRCode?
Outra dúvida: É vedado o envio do txid quando uma transação não partir de um QRCode?
Mais uma dúvida: O QRCode dinâmico também possui um txid. Assumindo a natureza transacional dele, posso assumir que, no caso do dinâmico, este txid é fornecido pelo PSP e é único e não é fornecido pelo usuário final, correto? Até porque, pela api de recebimento o txid é a chave principal utilizada. Meu entendimento está correto?