NAV
Versão: v1.0.0-rc6.1
javascript python java

Introdução

Sejam bem-vindos à área do desenvolvedor do Portal do Open Banking Brasil

Nessa área os desenvolvedores encontrarão informações para observância obrigatória de todos os participantes, sejam eles obrigatórios ou voluntários, incluindo padrões técnicos de interfaces, glossário de termos técnicos, especificações dos diferentes tipos de APIs - incluindo seu versionamento, requisitos não funcionais como SLAs e limites de tráfego de requisições, informações de desempenho e disponibilidade, FAQ com diversas orientações aos desenvolvedores, entre outros elementos necessários à implementação do Sistema Financeiro Aberto. Todas as informações foram definidas de acordo com a regulamentação vigente no País, respeitando instruções normativas e resoluções do Banco Central do Brasil e do Conselho Monetário Nacional.

Este sítio eletrônico e seu conteúdo foram criados e são mantidos pela Estrutura responsável pela Governança do Open Banking Brasil, formada por integrantes de múltiplas associações: Febraban, ABBC, ACREFI, ABBI, OCB, Abecs, Abipag, Abranet, Câmara e-net, ABCD e ABFintechs.

Notificações

Atualização das APIs no diretório

Seguindo determinação do Banco Central do Brasil, todas as instituições financeiras vinculadas à Fase 1 do Open Banking deverão especificar todas as ramificações (endpoints) de suas famílias de APIs no diretório de participantes do Open Banking. Essa atualização deverá ser feita em até 15 dias a partir da data de envio deste documento.

Na prática, as instituições deverão excluir a entrada que já existe no diretório de participantes e incluir cada uma das ramificações que entenda serem válidas para o seu próprio caso.

Tratam-se de 4 famílias de APIs, com até 20 ramificações no total. Essa atualização proporcionará mais transparência ao consumidor, que terá mais facilidade para localizar as informações das instituições. A ação também evitará distorções nas métricas de disponibilidade de interfaces, já que as instituições não deverão cadastrar endpoints relativos a dependências ou a produtos e serviços que não tenham, não ofertem ou não distribuam.

Dessa maneira, a mensagem de erro 404 não será mais exibida nestes casos. Até o dia 16 de abril de 2021, uma FAQ com as principais dúvidas será disponibilizada, assim como um manual com passo a passo para a atualização das APIs.

São Paulo, 14 de abril de 2021

Grupo de Trabalho de Infraestrutura do Open Banking Brasil

Como realizar a publicação das APIs da Fase 1 do Open Banking

Para a primeira fase do Open Banking Brasil, conhecida como Open Data, as instituições registradas no ecossistema com o papel “instituição transmissora e receptora de dados” deverão realizar a publicação das suas APIs no diretório de participantes.

O papel “instituição transmissora e receptora de dados”, abreviada por DADOS no diretório de participantes, é destinado a todas as instituições dos agrupamentos S1 e S2, em caráter obrigatório, e a qualquer outra instituição regulada pelo Banco Central do Brasil, em caráter voluntário.

Para publicar as APIs da fase 1 descritas no Portal do Desenvolvedor do Open Banking o administrador da instituição no diretório de participantes com papel “DADOS” deve seguir as instruções contidas no Guia do diretório.

Caso a publicação tenha sido realizada de forma correta os endpoints das APIs poderão ser consultados através do JSON retornado pela API de participantes do diretório: https://data.directory.openbankingbrasil.org.br/participants. O acesso a essa API é livre e seu conteúdo é atualizado a cada 15 minutos.

Qualquer dúvida em relação ao processo de cadastro deverá ser enviado ao service desk do Open Banking.

Materiais adicionais:

Comunicado atualização do diretório

FAQ Diretório atualizado

Cadastro endpoints

Padrões

Estes padrões representam a versão 1.0.0, a qual fornece uma visão alto nível dos padrões. Consulte a seção versionamento para obter mais informações sobre como as versões são gerenciadas com o padrão.

Observe que, nesta proposta, as palavras-chave DEVEM, NÃO DEVEM, NECESSÁRIAS, RECOMENDADO, PODE e OPCIONAL, devem ser interpretadas conforme descrito na RFC2119.

Princípios

Os seguintes princípios técnicos não exaustivos constituem a base para o desenvolvimento e implementação das APIs para o Open Banking no Brasil.

Princípio 1: Segurança

A adoção de mecanismos de segurança no design e implementação das APIs do Open Banking no Brasil deverá considerar os padrões aplicáveis a cada uma de suas fases, visando a proteção e a disponibilidade do ecossistema como um todo, considerando clientes, participantes e os dados específicos compartilhados em cada fase.

Princípio 2: RESTful APIs

A API irá aderir aos conceitos de RESTful API sempre que for possível e sensato.

Princípio 3: Padrões existentes

Os padrões existentes serão adotados sempre que sua aplicação for relevante/apropriada e desde que não violem nenhum dos demais princípios, com foco na experiência do desenvolvedor e do usuário, e ainda, prevendo a extensibilidade, resiliência e a evolução do Open Banking no Brasil.

Princípio 4: ISO 20022

Os payloads das APIs serão desenvolvidos utilizando como base os elementos e componentes de mensagem ISO 20022, que poderão ser modificados, caso necessário, para deixar o payload mais simples e/ou atender às características locais, tal como implementado em diferentes jurisdições.

Princípio 5: Extensibilidade

Os fluxos das APIs serão estendidos para atender a casos de uso mais complexos em futuros releases, e, portanto, esse princípio será mantido em mente durante o design, e os procedimentos serão detalhados durante a implementação.

Princípio 6: Códigos de Status

A API usará dois códigos de status que atendem a dois propósitos diferentes: (i) o HTTP status code reflete o resultado da chamada da API e (ii) um campo status em alguns resource payloads reflete o status dos resources nos casos de acesso write (p.ex. iniciação de pagamento).

Princípio 7: Identificadores únicos

Um recurso REST deverá ter um identificador exclusivo que possa ser usado para identificar o recurso alvo da API. Este identificador será usado para criar URLs que permitam endereçar recursos específicos, obedecendo aos padrões definidos nesta documentação, no item Formação e estabilidade do ID.

Princípio 8: Categorização dos requisitos de implementação

Quando um requisito estiver sendo implementado por um transmissor e/ou um receptor, uma categorização diferente será aplicada. As funcionalidades, endpoints e campos em cada recurso serão categorizados como 'Obrigatório', 'Condicional' ou 'Opcional'.

Princípio 9: Agnósticas

As APIs serão agnósticas à implementação onde elas poderão ser consumidas independente das tecnologias adotadas no ecossistema, porém com aderência aos princípios contidos nesta documentação.

Princípio 10: Idempotência

As APIs serão definidas como idempotentes para não causar uma experiência ruim ao consumidor ou aumentar os indicadores de risco falso positivo. Trata-se de recurso necessário para garantir que não haja duplicidade em caso de perda de comunicação e não deve se limitar aos verbos HTTP, devendo ser aplicado ao design completo da API.

Versionamento

O controle de versão contemplará 4 tipos de lançamento (p.ex. major, minor, patch e release candidate) e terá prazos definidos para lançamento e implementação de novas versões major, bem como suporte de versões anteriores.

No link Anexo: Guia de Versionamento, integrante desta documentação, estão documentados os casos previstos em que uma nova versão de API poderá vir a quebrar o contrato estabelecido

O versionamento terá o seguinte formato contemplando 4 tipos de lançamentos de versões: 1.12.2.rc1 - significando versão major 1, versão minor 12 , aplicação de patchs versão 2 e release candidate 1

Será definido um cronograma de novas versões dos padrões para que os participantes consigam se planejar e desenvolver novas APIs, com cada um dos lançamentos tendo um prazo pré-estabelecido para ser implementado pelos participantes, mitigando, desta forma, o risco de múltiplas versões.

Não serão feitos mais do que um lançamento de versão major em um período de 6 meses. No entanto, serão previstas exceções para atender às alterações urgentes que não podem esperar até a próxima versão principal (major). Lançamentos de versões minor e patch podem ocorrer a qualquer momento.

Lançamentos minor não podem configurar em quebra de contrato, impactar significativamente endpoints e/ou exigir manutenção crítica.

Por fim, credenciais de acesso associadas às APIs deverão ser agnósticas à versão.

Estrutura da URI

A estrutura da URI para os endpoints deve ser implementada conforme abaixo:
<host> / open-banking / <api> / <versão> / <recurso>

Os componentes desta estrutura de URI estão descritos abaixo:

A versão minor será repassada apenas no header do payload de resposta, orientando a instituição receptora sobre quais serão os dados no retorno.

Como exemplo, para realizar o consumo do método electronic-channels da API channels na versão 1, a URI ficaria com a seguinte estrutura:

<host>/open-banking/channels/v1/electronic-channels

Cabeçalhos HTTP

Cabeçalhos HTTP suportados e suas funções.

Cabeçalho de requisição

Nome do cabeçalho Descrição Obrigatório
Content-Type Representa o formato do payload de requisição, por padrão/default definido como application/json;charset UTF-8. Obrigatório para chamadas PUT e POST. Os transmissores poderão implementar tratamento para outros padrões, sendo obrigatório apenas o suporte ao padrão. Não
Accept Especifica o tipo de resposta.
Se especificado, deve ser definido como application/json, a menos que o endpoint explicitamente suporte outro formato.
Se for definido um valor não suportado pelo endpoint, será retornado o código HTTP 406. Se não especificado, o padrão será application/json.
Não
Accept-Encoding Especifica os tipos de encoding(geralmente algoritmo de compressão) que são suportados pelo cliente, com previsão de suporte ao gzip por parte dos transmissores, sendo que o padrão é a transmissão dos dados não compactados e esta orientação aplica-se aos Dados Abertos. Não
If-Modified-Since Condiciona o resultado da requisição para que o recurso só seja enviado caso tenha sido atualizado após a data fornecida. Utiliza o padrão da RFC 7232, sessão 3.3: If-Modified-Since do protocolo HTTP. Não
x-fapi-auth-date Data em que o usuário logou pela última vez com o receptor Condicional
x-fapi-customer-ip-address O endereço IP do usuário se estiver atualmente logado com o receptor Condicional
x-fapi-interaction-id Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta Não
Authorization Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado Sim
x-idempotency-key Cabeçalho HTTP personalizado. Identificador de solicitação exclusivo para suportar a idempotência Condicional
x-jws-signature Cabeçalho contendo uma assinatura JWS separada do corpo do payload Condicional
x-customer-user-agent Indica o user agent que o usuário utiliza Condicional

Cabeçalho de resposta

Nome do cabeçalho Descrição Obrigatório
Content-Encoding Cabeçalho que indica o tipo de encoding (geralmente algoritmo de compressão) que foi utilizado para envio da resposta. Não
Content-Type Representa o formato do payload de resposta. Deverá ser application/json a menos que o endpoint requisitado suporte outro formato e este formato tenha sido solicitado através do cabeçalho Accept no momento da requisição. Sim
x-v Cabeçalho que indica a versão implementada da API pela instituição financeira. Deve ser preenchido de forma completa, por exemplo: x-v : 1.0.2 Sim
Retry-After Cabeçalho que indica o tempo (em segundos) que o cliente deverá aguardar para realizar uma nova tentativa de chamada. Este cabeçalho deverá estar presente quando o código HTTP de retorno for 429 Too many requests Não
Last-Modified Informa a data e hora em que o recurso foi modificado pela última vez. Utiliza o padrão da RFC 7232, sessão 2.2: Last-Modified do protocolo HTTP. Não
x-jws-signature Cabeçalho contendo uma assinatura JWS separada do corpo do payload Condicional
x-fapi-interaction-id Um UID RFC4122 usado como um ID de correlação. O transmissor deve usar o mesmo valor recebido na requisição para o cabeçalho de resposta recebido na requisição, caso não tenha sido fornecido, deve se usar um UUID RFC4122 Não
x-rate-limit Indica o limite de requisições na API no tempo Condicional
x-rate-limit-remaining Indica o número de requisições restantes Condicional
x-rate-limit-time Informa o tempo do limite ou tempo para reset desse limite Condicional

Códigos de resposta HTTP

Os códigos de resposta HTTP devem ser utilizados conforme tabela mais abaixo. Observação: com a implementação do cadastro por endpoint no diretório de participantes e conforme orientação do regulador, as instituições participantes NÃO DEVEM cadastrar endpoints de produtos ou serviços que não ofertem. Neste caso específico - a consulta em um endpoint não cadastrado - o status code esperado na resposta é o 404 - NOT FOUND.

Códigos

Situação Código HTTP Notas POST GET DELETE
Consulta concluída com sucesso. 200 OK. Não Sim Não
Execução normal. A solicitação foi bem sucedida. 201 Created. A operação resulta na criação de um novo recurso. Sim Não Não
Operação de exclusão concluída com sucesso. 204 No Content. Não Não Sim
A resposta não foi modificada desde a última chamada 304 Not Modified Não Sim Não
A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. 400 Bad Request. A operação solicitada não será realizada. Sim Sim Sim
Cabeçalho de autenticação ausente/inválido ou token inválido. 401 Unauthorized. A operação foi recusada devido a um problema de autenticação. Sim Sim Sim
O token tem escopo incorreto ou uma política de segurança foi violada. 403 Forbidden. A operação foi recusada devido a falta de permissão para execução. Sim Sim Sim
O recurso solicitado não existe ou não foi implementado. 404 Not Found. Sim Sim Sim
O consumidor tentou acessar o recurso com um método não suportado. 405 Method Not Allowed. Sim Sim Sim
A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8. 406 Not Acceptable. Sim Sim Sim
Indica que o recurso não está mais disponível. 410 Gone. Sim Sim Sim
A operação foi recusada porque o payload está em um formato não suportado pelo endpoint. 415 Unsupported Media Type. Sim Não Não
A solicitação foi bem formada, mas não pôde ser processada devido à lógica de negócios específica da solicitação. 422 Unprocessable Entity. Se aplicável ao endpoint, espera-se que esse erro resulte em um payload de erro. Sim Sim Não
A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido. 429 Too Many Requests. A limitação é um Requisito Não Funcional. O titular dos dados deve incluir o cabeçalho Retry-After na resposta indicando quanto tempo o consumidor deve esperar antes de tentar novamente a operação. Sim Sim Sim
Ocorreu um erro no gateway da API ou no microsserviço. 500 Internal Server Error. A operação falhou. Sim Sim Sim
O serviço está indisponível no momento. 503 Service Unavailable. Sim Sim Sim
O servidor não pôde responder em tempo hábil. 504 Gateway Timeout. Retornado se ocorreu um tempo limite, mas um reenvio da solicitação original é viável (caso contrário, use 500 Internal Server Error). Sim Sim Sim

Convenções de payload

Esta seção do padrão descreve as estruturas padrões de requisição e resposta para todos os endpoints das APIs, assim como as convenções de nomenclatura para os atributos.

Estrutura de requisição

Estrutura da requisição

{
  "data": {
    "..."
  }
}

Cada requisição deve ser um objeto JSON contendo um objeto data para armazenar os dados primários da requisição.

No mesmo nível do objeto data, poderá existir um objeto meta se assim for especificado pelo endpoint. O objeto meta é usado para fornecer informações adicionais ao endpoint, como parâmetros de paginação, contagens de paginação ou outros propósitos complementares ao funcionamento da API.

A definição do conteúdo para o objeto data será definida separadamente para cada endpoint.

Estrutura de resposta

Estrutura de resposta

{
  "data": {
    "..."
  },
  "links":{
    "..."
  },
  "meta": {
    "..."
  }
}

Cada endpoint retornará um objeto JSON contendo os atributos abaixo:

A definição do conteúdo para os objetos data e meta será definida separadamente para cada endpoint.

O objeto links irá conter hypermedia (referências para recursos relacionados) para outros recursos da API requisitada.

O objeto de links sempre irá conter o atributo self que irá apontar para a URI da solicitação atual.

Estrutura de resposta de erros

{
  "errors": [
    {
        "code": "...",
        "title": "...",
        "detail": "..."
    }
  ],
  "meta":{
    "..."
  }
}

Convenções de nomenclatura de atributos

Caracteres válidos em nomes de atributos

Todos os nomes de objetos e atributos definidos nos objetos JSON de requisição e resposta devem ser nomeados seguindo o padrão camelCase, tendo seu nome composto apenas por letras (a-z, A-Z) e números (0-9).

Qualquer outro caractere não deve ser usado nos nomes dos objetos e atributos, com exceção do caractere - (hífen), que poderá ser utilizado apenas conforme descrito na seção Extensibilidade.

Estilo de nomeação de atributos

Os nomes dos objetos e atributos devem ser nomes significativos e em língua inglesa. Quando houver diferença entre inglês americano e inglês britânico no termo a ser utilizado, deverá ser utilizado o termo em inglês britânico. P.ex. Utilizar o termo Post Code (Reino Unido) ao invés de Zip Code (Estados Unidos).

Arrays devem ser nomeados no plural. Demais atributos deverão ser nomeados no singular.

Convenções de propriedade dos atributos

Tipos de dados dos atributos

Cada atributo deverá estar associado a um tipo de dado. A lista de tipos de dados válidos está definida na seção tipos de dados comuns. Se um tipo de dado personalizado é necessário para um atributo, o mesmo deverá ser classificado como uma string com uma descrição clara de como o valor da propriedade deve ser interpretado.

Atributos Obrigatórios / Opcionais

Segundo Instrução Normativa nº 34, BCB de 2020: ‘Todos os elementos que compõem as especificações das APIs (endpoints, 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’.

Os atributos obrigatórios devem estar presentes e ter um valor não nulo, seja em uma requisição ou resposta, para que payload seja considerado válido.

Os atributos condicionais podem ter uma restrição vinculada a eles, tornando-os obrigatórios conforme a situação descrita na coluna 'restrição' do dicionário de dados.

Atributos vazios / nulos

Um atributo omitido (ou seja, um atributo que não está presente no payload) será considerado equivalente a um atributo que esteja presente com o valor null.

Uma string vazia (“”) não será considerada equivalente a null.

O valor booleano false não será considerado equivalente a null. Os atributos booleanos opcionais, por definição, possuirão três valores possíveis: verdadeiro (true), falso (false) e indeterminado (null).

Na situação onde o campo a ser informado no payload seja obrigatório e a Instituição, seja consumidora no envio ou transmissora no retorno, não a possuir, deve-se implementar o valor padronizado: “NA” - Não se Aplica, com exceção dos campos declarados como ENUM que deverão ser sempre preenchidos com os valores válidos para o ENUM correspondente.

Convenções de nomenclatura

Todos os nomes devem ser autoexplicativos, sem redundância de termos e sem ambiguidade de entendimento, além de seguir o padrão Lower Camel Case (primeira letra de cada termo maiúscula, com exceção do primeiro termo, que fica todo em minúsculas e sem espaços ou pontuações entre os termos). Ex: “areaCode”.

Os nomes das estruturas (composição de atributos sobre um assunto) que podem ter mais de uma ocorrência devem sempre estar no plural.

Os nomes dos atributos devem:

Tipos de dados comuns

Propriedades

Tipo Descrição Exemplos válidos
AmountString - Uma string que representa um valor monetário.
- Um número positivo, zero ou negativo.
- Sem o símbolo da moeda.
- Com pelo menos 1 e no máximo 16 dígitos antes do ponto decimal.
- Com no mínimo 2 dígitos (mais dígitos são permitidos, porém não obrigatórios).
- Sem formatação adicional. Ex: Separador de milhar.
"1.37"
"54.85"
"3456928.98"
"-2387.02"
Boolean - Valor booleano padrão. true
false
CurrencyString - Uma string que representa a abreviação da moeda conforme especificação ISO-4217. "BRL"
"USD"
"EUR"
DateTimeString - Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format). "2020-07-21T08:30:00Z"
DurationString - Uma string que representa um período de duração conforme especificação ISO-8601. "P23DT23H"
"PT2H30M"
Enum - Uma string que representa um domínio de valores
- Todos os possíveis valores são definidos.
- Os valores devem estar em letras maiúsculas.
- Espaços em branco devem ser substituídos por _.
- Artigos e preposições devem ser removidos.
- Não devem possuir caracteres acentuados.
"PRIMEIRA_OPCAO"
"OUTRA_OPCAO_EXISTENTE"
Integer - Números inteiros. -1
0
1
RateString - Uma string que representa um valor percentual, tendo como referência que 100% é igual ao valor 1.
- Com pelo menos 1 e no máximo 16 dígitos antes do ponto decimal.
- Com no máximo 16 dígitos após o ponto decimal.
- Sem formatação adicional. Ex: Separador de milhar.
"0.01"
"0.1"
"-0.05"
"-0.98365"
"0.1023"
String - Padrão de texto UTF-8 sem restrição de conteúdo. "Uma string qualquer."
TimeString - Uma string que representa a hora conforme especificação RFC-3339,sempre com a utilização de timezone UTC(UTC time format). "00:39:57Z"
URIString - Uma string que representa URI válida. "http://www.google.com.br"
CountryCode - Código do pais de acordo com o código “alpha3” do ISO-3166. "BRA"
IbgeCode - Código IBGE de Município. A Tabela de Códigos de Municípios do IBGE apresenta a lista dos municípios brasileiros associados a um código composto de 7 dígitos, sendo os dois primeiros referentes ao código da Unidade da Federação. "3550308"
DateString - Uma string com data conforme especificação RFC-3339 "2014-03-19"

