pix-api icon indicating copy to clipboard operation
pix-api copied to clipboard

Duvidas sobre configurar WebHook

Open jeancarlosc39 opened this issue 3 years ago • 52 comments

Estou lendo a documentação agora surgiu algumas duvidas. Fiz toda implementação, criei os certificado e validei. Agora sobre o webhook já passei minha URL de retorno mas não entendi esta parte. Para ativar o fluxo de autenticação via mTLS primeiramente é necessário baixar a CA (chave pública) do Itaú no seguinte link https://developer.itau.com.br/docs/ca-cert.zip. Após isso, essa CA deverá ser importada no API Gateway, servidor Proxy ou Aplicação que irá receber a requisição de Webhook. Pelo que vi eles passaram este certificado que o nosso servidor deve se comunicar com eles. Para funcionar então este webhook teria então só que instalar este certificado via servidor que vai se comunicar normalmente? Ou tenho algum outro código para implementar? Pelo que olhei o manual só aguardo o recebimento do pagamento ou devolução no webhook.

jeancarlosc39 avatar Feb 08 '21 11:02 jeancarlosc39

Você precisa também:

  1. Da informação de qual Common Name tem o certificado cliente que o Itaú vai usar, para comparar e rejeitar sistemas que não o autorizado
  2. Checar a chave Pix para a qual está indo o Pix, para evitar acionamento indevido por outro EC também cliente do Itaú
  3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.

rubenskuhl avatar Feb 08 '21 12:02 rubenskuhl

3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.

Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?

tiagostutz avatar Mar 04 '21 22:03 tiagostutz

3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.

Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?

Não, o manual de segurança do Pix veda especificamente essa possibilidade.

rubenskuhl avatar Mar 04 '21 22:03 rubenskuhl

3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.

Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?

Não, o manual de segurança do Pix veda especificamente essa possibilidade.

Certo, obrigado pela resposta. Eu estava consultando o manual v3.1 e não achei essa informação lá. Essa é a última versão mesmo ou já tem alguma mais atualizada? Googlei aqui e não encontrei.

tiagostutz avatar Mar 04 '21 23:03 tiagostutz

3. Configurar o certificado que o Itaú exigir para mostrar do lado de vocês, conforme instruções deles para que eles validem que você é você mesmo. Pode ser um certificado da CA do Itaú ou um certificado de CA reconhecida, conforme o que eles especificarem.

Poderia ser um certificado autoassinado do cliente, já que ele vai enviar esse certificado para o Banco num ambiente autenticado?

Não, o manual de segurança do Pix veda especificamente essa possibilidade.

Certo, obrigado pela resposta. Eu estava consultando o manual v3.1 e não achei essa informação lá. Essa é a última versão mesmo ou já tem alguma mais atualizada? Googlei aqui e não encontrei.

A última versão é a 3.2: https://www.bcb.gov.br/content/estabilidadefinanceira/cedsfn/Manual%20de%20Seguranca%20do%20PIX%20v3.2.pdf

Mas de fato isso está em outro documento: https://www.bcb.gov.br/content/estabilidadefinanceira/pix/Regulamento_Pix/II-ManualdePadroesparaIniciacaodoPix.pdf

Os certificados digitais dos clientes da API poderão ser emitidos pelo próprio PSP ou por ACs externas, conforme definido por cada PSP. Não deverão ser aceitos certificados auto-assinados pelo cliente.

rubenskuhl avatar Mar 04 '21 23:03 rubenskuhl

Em tempo: esse é um dos motivos inclusive de Itaú e Bradesco estarem listados em #76 como não obedecendo à API padrão, em contravenção ao regulamento.

rubenskuhl avatar Mar 04 '21 23:03 rubenskuhl

Perfeito, @rubenskuhl ! Muito obrigado pela resposta e pelas referências.

tiagostutz avatar Mar 05 '21 03:03 tiagostutz

