Author Image

alessandrodev

Sep 6, 2023

Estratégias de Identificação em Webhook PIX

estratégiaswebhook/pixidentificaçãoetapacategoriarecebimentoenvioDevoluçõespayloads

Galera, qual estratégia vocês adotaram no endpoint webhook/pix para identificar a etapa/categoria refere-se a request?

Por exemplo eu vou ter nessa mesma rota diferentes payload (dados no body), para estorno, criação, pagamento confirmado e pelo que vi na doc não existe um atributo comum para todos os dados que identificam a etapa do processo, ao meu ver deveria ter um atributo { etapa: "DEVELOCAO" | "PIX_RECEBIDO" | "PIX_ENVIADO" } para facilitar a identificação no webhook.

Respostas (8):
Avatar discord do usuario gabriel_efi

gabriel_efi

07/09/2023

Bom dia, @alessandrodev! A estratégia adotada depende muito das suas regras de negócio, por exemplo, você pode ter um webhook exclusivo para tratar recebimentos e outro exclusivo para tratar envios, se você utilizar o Split ainda pode ter um exclusivo para ele.

Caso prefira organizar todos em um único ponto, você teria o payload padrão de recebimento (endToEndId, txid, chave, valor, horario e infoPagador).

Se for um recebimento com split você terá tudo isso acrescido do gnExtras contendo pagador e split.

Para devolução é preciso que o recebimento já tenha existido, você pode adotar uma conferência interna do txid ou verificar a existência da propriedade devolucoes.

Já o envio de Pix terá as propriedades tipo e status e não terá o txid (virá em gnExtras o identificador do envio -> idEnvio).

Mais informações sobre o recebimento de callbacks na documentação: https://dev.efipay.com.br/docs/api-pix/webhooks/#recebendo-callbacks

Avatar discord do usuario rubenskuhl

rubenskuhl

07/09/2023

Se você vai também enviar Pix, o melhor para separar é usar uma chave Pix diferente. Agora, na devolução de um Pix recebido, ela só vai acontecer se você pedir para fazer uma devolução. Então você pode ter algo ligado ao txid que te avise que foi solicitada devolução, e aí sim olhar o campo de devolucoes.

Avatar discord do usuario alessandrodev

alessandrodev

07/09/2023

Mas o ponto é que todos são enviados para a mesma rota webhook/pix consigo cadastrar uma rota especifica para cada um? algo tipo webhook/pix/devolucoes ou webhook/pix?type=devolucoes para justamente não receber todas as variancias em um mesmo endpoint?

Avatar discord do usuario igor_efi

igor_efi

07/09/2023

Boa tarde, @alessandrodev! Tudo bem?
Não, neste caso, como o cadastro do webhook é por chave, toda a movimentação (envvio, recebimento e devolução) relacionada a esta chave, vai ser enviada para o webhook cadastrado.
O conteudo de cada tipo de notificação é diferente: https://dev.efipay.com.br/docs/api-pix/webhooks#requisi%C3%A7%C3%A3o

Avatar discord do usuario alessandrodev

alessandrodev

07/09/2023

humm, mas posso ter uma chave específica para tratar cada caso, certo? uma para recebimento, outra para devoluções etc?

Avatar discord do usuario igor_efi

igor_efi

07/09/2023

Não. Ao emitir uma cobrança, você precisa informar um chave, então a confirmação de pagamento desta cobrança vai ser enviada para o webhook vinculado a chave informada.
Como a devolução esta associada a uma cobrança, que por sua vez esta associada a uma chave, o webhook de devolução vai ser enviada para a mesma url.

Avatar discord do usuario rubenskuhl

rubenskuhl

07/09/2023

Dá para separar a chave de recebimento (e suas devoluções) da de envio.

Avatar discord do usuario alessandrodev

alessandrodev

07/09/2023

vou fazer algumas simulações e testar