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.31k stars 262 forks source link

Padronização dos Headers na APIs públicas #492

Open LeoBOrtigoza-zz opened 2 years ago

LeoBOrtigoza-zz commented 2 years ago

Boa tarde, tudo bem?

Qual é o padrão correto que devemos respeitar para enviar um requisição para o PSP na api GETs (cob e cobv) pública?

Ou seja, é preciso enviar algum header como padrão? por exemplo content-type? Ou o correto é não enviar nada? 

dopidaniel commented 2 years ago

Os Payloads são todos JSON, portanto: Content-Type: application/json

Além disso, a segurança é OAuth2, então também será necessário: Authorization: Bearer $Token

Alguns PSPs podem exigir Headers específicos... e isso deve estar na documentação de integração do próprio PSP como por exemplo no Itaú, você deve enviar: x-correlationID: $IdDaSuaTransacao

rubenskuhl commented 2 years ago

Os Payloads são todos JSON, portanto: Content-Type: application/json

Exceto o payload, que é application/jose. O padrão dele também é especificado neste repositório, apesar de ser usado entre PSPs e não entre os clientes e os PSPs.

Além disso, a segurança é OAuth2, então também será necessário: Authorization: Bearer $Token

Alguns PSPs podem exigir Headers específicos... e isso deve estar na documentação de integração do próprio PSP como por exemplo no Itaú, você deve enviar: x-correlationID: $IdDaSuaTransacao

Não, não podem. Isso é desobedecer o padrão do BACEN, e falta o BACEN tirar a focinheira dele mesmo e começar a colocar os PSPs em real compliance com a API.

dopidaniel commented 2 years ago

Pois é... eu me surpreendi com a falta de padrão dos PSPs, em relação a especificação do Banco Central...

Deveria haver alguma espécie de homologação para os PSPs seguirem a risca, a especificação... Acho que nenhum deles passaria... :)

rubenskuhl commented 2 years ago

Pois é... eu me surpreendi com a falta de padrão dos PSPs, em relação a especificação do Banco Central...

Deveria haver alguma espécie de homologação para os PSPs seguirem a risca, a especificação... Acho que nenhum deles passaria... :)

A Gerencianet pelo que testamos passaria sim... ... quanto a homologação, o BACEN só tem homologado os casos de uso obrigatórios do Pix. Como a API Pix é opcional, não tem homologação. Eu espero que o BACEN mude isso pelo menos para os requisitos de segurança, mesmo que os requisitos funcionais não sejam abordados num primeiro momento.

LeoBOrtigoza-zz commented 2 years ago

Minha preocupação é que já tivemos casos de PSP rejeitando algumas chamadas (CobPayload cob / cobv) por não enviar o content-type, outros por enviar como /jose, outros por enviar /json. Ai no futuro mudamos para enviar como All (*), e ai melhorou. Recentemente tivemos outro problema, e ai paramos de enviar o content type e tudo normalizou. Seria bom que tivéssemos uma regra mais clara sobre isso. Para que a gente de Engenharia, consiga junto com os times de integrações/operações delegar os problemas a cada PSP, para responsabilizar caso não esteja claro. Essa falta de padrão as vezes nos faz perder usuário e nem controlamos isso. O que acham?

é importante que a regra que seja criada, não crie fricção no mercado, dependente de todos os PSPs atualizarem seus sistemas ao mesmo tempo.

Essa falta de padrão, até na API Pix, faz com que não necessariamente seja simples do integrador mudar (como o Bacen deseja), porque vai precisar de ajuste a cada PSP caso tenha algum problema nas chamadas.