Continuando preciso alterar minha url de recebimento do webhook mas não esta funcionando a adição de uma outra URL. Estranho que faço as consultas dos webhooks cadstrados e me retorna nulo. Estou usando o Itau [webHookConsulta] => Array ( [parametros] => Array ( [inicio] => 2020-01-01T16:01:35Z [fim] => 2021-10-23T16:01:35Z [paginacao] => Array ( [paginaAtual] => 0 [itensPorPagina] => 100 [quantidadeDePaginas] => 1 [quantidadeTotalDeItens] => 0 )

            )

        [webhooks] => Array
            (
            )

        [webHookConsultaStatus] => 200
    )

jeancarlosc39 avatar Mar 05 '21 11:03 jeancarlosc39

Continuando preciso alterar minha url de recebimento do webhook mas não esta funcionando a adição de uma outra URL. Estranho que faço as consultas dos webhooks cadstrados e me retorna nulo. Estou usando o Itau [webHookConsulta] => Array ( [parametros] => Array ( [inicio] => 2020-01-01T16:01:35Z [fim] => 2021-10-23T16:01:35Z [paginacao] => Array ( [paginaAtual] => 0 [itensPorPagina] => 100 [quantidadeDePaginas] => 1 [quantidadeTotalDeItens] => 0 )

            )

        [webhooks] => Array
            (
            )

        [webHookConsultaStatus] => 200
    )

Ao que eu lembre é apenas uma URL por chave mesmo. E a consulta do Itaú está bugada, eles precisam consertar. (Junto com as demais falhas e discrepâncias do padrão...)

rubenskuhl avatar Mar 05 '21 12:03 rubenskuhl

Estava tentando cadastrar mas vi que não funciona mesmo.

jeancarlosc39 avatar Mar 05 '21 16:03 jeancarlosc39

Em tempo: esse é um dos motivos inclusive de Itaú e Bradesco estarem listados em #76 como não obedecendo à API padrão, em contravenção ao regulamento.

Obrigado pelo reporte @rubenskuhl. Vou acionar o DECEM para averiguar a situação.

ninrod avatar Mar 11 '21 17:03 ninrod

Pessoal vi que essa parte de implementação do webhook itau pela documentação ficou muito em aberto . Eles fornecem o certificado https://developer.itau.com.br/docs/ca-cert.zip, mas não foram muito especificos em como implementar. Alguém conseguiu implementar 100%, recebendo as notificações de cobrança e quando elas foram concluidas?

NatalicioNasciment avatar Jun 24 '21 19:06 NatalicioNasciment

@NatalicioNasciment eu não conheço a solução do Itaú (sou da TI do Banco do Brasil), mas imagino que você vá configurar a URL do seu webhook fazendo uma chamada PUT na API do PIX passando a URL do webhook para a chave PIX correspondente, seguindo essa spec: https://openpix.com.br/api/API-PIX-2-0-0.html#tag/Webhook/paths/~1webhook/put

E o endpoint correspondente a essa URL que você vai enviar deve estar configurado para receber requisições via mTLS (nesse caso como server). Algumas referências/recursos que podem ajudar:

  • https://mtls.run/
  • https://github.com/bancodobrasil/api-mtls-sidecar-proxy

tiagostutz avatar Jun 25 '21 13:06 tiagostutz

Olá pessoal, realmente a documentação da api do PIx ITAÚ não é muito clara. Fiz a mesma implementação do webhook ApiGateway + lambda com a api do gerencia Net. E funcionou. No caso da API do gerencia Net eles disponibilizam uma chave .crt

Na doc do ITAÚ eles disponibilizam duas nesse zip https://developer.itau.com.br/docs/ca-cert.zip

Vcs sabem qual adiciona no S3.? Ou como configura no API Gateway essas duas chaves. Fiz as configurações mas não recebo o callbak do WebHook

cleytongama avatar Jun 30 '21 02:06 cleytongama