Paginação

Cada recurso de cada API pode possuir ou não paginação, caso a quantidade de registros retornados justifique a mesma. A paginação estará disponível e deverá funcionar independente se o recurso permite filtros por query ou POST. Isso é, filtros e paginação são aplicados de forma independente.

Parâmetros de Requisição

Exemplo de query com paginação

GET {uri}?page=1&page-size=25

Quando existir paginação para o recurso deverão ser utilizados os parâmetros de query abaixo para a navegação dos resultados:

Parâmetro Descrição Valor Padrão
page Número da página que está sendo requisitada (o valor da primeira página é 1). 1
page-size Quantidade total de registros por páginas. 25

Atributos de Resposta

Exemplo de paginação

{
  "data": {
    "..."
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/products-services/v1/personal-invoice-financing",
    "first": "https://api.banco.com.br/open-banking/products-services/v1/personal-invoice-financing",
    "prev": null,
    "next": null,
    "last": "https://api.banco.com.br/open-banking/products-services/v1/personal-invoice-financing"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1
  }
}

Além dos dados requisitados, as respostas paginadas também terão em sua estrutura dois objetos adicionais que incluirão parâmetros para facilitar a navegação das páginas:

O objeto links passará por revisão subsequente de modo a atender as próximas Fases do Open Banking, em especial a partir da Fase 2. No objeto links, serão retornadas hypermedia (referências para os recursos relacionados) de paginação conforme parâmetros abaixo:

Parâmetro Descrição Restrição
first A URI para requisitar a primeira página. Obrigatório se a resposta não for a primeira página.
last A URI para requisitar a última página. Obrigatório se a resposta não for a última página.
prev A URI para requisitar a página anterior. Obrigatório se a resposta não for a primeira página.
next A URI para requisitar a próxima página. Obrigatório se a resposta não for a última página.

Meta

No objeto meta, serão retornadas informações sobre o total de registros disponíveis

Parâmetro Descrição Restrição
totalRecords O número total de registros da requisição. Este atributo é obrigatório.
totalPages O número total de páginas da requisição. Este atributo é obrigatório. Se não possuir nenhum registro o valor deve ser 0.

Regras Adicionais

Formação e Estabilidade do ID

Dentro desses padrões, a serem melhor especificados a partir da Fase 2 do Open Banking no Brasil, os IDs de recursos são necessários para atender ao seguinte:

Princípios para a formação de IDs (identificadores) de recursos nas APIs

Extensibilidade

Os padrões de Open Banking podem não cobrir todas as possibilidades de objetos retornados ou APIs que os participantes desejam expor. Os participantes podem ter o desejo de realizar inovações sobre os padrões definidos oferecendo mais dados afim de atender demandas específicas de mercado. É nossa intenção que os padrões definidos não apenas permitam estas extensões como também sirvam como base para futuras alterações na própria definição dos padrões.

No entanto, é importante que um participante que esteja querendo estender as APIs não impeça um consumidor que foi projetado para consumir apenas o endpoint padrão funcione corretamente.

Para atender tanto as demandas de quem deseja estender as APIs (participantes) quanto as demandas de quem irá realizar o consumo (consumidor das APIs), foram definidos os critérios abaixo.

É possível estender os padrões nos seguintes aspectos:

ID dos participantes

Cada participantes terá um ID que representa a sua instituição. Os participantes da atual versão estão listados abaixo:

  • BBAS - Banco do Brasil
  • BBCD - Bradesco
  • BTGP - BTG Pactual
  • CAIX - Caixa Econônica Federal
  • ITAU - Itau
  • STDR - Santander
  • BRGS - Banrisul
  • BNBR - Banco do Nordeste do Brasil
  • BNDS - BNDES
  • CITI - Citibank
  • SAFR - Safra
  • BABV - Votorantim

Participantes que desejam estender os padrões devem adicionar seu prefixo para identificar todas as extensões. Campos adicionais no retorno de endpoints existentes ou em novos endpoints devem usar o prefixo do participante. O prefixo deve ser no formato exposto ao lado (4 letras) e não devem haver prefixos duplicados entre os participantes.

Nesta documentação, quando tivermos que nos referir ao prefixo do participante, o termo <PID> será utilizado.

Novas APIs

Quando a extensão for a criação de uma nova API, o participante deve adicionar seu prefixo a URI antes do nome da nova API, conforme exemplo abaixo.

Por exemplo, uma API definida pelo padrão seguirá o seguinte formato: <host> / open-banking / <api> / <versão> / <recurso>

Uma API estendida por um participante deverá estar no formato abaixo: <host> / open-banking / <PID> / <api> / <versão> / <recurso>

Para os endpoints definidos dentro da estrutura acima, os atributos dos payloads não precisam conter o prefixo do participante, pois entende-se que todos os recursos da API estendida não conflitam de nenhum modo com as definidas pelo padrão.

Novos endpoints em APIs existentes

Quando o participante desejar adicionar um novo endpoint em uma API já especificada no padrão, o participante deve incluir seu <PID> como prefixo do recurso que será implementado.

Por exemplo, assumindo a existência do endpoint abaixo para consulta das transações de uma conta: <host>/open-banking/accounts/v1/accounts/{account ID}/transactions

Se o participante deseja adicionar um novo endpoint que resume as transações por um período, então este endpoint poderia ser definido como: <host>/open-banking/accounts/v1/accounts/{account ID}/<PID>-balance-movement

Campos de retorno adicionais em um endpoint existente

Quando o participante desejar adicionar um novo campo ao payload de resposta, o atributo deverá receber o prefixo do participante seguido por um hífen <PID>-.

Se um objeto estiver sendo adicionado ao payload de resposta, apenas o nome do objeto precisa receber o prefixo. Qualquer atributo dentro do novo objeto pode ser nomeado normalmente.

Parâmetros query adicionais

Quando for adicionado um novo parâmetro de query a um endpoint existente, o novo parâmetro deve ter o prefixo <PID>-, evitando assim colisões com parâmetros já existentes.

Filtro de Dados

Opcionalmente, a entidade transmissora de dados poderá realizar filtro de dados através de query de entrada, baseado em campos que julgue relevante para a melhor experiência do cliente.
A informação de quais possibilidades estarão disponíveis (query parameter) deverá constar em documentação adicional disponibilizada pela entidade transmissora.

Extensão do versionamento

Como descrito na seção versionamento, o versionamento existe apenas no nível das APIs e não no nível dos endpoints, no entanto caso seja necessário realizar versionamento de um endpoint customizado, o participante poderá utilizar o header x-<PID>-v para que o consumidor possa especificar qual versão do endpoint está requisitando.

Glossário

Glossário

Agência (Branch)

É a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito, no exercício de atividades da instituição, não podendo ser móvel ou transitória

Adiantamento a Depositante (Unarranged Account Overdraft)

O valor que o banco libera na conta-corrente do cliente, em casos excepcionais, o valor necessário para cobrir algum saque, pagamento, débito automático ou cheque, quando o saldo disponível não é suficiente.

Bandeira (Credit Card Network)

São instituições que autorizam o uso de sua marca e de sua tecnologia por emissores e credenciadoras de estabelecimentos. Essas marcas aparecem nos cartões e nos estabelecimentos credenciados.

Cartão Múltiplo (Multiple CreditCard)

Trata-se de um único cartão que possui mais de uma função, ou seja, que pode ser utilizado como débito, crédito e para a movimentação da conta.

CBO (Cbo Code)

A Classificação Brasileira de Ocupações (CBO) é um documento que retrata a realidade das profissões do mercado de trabalho brasileiro. Foi instituída com base legal na Portaria nº 397, de 10.10.2002. Trata-se de um sistema de classificação responsável pela codificação dos títulos e conteúdos dos cargos e ocupações do mercado de trabalho brasileiro

Cheque Especial (Arranged Overdraft)

É uma operação de crédito, a exemplo do empréstimo, mas que é pré-aprovada e vinculada a uma conta de depósitos à vista. Tem o objetivo de cobrir movimentações financeiras quando não há mais saldo disponível na conta.

O banco disponibiliza ao cliente um limite de crédito rotativo que, embora apareça no extrato da conta, não é um recurso do cliente. Quando utilizado esse valor, o banco pode cobrar juros sobre o valor usado, ou seja, sobre o saldo devedor.

Fonte: link

CNAE (Cnae Code)

Trata-se de um código utilizado para identificar quais são as atividades econômicas exercidas por uma empresa. A Classificação Nacional de Atividades Econômicas - CNAE é oficialmente adotada pelo Sistema Estatístico Nacional e pelos órgãos federais gestores de registros administrativos

CNPJ (CNPJ Number)

Código gerido pela Secretaria da Receita Federal e utilizado para identificação das empresas no Cademp. O CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Composto por: os oito primeiros números à esquerda (XX. XXX. XXX) formam a "raiz" ou base, que identifica a empresa de forma única. Os quatro seguintes números de ordem das filiais da empresa. Normalmente a empresa matriz tem este campo preenchido com '0001'. Os dois últimos números correspondem ao dígito verificador. composição do CNPJ pode ser assim representada, conforme ex. '50.685.362/0001-35'.

Código Compe (compeCode)

O Compe (Sistema de Compensação de Cheques e Outros Papéis) é um sistema que identifica e processa as compensações bancárias. Ele é representado por um código de três dígitos que serve como identificador de bancos, sendo assim, cada instituição bancária possui um número exclusivo.

Código Ocupação Receita Federal – Receita Federal Code

Código da atividade profissional relacionada com a principal fonte pagadora dos seus rendimentos, assim entendida a que pagou maior rendimento independentemente de escolaridade ou de formação acadêmica

Fonte: link

Conta Individual (Sole Account)

Tipo de conta que comporta apenas um titular.

Conta Conjunta Não-solidária (Joint Account And)

Tipo de conta que comporta mais de um titular, em que os titulares dependem da autorização de “pelo menos” um diferente titular para realização de movimentações em contas.

Conta Conjunta Solidária (Joint Account Or)

Tipo de conta que comporta mais de um titular, tendo todos os titulares livre movimentação sem que seja exigida a autorização de outros titulares.

Conta de Depósito à Vista (Current Account)

Conhecida popularmente pelo nome de conta corrente. É a maneira mais comum de manter dinheiro em uma instituição financeira. Funciona como um cofre, em que o cliente deposita seu dinheiro e pode ter acesso a serviços como pagamento de contas, saques, transferências, emissão de cheques e realização de compras com cartão de débito, entre outros. Para guardar o dinheiro e oferecer serviços como os citados, a instituição financeira pode cobrar tarifas, mas o cliente é quem escolhe se prefere pagar uma tarifa individualizada por serviço que utilizar ou uma tarifa única que dá direito a um pacote de serviços.

Conta de Pagamento Pós-paga (Credit Card)

Referente a cartão de crédito. Instrumento de pagamento que possibilita a aquisição de produtos e serviços com liquidação futura, de acordo com requisitos predeterminados, tais como limite de crédito e validade. O pagamento do valor correspondente ao produto ou ao serviço adquirido será efetuado ao emissor do cartão de crédito em data previamente acordada.

Conta de Pagamento Pré-paga (Prepaid Payment Account)

Destinada à execução de transações de pagamento em moeda eletrônica realizadas com base em fundos denominados em reais previamente aportados.

Conta de Poupança (Savings Account)

A conta de depósitos de poupança, popularmente conhecida como conta poupança, conta de poupança ou ainda caderneta de poupança, é um tipo de investimento criado com o objetivo de estimular a economia popular. Assim, para abrir e manter uma conta de poupança, o cliente não paga tarifas, não paga imposto de renda sobre o dinheiro aplicado e ainda pode depositar pequenos valores, que passam a gerar rendimentos mensalmente. Se um valor depositado na conta de poupança não for mantido aplicado por pelo menos um mês, isto é, se for resgatado antes, não ocorrerá remuneração desse dinheiro.

Correspondente Bancário (Banking Agent)

Empresas, integrantes ou não do Sistema Financeiro Nacional, contratadas por instituições financeiras e demais instituições autorizadas a funcionar pelo Banco Central do Brasil para a prestação de serviços de atendimento aos clientes e usuários dessas instituições. Os correspondentes mais conhecidos são as lotéricas e o banco postal.

CPF - Cadastro de Pessoa Física (CPF Number)

O CPF é o Cadastro de Pessoa Física. Ele é um documento emitido pela Receita Federal e serve para identificar os contribuintes. O CPF é uma numeração com 11 dígitos, que só mudam por decisão judicial

Crédito (Credit)

É um termo geral, utilizado para nomear as diferentes maneiras com que bancos, financeiras e outras instituições emprestam dinheiro a seus clientes. Ou seja, quando essas instituições emprestam dinheiro para alguém ou financiam alguma compra de uma pessoa, elas estão concedendo um crédito. Exemplo de uso: Em uma operação de crédito, quem empresta o dinheiro é chamado credor, e quem toma o dinheiro emprestado é chamado devedor.

Fonte: link

Crédito Rotativo (Overdraft)

É um tipo de empréstimo que os bancos concedem para os clientes terem a possibilidade de não pagar, na data do vencimento, o valor total da fatura do cartão de crédito. Isto é, por causa do crédito rotativo, é possível que o cliente pague, no dia do vencimento, qualquer valor entre o pagamento mínimo e o total da fatura. A diferença entre o valor total que deveria ter sido pago e o valor que o cliente efetivamente pagou na data do vencimento é financiada pelo banco e será incluída, acrescida de juros, na fatura do mês seguinte. Quando o cliente não paga o total da fatura, é como se ele estivesse automaticamente pegando emprestado o valor que ele deixou de pagar.

Custo Efetivo Total (CET)

Custo Efetivo Total. Corresponde a todos os encargos e despesas incidentes nas operações de crédito e de arrendamento mercantil financeiro, contratadas ou ofertadas a pessoas físicas, microempresas ou empresas de pequeno porte. Deve ser informado pelas instituições financeiras e pelas sociedades de arrendamento mercantil antes da contratação de operações de crédito e de arrendamento mercantil e também em qualquer outro momento, a pedido do cliente. Também deve constar dos informes publicitários das instituições quando forem veiculadas ofertas específicas (com divulgação da taxa de juros cobrada, do valor das prestações, etc).

Fonte: Resolução 3.517, de 6/12/2007. link

Débito (Debit)

De uma forma geral, significa dívida. Exemplo de uso: Estou em débito com o Fernando, devo R$50 a ele. Ver também: crédito, credor, devedor, dívida.

Débito (no extrato) Em um extrato bancário, os débitos, marcados com a letra “D” ao lado do valor registrado, informam as saídas de dinheiro na conta-corrente. Exemplo de uso: Fiz uma compra com a função débito do cartão e apareceu o valor da compra, com um “D”, no extrato da minha conta, diminuindo o saldo.

Fonte: link

Débito Automático (Direct Debit)

Débitos autorizados pelo titular de conta de depósitos ou de conta de pagamento mantidas nas instituições mencionadas

Direito Creditório Descontado (Invoice Financing)

É o direito de receber dinheiro ou títulos, sejam eles oriundos de operações financeiras, comerciais, imobiliárias ou mesmo de ativos financeiros e investimentos. Esta opção abrange tanto pessoas físicas quanto entidades. Normalmente, ele “existe” na forma de um título.

Dependência (Branch)

Dependência de instituições financeiras e demais instituições, autorizadas a funcionar pelo Banco Central do Brasil, destinada à prática das atividades para as quais a instituição esteja regularmente habilitada. (Agência é a dependência destinada ao atendimento aos clientes e ao público em geral no exercício de atividades da instituição, não podendo ser móvel ou transitória)

Empréstimo (Loan)

É o mecanismo utilizado para ter disponível, no presente, uma quantia que só se conseguiria alcançar no futuro, fazendo poupança. O valor emprestado, mais os juros e encargos cobrados pela instituição financeira, vira uma dívida, que deverá ser paga na forma e no prazo combinados (valor e quantidade de parcelas, por exemplo). No empréstimo, o valor emprestado não tem destinação específica, isto é, a pessoa pode utilizar o dinheiro que pegou emprestado onde e como quiser.

Empréstimo Cartão Consignado (Payroll Loan)

É um tipo de operação de crédito contratada no Cartão de Crédito, na qual o pagamento das compras do titular são descontadas diretamente em folha ou benefício do INSS

Encargo (Charge)

As instituições financeiras e as sociedades de arrendamento mercantil podem cobrar de seus clientes, no caso de atraso no pagamento ou na liquidação de obrigações, exclusivamente os seguintes encargos: I - juros remuneratórios, por dia de atraso, sobre a parcela vencida; II - multa, nos termos da legislação em vigor; e III - juros de mora, nos termos da legislação em vigor.

Fonte: link

Ente Consignante (CnpjConsignee)

É a empresa pública ou privada que mantém convênio com entidades Consignatárias afim de descontar no contracheque de seus funcionários os valores mensais referente as operações financeiras contratadas pelos mesmos obedecendo a regra da margem consignável.

Os entes consignantes podem ser :

Fatura (Bill)

Fatura é o documento através do qual o emissor realiza a prestação de contas ao portador titular. Nos meses em que ocorrer movimentação, o emissor do cartão de crédito enviará a Fatura discriminando as respectivas transações do período.

Financiamento (Financing)

Parcelamento. Compra parcelada. Compra a prazo. É um crédito que a pessoa obtém para comprar um bem, como uma casa, um carro, um eletrodoméstico. O pagamento do bem é feito de forma parcelada por meio de carnês, boletos de cobrança, débitos em conta corrente, cartão de crédito, cheques etc. O financiamento pode incluir custos como juros, tarifas, impostos, entre outros encargos.

Garantia (Warranty)

Ativo que é entregue pelo outorgante da garantia para assegurar uma obrigação à parte que toma a garantia. Os acordos de garantia podem tomar diversas formas legais; as garantias podem ser obtidas por transferência de títulos ou penhora.

Fonte: link

Identificação (Identification)

Agrupador das informações relativas a Identificação ou seja a ação e o efeito de identificar de forma única a pessoa através de seus dados cadastrais

Identificador Padronizado da Operação de Crédito – Ipoc Code

O identificador padronizado da operação de crédito é atribuído a todas as operações de crédito informadas ao SCR (Sistema de Informações de Crédito do Banco Central do Brasil – SCR é um instrumento de registro e consulta de informações sobre as operações de crédito, como empréstimos, financiamentos, avais ou fianças, realizadas entre as Instituições Financeiras e seus Clientes).

O IPOC será formado pela concatenação das informações contidas nos campos do SCR abaixo discriminados, respeitando-se a seguinte ordem:

  1. CNPJ da instituição
  2. Modalidade da operação
  3. Tipo do cliente
  4. Código do cliente
  5. Código do contrato

Fonte: link

Indexador (Indexer)

É o termo utilizado para se referir aos índices usados como base para corrigir os valores monetários de um determinado ativo. Os índices mais utilizados são IPCA, INPC, IGP-M, CDI, Taxa Selic.

Instituição Financeira (Company)

Instituições que prestam serviços financeiros e são autorizadas a funcionar pelo Banco Central do Brasil.

Limite Flexível (Flexible Limit)

Geralmente esses cartões não possuem limite oculto inferior a R$ 50 mil, ou seja, é o mesmo que sem limite pré-estabelecido de despesas. Pois são voltados para consumidores de alto poder aquisitivo, sendo considerado um cartão de crédito diferenciado, pois permite ao portador comprar o que quiser.

Marca (Brand)

A marca é em essência uma promessa da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.

MCC (Merchant Category Code)

O MCC ou o código da categoria do estabelecimento comercial. Os MCCs são agrupados segundo suas similaridades. O MCC é usado para classificar o negócio pelo tipo fornecido de bens ou serviços. Os MCCs são atribuídos por tipo de comerciante (por exemplo, um para hotéis, um para lojas de materiais de escritório, etc.) ou por nome de comerciante (por exemplo, 3000 para a United Airlines).

