Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

1. Introdução

O Open Finance ou Sistema Financeiro Aberto é uma iniciativa do Banco Central do Brasil que tem como principais objetivos trazer inovação ao sistema financeiro, promover a concorrência, e melhorar a oferta de produtos e serviços financeiros ao consumidor final. Este guia visa auxiliar os profissionais envolvidos no negócio e no desenvolvimento desse serviço, facilitando e esclarecendo dúvidas relacionadas ao processo de teste e certificação de suas APIs. Clique aquipara uma visão completa do Open Finance Brasil.

...

Para garantir que as implementações das instituições estão seguindo os padrões conforme as especificações previstas para o Open Banking Brasil, o escopo mínimo dos testes irá abranger aspectos de segurança e também aspectos funcionais: os primeiros objetivarão avaliar se os requisitos não funcionais das APIs, em particular, segurança, estão sendo atendidos por suas implementações, enquanto que os últimos visarão avaliar se as implementações estão aderentes às especificaçõesdas APIs do ambiente.

Dentro do escopo previsto pelos motores de conformidade, destacamos, de maneira não exaustiva, as principais validações executadas:

...

  • Fase 2: Consentimento, Dados Cadastrais (PF), Dados Cadastrais (PJ), ResourcesRecursos, Contas, Cartão de Crédito, Operações de Crédito - Empréstimos, Operações de Crédito - Financiamentos, Operações de Crédito - Adiantamento a Depositantes e Operações de Crédito - Direitos Creditórios Descontados;

  • Fase 3: Pagamentos

...

As instituições deverão obter as certificações abaixo:

Tipo

Nome

Quando

Custo

Emissor

Segurança

FAPI: BR-OB ADV

Obrigatório para a Fase 2 e 3

Sim

OIDF

Segurança

FAPI – CIBA: BR-OB

Data a ser definida pela convenção

Sim

OIDF

Segurança

FAPI: BR-DCR ADV

Obrigatório para Fase 2 e 3

Incluso no

FAPI: BR

OIDF

Funcional

Conformidade funcional OBB

Obrigatório para todas APIs (obtida por grupo de APIs)

Não

OBB

Funcional

Limites Operacionais

Obrigatório para todas APIs (obtida

por grupo de APIs)

Não

OBB

Segurança

FAPI: BR-RP ADV

(Unsigned ou Signed)

Obrigatório para receptoras de

dados Fase 2

Sim

OIDF

Segurança

FAPI: BR-RP ADV

(Signed)

Obrigatório para iniciadores de

pagamento Fase 3

Sim

OIDF

Segurança

FAPI: BR-RP DCR

Obrigatório para iniciadores de pagamento Fase 3

Incluso no

FAPI: BR-RP

OIDF

Segurança

FAPI -CIBA: BR-RP ADV

A necessidade de certificação dos RP ainda está em definição – Atualização do guia a ser realizada

após definição

Sim

OIDF

2.3.Prazos

Para go-live das APIs em ambiente produtivo é mandatório que todas as certificações de segurança e funcionais tenham sido emitidas e devidamente publicadas no Diretório Central. Instruções para o procedimento podem ser obtidas em: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/9634736/Guia+de+Opera+o+do+Diret+rio+Central

2.3.3. Validade/Recertificação

...

Maiores informações sobre certificações: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/1738043/Diretrizes+T+cnicas+de+Certifica+o+de+Conformidade

Maiores informações sobre certificações: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/1738043/Diretrizes+T+cnicas+de+Certifica+o+de+Conformidade

Maiores informações sobre OpenID Foundation - https://openid.net/certification/

...

Conforme consta em sua página oficial, os custos de cada certificado possuem valores tabelados, possuem diferenciação para membros e não membros, e são pagos diretamente à OpenID Foundation. A tabela de preços da certificação FAPI estão disponíveis em: https://openid.net/certification/fees/.

A certificação FAPI – Brasil engloba não só as variações dessa certificação, mas também o teste DCR – Brasil. Dessa forma, realizando ambas as certificações em um único pedido, é necessário apenas um pagamento para a realização dos dois testes mandatórios para a Fase 2.

...

Os custos de associação seguem a tabela da OIDF que podem ser encontrados no link abaixo:

https://openid.net/foundation/members/registration

Para se associar, a instituição deve fazer o procedimento diretamente pelo site da OpenID Foundation em:

https://openid.net/foundation/members/registration

