bacen / pix-api

API Pix: a API do Arranjo de Pagamentos Instantâneos Brasileiro, Pix, criado pelo Banco Central do Brasil.
https://bacen.github.io/pix-api
2.32k stars 262 forks source link

Cob imediata com valor zerado #384

Closed biancaOliveiraSantos closed 3 years ago

biancaOliveiraSantos commented 3 years ago

Boa tarde!

O manual de iniciação traz a seguinte regra:

"Caso o campo modalidadeAlteracao apresente o valor 1, então o usuário pagador poderá alterar o valor da cobrança. Ainda no caso de o campo modalidadeAlteracao apresentar o valor 1, o campo valor.original pode funcionar como um “valor sugerido”, de forma que, caso o “valor sugerido” atribuído seja zero, o usuário pagador será obrigado a digitar um valor válido, ou seja, um valor maior que do que zero."

No entanto, ao validarmos um Qr Code com essa condição (cob com valor zero e modalidade.alteração = 1) no QR tester, é apresentado um erro na leitura (PIX_COB_ERROR | Cobrança com estrutura inválida | O campo cob.valor.original é zero). Dado a divergência, precisamos de um direcionamento se deve ser permitido a emissão de um Qr Code de cobrança imediata com valor zero quando a modalidade de alteração é =1.

Obrigada!

ninrod commented 3 years ago

@biancaOliveiraSantos, obrigado.

A documentação está correta. Se é isso mesmo que está ocorrendo, o QRTester apresenta um bug. De qualquer forma, o fórum correto seria o pix-operacional.

JulioRuiOliveira commented 3 years ago

Boa tarde, @ninrod . Embora a iniciação do PIX diga que o valor original funcione como sugerido quando a modalidadeAlteracao seja 1, ainda assim não deveria ser possível aceitar uma cobrança com valor original igual a 0, pois violaria uma das validações no cadastro da cobrança, a saber: "O campo cob.valor.original é zero.", descrita na API PIX.

Nesse caso, estaria certo em afirmar que sob hipótese nenhuma pode-se aceitar um payload no qual a cobrança tenha valor 0?

Ou eu estou entendendo algo errado?

ninrod commented 3 years ago

"O campo cob.valor.original é zero."

Tudo bem. Na 2.3+ ficou um pouco mais complexo do que isso e será ajustado.

pode valor.original = 0 desde que modalidadeAlteracao seja 1.

E na 2.4 vai ficar ainda mais complexo.