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

Idempotência da solicitação de devolução #277

Open HMPannuti opened 3 years ago

HMPannuti commented 3 years ago

A solicitação de devolução ( PUT /pix/{e2eid}/devolucao/{id} ) é uma operação idempotente, certo?

Ou seja, considere uma situação em que foi feita uma chamada de devolução, para a qual o cliente recebedor não recebou a resposta (por algum problema de comunicação, por exemplo).

Neste caso, se for feita uma nova chamada de devolução para o mesmo EndToEndId, com o mesmo id, o PSP deve tratá-la como uma 'repetição', e enviar ao cliente recebedor, nesta 2a chamada, o mesmo retorno que havia sido enviado na 1a chamada (inclusive com o mesmo rtrId)?

Temos um caso de um PSP que, ao receber um pedido de devolução 'duplicado', está negando o 2o pedido, porque o Pix já foi devolvido.

Este comportamento está correto?

ninrod commented 3 years ago

Bom dia @HMPannuti

A solicitação de devolução ( PUT /pix/{e2eid}/devolucao/{id} ) é uma operação idempotente, certo?

Certo.

Este comportamento está correto?

Não.

HMPannuti commented 3 years ago

Obrigado, vou notificar o PSP, para eles ajustarem o lado deles.

HMPannuti commented 6 months ago

Boa tarde,

Retomando este tema.

Um PSP está afirmando que a regra de idempotência da solicitação da devolução deixou de ser válida após a publicação da release 2.6.3 da API Pix.

Na documentação, o campo 'id' na solicitação de devolução (PUT /pix/{e2eid}/devolucao/{id} ) tem a seguinte descrição:

"Id gerado pelo cliente para representar unicamente uma devolução."

O meu entendimento é que este texto indica exatamente a idempotência da solicitação de devolução. Ou seja, uma solicitação de devolução com o mesmo 'id' representa uma repetição do mesma solicitação.

Segundo o PSP, este texto significa que nunca deve ser enviado o mesmo 'id' em uma solicitação de devolução, nem em uma 'repetição' da chamada da devolução.

Poderiam confirmar se o entendimento do PSP está correto ou não?

rubenskuhl commented 6 months ago

Boa tarde,

Retomando este tema.

Um PSP está afirmando que a regra de idempotência da solicitação da devolução deixou de ser válida após a publicação da release 2.6.3 da API Pix.

Na documentação, o campo 'id' na solicitação de devolução (PUT /pix/{e2eid}/devolucao/{id} ) tem a seguinte descrição:

"Id gerado pelo cliente para representar unicamente uma devolução."

O meu entendimento é que este texto indica exatamente a idempotência da solicitação de devolução. Ou seja, uma solicitação de devolução com o mesmo 'id' representa uma repetição do mesma solicitação.

Segundo o PSP, este texto significa que nunca deve ser enviado o mesmo 'id' em uma solicitação de devolução, nem em uma 'repetição' da chamada da devolução.

Poderiam confirmar se o entendimento do PSP está correto ou não?

O seu entendimento é de que seja único para toda e qualquer devolução pedida por aquele CPF/CNPJ, ou única para devoluções dentro de um mesmo e2eid de Pix recebido ?

Pq pra mim faz sentido o 2o., mas não me parece que a documentação deixe claro o escopo dessa unicidade.

HMPannuti commented 6 months ago

Ah, sim, @rubenskuhl . Não ficou claro na minha mensagem. Mas estou sempre considerando a unicidade do id entre as devolução de um determinado E2EID.