Os benefícios de se tornar um membro, bem como demais informações, podem ser acessados em:

https://openid.net/foundation/benefits-members/

Processo de testes e certificação

...

Para realizar o acesso ao motor de conformidade funcional é necessário a criação de um utilizador no Sandbox do diretório de participantes, acessível através do link abaixo:

https://web.sandbox.directory.openbankingbrasil.org.br/organisations

É necessário estar associado a alguma organização participante no Diretório (produção ou sandbox) para acessar o motor de conformidade funcional, ou seja, é necessário ser administrador ou contato técnico de alguma instituição.

O processo de criação de uma conta de usuário no Sandbox do diretório de participantes pode ser conferido através da documentação de referência do diretório, acessível em: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/9634736/Guia+de+Opera+o+do+Diret+rio+Central

Diferente do motor de conformidade funcional, o motor da OIDF pode ser acessado utilizando uma conta do Google ou uma conta do GitLab.

...

Para a realização dos testes de conformidade é necessário o uso de uma TPP de testes e o registro de dois Clientes na sua instituição através do processo de DCR. A instituição pode optar por utilizar uma TPP de exemplo já cadastrada no diretório ou criar a sua própria TPP seguindo as instruções do Guia de Operações do Diretório. Os dados da TPP e exemplos de configurações do motor podem ser obtidos em https://gitlab.com/openid/conformance-suite/-/wikis/Brazil-Example-Configuration.

Instruções de como realizar o processo de DCR estão disponíveis no Portal do Desenvolvedor https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/1737964/Dynamic+Client+Registration

Nota: os certificados de transporte e assinatura utilizados na criação da TPP de testes deverão ser utilizados no preenchimento dos campos do motor de conformidade.

...

Para a realização dos testes, as instituições financeiras deverão configurar diversas massas de dados que serão objeto dos testes. Como o motor de conformidade tem o seu código fonte disponível para todo ecossistema, é possível identificar as massas de dados de referência utilizadas nos testes no seguinte diretório do motor de certificação:

https://gitlab.com/obb1/certification/-/tree/master/src/test/resources/jsonResponses

3.1.5. Cadastro do A.S

Para se habituar ao ambiente do Diretório de Participantes a instituição pode optar por cadastrar o seu Authorisation Server em Sandbox. Esse cadastro não é necessário para a execução dos testes, podendo a instituição apenas inserir os endpoints dos seus recursos , incluindo o endpoint .well- known, diretamente nas plataformas dos testes de conformidade.

Para realizar o cadastro do Authorisation Server pedimos que consulte o guia de utilização do diretório central: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/9634736/Guia+de+Opera+o+do+Diret+rio+Central

3.2 Funcionais

3.2.1 Acesso ao Motor de Conformidade Funcional

...

3.2.2. Execução dos testes

Ao realizar o acesso ao Motor de Conformidade Funcional e realizar o preenchimento dos campos necessários, é possível iniciar os testes para validação de conformidade funcional. O motor provê ao usuário resultado dos testes em tempo real e indica pontos de sucesso e pontos de falha, permitindo uma correção das implementações do participante de maneira assertiva, caso necessário. Materiais de apoio estão disponíveis em: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/1738043/Diretrizes+T+cnicas+de+Certifica+o+de+Conformidade

O participante não tem limitação do número de testes que pode executar e nem dos horários, dado que a ferramenta está disponível 24/7.

...

Caso a instituição deseje, como o motor de conformidade funcional está disponibilizado em formato Open Source, também é possível rodar os testes localmente, sem risco de exposição de dados sensíveis. É possível consultar a documentação relativa a esse processo em:

https://gitlab.com/obb1/certification/-/wikis/Running-the-conformance-suite-locally

https://gitlab.com/openid/conformance-suite/-/wikis/Developers/Build-&-Run

Com a ferramenta executando localmente, também é possível utilizá-la para fazer uma checagem dos payloads que estão sendo gerados pelas aplicações da instituição. Para isto, basta:

...

Utilizando-se do motor de conformidade funcional, o participante deverá atingir a marca de 100% de sucesso nos testes antes do pedido de certificação. Com esta marca de sucesso, o participante deve então fazer o resultado de seus testes ficar público. Um exemplo de resultado de testes publicados pode ser acessado em: https://web.conformance.directory.openbankingbrasil.org.br/log-detail.html?log=yxaJTHHQjF4to64&public=true

