Instrução Normativa BCB N° 456
Sumário Regulatório
Extraído do BCB
Conteúdo do Documento
Resolução Nº 222 INSTRUÇÃO NORMATIVA BCB Nº 456, DE 29 DE FEVEREIRO DE 2024               Divulga a versão 5.0 do Manual de APIs do Open Finance. Os Chefes do Departamento de Regulação do Sistema Financeiro (Denor) e do Departamento de Tecnologia da Informação (Deinf), no uso das atribuições que lhes conferem o art. 2...
<span style="font-family:calibri;font-size:17.3333px;">
</span><span style="font-family:calibri;font-size:17.3333px;">
</span><title style="font-family:calibri;font-size:17.3333px;">Resolução Nº 222</title><span style="font-family:calibri;font-size:17.3333px;">
</span><style style="font-family:calibri;font-size:17.3333px;">
</style><span style="font-family:calibri;font-size:17.3333px;">
</span><div class="WordSection1">
<p class="MsoNormal" align="center" style="margin-bottom:18pt;text-align:center;"><span style="font-family:calibri;font-size:17.3333px;">INSTRUÇÃO NORMATIVA BCB Nº 456, DE 29
DE FEVEREIRO DE 2024</span></p>
<p class="MsoNormal" style="margin:0cm 0cm 6pt 212.65pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">              Divulga a versão 5.0 do Manual de APIs
do <b>Open Finance</b>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">Os Chefes do
Departamento de Regulação do Sistema Financeiro (Denor) e do Departamento de
Tecnologia da Informação (Deinf), no uso das atribuições que lhes conferem o
art. 23, inciso I, alínea "a", do Regimento Interno do Banco Central
do Brasil, anexo à Resolução BCB nº 340, de 21 de setembro de 2023, com base no
art. 3º, inciso II, da Resolução BCB nº 32, de 29 de outubro de 2020,</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">R E S O L V E M :</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">Art. 1º  Esta Instrução
Normativa divulga a versão 5.0 do Manual de APIs do <b>Open Finance</b>, <a name="_Hlk55486380">de observância obrigatória por parte das instituições
participantes,</a> conforme Anexo.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">Parágrafo único.  O manual de que trata o <b>caput</b>,
em sua versão mais recente, estará acessível na página do <b>Open Finance</b>
no sítio eletrônico do Banco Central do Brasil na internet e no Portal do <b>Open
Finance</b> no Brasil, mantido pela Estrutura Responsável pela Governança do <b>Open
Finance</b> de que trata o art. 44, § 1º, da Resolução Conjunta nº 1, de 4 de
maio de 2020.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">Art. 2º  Fica revogada a Instrução Normativa nº 306, de
19 de setembro de 2022.</span></p>
<p class="MsoNormal" style="margin-bottom:36pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">Art. 3º  Esta Instrução
Normativa entra em vigor em 1º de março de 2024.</span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">RENATO KIYOTAKA UEMA               <span style="font-family:calibri;font-size:17.3333px;text-align:justify;text-indent:94.5333px;">HAROLDO JAYME MARTINS FROES CRUZ<br></span>                        <span style="font-family:calibri;font-size:17.3333px;text-align:justify;text-indent:94.5333px;">Chefe do Denor                                <span style="font-family:calibri;font-size:17.3333px;text-align:justify;text-indent:94.5333px;">Chefe do Deinf</span></span>                                                                                                                                                                                                                                                     </span></p>
<p class="MsoNormal" style="text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">                                                 </span></p>
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><b style="font-family:calibri;font-size:17.3333px;">ANEXO À INSTRUÇÃO NORMATIVA BCB Nº 456,
DE 29 DE FEVEREIRO DE 2024</b></p>
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><b style="font-family:calibri;font-size:17.3333px;">Manual de APIs do Open Finance Versão 5.0</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc14166332"></a><a name="_Toc14193634"></a><a name="_Toc14354699"></a><a name="_Toc14354849"></a><a name="_Toc14681789"></a><a name="_Toc52541656"></a><a name="_Toc54368699"></a><a name="_Toc54717499"><b style="font-family:calibri;font-size:17.3333px;">Histórico de revisão</b></a></p>
<table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" width="623" style="width:467.55pt;border-collapse:collapse;border:none;">
<tbody><tr style="height:11.75pt;">
<td width="100" valign="top" style="width:75.15pt;border:1pt solid windowtext;padding:0cm 5.4pt;height:11.75pt;">
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><b style="font-family:calibri;font-size:17.3333px;">Data</b></p>
</td>
<td width="62" valign="top" style="width:46.4pt;border-top:1pt solid windowtext;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:none;padding:0cm 5.4pt;height:11.75pt;">
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><b style="font-family:calibri;font-size:17.3333px;">Versão</b></p>
</td>
<td width="461" valign="top" style="width:346pt;border-top:1pt solid windowtext;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:none;padding:0cm 5.4pt;height:11.75pt;">
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><b style="font-family:calibri;font-size:17.3333px;">Descrição das
alterações</b></p>
</td>
</tr>
<tr style="height:18.6pt;">
<td width="100" rowspan="2" style="width:75.15pt;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 5.4pt;height:18.6pt;">
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><span style="font-family:calibri;font-size:17.3333px;">29/2/2024</span></p>
</td>
<td width="62" rowspan="2" style="width:46.4pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt;height:18.6pt;">
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><span style="font-family:calibri;font-size:17.3333px;">5.0</span></p>
</td>
<td width="461" valign="top" style="width:346pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt;height:18.6pt;">
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Simplificação da
seção 2 "APIs do <b>Open Finance</b>".</span></p>
</td>
</tr>
<tr style="height:48.6pt;">
<td width="461" valign="top" style="width:346pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt;height:48.6pt;">
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Atualização da
seção 5 "Requisitos não funcionais", incluindo mais uma faixa de
frequência a ser considerada, e detalhamento dos indicadores de desempenho e
de disponibilidade das APIs.</span></p>
</td>
</tr>
</tbody></table>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc52541658"></a><a name="_Toc54366376"></a><a name="_Toc54717501"><b style="font-family:calibri;font-size:17.3333px;"> </b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">Termos de Uso</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc52541659"><span style="font-family:calibri;font-size:17.3333px;">Este manual
detalha os requisitos técnicos para a implementação dos elementos necessários à
operacionalização do <b>Open Finance</b>, complementando a regulamentação
vigente sobre o tema. </span></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">O manual será revisto e atualizado
periodicamente a fim de preservar a compatibilidade com a regulamentação, bem
como para incorporar os aprimoramentos decorrentes da evolução do <b>Open
Finance</b> e da tecnologia. </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Informações mais detalhadas e exemplos
da aplicação deste manual poderão ser encontrados nos guias e tutoriais
disponíveis no Portal do <b>Open Finance</b> no Brasil, na Área do
Desenvolvedor.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Sugestões, críticas ou pedidos de
esclarecimento de dúvidas relativas ao conteúdo deste documento podem ser
enviados ao Banco Central do Brasil por meio dos canais institucionais dessa
autarquia.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc54366377"></a><a name="_Toc54717502"><b style="font-family:calibri;font-size:17.3333px;">Referências</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As especificações baseiam-se,
referenciam e complementam, quando aplicável, os seguintes documentos:</span></p>
<table class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0" width="624" style="width:467.8pt;margin-left:-0.25pt;border-collapse:collapse;border:none;">
<tbody><tr style="height:12.1pt;">
<td width="265" style="width:7cm;border:1pt solid windowtext;background:white;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" align="center" style="text-align:center;"><b style="font-family:calibri;font-size:17.3333px;"><span style="color:black;">Referência</span></b></p>
</td>
<td width="359" style="width:269.35pt;border-top:1pt solid windowtext;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:none;background:white;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" align="center" style="text-align:center;"><b style="font-family:calibri;font-size:17.3333px;"><span style="color:black;">Origem</span></b></p>
</td>
</tr>
<tr style="height:12.1pt;">
<td width="265" style="width:7cm;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Resolução
Conjunta nº 1, de 2020</span></p>
</td>
<td width="359" style="width:269.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">https://www.bcb.gov.br/estabilidadefinanceira/exibenormativo?tipo=Resolu%C3%A7%C3%A3o%20Conjunta&numero=1<u>
</u></span></p>
</td>
</tr>
<tr style="height:12.1pt;">
<td width="265" style="width:7cm;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Resolução
BCB nº 32, de 2020</span></p>
</td>
<td width="359" style="width:269.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">https://www.bcb.gov.br/estabilidadefinanceira/exibenormativo?tipo=Resolu%C3%A7%C3%A3o%20BCB&numero=32</span></p>
</td>
</tr>
<tr style="height:12.1pt;">
<td width="265" style="width:7cm;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span lang="EN-US" style="font-family:calibri;font-size:17.3333px;">Hypertext Transfer Protocol – HTTP/1.1</span></p>
</td>
<td width="359" style="width:269.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;"><span lang="EN-US">https://tools.ietf.org/html/rfc2616</span><span lang="EN-US"> </span></span></p>
</td>
</tr>
<tr style="height:12.1pt;">
<td width="265" style="width:7cm;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span lang="EN-US" style="font-family:calibri;font-size:17.3333px;">ISO 20022</span></p>
</td>
<td width="359" style="width:269.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">https://www.iso20022.org/<u>
</u></span></p>
</td>
</tr>
<tr style="height:12.1pt;">
<td width="265" style="width:7cm;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span lang="EN-US" style="font-family:calibri;font-size:17.3333px;">OpenAPI Specification</span></p>
</td>
<td width="359" style="width:269.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span lang="EN-US" style="font-family:calibri;font-size:17.3333px;">https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/3.0.0.md<u>
</u></span></p>
</td>
</tr>
<tr style="height:12.1pt;">
<td width="265" style="width:7cm;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span lang="EN-US" style="font-family:calibri;font-size:17.3333px;">Representational State Transfer </span></p>
</td>
<td width="359" style="width:269.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 3.5pt;height:12.1pt;">
<p class="MsoNormal" style="margin:2pt 0cm;text-align:justify;"><span lang="EN-US" style="font-family:calibri;font-size:17.3333px;">https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm<u>
</u></span></p>
</td>
</tr>
</tbody></table>
<p class="MsoNormal" style="text-align:justify;"><span lang="EN-US" style="font-family:calibri;font-size:17.3333px;"> </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc52541660"></a><a name="_Toc54366378"></a><a name="_Toc54717503"></a><a name="_Toc47386159"></a><b style="font-family:calibri;font-size:17.3333px;">1. Introdução</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">O <b>Open Finance</b> está
intrinsecamente ligado às APIs, interfaces por meio das quais será possível
interligar os diferentes sistemas das instituições. Ao serem disponibilizadas
pelos participantes, as APIs devem satisfazer condições tais como
padronização, robustez e segurança, a fim de que o objetivo de compartilhamento
de dados e serviços seja atendido a contento.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Nesse sentido, este manual visa a definir
os principais aspectos relativos às especificações e implementações das APIs
que integram o <b>Open Finance</b> no País, observando as disposições da
Resolução Conjunta nº 1, de 4 de maio de 2020, e da Resolução BCB nº 32, de 29
de outubro de 2020.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">São tratados neste manual aspectos
como: formato para a troca de dados, desenho da interface, protocolo para
transmissão de dados, versionamento, modelo de APIs e <b>endpoints.</b> Desse
modo, o manual estabelece as diretrizes gerais sem esgotar todos os aspectos
necessários à implementação das APIs para o <b>Open Finance</b>. As demais
definições a cargo das instituições participantes, por meio da Estrutura Responsável
pela Governança do <b>Open Finance</b>, nos termos da Circular nº 4.032, de 23
de junho de 2020, estarão disponíveis no Portal do <b>Open Finance</b><i> </i>no
Brasil, no qual poderão ser encontrados guias, tutoriais e outras informações
operacionais sobre as APIs.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Ao longo deste manual, será constante
o uso de siglas e terminologia específica para designar algumas expressões
cotidianas dos profissionais da área de tecnologia. Alguns exemplos das mais
frequentemente utilizadas, com as correspondentes definições, são as seguintes:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - API (<b>Application Programming Interface</b>): um conjunto
de definições sobre como um sistema pode acessar dados ou funcionalidades
providos por um outro sistema;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - REST (<b>Representational State Transfer</b>):
estilo arquitetural de <b>software</b>;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - API RESTful: API que adere às
restrições do estilo arquitetural
REST;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - OpenAPI: linguagem de
especificação de APIs RESTful;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">V - <b>endpoint</b>: elemento de uma especificação OpenAPI sobre o qual podem ser
executadas operações para acessar dados ou funcionalidades;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VI - HTTP (<b>Hypertext Transfer
Protocol</b>): protocolo para sistemas hipermídia,
distribuídos e colaborativos; </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VII - operação: elemento de uma
especificação OpenAPI que declara uma maneira válida de se acessar um <b>endpoint</b>,
informando, por exemplo, qual método HTTP (GET, POST etc.) utilizar, nomes e
tipos de parâmetros, etc;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VIII - provedor da API: instituição que
disponibiliza uma API para ser consumida por outras instituições. Nas APIs de "Serviços
de Iniciação de Pagamentos", é a instituição detentora de contas; no caso
de APIs de "Dados Cadastrais e Transacionais", é a instituição
transmissora de dados;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IX - consumidor da API: instituição que
consome uma API provida por outras instituições. Nas APIs de "Serviços de
Iniciação de Pagamentos", é a instituição iniciadora de pagamentos; no
caso de APIs de "Dados Cadastrais e Transacionais", é a instituição
receptora de dados; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">X - <b>gateway</b> de API: é um serviço, dispositivo ou <b>proxy</b>
que atua como intermediário, aceitando, transformando, encaminhando e
gerenciando o tráfego de APIs para serviços de <b>back-end</b>. Ele permite a
comunicação e a transferência de dados entre <b>endpoints</b> e pode ser útil
quando há várias plataformas que precisam interagir umas com as outras sem
conceder acesso direto às APIs umas das outras. Além disso, um <b>gateway</b>
de API pode lidar com tarefas como autenticação, limitação de taxas,
armazenamento em cache e transformação de solicitação/resposta, reduzindo a
carga sobre o aplicativo e melhorando a segurança geral e o desempenho do
sistema.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687726"></a><a name="_Toc54366379"></a><a name="_Toc54717504"><b style="font-family:calibri;font-size:17.3333px;">2. APIs do </b></a><b style="font-family:calibri;font-size:17.3333px;">Open Finance</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As APIs a serem providas pelas
instituições no âmbito do <b>Open Finance</b> devem ser categorizadas em um dos
seguintes tipos:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - Dados Abertos;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - Dados Cadastrais e Transacionais;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - Serviços; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - Relatórios e Métricas.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687727"></a><a name="_Toc54366380"></a><a name="_Toc54717505"><b style="font-family:calibri;font-size:17.3333px;">3. Princípios</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Os princípios abaixo norteiam as
especificações e implementações das APIs do <b>Open Finance</b>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687728"></a><a name="_Toc54366381"></a><a name="_Toc54717506"><b style="font-family:calibri;font-size:17.3333px;">3.1 Experiência do usuário</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As especificações e implementações das
APIs devem oferecer uma boa experiência para os usuários, sejam eles
implementadores ou consumidores das APIs.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687729"></a><a name="_Toc54366382"></a><a name="_Toc54717507"><b style="font-family:calibri;font-size:17.3333px;">3.2 Independência de tecnologia</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As especificações das APIs devem ser independentes
de tecnologia, podendo ser implementadas e consumidas em diferentes linguagens,
tais como Java, JavaScript e Python; ou plataformas, tais como Windows, Linux,
Android e iOS.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687730"></a><a name="_Toc54366383"></a><a name="_Toc54717508"><b style="font-family:calibri;font-size:17.3333px;">3.3 Segurança</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Procedimentos e controles (assinaturas
digitais, criptografia, protocolos de autenticação e autorização, entre outros)
devem ser adotados de forma a proteger os participantes do <b>Open Finance</b>,
seus clientes, os consumidores das APIs e demais participantes do ecossistema,
observada a compatibilidade com a política de segurança cibernética da
instituição.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687731"></a><a name="_Toc54366384"></a><a name="_Toc54717509"><b style="font-family:calibri;font-size:17.3333px;">3.4 Extensibilidade</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">No futuro, as APIs poderão ser
evoluídas para atender a novos casos de uso e, portanto, devem ser
especificadas e implementadas de forma a permitir e facilitar extensões como,
por exemplo, novos <b>endpoints</b>, operações, parâmetros e propriedades.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687732"></a><a name="_Toc54366385"></a><a name="_Toc54717510"><b style="font-family:calibri;font-size:17.3333px;">3.5 Padrões abertos</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Padrões abertos devem ser adotados
sempre que possível.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687733"></a><a name="_Toc54366386"></a><a name="_Toc54717511"><b style="font-family:calibri;font-size:17.3333px;">3.6 APIs RESTful</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As especificações das APIs devem
atender às restrições do estilo arquitetural REST sempre que possível.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687734"></a><a name="_Toc54366387"></a><a name="_Toc54717512"><b style="font-family:calibri;font-size:17.3333px;">3.7 ISO 20022</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As respostas das APIs devem ter como
base os elementos e componentes de mensagem ISO 20022 (</span><a href="https://www.iso20022.org/" target="_blank"><span style="color:blue;font-family:calibri;font-size:17.3333px;">https://www.iso20022.org/</span></a><span style="font-family:calibri;font-size:17.3333px;">).
Os casos particulares em que a adoção do padrão ISO não seja possível ou
recomendada poderão sofrer adequações, desde que especificamente apontados para
avaliação pelo Banco Central do Brasil. </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687735"></a><a name="_Toc54366388"></a><a name="_Toc54717513"><b style="font-family:calibri;font-size:17.3333px;">3.8 Declaração de obrigatoriedade</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Todos os elementos que compõem as
especificações das APIs (<b>endpoints</b>, operações, parâmetros, propriedades
de respostas etc.) devem ser explicitamente declarados como "Obrigatório",
"Opcional" ou "Condicional", caso sejam obrigatórios apenas
em certas condições.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;line-height:107%;"><span style="line-height:107%;font-family:calibri;font-size:17.3333px;">Funcionalidades
que sejam de implementação opcional pelo transmissor devem ficar explícitas na
sua documentação, tanto para informar adequadamente ao público transmissor, que
poderá ou não implementar a funcionalidade, quanto ao público consumidor, que pode
não encontrar a funcionalidade disponível em alguns transmissores.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687736"></a><a name="_Toc54366389"></a><a name="_Toc54717514"><b style="font-family:calibri;font-size:17.3333px;">4. Definições e recomendações</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As definições e recomendações abaixo
devem ser observadas pelas especificações e implementações das APIs do <b>Open
Finance</b>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687737"></a><a name="_Toc54366390"></a><a name="_Toc54717515"><b style="font-family:calibri;font-size:17.3333px;">4.1 Especificações</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As APIs devem ser especificadas com a
versão 3.0.0 ou superior da linguagem </span><span style="font-family:calibri;font-size:17.3333px;">OpenAPI</span><span style="font-family:calibri;font-size:17.3333px;">
(</span><a href="https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/3.0.0.md" target="_blank"><span style="color:blue;font-family:calibri;font-size:17.3333px;">https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/3.0.0.md</span></a><span style="font-family:calibri;font-size:17.3333px;">).</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As </span><span style="font-family:calibri;font-size:17.3333px;">especificações das APIs devem ser analisadas com a versão
5.9.0 ou superior do <b>software</b> livre e de código aberto Spectral (</span><a href="https://github.com/stoplightio/spectral/tree/v5.9.0" target="_blank"><span style="color:blue;font-family:calibri;font-size:17.3333px;">https://github.com/stoplightio/spectral/tree/v5.9.0</span></a><span style="font-family:calibri;font-size:17.3333px;">). A análise deve ser feita com o
conjunto de regras (<b>ruleset</b>) padrão desta</span><span style="font-family:calibri;font-size:17.3333px;"> versão do <b>Spectral</b>. O resultado da análise não
deve conter erros ou alertas.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">É recomendado que a versão 3.0.25 ou
superior do <b>software</b> livre e de código aberto Swagger Codegen (</span><a href="https://github.com/swagger-api/swagger-codegen/tree/v3.0.25" target="_blank"><span style="color:blue;font-family:calibri;font-size:17.3333px;">https://github.com/swagger-api/swagger-codegen/tree/v3.0.25</span></a><span style="font-family:calibri;font-size:17.3333px;">) seja utilizada para gerar o código
de clientes e também o código inicial de implementações das APIs a partir de
suas especificações. Recomenda-se que o código gerado seja analisado com o
intuito de identificar possíveis recursos da linguagem OpenAPI que foram
utilizados nas especificações, mas que não são adequadamente suportados pelo Swagger
Codegen e, possivelmente, por outros <b>softwares</b> que trabalham com
especificações OpenAPI. Caso isso ocorra, deve-se avaliar se não é possível
alterar as especificações para não mais fazer uso desses recursos.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Devem ser disponibilizadas implementações
de exemplo das APIs. Os dados retornados por elas não precisam ser dados reais
e nem volumosos, pois o objetivo da disponibilização é dar ao Banco Central do
Brasil, aos implementadores e aos consumidores das APIs mais um recurso para
dirimir eventuais dúvidas acerca de suas especificações e implementações.<a name="_Toc53687738"> É recomendado que o código inicial de implementações das
APIs mencionado anteriormente seja complementado de forma a constituir-se nas
implementações de exemplo.</a></span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As informações disponibilizadas nos
dicionários de dados devem ser consistentes com as especificações OpenAPI associadas.
</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Todos os <b>endpoints </b>das APIs implementados
devem ser previamente registrados no diretório de participantes. </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Todos os <b>endpoints</b> registrados
que retornem listas, caso os parâmetros sejam válidos, devem retornar a lista
associada, mesmo que seja lista vazia. Não é considerado um retorno válido o
erro 404, neste cenário, quando não houver a informação associada.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc54366391"></a><a name="_Toc54717516"><b style="font-family:calibri;font-size:17.3333px;">4.2 Versionamento</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As versões das especificações das APIs
serão tipificadas como "<b>major</b>", "<b>minor</b>", "<b>patch</b>"
e "<b>release candidate</b>" de acordo com os critérios a seguir:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - <b>major</b>: inclui novas
características da implementação, mudanças, correções a serem incorporadas e
que podem ser incompatíveis com versões anteriores, por exemplo, v1.0.0 e
v2.0.0;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - <b>minor</b>: pequenas mudanças
nos elementos já existentes, com manutenção da compatibilidade com as versões
até a <b>major</b> imediatamente anterior, por exemplo, v1.1.0 e v1.2.0;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - <b>patch</b>: esclarecimentos às
especificações <b>minor</b>, não incluem alterações funcionais, por exemplo,
v1.1.1, v1.1.2; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - <b>release candidate</b>: versões
de pré-lançamento de qualquer versão futura do tipo <b>patch</b>, <b>minor</b>
ou <b>major</b>, por exemplo, v1.0.0-rc e v1.0.0-rc2.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A Estrutura Responsável pela Governança
do <b>Open Finance</b>, de que trata o art. 44, § 1º, da Resolução Conjunta nº
1, de 2020, pode lançar novas versões das APIs.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">O Banco Central do Brasil pode definir:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - o cronograma de implantação das
novas versões das especificações das APIs e de certificação das instituições
participantes; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - a tipificação de determinadas
alterações como "<b>minor</b>" ou "<b>patch</b>"
independentemente dos critérios definidos nos incisos de I a IV desta subseção.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Alterações feitas na especificação de
uma API devem sempre ser documentadas com um novo versionamento desta especificação.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Por fim, credenciais de acesso associadas
às APIs devem ser agnósticas às suas versões.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc54717517"></a><a name="_Toc53687739"></a><a name="_Toc54366392"><b style="font-family:calibri;font-size:17.3333px;">4.3 Portal do </b></a><b style="font-family:calibri;font-size:17.3333px;">Open Finance no Brasil</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Hlk53687679"><span style="font-family:calibri;font-size:17.3333px;">O sítio
eletrônico de que trata o art. 15 da Resolução BCB nº 32, de 2020, </span></a><span style="font-family:calibri;font-size:17.3333px;">deverá conter definições e
recomendações acessórias não presentes neste manual, bem como outros artefatos
necessários à especificação, implementação e consumo das APIs do <b>Open
Finance</b>. Todas as definições e recomendações acessórias e artefatos
publicados no portal deverão estar em concordância com este e com os demais
manuais do <b>Open Finance</b>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687740"></a><a name="_Toc54366393"></a><a name="_Toc54717518"><b style="font-family:calibri;font-size:17.3333px;">4.4 Cronograma</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">O Portal do <b>Open Finance</b> deverá
listar as APIs em produção, suas versões atuais, datas em que entraram em
produção, <b>link</b> para suas especificações e lista de mudanças desde a
última publicação. Também deverá apresentar o cronograma de homologação das
APIs, indicando versão, data de divulgação, data prevista de entrada em
produção e outras informações relevantes. </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">4.5 Logs de mudanças</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Todas as versões já publicadas das
APIs devem ser listadas no Portal do <b>Open Finance</b>, juntamente com os
respectivos <b>logs</b> de mudanças e períodos em que estiveram em produção.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687741"></a><a name="_Toc54366394"></a><a name="_Toc54717519"><b style="font-family:calibri;font-size:17.3333px;">4.6 Definições acessórias</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A Estrutura Responsável pela
Governança do <b>Open Finance</b> deverá estabelecer e publicar no Portal do <b>Open
Finance</b> um guia de estilo de especificações de APIs contendo definições e
recomendações para os seguintes elementos:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - estrutura de URIs (<b>Uniform
Resource Identifiers</b>);</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - cabeçalhos HTTP;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - códigos de <b>status</b> HTTP;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - convenções de corpo de
requisições e respostas;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">V - convenções de nomenclatura;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VI - tipos de dados comuns;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VII - paginação; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VIII - estabilidade de
identificadores.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687742"></a><a name="_Toc54366395"></a><a name="_Toc54717520"><b style="font-family:calibri;font-size:17.3333px;">4.7 Processo de gerência de mudanças</b></a></p>
<p class="MsoNormal" style="margin:0cm 0cm 6pt 0.05pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A
Estrutura Responsável
pela Governança do <b>Open Finance</b> deve
estabelecer e publicar no Portal do <b>Open Finance</b> o processo que ela
adotará para gerenciar mudanças nas especificações das APIs.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">4.8 Tutoriais</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Todas as informações necessárias para
o desenvolvimento, testes e entrada em produção de aplicações ou APIs no <b>Open
Finance</b> devem estar disponíveis em tutoriais publicados na Área do
Desenvolvedor no Portal do <b>Open Finance</b>. Cada tutorial deve conter todos
os passos necessários para o completo desenvolvimento da atividade em questão,
como desenvolvimento e uso de aplicações e APIs, autenticação e autorização,
uso da <b>Sandbox</b>, aplicação de testes de conformidade e cadastramento no
diretório. Quando pertinente, devem ser fornecidos exemplos de código fonte ou
de capturas de telas, tornando o processo o mais claro possível para todos os
participantes e interessados.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">4.9 Extensibilidade</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As especificações das APIs do <b>Open
Finance</b> podem não dar acesso a todos os dados e funcionalidades que um ou
mais participantes desejam expor para os consumidores das APIs. Isso pode ser
necessário para melhor suportar casos de uso ou possibilitar inovações em
produtos e serviços financeiros. Para atender estas e outras necessidades, é
facultado aos participantes implementarem versões estendidas das APIs
inteiramente compatíveis com as especificações padrões das APIs que são:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - novos <b>endpoints</b>;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - novas operações em <b>endpoints</b>
pré-existentes;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - novos parâmetros em operações
pré-existentes, desde que opcionais; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - novas propriedades em respostas
pré-existentes.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A Estrutura Responsável pela
Governança do <b>Open Finance</b> deverá publicar no Portal do <b>Open Finance</b>
as definições e recomendações acessórias relacionadas às extensões das APIs.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Todas as extensões implementadas pelos
participantes deverão estar listadas, com sua documentação referenciada, em
seção específica no Portal do <b>Open Finance</b> e disponíveis para consumo,
observadas as regras de ressarcimento de despesas previstas na regulamentação
vigente.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687743"></a><a name="_Toc54366396"></a><a name="_Toc54717521"><b style="font-family:calibri;font-size:17.3333px;">5. Requisitos não funcionais</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Esta seção apresenta os requisitos não
funcionais que as instituições participantes devem observar na implementação
das APIs do <b>Open Finance</b>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Para auxiliar na definição de alguns
requisitos não funcionais, é necessário que cada <b>endpoint</b> seja classificado
no Portal do <b>Open Finance</b> de acordo com a sua frequência de atualização
dos dados, conforme as opções abaixo:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - alta frequência;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - média-alta frequência;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - média frequência; e </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - baixa frequência </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Os Limites de tráfego por origem,
limites operacionais e tempo de resposta (desempenho) serão definidos baseados
nessa classificação.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;line-height:107%;"><span style="line-height:107%;font-family:calibri;font-size:17.3333px;">Os <b>endpoints</b>
das APIs do tipo "Serviços", das APIs de "Segurança" (<b>Token</b>
– consumo OAuth 2.0 (FAPI), <b>Token</b> – DCR/DCM) e das APIs de "Recursos"
e de "Consentimento" devem ser considerados como de alta frequência.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687744"></a><a name="_Toc54366397"></a><a name="_Toc54717522"><b style="font-family:calibri;font-size:17.3333px;">5.1 Limites de tráfego</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.1.1 Limites por origem</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Cada <b>endpoint</b> implementado no <b>Open
Finance</b> pode ter uma restrição quanto ao tráfego a partir de determinada
origem. Em APIs do tipo "Dados Abertos" a origem é o IP de onde
partiu a requisição, em APIs autenticadas é a <b>organizationId</b> da
instituição que fez a requisição.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">No caso de uma instituição implementar
limites, eles devem respeitar os valores mínimos de Transações por Minuto (TPM).
conforme definido abaixo:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - 2.000 TPM, por <b>endpoint</b> e
por origem, em <b>endpoints</b> classificados como de alta frequência;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - 1.500 TPM, por <b>endpoint</b> e
por origem, em <b>endpoints</b> classificados como de média-alta frequência;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - 1.000 TPM, por <b>endpoint</b> e
por origem, em <b>endpoints</b> classificados como de média frequência; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - 500 TPM, por <b>endpoint</b> e
por origem, em <b>endpoints</b> classificados como de baixa frequência.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Aplicabilidade: Alguns <b>endpoints</b>
não podem ter limites de tráfego definidos por origem, como nas APIs do tipo "Serviços",
nas APIs de "Segurança", e de "Recursos" e de "Consentimento".
A informação se o limite por origem é "aplicável" ou "não aplicável"
deve estar explícito por <b>endpoint</b> no Portal do <b>Open Finance</b>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As requisições que excederem os
limites implementados deverão ser respondidas com o código de <b>status</b>
HTTP 429 (<b>Too Many Requests</b>).</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Por fim, as requisições que
ultrapassarem os limites deverão ser desprezadas no cálculo do tempo de
resposta das implementações das APIs.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.1.2 Limites globais </b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A infraestrutura das instituições
provendo APIs no <b>Open Finance</b> deve ter a capacidade de, no mínimo, atender
a 300 requisições simultâneas por segundo (TPS).</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Caso uma instituição atinja o limite
de 300 TPS, no contexto do <b>Open Finance</b>, a mesma deve ampliar sua capacidade
de infraestrutura para possibilitar um acréscimo de 150 TPS ao limite anterior.
Tal aumento deve ocorrer novamente a cada vez que o limite vigente naquela instituição
for atingido. Cada instituição deve criar monitoramento preventivo, de acordo
com critérios definidos; as evidências devem estar à disposição do Banco
Central do Brasil por um período de doze meses.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As requisições que excederem os
limites de TPS deverão ser respondidas com o código de <b>status</b> HTTP 529 (<b>Site
is overloaded</b>).</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">O Portal do <b>Open Finance</b> deverá
conter uma especificação detalhada de como TPS e gatilhos para aumento ou diminuição
da capacidade serão calculados.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;"><b>Endpoints</b> criados dentro do conceito de
extensibilidade, sejam dentro de novas APIs ou em APIs existentes, não podem
ser considerados para controle do limite global de transações simultâneas.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.2 Limites operacionais</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">É facultado às instituições participantes
que implementem um limite de acesso mensal por <b>endpoint </b>e por<b> </b>cliente.
</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Em <b>endpoints</b> que acessem
recursos ou produtos, os limites serão também considerados por recurso ou produto.
</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A contabilização dos acessos deve ser
feita por:</span></p>
<p class="MsoNormal" style="margin:0cm 0cm 6pt 0.15pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I
- mês;</span></p>
<p class="MsoNormal" style="margin:0cm 0cm 6pt 0.15pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II
- <b>endpoint</b>;</span></p>
<p class="MsoNormal" style="margin:0cm 0cm 6pt 0.15pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III
- objeto mais granular referenciado na chamada (consentimento/recurso/produto);</span></p>
<p class="MsoNormal" style="margin:0cm 0cm 6pt 0.15pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV
- cliente (CPF ou CNPJ); e</span></p>
<p class="MsoNormal" style="margin:0cm 0cm 6pt 0.15pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">V
- instituição consumidora da informação.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Por exemplo: uma instituição receptora
"A" pode acessar um <b>endpoint</b> "B", acessando o
recurso "C", de um cliente "D" da instituição transmissora "E",
no mínimo "N" vezes (ou chamadas) com sucesso por mês. </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Aplicabilidade dos limites
operacionais: todos os <b>endpoints </b>das APIs do tipo Dados Cadastrais e Transacionais
(conforme classificação por tipo),
excetuando-se os <b>endpoints</b> das APIs de Consentimento (<b>Consents</b>) e
Recursos (<b>Resources</b>). As APIs dos tipos Dados Abertos, de Serviços (como
de Iniciação de Pagamento) e de Segurança não podem ter restrições de limites
operacionais.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A implementação dos limites
operacionais é opcional pelas instituições transmissoras, mas, uma vez que
sejam implementados, devem garantir o consumo mínimo estabelecido no Portal do <b>Open
Finance</b>. É facultada à instituição a possibilidade de ampliar estes limites,
mas vedada a implementação de limites inferiores aos estabelecidos.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">O Portal do <b>Open Finance</b> deve listar
os valores mínimos de limites operacionais a serem considerados, por <b>endpoint</b>,
que devem ser iguais ou maiores que os abaixo, de acordo com a classificação de
frequência de utilização:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - 4 chamadas ao mês, para <b>endpoint</b>
classificado como de baixa frequência;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - 30 chamadas ao mês, para <b>endpoint</b>
classificados como de média frequência;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - 120 chamadas ao mês, para <b>endpoint</b>
classificados como de média-alta frequência;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - 240 chamadas ao mês, para <b>endpoint</b>
classificado como de alta frequência; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">V - 420 chamadas ao mês, para os
seguintes <b>endpoints</b> da API de Contas: "Saldos da conta" e "Limites
da conta".</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Só deverão ser contabilizadas nos
limites operacionais as requisições respondidas com código de <b>status</b>
HTTP 2XX (com sucesso), sendo
que as requisições adicionais a um <b>endpoint</b> para fins de paginação não
devem ser contabilizadas.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As requisições que excederem os
limites operacionais deverão ser respondidas com o código de <b>status</b> HTTP
423.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Todas as requisições autenticadas em <b>endpoints</b>
sujeitos ao limite operacional devem possuir o atributo <b>x-fapi-interaction-id</b>
preenchido no seu <b>header</b> pela instituição receptora de dados, que deve
ser copiado pela instituição transmissora de dados nos <b>headers</b> da
resposta. Essa definição objetiva permitir um adequado rastreamento de
divergências que podem ocorrer entre instituições transmissoras e receptoras de
dados associadas ao limite operacional.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687745"></a><a name="_Toc54366398"></a><a name="_Toc54717523"><b style="font-family:calibri;font-size:17.3333px;">5.3 Desempenho</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Deverá ser medido o tempo de resposta
de cada requisição, ou seja, o tempo transcorrido entre o recebimento de uma
requisição que não ultrapassa os limites de tráfego e o momento em que a
requisição é completamente respondida. Adicionalmente, esta medição deverá ser
feita de maneira que os tempos medidos sejam os mais próximos possíveis dos
tempos de resposta experimentados por quem fez a requisição. A medição na
instituição provedora da API deve iniciar quando a requisição é recebida pelo <b>gateway</b>
e deve terminar após o último <b>byte</b> da resposta desta requisição ser
enviado.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.3.1 Cálculo do desempenho</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Para fins do cálculo do desempenho,
deve-se considerar o valor do percentil 95 e as requisições para medir o
desempenho, que pretende minimizar impacto do aparecimento de valores extremos
(<b>outliers</b>). O valor do percentil 95 pode ser obtido da seguinte maneira:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - coleta dos dados: Seja R o
conjunto de todos os tempos de resposta de um dia, onde r<sub>i</sub> é o tempo
de resposta da i-ésima requisição. Ou seja, R={r<sub>1</sub>, r<sub>2</sub>, ...,
r<sub>n</sub>};</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - cálculo do índice do percentil
95: o índice para o percentil 95, denotado por i<sub>95</sub>, é calculado pela
fórmula i<sub>95</sub> = 0.95 ∗ n, arredondado para o número inteiro
mais próximo, e onde n representa número de requisições;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - ordenação dos dados: Ordene o
conjunto R em ordem crescente para obter o conjunto ordenado R<sub>ord</sub>={r(1),
r(2), ..., r(n)}, onde r(1) é o menor tempo de resposta e r(n) é o maior; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - obtenção do valor do percentil
95: o valor do percentil 95, denotado por <i>P<sub>95</sub></i>, é o valor no
índice <i>i<sub>95</sub></i> no conjunto ordenado <i>R<sub>ord</sub></i>. Ou
seja, <i>P<sub>95</sub> = r<sub>(i95)</sub>.</i></span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Considerando um exemplo em que um <b>endpoint</b>
recebe 10.555 requisições em um dia (ou seja, <i>n </i>= 10.555). Nesse caso, o
índice para o percentil 95 será 10.027 (<i>i<sub>95</sub></i> = [<i>0.95 * n</i>]
= [10.027,25] = 10.027). Após ordenarmos as medições do tempo de resposta em
ordem crescente (formando o conjunto <i>R<sub>ord</sub></i>), o valor do
percentil 95 (<i>P<sub>95</sub></i>) para esse dia será igual ao tempo de
resposta na posição 10.027 no conjunto ordenado <i>R<sub>ord</sub></i>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.3.2 Service Level Agreement (SLA) do
desempenho</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Neste contexto, os <b>endpoints</b>
das APIs deverão manter, diariamente, o percentil 95 do tempo de resposta em no
máximo:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - 1.500ms, em <b>endpoints</b> classificados
como de alta e média-alta frequências;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - 2.000ms, em <b>endpoints</b>
classificados como de média frequência; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - 4.000ms, em <b>endpoints</b>
classificados como de baixa frequência.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Por exemplo, em um dia que um <b>endpoint</b>
de alta frequência receba 10.000 requisições, o tempo de resposta de pelo menos
9.500 requisições deve ser inferior a 1.500ms.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Informações adicionais:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - as medições de tempo de resposta
devem ser realizadas de maneira independente para cada versão <b>major</b> dos <b>endpoints</b>
em produção; </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - devem ser consideradas as
requisições com todos os códigos de retorno possíveis, com exceção dos
associados a limites de tráfego e limites operacionais;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - esta subseção não se aplica às
APIs de "<b>Webhook</b>";</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - as instituições provedoras devem gerar
e acompanhar seus indicadores de desempenho, de maneira independente da
Plataforma de Coleta de Métricas (PCM) provida pela Estrutura Responsável pela
Governança do <b>Open Finance</b>;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">V - as instituições consumidoras das
APIs devem registrar os tempos de resposta das APIs que consomem para envio à
PCM. Nelas a medição do tempo de resposta de cada requisição deve iniciar no
momento antes da requisição ser feita e deve terminar após o último <b>byte</b>
ser recebido, antes de qualquer processamento; </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VI - o valor do tempo de resposta a
ser considerado para uma requisição é o valor reportado pelo consumidor da API;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VII - na falta de informações dos
consumidores, serão utilizadas as informações dos provedores para o cálculo do
SLA de desempenho; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VIII - a Estrutura Responsável pela
Governança do <b>Open Finance</b> deverá disponibilizar indicadores adicionais para
monitoramento e aprimoramento do ecossistema, que não terão, nesse momento, um
SLA mínimo, tais como: </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">a) percentil 95 do tempo de resposta
somente de requisições com<b> status code</b> 2XX;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">b) percentil 95 do tempo de resposta -
provedor - deve considerar todas as requisições fornecidas pelo provedor das
APIs, mesmo quando houver diferença entre as informações entre provedor e
consumidor;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">c) percentil 95 do tempo de resposta -
consumidor - deve considerar todas as requisições fornecidas pelos consumidores
das APIs, mesmo quando houver diferença entre as informações entre provedor e
consumidor;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">d) índice de paridade - percentual do número
de requisições no <b>status</b> "<b>PAIRED</b>" em relação ao total;
e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">e) média do tempo de resposta até P<sub>95</sub>
- média do tempo de resposta de todas as requisições com tempo de resposta
menores que o valor do P<sub>95</sub>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.3.3 Aferição do desempenho para fins
do processo de monitoramento</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Considerando que o Manual de
Monitoramento do <b>Open Finance</b> estabelece que o período de apuração do
desempenho é mensal, assim que o mês de referência se encerrar, a Estrutura
Responsável pela Governança do <b>Open Finance</b> deve verificar se os <b>endpoints</b>
das APIs das instituições participantes atenderam aos SLAs do desempenho
definidos na seção anterior deste manual.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Para fins do processo de
monitoramento, considera-se que um <b>endpoint</b> está em conformidade caso
tenha respeitado o SLA do desempenho em pelo menos 90% dos dias do mês de
referência, arredondando-se para o número inteiro mais próximo, desde que o valor
do P<sub>95</sub> dos demais dias não tenha sido superior ao SLA do desempenho
aumentado em 20%.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Por exemplo:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - em um mês de 30 dias, em que um <b>endpoint</b>
de alta frequência tenha apresentado valor de P<sub>95</sub> inferior a 1.500ms
em 27 dias e, nos demais dias, tenha apresentado valor de P<sub>95</sub> entre
1.500ms e 1.800ms (1.500ms * 1,2 = 1.800ms), o <b>endpoint</b> está em
conformidade para fins do processo de monitoramento naquele mês; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - em um mês de 31 dias, em que um <b>endpoint</b>
de alta frequência tenha apresentado valor de P<sub>95</sub> inferior a 1.500ms
em 28 dias e, nos demais dias, tenha apresentado, em pelo menos um dos dias,
valor de P<sub>95</sub> superior a 1.800ms (1.500ms * 1,2 = 1.800ms), o <b>endpoint</b>
não está em conformidade para fins do processo de monitoramento naquele mês.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><a name="_Toc53687746"></a><a name="_Toc54366399"></a><a name="_Toc54717524"><b style="font-family:calibri;font-size:17.3333px;">5.4 Disponibilidade</b></a></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.4.1 Cálculo da disponibilidade</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A disponibilidade dos <b>endpoints</b>
das APIs do <b>Open Finance</b> será calculada empiricamente, baseada na
monitoração de requisições válidas. Serão consideradas "requisições válidas"
as requisições que retornam <b>status code</b> da faixa 2XX, 5XX, igual a 408 ou
igual a 422. As requisições válidas podem ser divididas em "requisições válidas
com sucesso" - com <b>status code</b> na faixa 2XX ou igual a 422 - e "requisições
válidas com erro" - com <b>status code</b> na faixa 5XX ou igual a 408.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A disponibilidade pontual (t) será
calculada como a fração do total de requisições válidas que cada <b>endpoint</b>
recebe e as que ele processa com sucesso a cada intervalo de 1 minuto. Os
intervalos de minuto deverão ser calculados do segundo zero (0s:000ms) até o
segundo 59 (59s:999ms).</span></p>
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><span style="font-family:calibri;font-size:17.3333px;"><img src="https://www.bcb.gov.br/content/estabilidadefinanceira/buscanormas_especificos/2024/In_BCB_456/image001.jpg" alt="" style="margin:5px;width:695px;" /></span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Por exemplo, a disponibilidade pontual
de um <b>endpoint</b> referente ao minuto 11:34, de um determinado dia, no qual
houve um total de requisições válidas com sucesso de 255 e um total de
requisições válidas com erro de 4, é calculada da seguinte forma:</span></p>
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><span style="font-family:calibri;font-size:17.3333px;"><img src="https://www.bcb.gov.br/content/estabilidadefinanceira/buscanormas_especificos/2024/In_BCB_456/image002.jpg" alt="" style="margin:5px;width:507px;" /></span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Dessa forma, obtém-se o indicador
percentual para cada janela de tempo de 1 minuto. Cada período de 1 minuto será
classificado como "disponível" ou "indisponível". Se a "disponibilidade
pontual" da janela de tempo ficar abaixo de 95% isso indicará que ela será
considerada como "indisponível", caso contrário será "disponível".</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Períodos que não tenham requisições
válidas são considerados "indefinidos" e são desconsiderados para
cálculo da disponibilidade.</span></p>
<p class="MsoNormal" align="center" style="text-align:center;"><span style="font-family:calibri;font-size:17.3333px;"><img src="https://www.bcb.gov.br/content/estabilidadefinanceira/buscanormas_especificos/2024/In_BCB_456/image003.jpg" alt="" style="margin:5px;width:506px;" /></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A
disponibilidade diária será calculada baseada nas informações das
disponibilidades pontuais. </span></p>
<p class="MsoNormal" align="center" style="text-align:center;"><span style="font-family:calibri;font-size:17.3333px;"><img src="https://www.bcb.gov.br/content/estabilidadefinanceira/buscanormas_especificos/2024/In_BCB_456/image004.jpg" alt="" style="margin:5px;width:665px;" /></span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Por exemplo, considerando um dia em
que houve requisições válidas em 1.390 das 1.440 faixas de 1 minuto possíveis
(1 dia = 24h * 60min= 1.440 faixas de horário) para um <b>endpoint</b>
específico "x" de versão 1, e dos quais 30 períodos tiveram a
disponibilidade menor que o limite de disponibilidade definido (95%), a
Disponibilidade Diária de "x" v1 será igual a:</span></p>
<p class="MsoNormal" align="center" style="margin-bottom:6pt;text-align:center;"><span style="font-family:calibri;font-size:17.3333px;"><img src="https://www.bcb.gov.br/content/estabilidadefinanceira/buscanormas_especificos/2024/In_BCB_456/image005.jpg" alt="" style="margin:5px;width:415px;" /></span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A disponibilidade longa deverá ser
calculada diariamente como média móvel das disponibilidades dos últimos noventa
dias corridos, considerando somente os dias em que a disponibilidade diária
pode ser calculada (teve pelo menos uma disponibilidade pontual diferente de "indefinido").
Ou seja, caso nos últimos noventa dias tenhamos dois dias calculados como
indefinidos, a média deve ser calculada considerando somente as 88 disponibilidades
válidas.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">A aferição mensal deve considerar a
disponibilidade longa do último dia do mês de referência.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.4.2 SLA da disponibilidade</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Cada um dos <b>endpoints</b> das APIs categorizadas
como "Dados Abertos", "Dados Cadastrais e Transacionais", "Relatórios
e Métricas", por versão, e os <b>endpoints</b> das APIs de "Segurança"
"/<b>register</b>" e "/<b>token</b>", deverão satisfazer os
requisitos mínimos de disponibilidade abaixo: </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - disponibilidade diária
(calendário): 95%; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - disponibilidade longa (média
móvel de 90 dias), medida diariamente: 99,5%.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As APIs classificadas como "Serviços
de Iniciação de Pagamentos" seguem o definido na regulamentação do Pix.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Informações adicionais:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">I - as medições devem ser feitas todos
os dias, em todas as faixas de 1 minuto disponíveis, iniciando na primeira
faixa (00:00:00-00:00:59) e terminando na última faixa (23:59:00-23:59:59),
considerando o horário de Brasília;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">II - as medições de disponibilidade
devem ser feitas para cada versão major dos <b>endpoints</b> em produção. Por
exemplo, em períodos de convivência o <b>endpoint</b> de v1/<b>resources</b>
poderia estar disponível no mesmo período em que o <b>endpoint</b> de v2/<b>resources</b>
estaria também disponível. É importante que suas disponibilidades sejam
calculadas de maneira independente;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">III - as instituições provedoras devem
gerar e acompanhar seus indicadores de disponibilidade, de maneira independente
da Plataforma de Coleta de Métricas (PCM) provida pela Estrutura Responsável
pela Governança do <b>Open Finance</b>;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IV - o <b>status code</b> a ser
considerado para uma requisição é o valor reportado pelo consumidor da API;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">V - na falta de informações dos
consumidores, serão utilizadas as informações dos provedores para o cálculo do
SLA de disponibilidade; </span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VI - a indisponibilidade programada
não exime o cálculo da disponibilidade no período apurado;</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VII  esta subseção não se aplica às
APIs de "<b>Webhook</b>";</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">VIII - a disponibilidade de <b>endpoints</b>
que não tenham requisições válidas no período apurado será considerada "indefinida",
não estando sujeita a um SLA; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">IX - a Estrutura Responsável pela
Governança do <b>Open Finance</b> deverá disponibilizar indicadores adicionais
para monitoramento e aprimoramento do ecossistema que não terão, nesse momento,
um SLA mínimo, tais como:</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">a) Disponibilidade calculada do ponto
de vista do provedor da API - deve considerar as informações fornecidas pelo
provedor das APIs; e</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">b) Disponibilidade calculada do ponto
de vista do consumidor da API - deve considerar as informações fornecidas somente
pelos consumidores das APIs, classificadas no PCM como "<b>PAIRED</b>"
ou "<b>SINGLE</b>".</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><b style="font-family:calibri;font-size:17.3333px;">5.5 Timeout</b></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Padronização do <b>timeout</b> de
tempo de resposta do provedor e do tempo de resposta do consumidor em quinze
segundos.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">As requisições que excederem o limite
de <b>timeout</b> do provedor deverão ser respondidas com o código de <b>status</b>
HTTP 504 (<b>Gateway Timeout</b>).</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;"> </span></p>
<p class="MsoNormal" align="right" style="margin-bottom:6pt;text-align:right;"><span style="font-family:calibri;font-size:17.3333px;">Brasília, 29 de fevereiro de 2024.</span></p><span style="font-family:calibri;font-size:17.3333px;">
</span><span style="text-transform:uppercase;font-family:calibri;font-size:17.3333px;"><br clear="all">
</span><span style="font-family:calibri;font-size:17.3333px;">
</span><p class="MsoNormal"><span style="text-transform:uppercase;font-family:calibri;font-size:17.3333px;"> </span></p>
<p class="MsoNormal" align="center" style="margin-bottom:18pt;text-align:center;"><span style="text-transform:uppercase;font-family:calibri;font-size:17.3333px;">NOTA 121/2024-BCB/DENOR,
DE 28 de FEVEREIRO de 2024.</span></p>
<p class="MsoNormal" style="margin:0cm 0cm 12pt 212.65pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">Fundamenta
proposta de edição de instrução normativa que estabelece a versão 5.0 do Manual
de APIs do <i>Open Finance</i>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">Senhores Chefes do Denor
e do Deinf,</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;text-indent:70.9pt;"><span style="font-family:calibri;font-size:17.3333px;">A presente Nota
fundamenta proposta de edição de instrução normativa pelo Departamento de
Regulação do Sistema Financeiro (Denor) e pelo Departamento de Tecnologia da
Informação (Deinf), no uso da atribuição que lhes conferem o art. 23, inciso I,
alínea "a", do Regimento Interno do Banco Central do Brasil, anexo à Resolução BCB nº 340, de 21 de
setembro de 2023, com base no art. 51, inciso IX, da Resolução Conjunta nº 1,
de 4 de maio de 2020.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">2.               A respeito,
a proposta trata de edição de instrução normativa que estabelece a versão 5.0
do Manual de APIs do <i>Open Finance</i>, revogando a Instrução Normativa BCB
nº 306, de 19 de setembro de 2022, que divulga a versão 4.0 do Manual de APIs
do <i>Open Finance</i>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">3.               Convém
ressaltar que, por força
do art. 5º da Lei nº 13.874, de 20 de setembro de 2019, as propostas de edição
e de alteração de atos normativos de interesse geral de agentes econômicos ou
de usuários dos serviços
prestados, editadas por órgão ou entidade da administração pública federal,
incluídas as autarquias e as fundações públicas, devem ser precedidas da
realização de análise de impacto regulatório (AIR), que conterá informações e
dados sobre os possíveis efeitos do ato normativo para verificar a
razoabilidade do seu impacto econômico.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">4.               No entanto, vale destacar que as
alterações e os ajustes propostos não causam impactos significativos para o
conjunto de instituições participantes do <i>Open Finance</i>, por tratar-se somente
de detalhamentos em relação à forma de cálculo do tempo de resposta e da
disponibilidade dos <i>endpoints</i> das APIs do <i>Open Finance</i>. Nesse
sentido, de acordo com o art. 4º, inciso III, do referido Decreto, o ato
normativo ora proposto fica dispensado de elaboração de AIR por ser considerado
de baixo impacto.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">5.               Por fim,
considerando que essa nova versão do Manual de APIs do <i>Open Finance</i> traz
detalhamentos importantes para o processo de monitoramento do <i>Open Finance</i>,
entendemos se aplicar a hipótese de urgência justificada no expediente
administrativo, de que trata o art. 4º, parágrafo único, do Decreto nº 10.139,
de 28 de novembro de 2019, para que a instrução normativa entre em vigor em 1º
de março de 2024, na mesma data de entrada em vigor da Instrução Normativa BCB
nº 441, de 20 de dezembro de 2023, que divulga o Manual de Monitoramento do <i>Open
Finance</i>.</span></p>
<p class="MsoNormal" style="margin-bottom:6pt;text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">                            À
consideração de V.Sa.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">                            Mardilson
Fernandes Queiroz                      Aristides Andrade Cavalcante Neto<br><span style="font-family:calibri;font-size:17.3333px;text-align:justify;">                            Chefe Adjunto do Denor                                <span style="font-family:calibri;font-size:17.3333px;text-align:justify;">Chefe Adjunto do Deinf</span></span><br><br></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">                            De
acordo.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;"> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-family:calibri;font-size:17.3333px;">                           Renato
Kiyotaka Uema                                   Haroldo Jayme Martins Froes
Cruz<br><span style="font-family:calibri;font-size:17.3333px;text-align:justify;">                           Chefe do Denor                                                <span style="font-family:calibri;font-size:17.3333px;text-align:justify;">Chefe do Deinf</span></span><br></span></p>
<p class="MsoNormal"> </p>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Acesso Exclusivo para Assinantes
Cadastre-se ou faça login com sua conta do Radar Finsiders Brasil para visualizar esta regulação na íntegra, fazer download dos arquivos e ter acesso a relatórios exclusivos do mercado financeiro.