Nós implementamos mTLS webhook itau com sucesso, nunca tivemos problemas. Transacionamos e recebemos callback.

basta instalar a CA na cabeça do seu gateway e validar o certificado usado na requisição. dai pra frente se falhar é falha na sua aplicação. não tem segredo.

edit: não adianta achar que com LB L7 vai funcionar. não funciona. tem que ser L4.

EvertonSA avatar Dec 31 '21 13:12 EvertonSA

@NatalicioNasciment, você conseguiu configurar (itau)?

vandersondiniz1 avatar Jan 06 '22 19:01 vandersondiniz1

@EvertonSA, essa é minha atual configuração no httpd:

<VirtualHost xxx.xx.xx.xxx:443>
    Header set Access-Control-Allow-Origin *
    Header set Access-Control-Allow-Methods POST,GET,DELETE,PUT,OPTIONS
    Header set Access-Control-Allow-Headers X-Authorization,X-Requested-With

    SSLEngine on
    SSLCertificateFile /home/user/itau-cert/cert.crt
    SSLCertificateKeyFile /home/user/itau-cert/private.key
    SSLCertificateChainFile /home/user/itau-cert/ca.cer
</VirtualHost>

Se eu usar o "ca-cert.cer" e "CARoot.crt", fornecidos pelo itau, num desses caminhos, dá erro de configuração. Os arquivos configurados nos caminhos acima, foram gerados no servidor. Definitivamente, onde devo colocar estes arquivos acima? Poderia descrever com maiores detalhes como você fez?

vandersondiniz1 avatar Jan 06 '22 19:01 vandersondiniz1

@vandersondiniz1 tudo bem ? Esse é o problema e que a documentação não deixava tão claro (nao sei como ta hj).

Essas chaves devem ser unificadas em um arquivo único "ca-cert.cer" + "CARoot.crt" = novoarquivo.crt

Ai com esse novo arquivo deveria funcionar. Para o meu cenário funcionou

cleytongamazup avatar Jan 06 '22 20:01 cleytongamazup

@cleytongamazup , opa, tudo ótimo! Vamos lá, vou ver o que consigo por aqui. Essa sua mensagem já será um avanço.

vandersondiniz1 avatar Jan 06 '22 21:01 vandersondiniz1

Opa @vandersondiniz1 no meu cenário fiz isso e funcionou. Já uso a api do PIX do Itaú em produção

cleytongama avatar Jan 07 '22 16:01 cleytongama

@NatalicioNasciment eu não conheço a solução do Itaú (sou da TI do Banco do Brasil), mas imagino que você vá configurar a URL do seu webhook fazendo uma chamada PUT na API do PIX passando a URL do webhook para a chave PIX correspondente, seguindo essa spec: https://openpix.com.br/api/API-PIX-2-0-0.html#tag/Webhook/paths/~1webhook/put

E o endpoint correspondente a essa URL que você vai enviar deve estar configurado para receber requisições via mTLS (nesse caso como server). Algumas referências/recursos que podem ajudar:

  • https://mtls.run/
  • https://github.com/bancodobrasil/api-mtls-sidecar-proxy

O BB vai passar a operar com mTLS e seguir o padrão BACEN ?

rubenskuhl avatar Jan 07 '22 16:01 rubenskuhl

Boa noite @vandersondiniz1 , conseguiu implementar? gostaria de saber o que fez com os dois arquivos baixados no itau( ca-cert.cer e ca-cert.cer)

tiagojosebogoni avatar Jan 12 '22 21:01 tiagojosebogoni

Olá @tiagojosebogoni , boa noite! Ainda não. Prosseguimos com uma outra API semelhante aqui e deu certo. Acho que retomaremos essa questão amanhã. Quando conseguirmos solucionar, eu passo aqui para dizer a solução.

vandersondiniz1 avatar Jan 12 '22 23:01 vandersondiniz1

Olá alguem coseguiu implementar? @vandersondiniz1, @cleytongamazup