É importante ressaltar que este resultado deve ser atingido no motor de conformidade funcional hospedado pelo Open Finance Brasil, logo testes executados localmente não são válidos para pedido de certificação.

...

  1. Acessar https://www.certification.openid.net/ e realizar o login.

  2. Clicar "Create a new Plan Test".

    1. No campo "Test Plan", selecionar "FAPI1-Advanced-Final: Authorization Server test"

      1. No campo "Client Authentication Type", selecionar private_key_jwt ou mtls.

      2. No campo "Request Object Method", selecione a opção da sua instituição.

      3. No campo "FAPI Profile", selecionar o openbanking_brazil.

      4. No campo "FAPI Response Mode", selecione a opção da sua instituição.

      5. Preencher os campos das seções: Test Information, Server, Client, TLS certificates for client (used to make MTLS connections), Second client, Second client TLS certificates e Resource.

      6. Após a criação do "Test Plan", vão ser exibidos todos os testes que devem ser executados.

      7. Exemplo de caso de uso de execução: https://gitlab.com/openid/conformance-suite/-/wikis/Brazil-Example-Configuration

  3. Clicar "Create a new plan test".

    1. No campo "Test Plan", selecionar " FAPI1-Advanced-Final: Brazil Dynamic Client Registration Authorization server test "

      1. No campo "Client Authentication Type", selecione a opção da sua instituição.

      2. No campo "Request Object Method", selecione a opção da sua instituição.

      3. No campo "FAPI Response Mode", selecione a opção da sua instituição.

      4. Preencher os campos das seções: Test Information, Server, Client, TLS certificates for client (used to make MTLS connections), Resource e Directory.

      5. Após a criação do "Test Plan", vai ser exibido o teste a ser executado.

      6. Exemplo de como executar: https://gitlab.com/openid/conformance-suite/-/wikis/Brazil-DCR-Example-Configuration

Mais informações no site da OIDF: https://openid.net/certification/instructions/

Descrição dos campos:

  • Test Plan: Selecionar alguns dos testes disponibilizados no menu Open Finance Brasil Functional Tests

  • Client Authentication Type: Selecionar o tipo de autenticação de cliente compatível com seu software

  • Request Object Method: O método a ser usado para passar o objeto de solicitação ao servidor de autorização. Selecione 'by_value' a menos que você saiba que seu servidor suporta o endpoint de 'solicitação de autorização enviada' ('PAR') conforme definido aqui: https://tools.ietf.org/html/draft-ietf-oauth-par

  • Alias: Escrever o nome desejado para o plano de testes

  • Description: Escrever a descrição desejada para o plano de testes

  • Publish: Selecionar “No” para não tornar os resultados do teste público para todos

  • DiscoveryUrl: Adicionar o well -know Discovery endpoint do servidor de autorização: https:xxx/.well -known/openid -configuration

  • Client_id: Adicionar o client_id do software statement criado no Sandbox do diretório de participantes

  • Scope: Escopos a serem usados na solicitação de autorização, por exemplo, ‘openid accounts’

  • Jwks: Inserir o jwks relativo ao certificado de assinatura criado para assinar os objetos do cliente e se private_key_jwt para autenticação do cliente

  • Organisation_jwks: chave BRSEAL gerado para assinatura das mensagens de pagamento. Pode ser igual ao Jwks

  • Mtls.cert: Adicionar as informações do certificado de transporte BRCAC (.pem)

  • Mtls.key: Adicionar a chave privada do certificado de transporte BRCAC (.key)

  • Mtls.ca: Adicionar os certificados do Root CA do diretório e do issuer CA do diretório. Supondo que seja utilizado o PKI do diretório

  • ResourceUrl: Especificar a url do recurso que será utilizado para execução dos testes. Por exemplo: https://api.edbank.com.br/openbanking/accounts/v1/accounts

  • consentUrl: Especificar a url do do consentimento. Por exemplo: https://api.edbank.com.br/openbanking/consents/v1/consents

  • brazilCpf: O valor 'CPF' a ser usado na solicitação de criação de consentimento.

  • BrazilCnpj: O valor ‘CNPJ’ a ser usado na solicitação de criação de consentimento.

  • Resource server organization id: O id da organização que provê o recurso, conforme o diretório. Deve ser preenchido quando utilizada a API de pagamentos

  • Authorization server organization id: Valor do ‘organization id’ do authorization server, conforme registrado no diretório (aplicável somente para ‘scope’ que contém ‘payments’).

  • Payment consent request JSON: JSON de uma solicitação de consentimento de pagamento. Será utilizado como body do request enviado ao endpoint de consentimento de pagamento (aplicável somente para ‘scope’ que contém ‘payments’).

  • Payment initiation request JSON: JSON de uma solicitação de pagamento PIX. Será utilizado como body do request enviado ao endpoint de iniciação de pagamento (aplicável somente para ‘scope’ que contém ‘payments’).

  • Discovery Endpoint: URL para o diretório OpenBanking. Por exemplo: https://auth.sandbox.directory.openbankingbrasil.org.br/.well-known/openid-configuration

  • Directory ClientID: client_id para este cliente no OpenBanking Directory. É empregado para obter um token de acesso para recuperar a Software Statements.

  • Directory API base: URL base para o OpenBanking Directory Sandbox.Por exemplo: https://matls-api.sandbox.directory.openbankingbrasil.org.br/

  • Directory keystore base: O caminho para o keystore do diretório. Para sandbox usar "https://keystore.sandbox.directory.openbankingbrasil.org.br/

  • https://openid.net/2021/04/14/guest-blog-financial-grade-api-fapi-explained-by-an- implementer-updated/

  • https://gitlab.com/openid/conformance-suite/-/wikis/home

  • https://openid.net/certification/fapi_op_testing/