Mês de Referência (Reference Month)

O mês de referência será tratado como “M-1”.

Nome Civil Completo (Civil Name)

Nome civil completo da pessoa natural é aquele atribuído à pessoa natural desde o registro de seu nascimento, com o qual será identificada por toda a sua vida, bem como após a sua morte. Trata-se de um Direito fundamental da pessoa natural

Nome Social (Social Name)

O nome social é definido como a adoção/ adequação do senso de identificação do sujeito referenciando o nome que o representa (Decreto Nº 51.180, de 14 de janeiro de 2010), evitando a exposição desnecessária do indivíduo, o constrangimento de ser tratado de uma forma que não condiz com sua condição humana, psicológica, moral, intelectual, emocional e que não o representa. Tem por objetivo o reconhecimento social e individual segundo o Art. 16 do Código Civil, toda pessoa tem direito ao nome, nele compreendidos o prenome e o sobrenome.

Pacote de Serviços (Service Bundles)

Cesta de serviços. É uma combinação de diferentes quantidades de serviços bancários (saques, extratos, transferências, cheques e outros) que o cliente pode usar por mês. Antes da contratação de um pacote de serviços, é importante verificar quais os serviços que são efetivamente usados ao longo do mês e se o custo desses serviços, cobrados isoladamente, não é menor que o do pacote de serviços.

Pagador (Payer)

É a pessoa ou a empresa que deve pagar o valor cobrado em um boleto bancário, normalmente por ter feito uma compra, um financiamento ou por estar pagando por um serviço, como uma mensalidade escolar, por exemplo. O banco recebe o pagamento feito pelo sacado e transfere o valor pago para a conta do beneficiário. No boleto, o campo “pagador” costuma trazer outras informações além do nome do pagador, como o seu endereço. Exemplo de uso: Ao receber um boleto para pagar, a pessoa deve sempre conferir se seus dados estão corretos no campo “pagador”. Se houver algum erro, ela deve procurar o banco que emitiu o boleto

Fonte: link

Pagamento Autorizado (Authorised Payment)

São transações a crédito ou débito que ainda não foram registradas no extrato, mas que a instituição possui autorização do cliente para realizar o débito.

Fonte: link

Posto de Atendimento Bancário - PAB (Branch)

São as dependências de bancos múltiplos com carteira comercial, instaladas em recinto interno de entidade da administração pública ou de empresa privada e destinadas a prestar todos os serviços para os quais a instituição esteja regularmente habilitada de exclusivo interesse do respectivo governo e de seus funcionários, quando instalados em entidade de administração pública, ou da respectiva empresa, de seus empregados e administradores, quando instalados em dependências de empresa privada.

Posto de Atendimento Eletrônico – PAE (Branch)

O Posto de Atendimento Bancário Eletrônico, Fixo ou Móvel (PAE), é uma extensão automatizada de dependências bancárias, que pode funcionar até 24 (vinte e quatro) horas por dia, ligada à central de controle e processamento.

Prestação Regular (Instalment)

Refere-se a comprar um produto ou serviço de forma parcelada e assim dividir o pagamento em partes, em prestações a serem pagas ao longo de um período de tempo em intervalos regulares, p.ex. parcelas mensais, onde o vencimento acontecerá regularmente todo dia 10 de cada mês

Procurador (Procurator)

Pessoa autorizada por procuração para dirigir os negócios de outrem ou agir como seu agente, representante, substituto ou advogado.

Qualificação (Qualification)

Considera-se qualificação as informações que permitam as instituições apreciar, avaliar, caracterizar e classificar o cliente com a finalidade de conhecer o seu perfil de risco e sua capacidade econômico-financeira

Razão Social (Company Name)

A razão social é o nome de registro de uma empresa junto aos órgãos do governo e cartório e é o que vai constar em contratos, escrituras, documentos legais, notas fiscais etc. Ela é criada junto com o CNPJ e também é chamada de Denominação social – exatamente por ser, na prática, o nome da pessoa jurídica

Recebedor (Payee)

Pessoa natural ou jurídica, destinatário final dos recursos de uma transação de pagamento

Fonte: link

Relacionamento (Financial Relation)

Considera-se relacionamento as informações que permitam conhecer desde quando a pessoa consultada é cliente da instituição, bem como um indicador dos produtos e serviços que ela consome atualmente e seus representantes

Nome Civil completo da Pessoa Natural que represente uma entidade ou uma empresa e é nomeado em seu ato constitutivo, ou seja, no contrato social ou estatuto social

Saldo (Account Balance)

Quantia que representa o excedente do total de créditos e do total de débitos de uma conta.

Saldo Bloqueado (Cash Blocked)

É um valor que o banco informa estar separado na conta-corrente para o pagamento, ao fim do dia, de alguma obrigação que tem vencimento naquele dia.

Exemplo de uso:

Fonte: link

Saldo Devedor (Outstanding Balance)

Corresponde ao valor que falta ser pago de uma dívida. Ao longo do tempo, os juros fazem o saldo devedor crescer, enquanto as amortizações pagas pelo devedor fazem o saldo devedor diminuir. O saldo devedor pode vir tanto de um empréstimo ou financiamento quanto de um pagamento inferior ao valor total de uma fatura de cartão de crédito. Ou ainda, em conta-corrente, o que significa que o cliente está “no vermelho” ou “no negativo”, isto é, entrou no limite de crédito do cheque especial ou utilizou o adiantamento a depositantes.

Saldo Disponível (Cash Amount)

É o valor total à disposição do cliente em sua conta-corrente, que inclui tanto o dinheiro que ele tem depositado nela quanto o limite de cheque especial pré-aprovado pelo banco. 43 Exemplo de uso: Ao consultar o extrato bancário, para saber quanto dinheiro seu de fato tem depositado em conta, o cliente não pode considerar o saldo disponível.

Fonte: link

Sexo (Sex)

“Conjunto de características anatomofisiológicas que distinguem o homem e a mulher: Sexo masculino; sexo feminino”. No caso de não ser feminino nem masculino é classificado como outros.

Sistema de Amortização Constante (SAC)

É aquele em que o valor da amortização permanece igual até o final. Os juros cobrados sobre o parcelamento não entram nesta conta.

Sistema de Amortização Misto (SAM)

Cada prestação (pagamento) é a média aritmética das prestações respectivas no Sistemas Price e no Sistema de Amortização Constante (SAC)

Sistema Francês de Amortização (Price)

As parcelas são fixas do início ao fim do contrato. Ou seja, todas as parcelas terão o mesmo valor, desde a primeira até a última. Nos primeiros pagamentos, a maior parte do valor da prestação corresponde aos juros. Ao longo do tempo, a taxa de juros vai decrescendo. Como o valor da prestação é fixo, com o passar das parcelas, o valor de amortização vai aumentando.

Tarifa (Fee)