tiagojosebogoni avatar Jan 16 '22 22:01 tiagojosebogoni

Olá alguem coseguiu implementar? @vandersondiniz1, @cleytongamazup

Olá Tiago, consegui sim . Como comentei mais acima , o problema no meu caso era unificar as duas chaves que eles enviaram. E criar um único PEM.

cleytongama avatar Jan 26 '22 12:01 cleytongama

@vandersondiniz1 tudo bem ? Esse é o problema e que a documentação não deixava tão claro (nao sei como ta hj).

Essas chaves devem ser unificadas em um arquivo único "ca-cert.cer" + "CARoot.crt" = novoarquivo.crt

Ai com esse novo arquivo deveria funcionar. Para o meu cenário funcionou

@tiagojosebogoni

cleytongama avatar Jan 26 '22 12:01 cleytongama

Olá pessoal,

Estou com problemas para conseguir fazer funcionar a chamada de webhook do Itaú para minha aplicação. Meu cenário possui o IIS 10, foi difícil encontrar um exemplo de como configurar o IIS para uso do mTLS e o único caso foi um vídeo onde é feita integração com a gerencianet, tentei aplicar o conceito no meu caso com Itaú mas sem sucesso, a chamada a minha url não acontece.

Alguém aí conseguiu com Itaú, usando o IIS?

erichelfenstens avatar Apr 04 '22 20:04 erichelfenstens

@erichelfenstens fiz porém foi com Linux amigo. Boa sorte.

amarborto avatar Apr 04 '22 20:04 amarborto

Olá pessoal,

Estou com problemas para conseguir fazer funcionar a chamada de webhook do Itaú para minha aplicação. Meu cenário possui o IIS 10, foi difícil encontrar um exemplo de como configurar o IIS para uso do mTLS e o único caso foi um vídeo onde é feita integração com a gerencianet, tentei aplicar o conceito no meu caso com Itaú mas sem sucesso, a chamada a minha url não acontece.

Alguém aí conseguiu com Itaú, usando o IIS?

Não sei se o @renatofrota testou o mtls.pix.ae com o Itaú, mas se quiser tentar:


Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:

Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix

Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/```

rubenskuhl avatar Apr 04 '22 22:04 rubenskuhl

Funcional apenas com a Gerencianet no momento, mas se o amigo quiser eu posso adicionar suporte ao Itaú, o que será possível gratuitamente se o certificado cliente for de uso geral, como na GN. Se o certificado for individual por cliente, o serviço de intermediação da notificação pode ser conversado, como um serviço pago.

Em ambos os casos, meu e-mail é meu usuario aqui, no gmail, ou pode usar o email divulgado no pix.ae.

Em seg, 4 de abr de 2022 19:13, Rubens Kuhl @.***> escreveu:

Olá pessoal,

Estou com problemas para conseguir fazer funcionar a chamada de webhook do Itaú para minha aplicação. Meu cenário possui o IIS 10, foi difícil encontrar um exemplo de como configurar o IIS para uso do mTLS e o único caso foi um vídeo onde é feita integração com a gerencianet, tentei aplicar o conceito no meu caso com Itaú mas sem sucesso, a chamada a minha url não acontece.

Alguém aí conseguiu com Itaú, usando o IIS?

Não sei se o @renatofrota https://github.com/renatofrota testou o mtls.pix.ae com o Itaú, mas se quiser tentar:

Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:

Para: https://exemplo.com.br/webhookpix

Use: https://mtls.pix.ae/exemplo.com.br/webhookpix

Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/``` http://mtls-h.pix.ae/

— Reply to this email directly, view it on GitHub https://github.com/bacen/pix-api/issues/313#issuecomment-1088064083, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZ2XSWRXTFHHDDJPYJA6XLVDNSQVANCNFSM4XIZUDMQ . You are receiving this because you were mentioned.Message ID: @.***>

renatofrota avatar Apr 05 '22 02:04 renatofrota