bacen / pix-api-recebimentos

Definição da API de recebimentos PIX
130 stars 8 forks source link

Colisão de TXID #12

Closed mbenatti closed 4 years ago

mbenatti commented 4 years ago

Segundo a documentação :

em 1.6.11. O campo 6: txid:

Em se tratando de pacs.008, o transactionID pode ser preenchido em razão de diversos fluxos. A seguir,
são listados os possíveis cenários de utilização do transactionID no Pix:
• QR Code dinâmico ou estático, via aplicativo: do ponto de vista do usuário recebedor, deve ser
provida pelo PSP do recebedor uma forma de se conciliar pagamentos de maneira manual, via
aplicativo. Nesse contexto, o transactionId pode ser escolhido pelo PSP do recebedor.
• QR Code estático ou URL criada pelo usuário recebedor: o QR Code estático, dotado de uma
estrutura simplificada, pode ser criado diretamente pelo usuário recebedor. Nesse contexto,
o recebedor escolherá, se for o caso, o seu próprio transactionId, o qual trafegará pelo SPI via
pacs.008.
• Inserção manual dos dados pelo usuário pagador: a transferência manual é iniciada pelo PSP
do pagador. O txid, portanto, nesse caso, é escolhido pelo usuário pagador.
• Chave Pix: a transferência com uso de chave é iniciada pelo PSP do pagador. O txid, portanto,
nesse caso, é escolhido pelo usuário pagador.
• QR Code dinâmico ou link, via API de recebimentos: no contexto da API de recebimentos, o
usuário recebedor, ao configurar o QR Code dinâmico ou o link, receberá um txid criado pelo
PSP do recebedor

Dado um cenário:

Loja X, que opera pelo PSP Y.

1) A Loja X cria um qr code dinâmico ou link, o PSP Y cria um txid, vamos chamar de "tx_id_created" 2) É completado todo fluxo de pagamento daquele qr code do passo #1 3) a Loja X quer receber um pagamento via chave PIX ou insersão manual de dados, e o usuário pagador decide inserir o mesmo txid, "tx_id_created" 4) Colisão PSP Y recebedor recebe esse segundo pagamento e como o txid da inserção manual é o mesmo criado com o qr code dinâmico ou link, há uma consiliação incorreta, associando o pagamento manual(3) com o pagamento/produto do criado com o qr code dinâmico ou link

Outras dúvidas: 1) O txid Irá mudar a cada mudança de dados/revisão do payload do qr_code?? 2) Quais campos do payload são sensiveis a mudança de revisão?

ninrod commented 4 years ago

@mbenatti ficará mais claro na 2.0.0.

Adianto que um txid é único por CPF/CNPJ do usuário recebedor e é o usuário recebedor que cria os txids.

O txid Irá mudar a cada mudança de dados/revisão do payload do qr_code??

Não.

Quais campos do payload são sensiveis a mudança de revisão?

Os campos sensíveis à mudança de revisão são os campos que podem ser enviados no boby do PUT /documento/{txid}.