A Resolução 3.919, de 25/11/2010, classifica em quatro modalidades os tipos de serviços prestados às pessoas físicas:

  1. serviços essenciais – não podem ser cobrados;
  2. serviços prioritários – relacionados a contas de depósitos, transferências de recursos, operações de crédito e de arrendamento mercantil, cartão de crédito básico e cadastro, somente podendo ser cobrados os serviços constantes da Lista de Serviços da Tabela I anexa à (Resolução CMN 3.919, de 2010, devendo ainda ser observados a padronização, as siglas e os fatos geradores da cobrança, também estabelecidos por meio da citada Tabela I;
  3. serviços especiais – legislação e regulamentação específicas definem as tarifas e as condições em que são aplicáveis, a exemplo dos serviços referentes ao crédito rural, ao Sistema Financeiro da Habitação (SFH), ao Fundo de Garantia do Tempo de Serviço (FGTS), ao Fundo PIS/PASEP, às chamadas contas-salário, e às operações de microcrédito de que trata a Resolução 4.000, de 2011;
  4. serviços diferenciados – podem ser cobrados desde que explicitadas ao cliente ou ao usuário as condições de utilização e de pagamento

Fonte: link

Taxa Efetiva (EffectiveTax)

É a taxa de juros em que a unidade referencial coincide com a unidade de tempo da capitalização. Como as unidades de medida de tempo da taxa de juros e dos períodos de capitalização são iguais, usa-se exemplos simples como 1% ao mês, 60% ao ano.

Taxa nominal (NominalTax)

É uma taxa de juros em que a unidade referencial não coincide com a unidade de tempo da capitalização. Ela é sempre fornecida em termos anuais, e seus períodos de capitalização podem ser diários, mensais, trimestrais ou semestrais.

Taxa Referencial – TR (Referential Rate)

É a taxa de juros de referência. É uma taxa calculada pelo Banco Central do Brasil e utilizada para determinar o rendimento de investimentos, como a caderneta de poupança e a correção de financiamentos imobiliários.

Terminais de Autoatendimento Compartilhados (Shared Automatic Teller Machine)

É o compartilhamento dos terminais de autoatendimento (ATM - dispositivo eletromecânico que permite aos usuários, geralmente usando cartões de plástico legíveis em máquina, a realização de um ou mais tipos de operações, tais como saques, depósitos, emissão de extratos e saldos, realização de pagamentos de contas e títulos, transferência de fundos e outro) para aumentar a eficiência do sistema de pagamento de varejo.

Transação Agendada (Scheduled Payment)

O usuário poderá agendar uma transação de DOC, TED, PIX ou boleto bancário para uma determinada data futura

Fontes: link 1 e link 2

Transações Realizadas (Completed Transaction)

Operações segmentadas efetuadas por tipo de acesso físico (agências e postos tradicionais, caixas de autoatendimento e correspondentes bancários) ou remoto (home e office banking, call centers, smartphones e PDAs) e por tipo de transações( Bloqueto de cobrança e convênios, depósitos, ordem de transferência de crédito, empréstimos e financiamentos, saques, outras transações financeiras, consultas a extratos e saldos e outras transações não financeiras)

Fontes: link 1 e link 2

Unidade Administrativa Desmembrada (UAD) - (Branch)

É a dependência destinada à execução de atividades administrativas da instituição, tal como atividades contábeis e administrativas de natureza interna, desde que tal unidade esteja instalada no mesmo Município da sede do grupo financeiro, ou de uma agência da instituição e é vedado o atendimento ao público.

Segurança

Introdução - Segurança

Esta seção tem como finalidade auxiliar na auto avaliação aos cumprimentos dos requisitos de segurança da informação relacionados a autorização e autenticação de APIs e End-Users, emissão de certificados digitais e requisitos para o onboarding no Diretório de participantes para as Instituições participantes do Open Banking.

As instituições participantes do Open Banking possuem a obrigação de acompanhar a edição e a revogação de eventuais normas com impacto no tema de forma a estar permanentemente em dia com as determinações legais. Compõem, de forma não exaustiva, o rol de atos normativos cuja observância é essencial pelas instituições participantes do Open Banking:

Normativa
Resolução Conjunta CMN/BCB nº 1, de 2020
Resolução CMN nº 4.658, de 2018
Circular BCB nº 3.909, de 2018
Resolução BCB nº 37, de 4 de Novembro de 2020
Resolução BCB n° 32 de 29/10/2020
Lei Geral de Proteção de Dados Pessoais (LGPD - Lei nº 13.709, de 2018)

Estas especificações baseiam-se, referenciam, e complementam, quando aplicável, os seguintes documentos:

Referência
BCP 195/RFC 7525
Owasp API Top 10
Sans Top 25 Software Errors
CWE Top 25 Software Weaknesses

Além desse guia, foi elaborado um checklist para auxiliar os participantes do Open Banking a alcançar um nível adequado de Segurança da Informação, esse checklist pode ser baixado em formato Word ou Excel a seguir.

Download Autoavaliação dos requisitos de SI - 1.0.docx
Download Autoavaliação dos requisitos de SI - 1.0.xlsx

Visão geral

As APIs de Open Banking estão dividas em dois escopos:

Segue, a continuação, um overview das camadas de segurança básicas para atender os contextos Open-data:

Camada Descrição Explicação
Física Firewall Equipamentos e produtos como filtros, proxys e firewalls direcionados ao controle e segurança da rede física.
Transporte HTTP - TLS 1.2 Protocolo de criptografia que fornece segurança na comunicação sobre a rede física.
Gestão API Gateway / Manager Gateway e Manager para gerenciar a publicação da API com controles de throttling, quotas e outros.

Perfil de segurança

Sobre os padrões de perfil de segurança de API.

É necessário que os participantes do Open Banking adotem padrões de autenticação e autorização para as APIs e End-Users, utilizando frameworks e mecanismos aprovados pelo mercado, garantindo assim, a integridade, a confidencialidade e a disponibilidade dos dados.

Conjunto de referências normativas adotadas pelo Open Banking:

Referência
FAPI-RW - Financial-grade API - Part 2: Read and Write API Security Profile
CIBA (opcional) - OpenID Connect Client Initiated Backchannel Authentication Flow - Core 1.0
JSON - The JavaScript Object Notation (JSON) Data Interchange Format
JWT - JSON Web Token (JWT)
JWS - JSON Web Signature
MTLS - OAuth 2.0 Mutual TLS Client, Authentication and Certificate Bound, Access Tokens
OAUTH2 - The OAuth 2.0 Authorization Framework
OIDC - OpenID Connect Core 1.0 incorporating errata set 1
RFC7009 - OAuth 2.0 Token Revocation
RFC7662 - OAuth 2.0 Token Introspection
RFC6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage
RFC7591 - OAuth 2.0 Dynamic Client Registration Protocol

Para melhor entendimento do FAPI-Read and Write API Profile e do CIBA-Financial-grade API: Client Initiated Backchannel Authentication Profile, é preciso ter conhecimento sobre OAuth2 e OpenID Connect.

OAuth 2.0

OAuth 2.0 é um framework de autorização que habilita um aplicativo a obter acesso limitado para um serviço de terceiro, introduzindo uma camada de autorização e segmentando as funções do client. Ao invés de utilizar credenciais fornecidas pelo proprietário do recurso, o client recebe um Access Token, contendo o escopo do acesso, tempo de vida, entre outros atributos. Os Access Tokens são emitidos para clients terceiros por um servidor de autorização com a aprovação do proprietário do recurso.

O OAuth 2.0, define 4 papéis.

Tokens

O OAuth 2.0 faz o uso de diversos tokens, entre eles, o access token, refresh token e Authorization "code".

É necessário a implementação de um endpoint adicional no Authorization Server que possibilita a revogação do Access Token e do Refresh Token. Um request de revogação invalidará um ou mais Tokens (se aplicável), baseados na mesma concessão de acesso, conforme [RFC 7009].
Também será adotado o OAuth Token Introspection que define um método para um recurso protegido consultar um Authorization Server sobre o estado e os metadados de um Token, conforme [RFC 7662].
Devido a ampla aplicação do uso do OAuth 2.0, as melhores práticas de segurança do OAuth 2.0 estão em constate atualização e podem ser consultadas neste endereço https://tools.ietf.org/html/draft-ietf-oauth-security-topics-16.

Início do fluxo de uma API com a obtenção de um Access Token.

Diagrama – Obtendo um Access Token.

  1. Estabelece conexão TLS 1.2 entre o usuário e o client.
  2. Estabelece conexão mTLS 1.2 entre o client e o Authorization Server.
  3. Efetua um POST com as credenciais de autenticação do client e o escopo da solicitação.
  4. Valida a autenticação de credenciais do client, o escopo e o certificado SSL.
  5. Devolve o Access Token com a mensagem HTTP 200 (OK).
  6. Estabelece conexão mTLS 1.2 entre o Client e o Resource Server.
  7. Efetua um POST com o Access Token e o escopo.
  8. Valida o Access Token, o escopo e o certificado.
  9. Resposta com a mensagem HTTP 201 com o ID da transação.
  10. Início do Hybrid Flow.

OpenID Connect (OIDC)

O OpenID Connect é uma camada de identidade sobre o protocolo OAuth 2.0, que permite a identificação de um usuário final com base na autenticação realizada por um Authorization Server. OpenID Connect permite uma grande variedade de tipos de clients, sendo, clients Web, clients móveis e JavaScript, oferecendo suporte a recursos opcionais, como criptografia de dados de identidade, descoberta de provedores de OpenID e gerenciamento de sessão.
Existem três papéis envolvendo uma solução de OIDC:

ID Token

O OIDC utiliza o authorization code, access token e refresh token descrito na seção anterior sobre OAuth e define um outro tipo de Token, o ID Token.

{"iss": "http://YOUR_DOMAIN/",
"sub": "xpto|123456",
"aud": "YOUR_CLIENT_ID",
"exp": "1311281970",
"iat": "1311280970",
"id": "1234567"}

UserInfo Endpoint: Retorna claims sobre um usuário autenticado. Chamar o endpoint requer um Access Token e as claims retornadas são regidos pelo Access Token.
Exemplo de resposta bem-sucedida contendo um ID Token assinado:

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{"access_token": "SlAV32hkKG",
"token_type": "Bearer",
"refresh_token": "8xLOxBtZp8",
"expires_in": "3600",
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"}

JWT

O formato JWT (JSON Web Token) é projetado para transmitir claims entre duas partes. O JWT consiste em um Header, um payload e uma assinatura. O cabeçalho do ID Token contém informações sobre o tipo de objeto (JWT) e o algoritmo de assinatura utilizado para proteger a integridade dos claims do payload. O algoritmo de assinatura exigido é o PS256 (RSASSA-PSS utilizando SHA-256 e MGF1 com SHA-256). A seção do payload contém as claims sobre um usuário e o evento de autenticação. A seção de assinatura contém uma assinatura digital com base no payload do ID Token e uma chave secreta conhecida pelo provedor OpenID.

O JWT é formado por três seções: Header, Payload e Signature.
O Header contém somente a informação tipo e algoritmo:

{"typ": "JWT",
"alg": " PS256"}

Payload

O Payload é um objeto JSON com as Claims da entidade tratada, normalmente o usuário autenticado.
Claims são informações afirmadas sobre um sujeito, por exemplo um ID Token, pode conter uma claim chamada name que afirma que o usuário autenticado é quem diz ser. Em um JWT uma claim aparece como um par nome/valor em que o nome é sempre uma string e o valor pode conter qualquer conteúdo JSON. Essas claims podem ser de 3 tipos:

Reserved claims: São claims definidas pela especificação do JWT e contém atributos não obrigatórios (mais recomendados) que são usados na validação do token pelos protocolos de segurança das APIs. É possível verificar a lista completa de Reserved Claims em [IANA JSON Web Token Claims Registry].

{"sub": "Subject, entidade à quem o token pertence, normalmente o ID do usuário",
"iss": "Issuer, emissor do token",
"exp": "Expiration, timestamp de quando o token irá expirar",
"iat": "Issued at, timestamp de quando o token foi criado",
"aud": "Audience, destinatário do token, representa a aplicação que irá usá-lo"}

Public claims: atributos utilizados nas aplicações. Normalmente armazenamos as informações do usuário autenticado na aplicação.

{"name": "Joe",
"roles": "Administrator",
"permissions": "Full"}

Private claims: são claims personalizadas e contém atributos definidos para compartilhar informações entre aplicações.

{"sub": "1234567890",
"name": "Jose Doe"
"admin": "true"}

Conjunto de claims para um ID Token do Open Banking:

{"iss": "Emissor do token",
"sub": "Identificador único do subject",
"openbanking_intent_id": "Intent ID da solicitação",
"aud": "Público alvo para o qual o ID Token é destinado (deve incluir o Client ID)",
"exp": "Data/hora de expiração do token",
"iat": "Data/hora de emissão do token",
"auth_time": "Data/hora de autenticação do End-user",
"nonce": "Valor string que associa uma sessão do cliente com um ID Token usado para ajudar na mitigação de ataques de replay",
"acr": "Authentication Context Class Reference",
"amr": "Authentication Methods References",
"azp": "Authorized party",
"s_hash": "State hash value",
"at_hash": "Access Token hash value",
"c_hash": "Code hash value"}

Assinatura

A assinatura é o header e o payload criptografados com um secret.

PS256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)

Para obter o token JWT, as três seções header (vermelho), payload (roxo) e signature (azul) são codificadas com Base64-URL e unidas por pontos.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJz
dWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4g
RG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSM
eKKF2QT4fwpMeJf36POk6yJV_adQssw5c

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. -> Header
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ. -> Payload
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c -> Signature

Este token JWT deve ser enviado no cabeçalho Authentication HTTP usando o esquema Bearer. O conteúdo do cabeçalho deve seguir este formato:

Authorization: Bearer

Fluxo OpenID Connect (OIDC)

O OpenID Connect define os seguintes fluxos:

Diagrama - Fluxo Hybrid Flow

  1. Usuário acessa o aplicativo e faz requisições ao Client.
  2. Client redireciona a requisição de autenticação ao Authorization Server.
  3. O Authorization Server interage com o usuário com a requisição de autenticação e o consentimento sobre o escopo.
  4. Usuário efetua a autenticação e provê o consentimento, o Authorization Server cria ou atualiza uma sessão para o usuário.
  5. Authorization Server direciona o End-User de volta ao client com um código de autorização e, dependendo do tipo da resposta, com parâmetros adicionais.
  6. O Client solicita uma resposta ao Authorization Server com o código de autorização para obter os demais tokens.
  7. O Authorization Server responde com o ID Token e um Access Token.
  8. O Client valida o ID Token e busca o Subject Identifier do End-User. O Authorization Server deve suportar request objects conforme especificado na seção 6.1 (Request Object) do OIDC.

    Financial-grade API (FAPI)

    Financial-grade API, o FAPI, é uma especificação técnica desenvolvida pelo Grupo de Trabalho Financial-grade API da OpenID Foundation. Ele utiliza OAuth 2.0 e OpenID Connect (OIDC) como sua base e define requisitos técnicos adicionais para o setor financeiro e outros setores que exigem maior segurança.

FAPI: Read and Write API Security Profile

É obrigatório o uso do perfil de segurança FAPI-Financial-grade API: Read and Write API Security Profile, referenciado no endereço: https://openid.net/specs/openid-financial-api-part-2-wd-06.html.

FAPI: CIBA-Client Initiated Backchannel Authentication Profile

A autenticação pelo CIBA fornece um fluxo desacoplado, possibilitando autorizar um pagamento por exemplo em um terminal de ponto de venda ou em um posto de combustível. O perfil de segurança CIBA: Client Initiated Backchannel Authentication Profle será opcional pelos participantes do Open Banking, referenciado no endereço: https://openid.net/specs/openid-financial-api-ciba.html.

Fluxos de autenticação e autorização

Um Autorizador deve usar o protocolo OpenID Connect (OIDC) e o OAuth 2.0 Authorization Framework para autenticar usuários e obter sua autorização para acessar recursos protegidos.
A autenticação e a autorização representam funções fundamentalmente diferentes, conforme comparativo abaixo:

Autenticação Autorização
Determina se os usuários são quem afirmam ser Determina o que os usuários podem e não podem acessar
Desafia o usuário a validar credenciais (por exemplo, por meio de senhas, respostas a perguntas de segurança ou reconhecimento facial) Verifica se o acesso é permitido por meio de políticas e regras
Normalmente feito antes da autorização Normalmente feito após autenticação bem-sucedida
Geralmente, transmite informações por meio de um token de ID Geralmente, transmite informações por meio de um token de acesso
Geralmente regido pelo protocolo OpenID Connect (OIDC) Geralmente regido pela estrutura OAuth 2.0

Camada de transporte

A comunicação entre os aplicativos terceiros e os recursos protegidos, devem ser sempre protegidas utilizando uma conexão TLS versão 1.2 ou superior. A conexão TLS deve ser estabelecida sempre utilizando o certificado qualificado para a autenticação do site e o certificado deve ser emitido seguindo as normas definidas para o Open Banking.

Fluxo client credentials

Com aplicativos machine-to-machine (M2M), como serviços em execução no back-end, o sistema autentica e autoriza o Client em vez de um usuário. Para este cenário, esquemas de autenticação típicos como nome de usuário + senha ou logins sociais não fazem sentido.

Em vez disso, as aplicações M2M usam o fluxo Client Credentials utilizando mTLS (definido em OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound RFC 8705) e infraestrutura de chave pública (PKI). No qual o Client, o Authorization Server e o Servidor API são autenticados usando certificados X.509. O Access Token também é vinculado ao Client e validado utilizando certificados X.509.

Este método acrescenta uma restrição com chave de confirmação (ou prova de posse) ao Client que deseja utilizar um token emitido, com isso ele mitiga a possibilidade de uso abusivo dos Access Tokens Oauth tradicionais em caso de vazamento.

Diagrama – Fluxo de credenciais do client.

  1. O client e o servidor de autenticação estabelecem uma conexão mTLS, e o Client solicita um Access Token.
  2. O Servidor de Autenticação gera uma impressão digital SHA-256 do certificado do Client e a incorpora em um Access Token JWT. Isto limita o Access Token ao Client.
  3. O servidor de autenticação emite o Access Token como uma resposta ao Client.
  4. Os Clients fazem uma solicitação de recursos ao Servidor API usando o Access Token.
  5. O Servidor de API solicita ao Authorization Server que valide o Access Token.
  6. O Servidor API usa a impressão digital embutida para validar o Access Token.
  7. O Servidor de Autenticação retorna o resultado da validação do token.
  8. O Servidor API responde com o recurso solicitado.

Conforme definido na Seção 6.1 do RFC8705, os endpoints utilizados para emissão e validação de tokens que requerem uma conexão mTLS são endpoints convencionais separados por hostname ou porta diferente.

Fluxo do Authorization Code

No Fluxo do Authorization Code, o Client pode recuperar um Access Token e, opcionalmente, um Refresh Token. É considerada a escolha mais segura, pois o Access Token é passado diretamente para o servidor que hospeda o Client, sem passar pelo navegador do usuário e correr o risco de exposição.

Como os Clients são aplicativos do lado do servidor em que o código-fonte não é exposto publicamente, eles podem usar o fluxo do Authorization Code (definido no OAuth 2.0 [RFC 6749], seção 4.1 ), que troca um Authorization Code por um token. Seu Client deve estar no lado do servidor, porque durante essa troca, você também deve passar adiante o client secret do seu Client, que deve ser mantido sempre seguro, e deve armazená-lo em seu client.

Diagrama - Fluxo do código de autorização.

  1. O usuário clica em Login no Client.
  2. O client redireciona o usuário para o Authorization Server.
  3. O Authorization Server redireciona o usuário para o prompt de login e autorização.
  4. O usuário se autentica usando uma das opções de login configuradas e verá uma página de consentimento listando as permissões que o Autorizador dará ao Client.
  5. O Authorization Server redireciona o usuário de volta ao client com um Authorization Code, que é válido para um uso.
  6. O client envia esse código para o Authorization Server junto com o Client ID e o client secret do Client.
  7. O Authorization Server verifica o código, o Client ID e o client secret do client.
  8. O Authorization Server responde com um ID Token e um Access Token (e, opcionalmente, um Refresh Token).
  9. O Client usa o Access Token para chamar uma API para acessar informações sobre o usuário.
  10. A API responde com os dados solicitados.

Fluxo de Consentimento

[EM REVISÃO/ALTERAÇÃO - ABRIL DE 2021]

Pedidos de revogação de consentimentos feitos pelo usuário final por meio de API´s da instituição receptora devem obrigatoriamente implicar na revogação dos tokens de acesso e de consentimento relacionados por meio de chamadas executadas no servidor de autorização da instituição transmissora responsável pelo consentimento e/ou em API de consentimento mantida pelo transmissor. A instituição transmissora deve disponibilizar, por meio de API específica para o controle de consentimentos, interface que permita à instituição receptora detentora de consentimentos a verificação do seu estado. O acesso à API de consentimento deve ser precedido de autenticação e a consulta deve ser restrita ao consentimento a que a instituição receptora teve autorização prévia para acesso, com vistas a garantir que apenas a instituição receptora que registrou o pedido de consentimento possa realizar a consulta sobre o seu estado. A instituição receptora de dados detentora de consentimentos e de tokens de autorização deve revogá-los, por meio de chamadas específicas às API´s das instituições transmissoras publicadas para esse fim, quando perceber violações à confidencialidade dos tokens ou no fim da prestação dos serviços ao usuário final.

Padrão Lodging Intent

Essa seção descreve o padrão Lodging Intent, utilizado para parametrizar solicitações de autorização OAuth complexas de maneira confiável e segura. O OAuth por si, suporta apenas autorizar ações simples de leitura, o parâmetro scope é definido por uma lista delimitada por espaços contendo strings simples, quando se trata de autorizações mais complexas, como o início de um pagamento, o suporte integrado do OAuth não é suficiente. O padrão Lodging Intent pode ser utilizado para passar informações de forma confiável para o processo de autorização, independente das restrições de comprimento de URL, enquanto as informações também são protegidas contra modificação sem a necessidade de assiná-las digitalmente, reduzindo os custos de implementação. Executar um processo de autorização utilizando o padrão Lodging Intent e o Code Flow, funciona da seguinte maneira:

Mais detalhes sobre o funcionamento do padrão Lodging Intent pode ser consultado em https://bitbucket.org/openid/fapi/src/master/Financial_API_Lodging_Intent.md .

Assinatura de mensagens

A assinatura de mensagens deve ser aplicada a APIs específicas, de acordo com a definição na documentação do Endpoint.
Para a assinatura de mensagens, deve ser suportado o uso de um JWT assinado (JWS). JWS representa o conteúdo protegido com assinaturas digitais ou com Message Authentication Codes (MACs) utilizando estruturas de dados JSON, referenciado em [RFC 7515].

Estrutura de um token com JWS.

Certificados

Dois tipos de certificados serão emitidos pelo ICP-Brasil para serem utilizados no Open Banking com as funções de transporte e assinatura. Atributos comuns a ambos os certificados:

Atributo Utilização
Data de validade Intervalo de tempo para qual o certificado será válido.
Data de emissão Data em que foi emitido o certificado.
Autoridade Certificadora AC- Autoridade Certificadora, entidade pública ou privada, subordinada à hierarquia da ICP-Brasil, responsável por emitir, distribuir, renovar, revogar e gerenciar certificados digitais.
Chave pública e privada Chaves públicas e privadas.
Tipo A1 ou A2 ou A3.
Código de registro do participante 2.16.76.1.3.3 otherName Código que identifica o participante do Open Banking (CNPJ).
Nome do participante 2.16.76.1.3.8 otherName Nome que identifica o participante do Open Banking (Nome que consta no CNPJ).
Código do Diretório (OID 2.16.76.1.3.X) Campo otherName em certificado de pessoa jurídica, contendo identificação do código de participante junto ao diretório do Open Banking. OID a ser definido.

Transporte

Certificado de transporte para a proteção e autenticação do canal (mTLS) e será utilizado para criptografar requisições e respostas entre Third Parties e bancos. Atributos específicos do certificado de transporte:

Atributo Utilização
Endpoint (OID 2.16.76.1.3.X) Campo otherName em certificado de pessoa jurídica, contendo endereço de endpoints associados ao Open Banking. OID a ser definido.
Key Usage critical, digitalSignature
extendedKeyUsage clientAuth, serverAuth

Assinatura

O certificado de assinatura de mensagens é utilizado para criar o JWS para assinar o payload JWT durante o processo de onboarding e authorization. Atributos específicos do certificado de assinatura:

Atributo Utilização
Key Usage critical, digitalSignature, nonRepudiation

Algoritmo de criptorgrafia

Algoritmo Bits
RSA 2048bits ou 4096bits
(PS256) RSASSA-PSS SHA-256 e MGF1 com SHA-256

Tipos de certificados

Tipo Validade Processo de geração Armazenamento
A1 1 ano Software Repositório protegido por senha e/ou identificação biométrica, cifrado por software.
A2 Até 2 anos Software Cartão Inteligente ou Token, ambos sem capacidade de geração de chave e protegidos por senha e/ou identificação biométrico
A3 Até 5 anos Hardware Hardware criptográfico, homologado junto à ICP-Brasil ou com certificação INMETRO.

Requisitos adicionais

Definições

A ICP-Brasil (Infraestrutura de Chaves Públicas Brasileira) consiste em uma cadeia hierárquica composta por uma autoridade gestora de políticas e autoridades certificadoras que utilizam um conjunto de tecnologias, práticas, técnicas e procedimentos para realizar a transação de documentos eletrônicos com segurança. O objetivo da ICP é fazer com que a utilização de criptografia de chaves públicas se torne mais fácil, tendo como principais componentes as autoridades certificadoras, autoridades de registro e o repositório. Sua hierarquia se dá da seguinte forma:

A validação requer um par de chaves, sendo que uma delas é de conhecimento geral, ou seja, de acesso ao público, e a outra de conhecimento apenas do proprietário. Por isso, seus dados precisam estar contidos em um certificado digital para que seja possível fazer a tramitação do documento.

Além disso, é preciso que a entidade certificadora seja integrante da infraestrutura do governo e receba uma classificação quanto ao seu nível de segurança. Desse modo, é possível garantir a validade jurídica dos documentos eletrônicos, bem como sua autenticidade e integridade.

As Autoridades Certificadoras (ACs) são responsáveis por gerenciar o ciclo de vida dos certificados digitais, controlando os processos de solicitação, emissão e revogação dos mesmos.

A Autoridade de Registro (AR) e o Repositório de Certificados Digitais também recebem tarefas delegadas da AC Raiz. À AR cabe a tarefa de verificar o conteúdo de requisições de certificados, enquanto o Repositório de Certificados Digitais tem como objetivo publicar os certificados digitais e as listas de certificados revogados emitidos por uma ou mais ACs. No Brasil, a hierarquia da Certificação Digital obedece ao ICP-Brasil, que deve ser:

Após o prazo de encerramento do Certificado Digital, ele é automaticamente expirado e, qualquer documento assinado após a data de vencimento não possui qualquer validade legal. Já os documentos que forem assinados dentro do período de validade do certificado, tem sua validade assegurada por tempo indeterminado.

A Certificação Digital é a tecnologia que permite que as transações eletrônicas sejam realizadas com segurança, por meio de algoritmos matemáticos capazes de garantir que as informações sejam manipuladas com autenticidade, integridade e confiabilidade.

A Assinatura Digital nada mais é que um processo eletrônico que faz uso de chaves criptografadas. De maneira geral, documentos que são assinados digitalmente passam por um processo de codificação das informações eletrônicas, de forma que somente receptor e emissor possam acessar os documentos compartilhados.

O uso do Certificado Digital é utilizado entre outras atividades para validar as transações bancárias on-line. Ou seja, para comprovar a autenticidade do serviço, o banco utiliza um certificado que assegura ao usuário que ele realmente está acessando o servidor do banco. Assim, ao acessar a sua conta bancária, por exemplo, o usuário pode utilizar seu certificado para autenticar-se diante do banco.

Guia das Etapas de Solicitação

Diagrama - Solicitação de um certificado digital.

A obtenção de um Certificado Digital compreende 4 etapas:

  1. Solicitação: O interessado (pessoa física ou jurídica) deve acessar uma das Autoridades Certificadoras, escolher o tipo e a validade do Certificado Digital e encaminhar para o processo de compra.
  2. Identificação Presencial: Após feita a solicitação, o interessado deve providenciar os documentos necessários para a emissão do certificado escolhido e agendar uma visita presencial em uma das Autoridades de Registro para realizar a identificação.
  3. Validação e Verificação dos documentos: Depois de apresentar os documentos obrigatórios, o interessado deve aguardar a liberação da validação e verificação realizadas pela Autoridade de Registro. Caso esteja em conformidade com as exigências, é possível seguir para o processo de emissão.
  4. Emissão: Na emissão, é gerado um par de chaves RSA com tamanho de 2048 bits e algoritmo de assinatura SHA 256 na mídia criptográfica do usuário.

Contudo, antes de requerer um Certificado Digital, o interessado deve analisar qual a finalidade de uso, a forma de armazenamento e o período de validade no qual deve obter seu documento para, então, solicitar o tipo de certificado adequado. É imprescindível que o interessado conheça as características de cada certificado antes de comprá-lo pelo site em uma das Autoridades Certificadoras habilitadas.

Emissão de certificados pelo Diretório de Participantes

O Diretório de Participantes foi escolhido como uma alternativa para a emissão de certificados, tornando-se uma Autoridade Certificadora para emissão de certificados para Clients (aplicativos).

Diagrama - Emitindo um certificado pelo Diretório

A obtenção de um Certificado Digital pelo Diretório, compreende 3 etapas:

  1. Solicitação: O solicitante deve assinar a solicitação (CSR) utilizando o e-CNPJ e efetuar o upload no Diretório de Participantes.
  2. Verificação: O Diretório realiza a verificação, estando em conformidade, prossegue para o processo de emissão.
  3. Emissão: O Diretório emite um certificado e retorna para o solicitante.

CSR

Esse bloco consiste em um exemplo de como gerar o Certificate Signing Requests (CSR) para o PKI do Open Banking.
Existem vários utilitários para gerar CSRs para serem enviados a uma autoridade certificadora, neste exemplo vamos utilizar OpenSSL para demonstrar como um CSR válido é gerado para enviar ao Open Banking para emitir um certificado x509 de transporte ou assinatura.
OpenSSL é compatível com Windows ou Linux, podendo ser emitido no sistema operacional preferido:

Gerando CSR de transporte
$ openssl req -new -config transporte.cnf -out transporte.csr -keyout transporte.key

Gerando CSR de assinatura
$ openssl req -new -config assinatura.cnf -out assinatura.csr -keyout assinatura.key

Exemplo:

$ openssl req -new -config /share/ob/transporte.cnf -out transporte.csr -keyout transporte.key
Generating a RSA private key
........................................+++++
............+++++
writing new private key to 'assinatura.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
BR []:BR

O CSR resultante deve ser carregado para o Open Banking PKI para emitir um certificado público de transporte ou assinatura associado à sua chave privada. Os arquivos resultantes devem ser protegidos pelas políticas de segurança da instituição.

Perfil de solicitação de assinatura de certificado X509 de transporte

Este bloco demonstra como gerar um CSR válido por um client que requer um Certificado de transporte X.509 utilizando um arquivo .cnf como base.
O seguinte arquivo de configuração é utilizado para gerar um CSR para um certificado de transporte usando OpenSSL.

Arquivo CNF OPENSSL Transporte apenas de exemplo, as configurações podem variar de acordo com a Autoridade Certificadora e para quem será emitido o certificado, alterar os campos como CNPJ e NOME da instituição:

# OPENSSL CSR REQUEST CONFIGURATION FILE
# ======================================
otherName = 2.16.76.1.3.3
otherName = 2.16.76.1.3.8
#otherName = 2.16.76.1.3.X #OID a ser confirmado com a informação dos endpoints
subjectAltName=@san
#CNPJ
otherName.1=2.16.76.1.3.3;UTF8:64721803000118
#Nome conforme consta no CNPJ
otherName.2=2.16.76.1.3.8;UTF8:Nome da instituicao
#Endpoints
#otherName.3=2.16.76.1.3.X;UTF8:Endpoints
# OpenSSL may not recognize this OID so need to add.
[ req ]
default_bits = 2048
#ou
#default_bits = 4096
# RSA key size
encrypt_key = yes
# Protect private key: yes or no. yes recommended
default_md = sha256
# MD to use. sha256 recommended
utf8 = yes
# Input is UTF-8.
string_mask = utf8only
# Emit UTF-8 strings
distinguished_name = client_dn
req_extensions = client_reqext
[ client_dn ]
countryName = "BR"
[ client_reqext ]
keyUsage = critical,digitalSignature
subjectKeyIdentifier = hash
extendedKeyUsage = clientAuth, serverAuth

Perfil de solicitação de assinatura de certificado X509 de assinatura

Este bloco demonstra como gerar um CSR válido por um client que requer um Certificado de assinatura X.509 utilizando um arquivo .cnf como base.
O seguinte arquivo de configuração é utilizado para gerar um CSR para um certificado de assinatura usando OpenSSL.

Arquivo CNF OPENSSL de Assinatura apenas de exemplo, as configurações podem variar de acordo com a Autoridade Certificadora e para quem será emitido o certificado, alterar os campos como CNPJ e NOME da instituição:

# OPENSSL CSR REQUEST CONFIGURATION FILE
# ======================================
otherName = 2.16.76.1.3.3
otherName = 2.16.76.1.3.8
subjectAltName=@san
#CNPJ
otherName.1=2.16.76.1.3.3;UTF8:64721803000118
#Nome conforme consta no CNPJ
otherName.2=2.16.76.1.3.8;UTF8:Nome da instituicao
# OpenSSL may not recognize this OID so need to add.
[ req ]
default_bits = 2048
#ou
#default_bits = 4096
# RSA key size
encrypt_key = yes
# Protect private key: yes or no. yes recommended
default_md = sha256
# MD to use. sha256 recommended
utf8 = yes
# Input is UTF-8.
string_mask = utf8only
# Emit UTF-8 strings
distinguished_name = client_dn
req_extensions = client_reqext
[ client_dn ]
countryName = "BR"
[ client_reqext ]
keyUsage = critical,digitalSignature,nonRepudiation
subjectKeyIdentifier = hash

O arquivo CSR OPENSSL resultante pode ser analisado com o seguinte comando:

$ openssl req -new -config assinatura.cnf -out assinatura.csr -keyout assinatura.key

Diretório de participantes

Introdução

O Diretório de Participantes do Open Banking é o principal componente de arquitetura que permite que instituições provedoras se registrem e iniciem interações por meio de APIs com instituições transmissoras, também fornece um ambiente de testes.
O Diretório é um serviço de gerenciamento de identidade e acesso que fornece informações de identidade que dão suporte aos participantes do Ecossistema do Open Banking.
O Diretório de Participantes disponibiliza os recursos funcionais necessários para que as instituições provedoras possam se autenticar no Open Banking e também recursos para identificar as instituições transmissoras.
O Registro dos Provedores é obrigatório para usar as APIs fornecidas pelas instituições transmissoras.
As instituições transmissoras devem utilizar as informações técnicas contidas no Diretório para realizar o gerenciamento da identidade e da autorização das aplicações das instituições Participantes, que abrange a identificação, a autorização e a revogação de certificados utilizados no compartilhamento de dados e serviços do escopo do Open Banking.

Recursos funcionais do Diretório de Participantes:

Padrões

Registro de uma Instituição Provedora

O Diretório deverá realizar validações para o Registro de uma instituição receptora, depois destas validações, solicitações e respostas de API e/ou dados de contas podem ser compartilhadas com segurança entre as duas partes. O diretório deve validar, se:

Depois que todas as verificações forem realizadas, será estabelecido uma conexão TLS segura, mutuamente autenticada entre o Diretório e a instituição receptora.

Funções Operacionais dos Participantes



Fluxos para instituições receptoras






Fluxos para instituições transmissoras

Registro no diretório de participantes

Para poder consumir APIs disponibilizadas por uma instituição transmissora, uma instituição receptora deverá realizar um registro junto a instituição transmissora, esse processo de autenticação do participante deve ser feita de forma centralizada no Diretório de Participantes, sendo necessário a federação do seu portal ao Diretório. A instituição transmissora deve implementar um processo de integração da instituição receptora ao seu sistema, esse processo deve:

Após a instituição receptora realizar o registro no Diretório de Participantes, o mesmo poderá realizar o registro de clients (aplicações) na instituição transmissora. Para a realização do registro de clients no Open Banking, é mandatório a disponibilização do processo de registro de Client dinâmico, conforme [RFC 7591].

Registro de Client dinâmico

O registro de Client dinâmico é mandatório para os participantes do Open Banking. Com uma API de registro de client dinâmico do Open Banking, utilizando o padrão de segurança OpenID Connect, as instituições receptoras podem se registrar junto a instituição transmissora.

O diagrama abaixo mostra o fluxo do registro dinâmico de uma instituição receptora.

Diagrama - Fluxo de registro dinâmico.

As instituições receptoras precisam obter o SSA do Diretório de Participantes do Open Banking.
Uma API de Registro dinâmico consiste em endpoints, que realizam a concessão de credencias do client e a autenticação mútua de TLS para autenticar a instituição receptora. A API deve permitir que as seguintes operações sejam realizadas:

Teste e homologação

A fase de teste e homologação, tem como finalidade, garantir que os participantes que desejam operar no Ecossistema do Open Banking, possam fazer isso de forma assertiva e segura. Isso incluí o suporte para as instituições receptoras com a capacidade de testar seus produtos e serviços desde o lançamento, quanto nas atualizações, fornecendo uma série de ferramentas e infraestrutura no serviço de Diretório para garantir que seus produtos tenham sido testados tempestivamente antes de entrar em produção.
É obrigatório o teste e a homologação para instituição receptora e instituição transmissora. Instituições receptoras devem utilizar o serviço de Sandbox fornecido pelo Diretório.
As instituição transmissoras devem prover um ambiente de teste que possibilite as instituições receptoras autorizados a realizarem testes de conexão e testes funcionais de seus produtos e serviços. Este recurso deve refletir ao máximo o ambiente de produção e deve fornecer o acesso aos desenvolvedores com os seguintes aspectos:

Os testes devem garantir escopo mínimo para cobrir todos os casos de uso e de requisitos de segurança, evidenciados de forma que seja possível garantir que o processo de homologação foi efetuado.
Os testes para instituições receptoras devem acontecer em 3 etapas:

Ainda, recomenda-se que seja feito o teste de conformidade ao FAPI, disponível em https://openid.net/certification/fapi_op_testing/.

CORS

Contexto Open-Data

O Cross-Origin Resource Sharing (CORS) para todas as origens (valor " * ") será permitido nos seguintes endpoints:

Endpoints

Contexto Open-data

Não haverá endpoints específicos para Autorização e Autenticação com o intuito de maximizar o uso do Open-data.

Será opcional a disponibilização de um endpoint para validação WKS:

api.banco.com.br/openbanking/security/v1/.well-known/jwks.json

Glossário de Segurança

Sigla Descrição Informação
API Interface de programação de aplicativo Uma interface de programação de aplicativo é um conjunto de rotinas, protocolos e ferramentas para construir aplicativos de software. Uma API especifica como os componentes de software devem interagir.
FAPI Financial API Especificação técnica de API e define requisitos técnicos adicionais para o setor financeiro
CIBA Client Initiated Backchannel Authentication A autenticação de backchannel iniciada pelo cliente (CIBA) é um dos padrões mais recentes da OpenID Foundation. são categorizados como "fluxo desacoplado", Ele permite novas maneiras de obter o consentimento do usuário final
Oauth O OAuth é um protocolo de autorização para API's web voltado a permitir que aplicações client acessem um recurso protegido em nome de um usuário.
OIDC OpenID Connect OpenID Connect é um protocolo de identidade simples com padrão aberto
JWT JSON Web Token é uma técnica definida na RFC 7519 para autenticação remota entre duas partes. Ele é uma das formas mais utilizadas para autenticar usuários em APIs RESTful.
JWS JSON Web Signature é uma forma de garantir a integridade das informações em um formato altamente serializado
SHA256 Secure Hash Algorithm é um conjunto de funções criptográficas de hash
PKCE Proof Key for Code Exchange Chave de prova para troca de código por clientes públicos Oauth
MAC Código de Autenticação de Mensagem Permite que as declarações sejam assinadas digitalmente ou protegidas por integridade utilizando JWS
ICP-Brasil Infraestrutura de Chaves Públicas Brasileira na definição oficial, “uma cadeia hierárquica de confiança que viabiliza a emissão de certificados digitais para identificação virtual do cidadão
AC Autoridade Certificadora
AR Autoridade de Registro
TLS Transport Layer Security
ECDSA Elliptic Curve Digital Signature Algorithm é um algoritmo de método de assinatura digital de documentos utilizando criptografia baseada em curvas elípticas.
ECDHE Elliptic-curve Diffie–Hellman é um protocolo de contrato chave que permite que duas partes, cada uma com um par de chaves público-privado de curva elíptica, estabeleçam um segredo compartilhado em um canal inseguro
AES Advanced Encryption Standard algoritmos de criptografia de bloco simétrico com uma chave de criptografia de 256 bits
Autenticação mútua Chamamos de autenticação mútua quando ambos cliente e servidor apresentam certificados para serem validados pelo par.
CSR Certificate Signing Request Contém informação que irá ser incluída no seu certificado como o nome da empresa/organização, common name (domínio), localidade e país. Também contém a chave pública (public key) que será incluída no seu certificado. Normalmente é também criada uma chave privada (private key) ao mesmo tempo que é criado o CSR
TPP Instituições Provedoras - Provedores terceirizados As instituições provedoras são organizações que usam APIs desenvolvidas pelos ASPSP para acessar contas de clientes, a fim de fornecer serviços de informações de contas
ASPSP Instituições Transmissoras - Provedor de serviços de pagamento de manutenção de contas Um ASPSP é qualquer instituição financeira que oferece uma conta de pagamento com acesso online. Os ASPSPs devem fornecer acesso para permitir que terceiros (TPP) registrados acessem as informações da conta através de APIs
SSA Software Statement Assertion SSA é um JSON Web Token (JWT) que contém metadados sobre uma instância de aplicativo client desenvolvida por um TPP. O JWT é emitido e assinado pelo OpenBanking Directory.
End User Identificação de usuário final que possui as informações que se deseja acessar
Back-End Aplicação ou código que da inteligência de negocio as ações solicitadas via API , código que efetivamente realiza a função desejada
Json JavaScript Object Notation Json é um modelo para armazenamento e transmissão de informações no formato texto.
Claims São escopos/declarações usadas em uma API durante a autenticação para autorizar o acesso aos detalhes de um usuário, como nome e imagem por exemplo. Cada escopo retorna um conjunto de atributos do usuário, que são chamados de declarações.
Header É o cabeçalho de uma solicitação ou resposta que transmite contexto e metadados adicionais sobre a solicitação ou resposta. Por exemplo, em uma mensagem de solicitação podem ser usados para fornecer credenciais de autenticação.
Payload O Payload é a Carga Útil do token JWT. É aqui que você coloca informações como a quem o token pertence, qual a expiração dele, quando ele foi criado, entre outras coisas

Referências normativas

Referença Descrição Versão
[JSON] The JavaScript Object Notation (JSON) Data Interchange Format: https://tools.ietf.org/html/rfc8259 Dec 2017
[JWT] JSON Web Token (JWT): https://tools.ietf.org/html/rfc7519 May 2015
[JWS] JSON Web Signature (JWS): https://tools.ietf.org/html/rfc7797 Feb 2016

Referências informativas

Referença Descrição
[BCP195] Recomendações para o uso do seguro do Transport Layer Security (TLS) e Datagram Transport Layer Security (DTLS): https://tools.ietf.org/html/bcp195
[DOS-G] Guia de segurança sobre DDoS attacks: https://www.ncsc.gov.uk/collection/denial-service-dos-guidance-collection

Problemas conhecidos da especificação

Atualmente não há problemas conhecidos

Guias de implementação

Acesse neste link uma implementação de referência da fase 1.

Esta implementação de exemplo permite ao desenvolvedor realizar testes referentes à fase 1 (open-data) do Open Banking Brasil.

Fase 1 - APIs do Open Banking Brasil v1.0.0

Para visualizar as especificações das API's do projeto Open Banking Brasil Fase 1, favor acessar o link abaixo:

API's Open Banking Fase 1

Divulgação dos valores de tarifas e taxas de juros remuneratórias

Conforme disposto na Circular nº 4.015, art. 3º, para fins de compartilhamento dos valores de tarifas e taxas de juros remuneratórias dos produtos e serviços ofertados, as instituições devem compartilhar uma distribuição de frequência relativa dos valores cobrados e dos clientes.

Segundo o Art. 6º da Instrução Normativa nº 32 BCB, de 2020: “O compartilhamento da distribuição de frequência relativa dos valores de tarifas e taxas de juros cobrados dos clientes, de que trata o § 2º do art. 3º da Circular nº 4.015, de 2020, deve dar-se com base em quatro faixas de igual tamanho, com explicitação dos valores sobre a mediana e o percentual de clientes em cada uma dessas faixas, além dos valores máximos e mínimos do universo, segmentados em pessoas naturais e jurídicas, bem como por tipo de serviço ou modalidade de operação e por indexador ou referencial, no caso de operações pós-fixadas.

§ 1º Admite-se que as instituições compartilhem dados relacionados à distribuição de frequência de que trata o caput em base atualizada em periodicidade mensal, divulgada no décimo dia útil de cada mês, a partir de janeiro de 2021, referente a valores cobrados de seus clientes no mês anterior.

§ 2º A distribuição de frequência relativa a taxas de juros divulgada conforme o § 1º deve corresponder às operações de crédito concedidas no mês anterior”’.

Desta forma, cada instituição deve, no momento de compartilhamento, ordenar sua base em ordem crescente de valores cobrados por tarifas e taxas de juros remuneratórias dos produtos e serviços ofertados durante o mês de apuração, segmentá-la em quatro faixas de mesmo valor e divulgar 10 valores:

Devem ser utilizados no cálculo os valores devidos de tarifas e os valores cobrados de taxas de juros remuneratórias disponíveis nas bases de cliente no mês anterior.

Caso haja mais de 1 evento por cliente referente ao mesmo produto e/ou serviço, deverá ser considerado apenas 1 valor, calculado como a média aritmética dos valores das ocorrências daquele cliente.

Para taxas de juros remuneratórias, os valores compartilhados/divulgados serão os que correspondem às concessões no mês da apuração, segmentados em pessoas naturais e jurídicas, bem como por modalidade de operação e por indexador ou referencial, no caso de operações pós-fixadas.

Para tarifas, a segmentação é por pessoas naturais e jurídicas e por tipo de serviço referente a tarifa avulsa (fora do Pacote de Serviço) cobradas no mês de apuração, devendo-se considerar inclusive as de valor zero (ou isentas).

Tarifas – Apuração Frequência e valores correspondentes

Serviço: tarifas avulsas cobradas no mês de apuração. (Cada tarifa será informada separadamente, devendo ser informadas tantas tarifas quanto as que satisfizerem os critérios de apuração) As tarifas de valor zero (ou isentas) fora de pacotes de serviços, caso tenham ocorrido no mês de referência, devem ser consideradas na distribuição de frequência relativa dos valores.

Tipo Pessoa: PN ou PJ

Período: Mês fechado, identificado como M-1

Base Clientes: clientes segregados por tipo de pessoa que tiveram cobrança da mesma tarifa avulsa (não inclusa no Pacote de serviços) no mês de apuração. Caso haja mais de 1 evento por cliente, referente ao mesmo produto e/ou serviço, deverá ser considerado apenas 1 valor, calculado como a média aritmética dos valores das ocorrências daquele cliente

Processo de Apuração para cada tipo de tarifa que satisfizer critérios de apuração:

  1. Identificar clientes com mais de uma ocorrência de evento e calcular a média aritmética sobre valores cobrados;
  2. Enfileirar os valores em ordem crescente de grandeza;
  3. Definir menor (MenorVL) e maior valor (MaiorVL) relativos às tarifas enfileiradas em ordem crescente
  4. Definir: ( MaiorVL – MenorVL ) / 4 = Intervalo para definição faixas de valores (e se MenorVL = MaiorVL, então (MaiorVL – 0) / 4
  5. Calcular mediana dos valores em cada faixa
  6. Calcular o percentual de clientes por faixa ( soma dos valores apurados = 100% )

Exemplo de Uso:

Download do exemplo

Download do exemplo

Apuração Frequência Taxas Juros remuneratórios

Modalidade: relativa às operações de crédito concedidas (contratadas) no mês da apuração (M-1 – mês anterior)

Tipo Pessoa: PN ou PJ

Taxa ou Indexador: referente ao custo da operação contratada e percentual de incidência (conforme Anexo 5: Taxa referencial ou Indexador (Indx), do Documento 3040, BCB) – Dado informativo

Período: mês fechado, identificado como M-1

Base Clientes: clientes segregados por tipo de pessoa (contrato) que tomou crédito de mesma Modalidade no mês de apuração. Com mesmo tipo de taxa ou Indexador e mesmo percentual aplicado. Caso haja mais de 1 evento por cliente referente a mesma Modalidade e Indexador deverá ser considerado apenas 1 valor, calculado como a média aritmética dos valores das ocorrências daquele cliente

Processo de Apuração para cada tipo de Indexador/taxa – percentual aplicado para cada Modalidade que satisfizer os critérios de apuração

Para cada Indexador/Taxa e seu percentual, da Modalidade apurada:

  1. Identificar clientes com mais de uma ocorrência de evento e calcular a média aritmética sobre valores cobrados;
  2. Enfileirar os valores em ordem crescente de grandeza;
  3. Definir menor (MenorVL) e maior valor (MaiorVL) relativos aos valores enfileirados em ordem crescente
  4. Calcular: ( MaiorVL – MenorVL ) / 4 = Intervalo para definição faixas de valores (e se MenorVL = MaiorVL, então 1. (MaiorVL – 0) / 4
  5. Calcular mediana dos valores em cada faixa
  6. Calcular o percentual de clientes por faixa ( soma dos valores apurados = 100% )

Exemplos de Uso:

Download do exemplo

Download do exemplo

Download do exemplo

Download do exemplo

Download do exemplo

Fase 2 - APIs do Open Banking Brasil v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Clientes poderão solicitar o compartilhamento entre instituições participantes de seus dados cadastrais, de informações sobre transações em suas contas, cartão de crédito e produtos de crédito contratados.

O compartilhamento ocorre apenas se a pessoa autorizar através da API de Consentimento, sempre para finalidades determinadas e por um prazo específico. E será possível para o cliente cancelar essa autorização a qualquer momento em qualquer uma das instituições envolvidas no compartilhamento.

API - Consentimento

Versão
1

Visão Geral

A API tem como objetivo garantir que o usuário esteja ciente e concordando com a disponibilização e compartilhamento de determinados dados entre bancos e instituições financeiras e acessível também à estabelecimentos comerciais participantes do Open Banking Brasil.

É possível realizar a criação (não possuindo restrição de uso entre pessoa física e pessoa jurídica), consulta e revogação de um consentimento mediante a integração entre as instituições autorizadas.

[EM REVISÃO/ALTERAÇÃO - ABRIL DE 2021]

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Criar novo pedido de consentimento.

Exemplo de código

const data = JSON.stringify({
  "data": {
    "brandID": "29698749425984912674",
    "loggedUser": {
      "document": {
        "identification": "11111111111",
        "rel": "CPF"
      }
    },
    "businessEntity": {
      "document": {
        "identification": "11111111111111",
        "rel": "CNPJ"
      }
    },
    "permissions": [
      "ACCOUNTS_READ"
    ],
    "expirationDateTime": "2021-05-21T08:30:00Z",
    "transactionFromDateTime": "2021-01-01T00:00:00Z",
    "transactionToDateTime": "2021-02-01T23:59:59Z"
  }
});

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://example.com/consents/v1/consents");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

payload = "{\"data\":{\"brandID\":\"29698749425984912674\",\"loggedUser\":{\"document\":{\"identification\":\"11111111111\",\"rel\":\"CPF\"}},\"businessEntity\":{\"document\":{\"identification\":\"11111111111111\",\"rel\":\"CNPJ\"}},\"permissions\":[\"ACCOUNTS_READ\"],\"expirationDateTime\":\"2021-05-21T08:30:00Z\",\"transactionFromDateTime\":\"2021-01-01T00:00:00Z\",\"transactionToDateTime\":\"2021-02-01T23:59:59Z\"}}"

headers = {
    'Content-Type': "application/json",
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("POST", "/consents/v1/consents", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.post("https://example.com/consents/v1/consents")
  .header("Content-Type", "application/json")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .body("{\"data\":{\"brandID\":\"29698749425984912674\",\"loggedUser\":{\"document\":{\"identification\":\"11111111111\",\"rel\":\"CPF\"}},\"businessEntity\":{\"document\":{\"identification\":\"11111111111111\",\"rel\":\"CNPJ\"}},\"permissions\":[\"ACCOUNTS_READ\"],\"expirationDateTime\":\"2021-05-21T08:30:00Z\",\"transactionFromDateTime\":\"2021-01-01T00:00:00Z\",\"transactionToDateTime\":\"2021-02-01T23:59:59Z\"}}")
  .asString();

POST /consents/v1/consents

Método para a criação de um novo consentimento.

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Body parameter

{
  "data": {
    "brandID": "29698749425984912674",
    "loggedUser": {
      "document": {
        "identification": "11111111111",
        "rel": "CPF"
      }
    },
    "businessEntity": {
      "document": {
        "identification": "11111111111111",
        "rel": "CNPJ"
      }
    },
    "permissions": [
      "ACCOUNTS_READ"
    ],
    "expirationDateTime": "2021-05-21T08:30:00Z",
    "transactionFromDateTime": "2021-01-01T00:00:00Z",
    "transactionToDateTime": "2021-02-01T23:59:59Z"
  }
}

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
body body CreateConsent true Payload para criação do consentimento.

O comando acima retorna uma estrutura json como essa:

201 Response

{
  "data": {
    "brandID": "29698749425984912674",
    "brandName": "Organização A",
    "consentId": "string",
    "creationDateTime": "2021-05-21T08:30:00Z",
    "status": "AUTHORISED",
    "statusUpdateDateTime": "2021-05-21T08:30:00Z",
    "permissions": [
      "ACCOUNTS_READ"
    ],
    "expirationDateTime": "2021-05-21T08:30:00Z",
    "transactionFromDateTime": "2021-01-01T00:00:00Z",
    "transactionToDateTime": "2021-02-01T23:59:59Z"
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
201 Created Consentimento criado com sucesso. ResponseConsent
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
415 Unsupported Media Type O formato do payload não é um formato suportado. ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError
default Default Erro inesperado. ResponseError

Response Headers

Status Header Type Format Description
201 x-fapi-interaction-id string none

Obter detalhes do consentimento identificado por consentId.

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/consents/v1/consents/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/consents/v1/consents/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/consents/v1/consents/string")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /consents/v1/consents/{consentId}

Método para obter detalhes do consentimento identificado por consentId.

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
consentId path string true Identificador do consentimento.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "brandID": "29698749425984912674",
    "brandName": "Organização A",
    "consentId": "string",
    "creationDateTime": "2021-05-21T08:30:00Z",
    "status": "AUTHORISED",
    "statusUpdateDateTime": "2021-05-21T08:30:00Z",
    "permissions": [
      "ACCOUNTS_READ"
    ],
    "expirationDateTime": "2021-05-21T08:30:00Z",
    "transactionFromDateTime": "2021-01-01T00:00:00Z",
    "transactionToDateTime": "2021-02-01T23:59:59Z"
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Consentimento consultado com sucesso. ResponseConsent
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError
default Default Erro inesperado. ResponseError

Response Headers

Status Header Type Format Description
200 x-fapi-interaction-id string none

Deletar/revogar o consentimento identificado por consentId.

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://example.com/consents/v1/consents/string");
xhr.setRequestHeader("Accept", "application/json; charset=utf-8");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json; charset=utf-8",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("DELETE", "/consents/v1/consents/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.delete("https://example.com/consents/v1/consents/string")
  .header("Accept", "application/json; charset=utf-8")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

DELETE /consents/v1/consents/{consentId}

Método para deletar/revogar o consentimento identificado por consentId.

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
consentId path string true Identificador do consentimento.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

400 Response

{
  "errors": [
    {
      "code": "string",
      "title": "string",
      "detail": "string"
    }
  ],
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
204 No Content Consentimento revogado com sucesso. None
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError
default Default Erro inesperado. ResponseError

Response Headers

Status Header Type Format Description
204 x-fapi-interaction-id string none

API - Resources

Obtém a lista de recursos consentidos pelo cliente.

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/resources/v1/resources");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/resources/v1/resources", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/resources/v1/resources")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /resources/v1/resources

Versão
1

Visão Geral

Método para obter a lista de recursos mantidos pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento.

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "resourceId": "string",
      "type": "ACCOUNT",
      "status": "AVAILABLE"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de status dos recursos obtidos com sucesso. ResponseResourceList
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError
default Default Dados de status dos recursos obtidos com sucesso. ResponseResourceList

Response Headers

Status Header Type Format Description
200 x-fapi-interaction-id string none
default x-fapi-interaction-id string none

API - Dados Cadastrais

Identificação Pessoa Natural

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/customers/v1/personal/identifications");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/customers/v1/personal/identifications", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/customers/v1/personal/identifications")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /customers/v1/personal/identifications

Versão
1

Visão Geral

Obtém os registros de identificação da pessoa natural

Esta especificação inclui todos os itens relevantes que permitam a ação e o efeito de identificar de forma única a pessoa natural através de seus dados cadastrais.

Tags: CBO (Cbo Code), CNPJ (CNPJ Number), CPF - Cadastro de Pessoa Física (Cpf Number), Identificação (Identification), Instituição Financeira (Company), Marca (Brand), Nome Civil Completo (Civil Name), Nome Social (Social Name) e Sexo (Sex).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "updateDateTime": "2021-05-21T08:30:00Z",
      "personalId": "578-psd-71md6971kjh-2d414",
      "brandID": "29698749425984912674",
      "brandName": "Organização A",
      "companyCnpj": [
        "string"
      ],
      "documents": {
        "cpfNumber": "25872252137",
        "passportNumber": "75253468744594820620",
        "passportCountry": "CAN",
        "passportExpirationDate": "2021-05-21",
        "passportIssueDate": "2021-05-21"
      },
      "otherDocuments": [
        {
          "type": "CNH",
          "typeAdditionalInfo": "NA",
          "number": "15291908",
          "checkDigit": "P",
          "additionalInfo": "SSP-SP",
          "expirationDate": "2021-05-21"
        }
      ],
      "hasBrazilianNationality": false,
      "nationality": [
        {
          "otherNationalitiesInfo": "CAN",
          "documents": [
            {
              "otherNationalitiesInfo": "CAN",
              "documents": [
                {
                  "type": "SOCIAL SEC",
                  "number": "423929299",
                  "expirationDate": "2021-05-21",
                  "issueDate": "2021-05-21",
                  "typeAdditionalInfo": "NA"
                }
              ]
            }
          ]
        }
      ],
      "civilName": "Juan Kaique Cláudio Fernandes",
      "socialName": "string",
      "filiation": [
        {
          "type": "PAI",
          "civilName": "string",
          "socialName": "string"
        }
      ],
      "birthDate": "2021-05-21",
      "maritalStatusCode": "SOLTEIRO",
      "maritalStatusAdditionalInfo": "string",
      "sex": "FEMININO",
      "contacts": {
        "postalAddresses": [
          {
            "isMain": true,
            "address": "Av Naburo Ykesaki, 1270",
            "additionalInfo": "Fundos",
            "districtName": "Centro",
            "townName": "Marília",
            "ibgeTownCode": "3550308",
            "countrySubDivision": "SP",
            "postCode": "17500001",
            "country": "Brasil",
            "countryCode": "BRA",
            "geographicCoordinates": {
              "latitude": "-90.8365180",
              "longitude": "-180.836519"
            }
          }
        ],
        "phones": [
          {
            "isMain": true,
            "type": "FIXO",
            "additionalInfo": "432",
            "countryCallingCode": "55",
            "areaCode": "19",
            "number": "29875132",
            "phoneExtension": "932"
          }
        ],
        "emails": [
          {
            "isMain": true,
            "email": "karinafernandes-81@br.inter.net"
          }
        ]
      }
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados sobre identificação pessoa física. ResponsePersonalCustomersIdentification
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Identificação Pessoa Jurídica

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/customers/v1/business/identifications");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/customers/v1/business/identifications", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/customers/v1/business/identifications")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /customers/v1/business/identifications

Versão
1

Visão Geral

Obtém os registros de identificação da pessoa jurídica

Esta especificação inclui todos os itens relevantes que permitam a ação e o efeito de identificar de forma única a pessoa jurídica através de seus dados cadastrais.

Tags: CNPJ (CNPJ Number), CPF - Cadastro de Pessoa Física (CPF Number), Identificação (Identification), Instituição Financeira (Company), Marca (Brand), Nome Civil Completo (Civil Name), Nome Social (Social Name) e Razão Social (Company Name).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "updateDateTime": "2021-05-21T08:30:00Z",
      "businessId": "578-psd-71md6971kjh-2d414",
      "brandID": "29698749425984912674",
      "brandName": "Organização A",
      "cnpjNumber": "50685362006773",
      "companyCnpjNumber": [
        "50685362000135",
        "50685362006555"
      ],
      "otherDocuments": [
        {
          "type": "EIN",
          "number": "128328453",
          "country": "CAN",
          "expirationDate": "2021-05-21"
        }
      ],
      "companyName": "Luiza e Benjamin Assessoria Jurídica Ltda",
      "tradeName": "Mundo da Eletronica",
      "incorporationDate": "2021-05-21T08:30:00Z",
      "parties": [
        {
          "personType": "PESSOA_NATURAL",
          "type": "SOCIO",
          "civilName": "Juan Kaique Cláudio Fernandes",
          "socialName": "Karina",
          "companyName": "Luiza e Benjamin Assessoria Jurídica Ltda",
          "tradeName": "Mundo da Eletronica",
          "startDate": "2021-05-21T08:30:00Z",
          "shareholding": "0.51",
          "documentType": "CPF",
          "documentNumber": "73677831148",
          "documentAdditionalInfo": "CNH",
          "documentCountry": "CAN",
          "documentExpirationDate": "2021-05-21",
          "documentIssueDate": "2021-05-21"
        }
      ],
      "contacts": {
        "postalAddresses": [
          {
            "isMain": true,
            "address": "Av Naburo Ykesaki, 1270",
            "additionalInfo": "Fundos",
            "districtName": "Centro",
            "townName": "Marília",
            "ibgeTownCode": "3550308",
            "countrySubDivision": "SP",
            "postCode": "17500001",
            "country": "Brasil",
            "countryCode": "BRA",
            "geographicCoordinates": {
              "latitude": "-90.8365180",
              "longitude": "-180.836519"
            }
          }
        ],
        "phones": [
          {
            "isMain": true,
            "type": "FIXO",
            "additionalInfo": "432",
            "countryCallingCode": "55",
            "areaCode": "19",
            "number": "29875132",
            "phoneExtension": "932"
          }
        ],
        "emails": [
          {
            "isMain": true,
            "email": "karinafernandes-81@br.inter.net"
          }
        ]
      }
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados sobre identificação pessoa jurídica ResponseBusinessCustomersIdentification
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Qualificação Pessoa Natural

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/customers/v1/personal/qualifications");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/customers/v1/personal/qualifications", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/customers/v1/personal/qualifications")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /customers/v1/personal/qualifications

Versão
1

Visão Geral

Obtém os registros de qualificação da pessoa natural

Esta especificação inclui todos os itens relevantes, que permitam as instituições apreciar, avaliar, caracterizar e classificar o cliente com a finalidade de conhecer o seu perfil de risco e sua capacidade econômico-financeira.

Tags: CBO (Cbo Code), CNPJ (CNPJ Number), Código Ocupação Receita Federal – Receita Federal Code, CPF - Cadastro de Pessoa Física (CPF Number), Instituição Financeira (Company), Marca (Brand) e Qualificação (Qualification).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "updateDateTime": "2021-05-21T08:30:00Z",
    "personalId": "578-psd-71md6971kjh-2d414",
    "brandID": "29698749425984912674",
    "brandName": "Organização A",
    "companyCnpj": "50685362000135",
    "informedIncome": {
      "frequency": "DIARIA",
      "amount": 100000.04,
      "currency": "BRL",
      "date": "2021-05-21"
    },
    "informedPatrimony": {
      "amount": 100000.04,
      "currency": "BRL",
      "year": 2010
    },
    "occupationCode": "RECEITA_FEDERAL",
    "occupationDescription": "01"
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados sobre qualificação da pessoa física ResponsePersonalCustomersQualification
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Qualificação Pessoa Jurídica

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/customers/v1/business/qualifications");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/customers/v1/business/qualifications", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/customers/v1/business/qualifications")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /customers/v1/business/qualifications

Versão
1

Visão Geral

Obtém os registros de qualificação da pessoa jurídica

Esta especificação inclui todos os itens relevantes, que permitam as instituições apreciar, avaliar, caracterizar e classificar o cliente com a finalidade de conhecer o seu perfil de risco e sua capacidade econômico-financeira.

Tags: CNAE (Cnae Code), CNPJ (CNPJ Number), CPF - Cadastro de Pessoa Física (CPF Number), Instituição Financeira (Company), Marca (Brand) e Qualificação (Qualification).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "updateDateTime": "2021-05-21T08:30:00Z",
    "businessId": "578-psd-71md6971kjh-2d414",
    "brandID": "29698749425984912674",
    "brandName": "Organização A",
    "companiesCnpj": [
      "string"
    ],
    "economicActivities": [
      {
        "code": 8599604,
        "isMain": true
      }
    ],
    "informedRevenue": {
      "frequency": "DIARIA",
      "amount": 100000.04,
      "currency": "BRL",
      "year": 2010
    },
    "informedPatrimony": {
      "amount": 100000.04,
      "currency": "BRL",
      "year": 2010
    }
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados sobre qualificação pessoa jurídica ResponseBusinessCustomersQualification
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Relacionamento Pessoa Natural

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/customers/v1/personal/financial-relations");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/customers/v1/personal/financial-relations", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/customers/v1/personal/financial-relations")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /customers/v1/personal/financial-relations

Versão
1

Visão Geral

Obtém os registros de relacionamentos com a instituição financeira e de representantes da pessoa natural.

Considera-se relacionamento as informações que permitam conhecer desde quando a pessoa consultada é cliente da instituição, bem como um indicador dos produtos e serviços que ela consome atualmente.

Tags: CNPJ (CNPJ Number), CPF - Cadastro de Pessoa Física (CPF Number), Instituição Financeira (Company), Nome Civil Completo (Civil Name), Nome Social (Social Name), Procurador (Procurator), Relacionamento (Financial Relation) e Representante Legal (Legal Representative).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "updateDateTime": "2021-05-21T08:30:00Z",
    "personalId": "578-psd-71md6971kjh-2d414",
    "startDate": "2021-05-21T08:30:00Z",
    "brandID": "29698749425984912674",
    "brandName": "Organização A",
    "productsServices": "SEGURO",
    "procurators": [
      {
        "type": "PROCURADOR",
        "cpfNumber": "73677831148",
        "civilName": "Elza Milena Stefany Teixeira",
        "socialName": "NA"
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados sobre relacionamento da pessoa física ResponsePersonalCustomersFinancialRelation
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Relacionamento Pessoa Jurídica

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/customers/v1/business/financial-relations");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/customers/v1/business/financial-relations", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/customers/v1/business/financial-relations")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /customers/v1/business/financial-relations

Versão
1

Visão Geral

Obtém os registros de relacionamentos com a instituição financeira e de representantes da pessoa jurídica

Considera-se relacionamento as informações que permitam conhecer desde quando a pessoa consultada é cliente da instituição, bem como um indicador dos produtos e serviços que ela consome atualmente.

Tags: CNPJ (CNPJ Number), CPF - Cadastro de Pessoa Física (CPF Number), Instituição Financeira (Company), Marca (Brand), Nome Civil Completo (Civil Name), Nome Social (Social Name), Procurador (Procurator), Relacionamento (Financial Relation) e Representante Legal (Legal Representative).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "updateDateTime": "2020-07-21T08:30:00Z",
    "startDate": "2020-07-21T08:30:00Z",
    "companiesCnpj": [
      "50685362000135",
      "50685362006555"
    ],
    "brandID": "29698749425984912674",
    "brandName": "Organização A",
    "productsServicesType": "SEGURO",
    "procurators": [
      {
        "type": "PROCURADOR",
        "cnpjCpfNumber": "73677831148",
        "civilName": "Elza Milena Stefany Teixeira",
        "socialName": "NA"
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados sobre relacionamento pessoa jurídica ResponseBusinessCustomersFinancialRelation
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

API - Cartão de Crédito

Lista de cartões de crédito

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/credit-cards-accounts/v1/accounts");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/credit-cards-accounts/v1/accounts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/credit-cards-accounts/v1/accounts")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /credit-cards-accounts/v1/accounts

Versão
1

Visão Geral

Método para obter a lista de contas de pagamento pós-paga mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento

Tags: Bandeira (Credit Card Network), Cartão Múltiplo (Multiple CreditCard), CNPJ (CNPJ Number) e Conta de pagamento pós-paga (Credit Card).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "brandID": "29698749425984912674",
      "brandName": "Organização A",
      "companyCnpj": "21128159000166",
      "name": "Cartão Universitário",
      "productType": "OUTROS",
      "productAdditionalInfo": "string",
      "creditCardNetwork": "VISA",
      "networkAdditionalInfo": "NA",
      "creditCardAccountId": "XXZTR3459087"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Conjunto de informações das Contas de pagamento pós paga ResponseCreditCardAccountsList
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Identificação de cartão de crédito

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/credit-cards-accounts/v1/accounts/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/credit-cards-accounts/v1/accounts/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/credit-cards-accounts/v1/accounts/string")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /credit-cards-accounts/v1/accounts/{creditCardAccountId}

Versão
1

Visão Geral

Obtém dados relativos ao conjunto de informações referentes à identificação da conta de pagamento pós-paga

Tags: Bandeira (Credit Card Network), Cartão Múltiplo (Multiple CreditCard), CNPJ (CNPJ Number) e Conta de pagamento pós-paga (Credit Card).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
creditCardAccountId path string true Identifica de forma única a conta pagamento pós-paga do cliente, mantendo as regras de imutabilidade detro da instituição transmissora

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "name": "Cartão Universitário",
    "productType": "OUTROS",
    "productAdditionalInfo": "OURO_INTERNACIONAL",
    "creditCardNetwork": "VISA",
    "networkAdditionalInfo": "NA",
    "paymentMethod": [
      {
        "identificationNumber": 4453,
        "isMultipleCreditCard": true
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de identificação da conta identificada por creditCardAccountId obtidos com sucesso. ResponseCreditCardAccountsIdentification
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Limites de cartão de crédito

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/credit-cards-accounts/v1/accounts/string/limits");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/credit-cards-accounts/v1/accounts/string/limits", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/credit-cards-accounts/v1/accounts/string/limits")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /credit-cards-accounts/v1/accounts/{creditCardAccountId}/limits

Versão
1

Visão Geral

Obtém dados dos limites: de Crédito Total e por Modalidade de Crédito relativos à conta de pagamento pós-paga.

Tags: CNPJ (CNPJ Number), Conta de pagamento pós-paga (Credit Card), Empréstimo Cartão Consignado (Payroll Loan) e Limite Flexível (Flexible Limit).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
creditCardAccountId path string true Identifica de forma única a conta pagamento pós-paga do cliente, mantendo as regras de imutabilidade detro da instituição transmissora

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "currency": "BRL",
      "creditLineLimitType": "LIMITE_CREDITO_TOTAL",
      "consolidationType": "CONSOLIDADO",
      "identificationNumber": 4453,
      "lineName": "CREDITO_A_VISTA",
      "lineNameAdditionalInfo": "string",
      "isLimitFlexible": true,
      "limitAmount": 100000.0001,
      "usedAmount": 100000.04
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados dos limites da conta identificada por creditCardAccountId obtidos com sucesso. ResponseCreditCardAccountsLimits
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Transações de cartão de crédito

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/credit-cards-accounts/v1/accounts/string/transactions");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/credit-cards-accounts/v1/accounts/string/transactions", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/credit-cards-accounts/v1/accounts/string/transactions")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /credit-cards-accounts/v1/accounts/{creditCardAccountId}/transactions

Versão
1

Visão Geral

Obtém dados das transações relativas à conta de pagamento pós-paga.

Tags: CNPJ (CNPJ Number), Conta de pagamento pós-paga (Credit Card), Crédito Rotativo (Overdraft) e MCC (Merchant Category Code).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
creditCardAccountId path string true Identifica de forma única a conta pagamento pós-paga do cliente, mantendo as regras de imutabilidade detro da instituição transmissora
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
fromTransactionDate query string(date-time) false Data inicial de filtragem.
toTransactionDate query string(date-time) false Data final de filtragem.
transactionType query EnumCreditCardTransactionType false Traz os tipos de Transação
payeeMCC query number false MCC é o Merchant Category Code, ou o código da categoria do estabelecimento comercial. Os MCCs são agrupados segundo suas similaridades

Enumerated Values

Código
PAGAMENTO
TARIFA
OPERACOES_CREDITO_CONTRATADAS_CARTAO
ESTORNO
CASHBACK
OUTROS

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "identificationNumber": 4453,
      "lineName": "CREDITO_A_VISTA",
      "transactionName": "PGTO",
      "billIdentification": "3459087XXZTR",
      "creditDebitType": "DEBITO",
      "transactionType": "CASHBACK",
      "transactionalAdditionalInfo": "string",
      "paymentType": "A_VISTA",
      "feeType": "ANUIDADE",
      "feeTypeAdditionalInfo": "string",
      "otherCreditsType": "CREDITO_ROTATIVO",
      "otherCreditsAdditionalInfo": "string",
      "chargeIdentificator": "PARCELA_1",
      "chargeNumber": 3,
      "brazilianAmount": 100000.04,
      "amount": 100000.04,
      "currency": "BRL",
      "transactionDate": "2021-05-21T08:30:00Z",
      "billPostDate": "2021-05-21T08:30:00Z",
      "payeeMCC": 5137
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados das lista de transações da conta identificada por creditCardAccountId obtidos com sucesso. ResponseCreditCardAccountsTransactions
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Fatura de Cartão de Crédito

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/credit-cards-accounts/v1/accounts/string/bills");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/credit-cards-accounts/v1/accounts/string/bills", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/credit-cards-accounts/v1/accounts/string/bills")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /credit-cards-accounts/v1/accounts/{creditCardAccountId}/bills

Versão
1

Visão Geral

Obtém dados referentes à fatura da conta de pagamento pós-paga.

Tags: CNPJ (CNPJ Number), Conta de pagamento pós-paga (Credit Card), Crédito Rotativo (Overdraft) e Fatura (Bill).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
creditCardAccountId path string true Identifica de forma única a conta pagamento pós-paga do cliente, mantendo as regras de imutabilidade detro da instituição transmissora
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
fromDueDate query string(date-time) false Data inicial de filtragem.
toDueDate query string(date-time) false Data final de filtragem.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "currency": "BRL",
      "dueDate": "2021-05-21T08:30:00Z",
      "payments": [
        {
          "transactionName": "string",
          "paymentDate": "2021-05-21T08:30:00Z",
          "paymentMode": "DEBITO_CONTA_CORRENTE",
          "valueType": "VALOR_PAGAMENTO_MINIMO_FATURA",
          "amount": 100000.04,
          "financeCharges": [
            {
              "type": "JUROS_REMUNERATORIOS_ATRASO_PAGAMENTO_FATURA",
              "additionalInfo": "string",
              "amount": 100000.04
            }
          ]
        }
      ],
      "billIdentification": "3459087XXZTR"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados referentes à lista de faturas da conta identificada por creditCardAccountId obtidos com sucesso. ResponseCreditCardAccountsBills
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Transações de cartão de crédito por fatura

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/credit-cards-accounts/v1/accounts/string/bills//transactions");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/credit-cards-accounts/v1/accounts/string/bills//transactions", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/credit-cards-accounts/v1/accounts/string/bills//transactions")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /credit-cards-accounts/v1/accounts/{creditCardAccountId}/bills/{billId}/transactions

Versão
1

Visão Geral

Obtém a lista de transações da conta identificada por creditCardAccountId e billId.

Tags: CNPJ (CNPJ Number), Conta de pagamento pós-paga (Credit Card), Crédito Rotativo (Overdraft) e MCC (Merchant Category Code).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
creditCardAccountId path string true Identifica de forma única a conta pagamento pós-paga do cliente, mantendo as regras de imutabilidade detro da instituição transmissora
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
fromTransactionDate query string(date-time) false Data inicial de filtragem.
toTransactionDate query string(date-time) false Data final de filtragem.
transactionType query EnumCreditCardTransactionType false Traz os tipos de Transação
payeeMCC query number false MCC é o Merchant Category Code, ou o código da categoria do estabelecimento comercial. Os MCCs são agrupados segundo suas similaridades

Enumerated Values

Código
PAGAMENTO
TARIFA
OPERACOES_CREDITO_CONTRATADAS_CARTAO
ESTORNO
CASHBACK
OUTROS

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "identificationNumber": 4453,
      "lineName": "CREDITO_A_VISTA",
      "transactionName": "PGTO",
      "billIdentification": "3459087XXZTR",
      "creditDebitType": "DEBITO",
      "transactionType": "CASHBACK",
      "transactionalAdditionalInfo": "string",
      "paymentType": "A_VISTA",
      "feeType": "ANUIDADE",
      "feeTypeAdditionalInfo": "string",
      "otherCreditsType": "CREDITO_ROTATIVO",
      "otherCreditsAdditionalInfo": "string",
      "chargeIdentificator": "PARCELA_1",
      "chargeNumber": 3,
      "brazilianAmount": 100000.04,
      "amount": 100000.04,
      "currency": "BRL",
      "transactionDate": "2021-05-21T08:30:00Z",
      "billPostDate": "2021-05-21T08:30:00Z",
      "payeeMCC": 5137
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados das lista de transações da conta identificada por creditCardAccountId obtidos com sucesso. ResponseCreditCardAccountsTransactions
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

API - Contas

Lista de Contas

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/accounts/v1/accounts");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/accounts/v1/accounts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/accounts/v1/accounts")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /accounts/v1/accounts

Versão
1

Visão Geral

Obtém a lista de contas consentidas pelo cliente.

Método para obter a lista de contas depósito à vista, poupança e pagamento pré-pagas mantidas pelo cliente na instituição transmissora e para as quais ele tenha fornecido consentimento.

Tags: Agência (Branch), CNPJ (CNPJ Number), Código Compe (compeCode), Conta Conjunta Não-solidária (Joint Account And), Conta Conjunta Solidária (Joint Account Or), Conta de Depósito à Vista (Current Account), Conta de Pagamento Pré-paga (Prepaid Payment Account), Conta de Poupança (Savings Account), Conta Individual (Sole Account), Instituição Financeira (Company) e Marca (Brand).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
accountType query EnumAccountType false Tipos de contas. Modalidades tradicionais previstas pela Resolução 4.753, não contemplando contas vinculadas, conta de domiciliados no exterior, contas em moedas estrangeiras e conta correspondente moeda eletrônica. Vide Enum.

Enumerated Values

Código
CONTA_DEPOSITO_A_VISTA
CONTA_POUPANCA
CONTA_PAGAMENTO_PRE_PAGA

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "brandID": "29698749425984912674",
      "brandName": "Organização A",
      "companyCnpj": "21128159000166",
      "type": "CONTA_DEPOSITO_A_VISTA",
      "compeCode": "001",
      "branchCode": "6272",
      "number": "94088392",
      "checkDigit": "4",
      "accountID": "92792126019929279212650822221989319252576"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de identificação das contas obtidos com sucesso. ResponseAccountList
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Identificação da Conta

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/accounts/v1/accounts/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/accounts/v1/accounts/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/accounts/v1/accounts/string")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /accounts/v1/accounts/{accountId}

Versão
1

Visão Geral

Obtém os dados de identificação da conta mantidos na instituição transmissora

Esta especificação inclui todos os artefatos relevantes para a Especificação de API sobre a Identificação de uma conta de: depósito à vista, poupança ou de pagamento pré-paga referente às informações transacionais de cliente.

Tags: Agência (Branch), CNPJ (CNPJ Number), Código Compe (compeCode), Conta Conjunta Não-solidária (Joint Account And), Conta Conjunta Solidária (Joint Account Or), Conta de Depósito à Vista (Current Account), Conta de Pagamento Pré-paga (Prepaid Payment Account), Conta de Poupança (Savings Account), Conta Individual (Sole Account), Instituição Financeira (Company) e Marca (Brand).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
accountId path string true Identificador da conta de depósito à vista, de poupança ou de pagamento pré-paga.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "compeCode": "001",
    "branchCode": "6272",
    "number": "24550245",
    "checkDigit": "4",
    "type": "CONTA_DEPOSITO_A_VISTA",
    "subtype": "INDIVIDUAL",
    "currency": "BRL"
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de identificação da conta identificada por accountId obtidos com sucesso. ResponseAccountIdentification
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Saldos da conta

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/accounts/v1/accounts/string/balances?compeCode=str&branchCode=stri&number=string&checkDigit=s");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/accounts/v1/accounts/string/balances?compeCode=str&branchCode=stri&number=string&checkDigit=s", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/accounts/v1/accounts/string/balances?compeCode=str&branchCode=stri&number=string&checkDigit=s")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /accounts/v1/accounts/{accountId}/balances

Versão
1

Visão Geral

Obtém os saldos da conta mantidos na instituição transmissora

Esta especificação inclui todos os artefatos relevantes para a Especificação de API sobre os saldos de uma conta de: depósito à vista, poupança ou de pagamento pré-paga referente às informações transacionais de cliente.

Tags: Agência (Branch), Saldo (Account Balance), Saldo Bloqueado (Cash Blocked), Saldo Disponível (Cash Amount), CNPJ (CNPJ Number), Marca (Brand) e Instituição Financeira (Company).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
accountId path string true Identificador da conta de depósito à vista, de poupança ou de pagamento pré-paga.
compeCode query string true Código identificador atribuído pelo Banco Central do Brasil às instituições participantes do STR (Sistema de Transferência de reservas). O número-código substituiu o antigo código COMPE. Todos os participantes do STR, exceto as Infraestruturas do Mercado Financeiro (IMF) e a Secretaria do Tesouro Nacional, possuem um número-código independentemente de participarem da Centralizadora da Compensação de Cheques (Compe). O campo tem a anotação “n/a” (“não se aplica”) para os participantes do STR aos quais não é atribuído um número-código
branchCode query string true Código da Agência detentora da conta. (Agência é a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito, no exercício de atividades da instituição, não podendo ser móvel ou transitória)
number query string true Número da conta
checkDigit query string true Dígito da conta

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "avaiableAmount": 100000.04,
    "blockedAmount": 99.9999,
    "automaticallyInvestedAmount": 2566449494219
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados relativos aos saldos da conta identificada por accountId obtidos com sucesso. ResponseAccountBalances
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Transações da conta

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/accounts/v1/accounts/string/transactions?compeCode=str&branchCode=stri&number=string&checkDigit=s");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/accounts/v1/accounts/string/transactions?compeCode=str&branchCode=stri&number=string&checkDigit=s", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/accounts/v1/accounts/string/transactions?compeCode=str&branchCode=stri&number=string&checkDigit=s")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /accounts/v1/accounts/{accountId}/transactions

Versão
1

Visão Geral

Obtém a lista de transações da conta mantidos na instituição transmissora

Esta especificação inclui todos os artefatos relevantes para a Especificação de API sobre as transações efetivadas e os pagamentos autorizados de uma conta de: depósito à vista, poupança ou de pagamento pré-paga referente às informações transacionais de cliente.

Tags: Crédito (Credit), Débito (Debit), Pagador (Payer), Pagamento autorizado (Authorised Payment), Recebedor (Payee), Transação Agendada (Scheduled Payment), Transações Realizadas (Completed Transaction), CNPJ (CNPJ Number), Marca (Brand), Instituição Financeira (Company) e Agência (Branch).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
accountId path string true Identificador da conta de depósito à vista, de poupança ou de pagamento pré-paga.
compeCode query string true Código identificador atribuído pelo Banco Central do Brasil às instituições participantes do STR (Sistema de Transferência de reservas). O número-código substituiu o antigo código COMPE. Todos os participantes do STR, exceto as Infraestruturas do Mercado Financeiro (IMF) e a Secretaria do Tesouro Nacional, possuem um número-código independentemente de participarem da Centralizadora da Compensação de Cheques (Compe). O campo tem a anotação “n/a” (“não se aplica”) para os participantes do STR aos quais não é atribuído um número-código
branchCode query string true Código da Agência detentora da conta. (Agência é a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito, no exercício de atividades da instituição, não podendo ser móvel ou transitória)
number query string true Número da conta
checkDigit query string true Dígito da conta
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
fromBookingDate query string(date-time) false Data inicial de filtragem.
toBookingDate query string(date-time) false Data final de filtragem.
creditDebitIndicator query EnumCreditDebitIndicator false Indicador do tipo de lançamento

Enumerated Values

Código
CREDITO
DEBITO

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "completedAuthorisedPaymentType": "TRANSACAO_EFETIVADA",
      "creditDebitType": "DEBITO",
      "transactionName": "TRANSFCWAR5TXHCX5I9IDBHML8082N8NEO30M6LNNG7ANAYIJYRM00ZBZPU8",
      "type": "OUTRO",
      "amount": 500.54,
      "transactionDate": "2021-01-07",
      "partieCnpjCpf": "43908445778",
      "partiePersonType": "PESSOA_NATURAL",
      "partieCompeCode": "001",
      "partieBranchCode": "6272",
      "partieNumber": "67890854360",
      "partieCheckDigit": "4"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados da lista de transações da conta identificada por accountId obtidos com sucesso. ResponseAccountTransactions
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Limites da conta

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/accounts/v1/accounts/string/overdraft-limits?compeCode=str&branchCode=stri&number=string&checkDigit=s");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/accounts/v1/accounts/string/overdraft-limits?compeCode=str&branchCode=stri&number=string&checkDigit=s", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/accounts/v1/accounts/string/overdraft-limits?compeCode=str&branchCode=stri&number=string&checkDigit=s")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /accounts/v1/accounts/{accountId}/overdraft-limits

Versão
1

Visão Geral

Obtém os dados de limite de cheque especial e de adiantamento a depositante da conta mantidos na instituição transmissora

Esta especificação inclui todos os artefatos relevantes para a Especificação de API sobre os valores utilizado e disponível do limite do Cheque Especial e o valor em excesso (Adiantamento a depositante) de uma conta de depósito à vista, referente às informações transacionais de cliente.

Tags: Adiantamento a Depositante (Unarranged Account Overdraft), Cheque Especial (Arranged Overdraft), Saldo (Account Balance), CNPJ (CNPJ Number), Marca (Brand), Instituição Financeira (Company), Agência (Branch) e Conta de depósito à vista (Account).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.
accountId path string true Identificador da conta de depósito à vista, de poupança ou de pagamento pré-paga.
compeCode query string true Código identificador atribuído pelo Banco Central do Brasil às instituições participantes do STR (Sistema de Transferência de reservas). O número-código substituiu o antigo código COMPE. Todos os participantes do STR, exceto as Infraestruturas do Mercado Financeiro (IMF) e a Secretaria do Tesouro Nacional, possuem um número-código independentemente de participarem da Centralizadora da Compensação de Cheques (Compe). O campo tem a anotação “n/a” (“não se aplica”) para os participantes do STR aos quais não é atribuído um número-código
branchCode query string true Código da Agência detentora da conta. (Agência é a dependência destinada ao atendimento aos clientes, ao público em geral e aos associados de cooperativas de crédito, no exercício de atividades da instituição, não podendo ser móvel ou transitória)
number query string true Número da conta
checkDigit query string true Dígito da conta

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "overdraftContractedLimit": 99.9999,
    "overdraftUsedLimit": 10000.9999
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de limites da conta identificada por accountId obtidos com sucesso. ResponseAccountOverdraftLimits
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

API - Operações de Crédito - Empréstimos

Empréstimos

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/loans/v1/contracts");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/loans/v1/contracts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/loans/v1/contracts")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /loans/v1/contracts

Versão
1

Visão Geral

Obtém a lista de contratos de empréstimos mantidos pelos clientes da instituição transmissora.

Tags: CNPJ (CNPJ Number), Custo Efetivo Total (CET), Empréstimo (Loan), Encargo (Charge), Ente Consignante (CnpjConsignee), Identificador padronizado da operação de crédito – Ipoc Code, Indexador (Indexer), Sistema de Amortização Constante (SAC), Sistema Francês de Amortização (Price), Tarifa (Fee), Taxa Efetiva (EffectiveTax) e Taxa nominal (NominalTax).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "brandID": "29698749425984912674",
      "brandName": "Organização A",
      "companyCnpj": "21128159000166",
      "productType": "EMPRESTIMO",
      "productSubType": "CREDITO_PESSOAL_COM_CONSIGNACAO",
      "ipocCode": "92792126019929279212650822221989319252576",
      "contractId": "92792126019929279212650822221989319252576"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados dos contratos de empréstimos obtidos com sucesso. ResponseLoansContractList
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Empréstimos - Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/loans/v1/contracts/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/loans/v1/contracts/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/loans/v1/contracts/string")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /loans/v1/contracts/{contractId}

Versão
1

Visão Geral

Obtém dados referentes à identificação da operação de crédito de Empréstimos

Tags: CNPJ (CNPJ Number), Custo Efetivo Total (CET), Empréstimo (Loan), Encargo (Charge), Ente Consignante (CnpjConsignee), Identificador padronizado da operação de crédito – Ipoc Code, Indexador (Indexer), Sistema de Amortização Constante (SAC), Sistema Francês de Amortização (Price), Tarifa (Fee), Taxa Efetiva (EffectiveTax) e Taxa nominal (NominalTax).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "ipocCode": "92792126019929279212650822221989319252576",
    "productName": "Crédito Pessoal Consignado",
    "productType": "EMPRESTIMO",
    "productSubType": "CREDITO_PESSOAL_COM_CONSIGNACAO",
    "contractDate": "2018-01-05",
    "disbursementDate": "2018-01-15",
    "contractAmount": 100000.04,
    "currency": "BRL",
    "dueDate": "2028-01-15",
    "instalmentPeriodicity": "SEMANAL",
    "firstInstalmentDueDate": "2018-02-15",
    "totalNumberOfInstalments": 130,
    "paidInstalments": 73,
    "CET": 0.29,
    "amortizationScheduled": "SAC",
    "interestRates": [
      {
        "taxType": "EFETIVA",
        "interestRateType": "SIMPLES",
        "taxPeriodicity": "AA",
        "calculation": "21/25",
        "referentialRateIndexerType": "PRE_FIXADO",
        "referentialRateIndexerSubType": "TJLP",
        "preFixedRate": 0.6,
        "postFixedRate": 0.55,
        "additionalInfo": ""
      }
    ],
    "contractedFees": [
      {
        "feeName": "Renovação de cadastro",
        "feeCode": "CADASTRO",
        "feeChargeType": "UNICA",
        "feeCharge": "MINIMO",
        "feeAmount": 50,
        "feeRate": 50
      }
    ],
    "contractedFinanceCharges": [
      {
        "chargeType": "JUROS_REMUNERATORIOS_POR_ATRASO",
        "chargeAdditionalInfo": "string",
        "chargeRate": 0.07
      }
    ],
    "cnpjConsignee": "60500998000135"
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados do contrato de empréstimo identificado por contractId ResponseLoansContract
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Empréstimos - Garantias do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/loans/v1/contracts/string/warranties");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/loans/v1/contracts/string/warranties", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/loans/v1/contracts/string/warranties")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /loans/v1/contracts/{contractId}/warranties

Versão
1

Visão Geral

Obtém dados referentes às garantias que avalizam a operação de crédito de Empréstimos contratada

Tags: Empréstimo (Loan) e Garantia (Warranty).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "currency": "BRL",
      "warrantyType": "CESSAO_DIREITOS_CREDITORIOS",
      "warrantySubType": "NOTAS_PROMISSORIAS_OUTROS_DIREITOS_CREDITO",
      "warrantyAmount": 200.0001
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Lista de garantias vinculadas ao contrato de empréstimo identificado por contractId ResponseLoansWarranties
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Empréstimos - Pagamentos do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/loans/v1/contracts/string/payments");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/loans/v1/contracts/string/payments", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/loans/v1/contracts/string/payments")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /loans/v1/contracts/{contractId}/payments

Versão
1

Visão Geral

Obtém dados dos pagamentos referentes às operações de crédito de Empréstimos contratadas

Tags: Empréstimo (Loan), Encargo (Charge), Saldo Devedor (Outstanding Balance) e Tarifa (Fee).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "paidInstalments": 73,
    "contractOutstandingBalance": 100000.04,
    "releases": [
      {
        "paymentId": "Parcela regular",
        "isOverParcelPayment": true,
        "instalmentId": "15",
        "paidDate": "2021-05-21",
        "currency": "BRL",
        "paidAmount": 100000.04,
        "overParcel": {
          "fee": [
            {
              "feeName": "Reavaliação periódica do bem",
              "feeCode": "aval_bem",
              "feeAmount": 100000.04
            }
          ],
          "charge": [
            {
              "chargeType": "JUROS_REMUNERATORIOS_POR_ATRASO",
              "chargeAdditionalInfo": "string",
              "chargeAmount": 100000.04
            }
          ]
        }
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de pagamentos do contrato de empréstimo identificado por contractId ResponseLoansPayments
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Empréstimos - Parcelas do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/loans/v1/contracts/string/scheduled-instalments");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/loans/v1/contracts/string/scheduled-instalments", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/loans/v1/contracts/string/scheduled-instalments")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /loans/v1/contracts/{contractId}/scheduled-instalments

Versão
1

Visão Geral

Obtém dados referentes às parcelas / prestações da operação de crédito de Empréstimos contratadas

Tags: Empréstimo (Loan) e Prestação Regular (Instalment).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "contractRemainingDays": 14600,
    "dueInstalments": 57,
    "pastDueInstalments": 73,
    "balloonPayments": [
      {
        "dueDate": "2021-05-21",
        "currency": "BRL",
        "amount": 100000.04
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados do cronograma de parcelas do contrato de empréstimo identificado por contractId ResponseLoansInstalments
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

API - Operações de Crédito - Financiamentos

Financiamentos

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/financings/v1/contracts");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/financings/v1/contracts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/financings/v1/contracts")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /financings/v1/contracts

Versão
1

Visão Geral

Obtém dados referentes à operação de crédito de Financiamentos

Tags: CNPJ (CNPJ Number), CPF - Cadastro de Pessoa Física (CPF Number) e Financiamento (Financing).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "brandId": "29698749425984912674",
      "brandName": "Organização A",
      "companyCnpj": "21128159000166",
      "productType": "EMPRESTIMO",
      "productSubType": "CREDITO_PESSOAL_SEM_CONSIGNACAO",
      "ipocCode": "92792126019929279212650822221989319252576",
      "contractId": "92792126019929279212650822221989319252576"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Lista de contratos obtida com sucesso. ResponseFinancingsContractList
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Financiamentos - Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/financings/v1/contracts/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/financings/v1/contracts/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/financings/v1/contracts/string")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /financings/v1/contracts/{contractId}

Versão
1

Visão Geral

Obtém dados referentes à identificação da operação de crédito de Financiamentos

Tags: CNPJ (CNPJ Number), CPF - Cadastro de Pessoa Física (CPF Number), Custo Efetivo Total (CET), Encargo (Charge), Ente Consignante (CnpjConsignee), Financiamento (Financing), Identificador Padronizado da Operação de Crédito – Ipoc Code, Indexador (Indexer), Sistema de Amortização Constante (SAC), Sistema de Amortização Misto (SAM), Sistema Francês de Amortização (Price), Tarifa (Fee), Taxa Efetiva (EffectiveTax) e Taxa nominal (NominalTax).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "ipocCode": "92792126019929279212650822221989319252576",
    "productName": "AD",
    "productType": "FINANCIAMENTOS",
    "productSubType": "AQUISICAO_BENS_VEICULOS_AUTOMOTORES",
    "contractDate": "2021-05-21T08:30:00Z",
    "disbursementDate": "2021-05-21T08:30:00Z",
    "contractAmount": 100000.04,
    "currency": "BRL",
    "dueDate": "2021-05-21T08:30:00Z",
    "instalmentPeriodicity": "SEMANAL",
    "firstInstalmentDueDate": "2021-05-21T08:30:00Z",
    "totalNumberOfInstalments": 130,
    "paidInstalments": 73,
    "CET": 0.29,
    "amortizationScheduled": "SAC",
    "interestRates": [
      {
        "interestRateType": "SIMPLES",
        "taxPeriodicity": "AA",
        "calculation": "21/25",
        "referentialRateIndexerType": "PRE_FIXADO",
        "referentialRateIndexerSubType": "TJLP",
        "preFixedRate": 0.6,
        "postFixedRate": 0.55,
        "additionalInfo": ""
      }
    ],
    "contractedFees": [
      {
        "feeName": "Excesso em Conta",
        "feeCode": "EXCESSO_CONTA",
        "feeChargeType": "UNICA",
        "feeCharge": "MINIMO",
        "feeAmount": 100000.04,
        "feeRate": 50
      }
    ],
    "contractedFinancesCharges": [
      {
        "chargeType": "JUROS_REMUNERATORIOS_POR_ATRASO",
        "chargeAdditionalInfo": "string",
        "chargeRate": 0.07
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados do contrato de financiamento identificado por contractId ResponseFinancingsContract
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Financiamentos - Garantias do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/financings/v1/contracts/string/warranties");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/financings/v1/contracts/string/warranties", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/financings/v1/contracts/string/warranties")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /financings/v1/contracts/{contractId}/warranties

Versão
1

Visão Geral

Obtém dados referentes às garantias que avalizam a operação de crédito de Financiamentos contratada

Tags: Financiamento (Financing), Garantia (Warranty) e Sistema de Amortização Misto (SAM).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "currency": "BRL",
      "warrantyType": "CESSAO_DIREITOS_CREDITORIOS",
      "warrantySubType": "NOTAS_PROMISSORIAS_OUTROS_DIREITOS_CREDITO",
      "warrantyAmount": 100000.04
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Lista de garantias vinculadas ao contrato de financiamento identificado por contractId ResponseFinancingsWarranties
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Financiamentos - Pagamentos do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/financings/v1/contracts/string/payments");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/financings/v1/contracts/string/payments", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/financings/v1/contracts/string/payments")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /financings/v1/contracts/{contractId}/payments

Versão
1

Visão Geral

Obtém dados dos pagamentos referentes às operações de crédito de Financiamentos contratadas

Tags: Encargo (Charge), Financiamento (Financing), Identificador Padronizado da Operação de Crédito – Ipoc Code, Saldo Devedor (Outstanding Balance), Sistema de Amortização Constante (SAC), Sistema de Amortização Misto (SAM), Sistema Francês de Amortização (Price) e Tarifa (Fee).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "paidInstalments": 73,
    "contractOutstandingBalance": 100000.04,
    "releases": [
      {
        "paymentId": "Parcela regular",
        "isOverParcelPayment": true,
        "instalmentId": "15",
        "paidDate": "2021-05-21T08:30:00Z",
        "currency": "BRL",
        "paidAmount": 100000.04,
        "overParcel": {
          "fee": [
            {
              "feeName": "reavaliação periódica do bem",
              "feeCode": "aval_bem",
              "feeAmount": 100000.04
            }
          ],
          "charge": [
            {
              "chargeType": "JUROS_REMUNERATORIOS_POR_ATRASO",
              "chargeAdditionalInfo": "Informações Adicionais",
              "chargeAmount": 100000.04
            }
          ]
        }
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de pagamentos do contrato de financiamento identificado por contractId ResponseFinancingsPayments
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Financiamentos - Parcelas do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/financings/v1/contracts/string/scheduled-instalments");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/financings/v1/contracts/string/scheduled-instalments", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/financings/v1/contracts/string/scheduled-instalments")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /financings/v1/contracts/{contractId}/scheduled-instalments

Versão
1

Visão Geral

Obtém dados referentes às parcelas / prestações da operação de crédito de Financiamentos contratadas

Tags: Financiamento (Financing) e Prestação Regular (Instalment).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "contractRemainingDays": 14600,
    "dueInstalments": 57,
    "pastDueInstalments": 73,
    "balloonPayments": [
      {
        "dueDate": "2020-01-10",
        "currency": "BRL",
        "amount": 100000.04
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados do cronograma de parcelas do contrato de financiamento identificado por contractId ResponseFinancingsInstalments
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

API - Operações de Crédito - Adiantamento a Depositantes

Adiantamento a Depositantes

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/unarranged-accounts-overdraft/v1/contracts");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/unarranged-accounts-overdraft/v1/contracts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/unarranged-accounts-overdraft/v1/contracts")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /unarranged-accounts-overdraft/v1/contracts

Versão
1

Visão Geral

Obtém dados referentes à operação de crédito de Adiantamento a Depositantes

Tags: Adiantamento a Depositante (Unarranged Account Overdraft) e Identificador padronizado da operação de crédito – Ipoc Code.

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "brandId": "29698749425984912674",
      "brandName": "Organização A",
      "companyCnpj": "60500998000144",
      "productType": "ADIANTAMENTO_A_DEPOSITANTES",
      "productSubType": "ADIANTAMENTO_A_DEPOSITANTES",
      "ipocCode": "92792126019929279212650822221989319252576",
      "contractId": "xcjklompowsa279212650822221989319aadrtjk"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Lista de contratos obtida com sucesso. ResponseUnarrangedAccountOverdraftContractList
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Adiantamento a Depositantes - Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/unarranged-accounts-overdraft/v1/contracts/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/unarranged-accounts-overdraft/v1/contracts/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/unarranged-accounts-overdraft/v1/contracts/string")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /unarranged-accounts-overdraft/v1/contracts/{contractId}

Versão
1

Visão Geral

Obtém dados referentes à identificação da operação de crédito de Adiantamento a Depositantes

Tags: Adiantamento a Depositante (Unarranged Account Overdraft), Custo Efetivo Total (CET), Encargo (Charge), Identificador padronizado da operação de crédito – Ipoc Code, Indexador (Indexer), Sistema de Amortização Constante (SAC), Sistema Francês de Amortização (Price), Tarifa (Fee), Taxa Efetiva (EffectiveTax) e Taxa nominal (NominalTax).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "ipocCode": "92792126019929279212650822221989319252576",
    "productName": "AD",
    "productType": "ADIANTAMENTO_A_DEPOSITANTES",
    "productSubType": "ADIANTAMENTO_A_DEPOSITANTES",
    "contractDate": "2021-05-21T08:30:00Z",
    "disbursementDate": "2021-05-21T08:30:00Z",
    "contractAmount": 100000.04,
    "currency": "BRL",
    "dueDate": "2021-05-21T08:30:00Z",
    "instalmentPeriodicity": "SEMANAL",
    "firstInstalmentDueDate": "2021-05-21T08:30:00Z",
    "totalNumberOfInstalments": 130,
    "paidInstalments": 73,
    "cet": 0.29,
    "amortizationScheduled": "SAC",
    "interestRates": [
      {
        "taxType": "EFETIVA",
        "interestRateType": "SIMPLES",
        "taxPeriodicity": "AA",
        "calculation": "21/25",
        "referentialRateIndexerType": "PRE_FIXADO",
        "referentialRateIndexerSubType": "TJLP",
        "referentialRateIndexerAdditionalInfo": "string",
        "preFixedRate": 0.6,
        "postFixedRate": 0.55,
        "additionalInfo": "string"
      }
    ],
    "contractedFees": [
      {
        "feeName": "Excesso em Conta",
        "feeCode": "EXCESSO_CONTA",
        "feeChargeType": "UNICA",
        "feeCharge": "MINIMO",
        "feeAmount": 100000.04,
        "feeRate": 50
      }
    ],
    "contractedFinancesCharges": [
      {
        "chargeType": "JUROS_REMUNERATORIOS_POR_ATRASO",
        "chargeAdditionalInfo": "string",
        "chargeRate": 0.07
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados do contrato de adiantamento a depositantes identificado por contractId ResponseUnarrangedAccountOverdraftContract
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Adiantamento a Depositantes - Garantias do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/unarranged-accounts-overdraft/v1/contracts/string/warranties");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/unarranged-accounts-overdraft/v1/contracts/string/warranties", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/unarranged-accounts-overdraft/v1/contracts/string/warranties")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /unarranged-accounts-overdraft/v1/contracts/{contractId}/warranties

Versão
1

Visão Geral

Obtém dados referentes às garantias que avalizam a operação de crédito de Adiantamento a Depositantes contratada

Tags: Adiantamento a Depositante (Unarranged Account Overdraft) e Garantia (Warranty).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "currency": "BRL",
      "warrantyType": "CESSAO_DIREITOS_CREDITORIOS",
      "warrantySubType": "NOTAS_PROMISSORIAS_OUTROS_DIREITOS_CREDITO",
      "warrantyAmount": 100000.04
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Lista de garantias vinculadas ao contrato de adiantamento a depositantes identificado por contractId ResponseUnarrangedAccountOverdraftWarranties
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Adiantamento a Depositantes - Pagamentos do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/unarranged-accounts-overdraft/v1/contracts/string/payments");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/unarranged-accounts-overdraft/v1/contracts/string/payments", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/unarranged-accounts-overdraft/v1/contracts/string/payments")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /unarranged-accounts-overdraft/v1/contracts/{contractId}/payments

Versão
1

Visão Geral

Obtém dados dos pagamentos referentes às operações de crédito de Adiantamento a Depositantes contratadas

Tags: Adiantamento a Depositante (Unarranged Account Overdraft), Encargo (Charge), Saldo Devedor (Outstanding Balance) e Tarifa (Fee).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "paidInstalments": 73,
    "contractOutstandingBalance": 100000.04,
    "releases": [
      {
        "paymentId": "Parcela regular",
        "isOverParcelPayment": true,
        "instalmentId": "15",
        "paidDate": "2021-05-21T08:30:00Z",
        "currency": "BRL",
        "paidAmount": 100000.04,
        "overParcel": {
          "fee": [
            {
              "feeName": "reavaliação periódica do bem",
              "feeCode": "aval_bem",
              "feeAmount": 100000.04
            }
          ],
          "charge": [
            {
              "chargeType": "JUROS_REMUNERATORIOS_POR_ATRASO",
              "chargeAdditionalInfo": "Informações Adicionais",
              "chargeAmount": 100000.04
            }
          ]
        }
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados de pagamentos do contrato de adiantamento a depositantes identificado por contractId ResponseUnarrangedAccountOverdraftPayments
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Adiantamento a Depositantes - Parcelas do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/unarranged-accounts-overdraft/v1/contracts/string/scheduled-instalments");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/unarranged-accounts-overdraft/v1/contracts/string/scheduled-instalments", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/unarranged-accounts-overdraft/v1/contracts/string/scheduled-instalments")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /unarranged-accounts-overdraft/v1/contracts/{contractId}/scheduled-instalments

Versão
1

Visão Geral

Obtém dados referentes às parcelas / prestações da operação de crédito de Adiantamento a Depositantes contratadas

Tags: Adiantamento a Depositante (Unarranged Account Overdraft).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "contractRemainingDays": 14600,
    "dueInstalments": 57,
    "pastDueInstalments": 73,
    "balloonPayments": [
      {
        "dueDate": "2021-05-21T08:30:00Z",
        "currency": "BRL",
        "amount": 100000.04
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados do cronograma de parcelas do contrato de adiantamento a depositantes identificado por contractId ResponseUnarrangedAccountOverdraftInstalments
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

API - Operações de Crédito - Direitos Creditórios Descontados

Direitos Creditórios Descontados

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/invoice-financings/v1/contracts");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/invoice-financings/v1/contracts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/invoice-financings/v1/contracts")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /invoice-financings/v1/contracts

Versão
1

Visão Geral

Conjunto de informações de contratos de direitos creditórios descontados mantidos pelo cliente na instituição transmissora e para os quais ele tenha fornecido consentimento

Tags: Direito Creditório Descontado (Invoice Financing) eIdentificador padronizado da operação de crédito – Ipoc Code.

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "brandID": "29698749425984912674",
      "brandName": "Organização A",
      "companyCnpj": "21128159000166",
      "productType": "DIREITOS_CREDITORIOS_DESCONTADOS",
      "productSubType": "DESCONTO_CHEQUES",
      "ipocCode": "92792126019929279212650822221989319252576",
      "contractId": "92792126019929279212650822221989319252576"
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Lista de contratos obtida com sucesso. ResponseInvoiceFinancingsContractList
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Direitos Creditórios Descontados - Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/invoice-financings/v1/contracts/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/invoice-financings/v1/contracts/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/invoice-financings/v1/contracts/string")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /invoice-financings/v1/contracts/{contractId}

Versão
1

Visão Geral

Obtém dados referentes à identificação da operação de crédito de Direitos Creditórios Descontados

Tags: Custo Efetivo Total (CET), Direito Creditório Descontado (Invoice Financing), Encargo (Charge), Ente Consignante (CnpjConsignee), Identificador padronizado da operação de crédito – Ipoc Code, Indexador (Indexer), Tarifa (Fee), Taxa Efetiva (EffectiveTax) e Taxa nominal (NominalTax).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": {
    "ipocCode": "92792126019929279212650822221989319252576",
    "productName": "AD",
    "productType": "DIREITOS_CREDITORIOS_DESCONTADOS",
    "productSubType": "DESCONTO_CHEQUES",
    "contractDate": "2021-05-21T08:30:00Z",
    "disbursementDate": "2021-05-21T08:30:00Z",
    "contractAmount": 100000.04,
    "currency": "BRL",
    "dueDate": "2021-05-21T08:30:00Z",
    "instalmentPeriodicity": "SEMANAL",
    "firstInstalmentDueDate": "2021-05-21T08:30:00Z",
    "typeNumberOfInstalments": "MES",
    "totalNumberOfInstalments": 130,
    "paidInstalments": 73,
    "CET": 0.29,
    "amortizationScheduled": "SAC",
    "interestRates": [
      {
        "interestRateType": "SIMPLES",
        "taxPeriodicity": "AA",
        "calculation": "21/25",
        "referentialRateIndexerType": "PRE_FIXADO",
        "referentialRateIndexerSubType": "TJLP",
        "referentialRateIndexerAdditionalInfo": "string",
        "preFixedRate": 0.6,
        "postFixedRate": 0.55,
        "additionalInfo": "string"
      }
    ],
    "contractedFees": [
      {
        "feeName": "Excesso em Conta",
        "feeCode": "EXCESSO_CONTA",
        "feeChargeType": "UNICA",
        "feeCharge": "MINIMO",
        "feeAmount": 100000.04,
        "feeRate": 50
      }
    ],
    "contractedFinanceCharges": [
      {
        "chargeType": "JUROS_REMUNERATORIOS_POR_ATRASO",
        "chargeAdditionalInfo": "string",
        "chargeRate": 0.0507
      }
    ]
  },
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"
  },
  "meta": {
    "totalRecords": 1,
    "totalPages": 1,
    "requestDateTime": "2021-05-21T08:30:00Z"
  }
}

Resposta

Status Significado Descrição Schema
200 OK Dados do contrato de antecipação de recebíveis identificado por contractId ResponseInvoiceFinancingsContract
400 Bad Request A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL. ResponseError
401 Unauthorized Cabeçalho de autenticação ausente/inválido ou token inválido ResponseError
403 Forbidden O token tem escopo incorreto ou uma política de segurança foi violada ResponseError
404 Not Found O recurso solicitado não existe ou não foi implementado ResponseError
405 Method Not Allowed O consumidor tentou acessar o recurso com um método não suportado ResponseError
406 Not Acceptable A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 ResponseError
429 Too Many Requests A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido ResponseError
500 Internal Server Error Ocorreu um erro no gateway da API ou no microsserviço ResponseError

Direitos Creditórios Descontados - Garantias do Contrato

Exemplo de código

const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://example.com/invoice-financings/v1/contracts/string/warranties");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "string");
xhr.setRequestHeader("x-fapi-auth-date", "stringstringstringstringstrin");
xhr.setRequestHeader("x-fapi-customer-ip-address", "string");
xhr.setRequestHeader("x-fapi-interaction-id", "string");
xhr.setRequestHeader("x-customer-user-agent", "string");

xhr.send(data);
import http.client

conn = http.client.HTTPSConnection("example.com")

headers = {
    'Accept': "application/json",
    'Authorization': "string",
    'x-fapi-auth-date': "stringstringstringstringstrin",
    'x-fapi-customer-ip-address': "string",
    'x-fapi-interaction-id': "string",
    'x-customer-user-agent': "string"
    }

conn.request("GET", "/invoice-financings/v1/contracts/string/warranties", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
HttpResponse<String> response = Unirest.get("https://example.com/invoice-financings/v1/contracts/string/warranties")
  .header("Accept", "application/json")
  .header("Authorization", "string")
  .header("x-fapi-auth-date", "stringstringstringstringstrin")
  .header("x-fapi-customer-ip-address", "string")
  .header("x-fapi-interaction-id", "string")
  .header("x-customer-user-agent", "string")
  .asString();

GET /invoice-financings/v1/contracts/{contractId}/warranties

Versão
1

Visão Geral

Obtém dados referentes às garantias que avalizam a operação de crédito de Direitos Creditórios Descontados contratada

Tags: Direito Creditório Descontado (Invoice Financing) e Garantia (Warranty).

Visão de alto de nível das estruturas de dados

DER - Diagramas de Entidade e Relacionamento

Fazer download do DER Conceitual

Fazer download do DER Lógico

Dicionário de dados

Fazer download do dicionário de dados

Fazer download dos exemplos

Especificação em OAS 3.0

Download da Especificação (OAS 3.0)

Parâmetros

Nome Origem Tipo Obrigatório Descrição
contractId path string true Identificador do contrato para todos os tipos de operação de crédito.
page query integer(int32) false Número da página que está sendo requisitada (o valor da primeira página é 1).
page-size query integer(int32) false Quantidade total de registros por páginas.
Authorization header string true Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
x-fapi-auth-date header string false Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a RFC7231.Exemplo: Sun, 10 Sep 2017 19:43:31 UTC
x-fapi-customer-ip-address header string false O endereço IP do usuário se estiver atualmente logado com o receptor.
x-fapi-interaction-id header string false Um UID RFC4122 usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.
x-customer-user-agent header string false Indica o user-agent que o usuário utiliza.

O comando acima retorna uma estrutura json como essa:

200 Response

{
  "data": [
    {
      "currency": "BRL",
      "warrantyType": "CESSAO_DIREITOS_CREDITORIOS",
      "warrantySubType": "NOTAS_PROMISSORIAS_OUTROS_DIREITOS_CREDITO",
      "warrantyAmount": 100000.04
    }
  ],
  "links": {
    "self": "https://api.banco.com.br/open-banking/api/v1/resource",
    "first": "https://api.banco.com.br/open-banking/api/v1/resource",
    "prev": "https://api.banco.com.br/open-banking/api/v1/resource",
    "next": "https://api.banco.com.br/open-banking/api/v1/resource",
    "last": "https://api.banco.com.br/open-banking/api/v1/resource"