Histórico de mensagens sobre webhook em sugestões

EXIBINDO CONVERSAS RECENTES:

Texto: webhook
Canal: sugestões
Avatar discord do usuario jesteriruka

jesteriruka

Ver Respostas

Geralmente eu não obedeço cegamente o endpoint, eu busco a fatura novamente na API, eu só uso os dados do webhook pra extrair o id da fatura que foi atualizada

Avatar discord do usuario diogofm7

diogofm7

Ver Respostas

Eu gosto do mTLS, digo da ideia pq ainda não implementei, no webhook, já que um medo q eu sempre tive, era o json vir de uma fonte não confiável, e aí eu tinha que ficar fazendo algumas requests para garantir a autenticidade do json...

Usando por mTLS, fica mais confiável da onde está vindo o json/request do webhook...

Avatar discord do usuario jesteriruka

jesteriruka

Ver Respostas

Eu gasto menos de 70 linhas de código pra implementar cada API de pix pros meus clientes, é muito mais fácil do que ter que trabalhar com certificado, eu só faço uma abstração nos webhooks, e pronto.

Avatar discord do usuario .antoniogregorio

.antoniogregorio

Atualizem o guia de configuração nginx do hand-shake do pix,

nginx
server {
#
# ...
#
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate server_ssl.crt.pem;
ssl_certificate_key server_ssl.key.pem;
ssl_client_certificate /root/chain-pix-webhooks-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
#
# ...
#
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass /webhook;
}
}
#Desenvolvido pela Consultoria Técnica da Gerencianet
para
nginx
server {
#
# ...
#
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate server_ssl.crt.pem;
ssl_certificate_key server_ssl.key.pem;
ssl_client_certificate /root/chain-pix-webhooks-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
#
# ...
#
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
proxy_pass https://IP_DA_APLICAÇÃO:7080/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
#Desenvolvido pela Consultoria Técnica da Gerencianet

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Se não tem devolucoes é pq não houve ainda nenhuma devolução daquele Pix. Se completar alguma devolução, vai ter esse campo. Mas isso segue o especificado pelo BACEN... só o webhook de envio de Pix que é definido pela GN.

Avatar discord do usuario .guind

.guind

Ver Respostas

Padronizar o retorno de webhook de PIX, retornando TIPO em todas as requisições (atualmente só em pix enviado: tipo = 'solicitacao')

Avatar discord do usuario orafael

orafael

Ver Respostas

Adicionar um webhook de retorno quando algum pix expirar

Avatar discord do usuario rubenskuhl

rubenskuhl

Se a cobrança mudasse de situação, isso precisaria ser informado via webhook. O BACEN quis evitar isso. Então ou você guarda criação+expiração e conclui que já expirou, ou calcula isso pelo retorno do /cob.

Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Oi <@!177276428675448832> tudo bem? 🙂
O campo aceita ambos os valores, true e false.
Adição do header x-skip-mtls-checking no endpoint PUT /v2/webhook/:chave para permitir o cadastro de servidores webhooks sem validação de mTLS durante o consumo.
Regras explicadas:

Se o parâmetro não for enviado, iremos validar mTLS;
Se o parâmetro for enviado e valor igual à true, não validaremos mTLS ;
Se o parâmetro for enviado e valor diferente de true, validaremos mTLS;

Salientamos que a Gerencianet continuara a fornecer a comunicação com mTLS, ou seja, na comunicação da notificação nada mudou. O POST entre Gerencianet e EC continua enviando o certificado.

Para mais detalhes verifique o roadmap no link https://gnetbr.com/rke4baDVyd

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

isso no endpoint /gn/config, certo? esse endpoint já está em uso? vi ele ser comentado aqui no <#💭sugestões> mas não me recordo de alguma config que já tenha sido implantada.

se não foi (ou se foi mas ainda não existe esse índice chaves) eu iria sugerir modificar a estrutura interna dele, passando a usar as chaves como índice das configurações que são definidas por chave.

assim vocês ganhariam em desempenho: não iriam precisar iterar o array chaves e ler o valor de chave em cada um deles para encontrar qual se refere à chave 123 onde um pix tenha entrado. bastaria procurar pela existência do elemento pelo seu índice, pix[chaves][123] (assim como __eu acho__ que já é feito para o cadastramento dos webhooks, por exemplo). o ganho é marginal em 1 recebimento mas pode ser significativo em volume.

Avatar discord do usuario joelemanoel

joelemanoel

Ver Respostas

Sugestões que me lembre até agora:
- Utilizar % bem parecido com o LIKE do MySQL;
- Utilizar iniciaCom e terminaCom;
- Utilizar o regex bloqueando o uso de "()" (faria com que não demorasse tanto);
- Enviar uma requisição para uma URL para homologar um txid, ex: {webhookUrl}/txidmatch (Essa necessitaria de uma homologação parecida com BACEN x PSP);

Avatar discord do usuario joelemanoel

joelemanoel

Ver Respostas

Função de autorização você cita a {webhookUrl}/txidmatch citada pelo Renato?

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

Pensando na implementação lógica, o fluxo seria mais ou menos esse:

-> se o txid é dinâmico {26,35} a GN valida com base na chave + txid se existe cobrança (talvez isso até já esteja implementado hoje).
-> elseif, txid é nulo, GN consulta a configuração da conta do EC recebedor (ou da chave) se deve acatar Pix com txid nulo.

se a GN tiver como diferenciar quando o Pix foi enviado via "manual" (informando dados bancários) ou com uso da chave DICT, o ideal seria a configuração de aceitar/não os recebimentos com txid nulo ser por chave + uma configuração extra para bloquear todos os recebimentos manuais (que nunca tem txid associado).

se não tiver como diferenciar, a configuração poderia ser global (por conta transacional), com opção de sobrescrever a escolha para chaves individuais (assim poderia bloquear recebimentos com txid nulo para toda a conta [que seria o comportamento padrão] e autorizar o txid nulo em uma chave particular).

e, futuramente:
-> else (txid é estático), valida conforme as regras de aceite do EC (por regex match ou enviando o request de validação para webhookURL/txidmatch, como sugeri acima).

e esse "futuramente" eu não consigo nem ver uma demanda relevante. o importante são as outras funções.

Avatar discord do usuario anoni_mato

anoni_mato

tive uma ideia aqui. e se a GN mandar um request para webhookURL/txidmatch passando o txid recebido, com um timeout de uns 3 segundos, e o EC responde se a GN deve ou não aceitar o recebimento?

talvez o problema seja o BC encasquetar com o prazo de conclusão do recebimento (a média de tempo iria subir)

Avatar discord do usuario rafaelsiqueira8363

rafaelsiqueira8363

Resposta da GN:

Boa tarde Rafael, quando ocorre uma devolução de um Pix, que foi feito pelo endpoint de Envio de Pix, não é acionado o webhook mesmo. Por ser um endpoint elaborado pela Gerencianet, a devolução ficou de fora, independente do banco que está "devolvendo".
Eu entendo essa necessidade e vamos discutir como aborda-la.

Avatar discord do usuario rafaelsiqueira8363

rafaelsiqueira8363

Pessoal, trazendo para cá a discussão sobre devolução por parte do favorecido. Contexto:

Pessoal, uma dúvida sobre devolução de pix.
1. Pix enviado da GN > Chave qualquer. Recebo o webhook com a realização ou não. Tudo certo.
2. A partir da conta "favorecida", faço a devolução do pix.

Essa devolução por parte do "favorecido" deveria ativar o webhook e notificar minha aplicação? Entendo que a devolução esteja atrelada ao e2eid original.
Eu testei esse cenário aqui e não fui notificado. É um comportamento esperado ou temos um gap aí?

Avatar discord do usuario anoni_mato

anoni_mato

Sugestão: alinhar melhor com a equipe as informações a respeito dos [novos] recursos e exigências [removidas] para consumo da API Pix. Por ex: as informações a respeito da necessidade ou não de mTLS no PUT /webhook, bem como no recebimento dos callbacks, estão desencontradas lá no canal <#❖pix>. Tem membros da equipe GN dizendo A e outros membros dizendo B.

Avatar discord do usuario evanil

evanil

Na realidade no meio da conversa trouxe uma reflexão, que caberia até em off-topic, o que gerou duas linhas de debates. O debate real é sobre a validação no cadastro do Webhook, como está no https://www.notion.so/509e46e40bca45be896f4600f26023ea?v=36eb7c30b76b479c96af9ababe718b69&p=8444fb4eaed2412592510e60a492c924

A validação do mTLS que a parte técnica está pensando, de tempo em tempo, se consolidando, será amplamente debatida aqui no Discord antes, não precisa ser objeto de preocupação.

Lembrando que a fluxo atual, com a segurança adicional de validação será o modelo padrão. As implementações que validam isso no cadastro do Webhook são referências.

Avatar discord do usuario joelemanoel

joelemanoel

Ver Respostas

Essa foi uma preocupação minha inicial. Vejo como problema em um fluxo grande de webhooks ter que validar milhares de webhooks de tempos em tempos... Uma sugestão de isso for implementado e tiver por exemplo 2 chaves com o mesmo Webhook é que só verifique uma vez.

Avatar discord do usuario evanil

evanil

Ver Respostas

A validação no cadastro do Webhook que fazemos é um atributo de melhoria de segurança nosso, não está no regulamento e o ignorar ou não do lado do cliente, é algo que não temos controle.