...

Para realizar o pedido de certificação de segurança junto a OIDF o participante deverá consultar as instruções contidas no endereço: https://openid.net/certification/op_submission/

3.3.2 Documentação adicional OIDF

Além das especificações dos perfis FAPI, citadas no final desse Guia, a OIDF também recomenda a consulta do artigo, “FAPI explicada por um desenvolvedor”, para as instituições que buscam a certificação FAPI. Esse artigo pode ser acessa pelo seguinte link:

FAPI Explicada por um desenvolvedor

Suporte

4.1. Glossário

Open ID Foundation (OIDF): A OpenID Foundation é uma organização internacional sem fins lucrativos, voltada para desenvolvedores e empresas. Tem como objetivo auxiliar a comunidade fornecendo a infraestrutura necessária e ajuda a promover e apoiar a adoção ampliada do OpenID.

...

A equipe de suporte do processo de conformidade utiliza a mesma infraestrutura do Service Desk do Open Finance, acessível através do link: https://servicedesk.openbankingbrasil.org.br/Login.jsp

A abertura de chamados pode ser realizada tanto pelos usuários logados, atrelados a alguma instituição financeira, quanto para usuários não logados. O processo para abertura de um chamado de um usuário logado pode ser conferido através do tutorial em vídeo, abaixo: https://youtu.be/bhMOtliGjKc

A equipe de suporte do processo de conformidade está disponível para solucionar questões relacionados a:

...

Também é disponibilizado um FAQ relativo à política de certificação que pode ser consultado em: https://openbanking-brasil.github.io/areadesenvolvedor/#faq-testes-e-homologacao

Pedimos que os participantes, antes de abrirem um chamado, consultem se a sua dúvida não está contemplada dentro do FAQ de certificação.

...

As especificações referentes ao Open Finance podem ser encontradas em sua integralidade no portal do Desenvolver, acessível através do Link: https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/8683521/Especifica+es+de+APIs

Links de Apoio

FAPI Especificações:

...

FAPI Motor de testes e certificação:

How to run conformance tests for FAPI-RW OPs

How to request certification after successfully completing conformance testing for FAPI-RW andFAPI-CIBA OPs

Financial-grade API (FAPI), Explained by an Implementer – Updated

FAPI Explicada por um desenvolvedor

Service Desk:
https://servicedesk.openbankingbrasil.org.br/index.jsp#/Dashboard.jsp

FAQ – Testes e homologação:

https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/1639437/FAQ+-+Testes+e+Homologa+o

Diretório de Participantes e Sandbox:

https://web.directory.openbankingbrasil.org.br/

https://web.sandbox.directory.openbankingbrasil.org.br

Motores de conformidade:

https://web.conformance.directory.openbankingbrasil.org.br/login.html

https://www.certification.openid.net/login.html

Repositórios dos motores de conformidade:

https://gitlab.com/obb1/certification

https://gitlab.com/openid/conformance-suite/-/wikis/home

Materiais complementares:

https://openbankingbrasil.atlassian.net/wiki/spaces/OB/pages/1738043/Diretrizes+T+cnicas+de+Certifica+o+de+Conformidade