﻿openapi: 3.0.0
info:
  title: API Customers - Open Banking Brasil
  description: |
    API de dados cadastrais de clientes do Open Banking Brasil – Fase 2.
    API que retorna os dados cadastrais de clientes e de seus representantes, incluindo dados de identificação, de qualificação financeira, informações sobre representantes cadastrados e sobre o relacionamento financeiro do cliente com a instituição transmissora dos dados.\
    Possui segregação entre pessoa natural e pessoa jurídica.\
    Requer consentimento do cliente para todos os `endpoints`.

    # Orientações
    A `Role`  do diretório de participantes relacionada à presente API é a `DADOS`.\
    Para todos os `endpoints` desta API é previsto o envio de um `token` através do header `Authorization`.\
    Este token deverá estar relacionado ao consentimento (`consentId`) mantido na instituição transmissora dos dados, o qual permitirá a pesquisa e retorno, na API em questão, dos 
    dados relacionados ao `consentId` específico relacionado.\
    Os dados serão devolvidos na consulta desde que o `consentId` relacionado corresponda a um consentimento válido e com o status `AUTHORISED`.\
    É também necessário que o recurso em questão (conta, contrato, etc) esteja disponível na instituição transmissora (ou seja, sem boqueios de qualquer natureza e com todas as autorizações/consentimentos já autorizados).\
    Além disso as `permissions` necessárias deverão ter sido solicitadas quando da criação do consentimento relacionado (`consentId`).\
    Relacionamos a seguir as `permissions` necessárias para a consulta de dados em cada `endpoint` da presente API.

    ## Permissions necessárias para a API Customers

    Para cada um dos paths desta API, além dos escopos (`scopes`) indicados existem `permissions` que deverão ser observadas:

    ### `/personal/identifications`
      - permissions:
        - GET: **CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ**
    ### `/personal/qualifications`
      - permissions: **CUSTOMERS_PERSONAL_ADITTIONALINFO_READ**
    ### `/personal/financial-relations`
      - permissions:
        - GET: **CUSTOMERS_PERSONAL_ADITTIONALINFO_READ**
    ### `/business/identifications`
      - permissions:
        - GET: **CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ**
    ### `/business/qualifications`
      - permissions:
        - GET: **CUSTOMERS_BUSINESS_ADITTIONALINFO_READ**
    ### `/business/financial-relations`
      - permissions:
        - GET: **CUSTOMERS_BUSINESS_ADITTIONALINFO_READ**
  version: 1.0.2
  license:
    name: Apache 2.0
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
  contact:
    name: Governança do Open Banking Brasil – Especificações
    email: gt-interfaces@openbankingbr.org
    url: 'https://openbanking-brasil.github.io/areadesenvolvedor/'
servers:
  - url: 'https://api.banco.com.br/open-banking/customers/v1'
    description: Servidor de Produção
  - url: 'https://apih.banco.com.br/open-banking/customers/v1'
    description: Servidor de Homologação
tags:
  - name: Customers
    description: Operações para listagem das informações Cadastrais do Cliente
paths:
  /personal/identifications:
    get:
      tags:
        - Customers
      summary: Obtém os registros de identificação da pessoa natural.
      description: Método para obter os registros de identificação da pessoa natural mantidos na instituição transmissora.
      operationId: customersGetPersonalIdentifications
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
      responses:
        '200':
          $ref: '#/components/responses/OKResponsePersonalCustomersIdentification'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponsePersonalCustomersIdentification'
      security:
        - OpenId:
            - openid
          OAuth2Security:
            - 'consent:consentId'
            - customers
  /personal/qualifications:
    get:
      tags:
        - Customers
      summary: Obtém os registros de qualificação da pessoa natural.
      description: Método para obter os registros de qualificação da pessoa natural mantidos na instituição transmissora.
      operationId: customersGetPersonalQualifications
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
      responses:
        '200':
          $ref: '#/components/responses/OKResponsePersonalCustomersQualification'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponsePersonalCustomersQualification'
      security:
        - OpenId:
            - openid
          OAuth2Security:
            - 'consent:consentId'
            - customers
  /personal/financial-relations:
    get:
      tags:
        - Customers
      summary: Obtém os registros de relacionamentos com a instituição financeira e de representantes da pessoa natural.
      description: Método para obter registros de relacionamentos com a instituição financeira e de representantes da pessoa natural mantidos na instituição transmissora.
      operationId: customersGetPersonalFinancialRelations
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
      responses:
        '200':
          $ref: '#/components/responses/OKResponsePersonalCustomersFinancialRelation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponsePersonalCustomersFinancialRelation'
      security:
        - OpenId:
            - openid
          OAuth2Security:
            - 'consent:consentId'
            - customers
  /business/identifications:
    get:
      tags:
        - Customers
      summary: Obtém os registros de identificação da pessoa jurídica.
      description: Método para obter os registros de identificação da pessoa jurídica mantidos na instituição transmissora
      operationId: customersGetBusinessIdentifications
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseBusinessCustomersIdentification'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseBusinessCustomersIdentification'
      security:
        - OpenId:
            - openid
          OAuth2Security:
            - 'consent:consentId'
            - customers
  /business/qualifications:
    get:
      tags:
        - Customers
      summary: Obtém os registros de qualificação da pessoa jurídica.
      description: Método para obter os registros de qualificação da pessoa jurídica mantidos na instituição transmissora.
      operationId: customersGetBusinessQualifications
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseBusinessCustomersQualification'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseBusinessCustomersQualification'
      security:
        - OpenId:
            - openid
          OAuth2Security:
            - 'consent:consentId'
            - customers
  /business/financial-relations:
    get:
      tags:
        - Customers
      summary: Obtém os registros de relacionamentos com a instituição financeira e de representantes da pessoa jurídica.
      description: Método para obter registros de relacionamentos com a instituição financeira e de representantes da pessoa jurídica mantidos na instituição transmissora.
      operationId: customersGetBusinessFinancialRelations
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseBusinessCustomersFinancialRelation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/OKResponseBusinessCustomersFinancialRelation'
      security:
        - OpenId:
            - openid
          OAuth2Security:
            - 'consent:consentId'
            - customers
components:
  schemas:
    BusinessFinancialRelationData:
      type: object
      description: 'Objeto que reúne as informações relativas ao relacionamento do cliente junto à Instituição. 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'
      required:
        - updateDateTime
        - startDate
        - productsServicesType
        - procurators
        - accounts
      properties:
        updateDateTime:
          type: string
          format: date-time
          maxLength: 20
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2020-07-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco de Relacionamento, conforme especificação RFC-3339, formato UTC.'
        startDate:
          type: string
          format: date-time
          maxLength: 20
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2020-07-21T08:30:00Z'
          description: Data de início de relacionamento com a Instituição Financeira. Deve trazer o menor valor entre a informação reportada ao BACEN pelo DOC 3040 e CCS.
        productsServicesType:
          type: array
          minItems: 1
          maxItems: 12
          items:
            $ref: '#/components/schemas/EnumProductServiceType'
        procurators:
          type: array
          items:
            $ref: '#/components/schemas/BusinessProcurator'
          minItems: 1
          description: Lista dos representantes. De preenchimento obrigatório se houver representante.
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/BusinessAccount'
          minItems: 1
          description: |
            Lista de contas depósito à vista, poupança e pagamento pré-pagas mantidas pelo cliente na instituição transmissora.    
      additionalProperties: false
    BusinessIdentificationData:
      type: object
      description: Conjunto de informações relativas a Identificação ou seja a ação e o efeito de identificar de forma única a pessoa jurídica através de seus dados cadastrais
      required:
        - businessId
        - updateDateTime
        - brandName
        - cnpjNumber
        - tradeName
        - companyCnpjNumber
        - companyName
        - incorporationDate
        - parties
        - contacts
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco, conforme especificação RFC-3339'
        businessId:
          type: string
          maxLength: 100
          pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
          example: 578-psd-71md6971kjh-2d414
          description: Um identificador único e imutável usado para identificar o recurso cliente pessoa jurídica. Este identificador não tem significado para o cliente que deu o consentimento
        brandName:
          type: string
          maxLength: 80
          pattern: '[\w\W\s]*'
          example: Organização A
          description: |
            Nome da Marca reportada pelo participante do Open Banking. O conceito a que se refere 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
        companyName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Luiza e Benjamin Assessoria Jurídica Ltda
          description: Razão social da empresa consultada é o termo registrado sob o qual uma pessoa jurídica (PJ) se individualiza e exerce suas atividades. Também pode ser chamada por denominação social ou firma empresarial
        tradeName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Mundo da Eletronica
          description: 'Nome fantasia da pessoa jurídica, se houver. (É o nome popular da empresa, utilizado para divulgação da empresa e melhor fixação com o público). De preenchimento obrigatório se houver'
        incorporationDate:
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
          description: 'Data de constituição da empresa, conforme especificação RFC-3339.'
        cnpjNumber:
          type: string
          maxLength: 14
          pattern: '\d{14}|^NA$'
          example: '50685362006773'
          description: 'Número completo do CNPJ da Empresa consultada  - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara'
        companyCnpjNumber:
          type: array
          items:
            type: string
          maxLength: 14
          pattern: '\d{14}|^NA$'
          example:
            - '50685362000135'
            - '50685362006555'
          description: |
            Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. 
            Deve-se ter apenas os números do CNPJ, sem máscara
        otherDocuments:
          type: array
          items:
            $ref: '#/components/schemas/BusinessOtherDocument'
          minItems: 1
          description: Relação dos demais documentos
        parties:
          type: array
          items:
            $ref: '#/components/schemas/PartiesParticipation'
          minItems: 1
          description: |
            Lista relativa às informações das partes envolvidas, como: sócio e /ou administrador
        contacts:
          $ref: '#/components/schemas/BusinessContacts'
    BusinessProcurator:
      type: object
      required:
        - type
        - cnpjCpfNumber
        - civilName
        - socialName
      properties:
        type:
          type: string
          maxLength: 19
          enum:
            - REPRESENTANTE_LEGAL
            - PROCURADOR
            - NAO_POSSUI
          description: |
            Tipo de representante.
            Representante legal - 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.
            Procurador - é qualquer pessoa que represente a Pessoa Natural em algum negócio, mediante autorização escrita do mesmo.
          example: PROCURADOR
        cnpjCpfNumber:
          type: string
          maxLength: 14
          pattern: '^\d{11}$|^\d{14}$|^NA$'
          example: '73677831148'
          description: Identificação do Representante Legal ou Procurador. Número do cadastro nas Receita Federal  (Preencher com CPF ou CNPJ sem formatação)
        civilName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Elza Milena Stefany Teixeira
          description: Nome civil completo ou Razão Social
        socialName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Stefany Teixeirass
          description: |
            Nome social da pessoa natural, se houver. Aquele pelo qual travestis e transexuais se reconhecem, 
            bem como são identificados por sua comunidade e em seu meio social, conforme Decreto Local.
            [Restrição] Preenchimento obrigatório quando o sócio for uma pessoa natural.
      additionalProperties: false
    BusinessQualificationData:
      type: object
      description: 'Objeto que reúne as informações relativas ao processo de qualificação. 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'
      required:
        - updateDateTime
        - economicActivities
        - informedRevenue
        - informedPatrimony
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco, conforme especificação RFC-3339'
        economicActivities:
          type: array
          items:
            $ref: '#/components/schemas/EconomicActivity'
          minItems: 1
          description: 'Lista dos demais códigos relativos às demais atividades econômicas da empresa, segundo padrão CNAE (Classificação Nacional de Atividades Econômicas). De preenchimento obrigatório, se houver'
        informedRevenue:
          type: object
          required:
            - frequency
            - amount
            - currency
          properties:
            frequency:
              $ref: '#/components/schemas/EnumInformedRevenueFrequency'
            frequencyAdditionalInfo:
              type: string
              maxLength: 100
              pattern: '[\w\W\s]*'
              example: Informações adicionais
              description: |
                Texto livre para complementar informação relativa ao patrimonio. 
                [Restrição] Preencher quando frequency for igual OUTROS.
            amount:
              type: number
              format: double
              minLength: 0
              maxLength: 20
              nullable: true
              pattern: '^-?\d{1,15}\.\d{2,4}$'
              example: 100000.04
              description: |
                Valor do patrimônio informado. Expresso em valor monetário com 4 casas decimais.
                Patrimônio é o conjunto de bens vinculado a uma pessoa ou a uma entidade.
            currency:
              type: string
              pattern: '^(\w{3}){1}$|^NA$'
              maxLength: 3
              example: BRL
              description: 'Moeda referente ao valor do patrimônio, segundo modelo ISO-4217.'
            year:
              type: number
              maxLength: 4
              maximum: 9999
              nullable: true
              example: 2010
              description: 'Ano de referência do Patrimônio, conforme especificação RFC-3339.'
          additionalProperties: false
        informedPatrimony:
          $ref: '#/components/schemas/BusinessInformedPatrimony'
      additionalProperties: false
    BusinessOtherDocument:
      type: object
      required:
        - number
        - country
        - expirationDate
      properties:
        type:
          type: string
          maxLength: 20
          pattern: '[\w\W\s]*'
          example: EIN
          description: 'Número do Tipo de documento informado. De preenchimento obrigatório, para a Pessoa jurídica com domicílio ou sede no exterior, desobrigada de inscrição no CNPJ'
        number:
          type: string
          maxLength: 20
          pattern: '[\w\W\s]*'
          example: '128328453'
          description: 'Número do outro documento. De preenchimento obrigatório, para a Pessoa jurídica com domicílio ou sede no exterior, desobrigada de inscrição no CNPJ'
        country:
          type: string
          maxLength: 3
          pattern: '^(\w{3}){1}$|^NA$'
          example: CAN
          description: Pais de emissão do tipo de documento informado. Código do pais de acordo com o código “alpha3” do ISO-3166
        expirationDate:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
          example: '2021-05-21'
          description: 'Data vigência do tipo de  documento informado, conforme especificação RFC-3339.'
      additionalProperties: false
    BusinessContacts:
      type: object
      description: Conjunto de informações referentes às formas para contatar o cliente.
      required:
        - postalAddresses
        - phones
        - emails
      properties:
        postalAddresses:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPostalAddress'
          minItems: 1
          description: Lista de endereços da pessoa jurídica
        phones:
          type: array
          items:
            $ref: '#/components/schemas/CustomerPhone'
          minItems: 1
          description: Lista com telefones de contato da pessoa jurídica
        emails:
          type: array
          items:
            $ref: '#/components/schemas/CustomerEmail'
          minItems: 1
          description: Lista e-mails de contato
      additionalProperties: false
    PersonalContacts:
      type: object
      description: Conjunto de informações referentes às formas para contatar o cliente.
      required:
        - postalAddresses
        - phones
        - emails
      properties:
        postalAddresses:
          type: array
          items:
            $ref: '#/components/schemas/PersonalPostalAddress'
          minItems: 1
          description: Lista de endereços da pessoa natural
        phones:
          type: array
          items:
            $ref: '#/components/schemas/CustomerPhone'
          minItems: 1
          description: Lista com telefones de contato da pessoa natural
        emails:
          type: array
          items:
            $ref: '#/components/schemas/CustomerEmail'
          minItems: 1
          description: Lista e-mails de contato
      additionalProperties: false
    BusinessInformedPatrimony:
      type: object
      required:
        - amount
        - currency
        - date
      properties:
        amount:
          type: number
          format: double
          minLength: 0
          maxLength: 20
          nullable: true
          pattern: '^-?\d{1,15}\.\d{2,4}$'
          example: 100000.04
          description: |
            Valor do patrimônio informado. Expresso em valor monetário com 4 casas decimais.
            Patrimônio é o conjunto de bens vinculado a uma pessoa ou a uma entidade.
        currency:
          type: string
          maxLength: 3
          pattern: '^(\w{3}){1}$|^NA$'
          example: BRL
          description: 'Moeda referente ao valor do patrimônio, segundo modelo ISO-4217.'
        date:
          type: string
          format: date
          maxLength: 20
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
          example: '2021-05-21'
          description: 'Data de referência do Patrimônio, conforme especificação RFC-3339.'
      additionalProperties: false
    PersonalInformedPatrimony:
      type: object
      required:
        - amount
        - currency
        - year
      properties:
        amount:
          type: number
          format: double
          minLength: 0
          maxLength: 20
          nullable: true
          pattern: '^-?\d{1,15}\.\d{2,4}$'
          example: 100000.04
          description: |
            Valor do patrimônio informado. Expresso em valor monetário com 4 casas decimais.
            Patrimônio é o conjunto de bens vinculado a uma pessoa ou a uma entidade.
        currency:
          type: string
          maxLength: 3
          pattern: '^(\w{3}){1}$|^NA$'
          example: BRL
          description: 'Moeda referente ao valor do patrimônio, segundo modelo ISO-4217.'
        year:
          type: number
          maxLength: 4
          maximum: 9999
          nullable: true
          example: 2010
          description: 'Ano de referência do Patrimônio, conforme especificação RFC-3339.'
      additionalProperties: false
    CustomerEmail:
      type: object
      required:
        - isMain
        - email
      properties:
        isMain:
          type: boolean
          description: Indica se o email informado é o principal
          example: true
        email:
          type: string
          description: Endereço de email
          maxLength: 320
          pattern: '[\w\W\s]*'
          example: karinafernandes-81@br.inter.net
      additionalProperties: false
    CustomerPhone:
      type: object
      required:
        - isMain
        - type
        - countryCallingCode
        - areaCode
        - number
        - phoneExtension
      properties:
        isMain:
          type: boolean
          description: Indica se o telefone informado é o principal
          example: true
        type:
          $ref: '#/components/schemas/EnumCustomerPhoneType'
        additionalInfo:
          type: string
          description: 'Informação complementar relativa ao tipo de telefone selecionado. [Restrição] De preenchimento obrigatório quando selecionado o tipo ''OUTRO''.'
          pattern: '[\w\W\s]*'
          maxLength: 70
          example: Informações adicionais.
        countryCallingCode:
          type: string
          maxLength: 4
          pattern: '^\d{2,4}$|^NA$'
          example: '55'
          description: Número de DDI (Discagem Direta Internacional) para telefone de acesso ao Cliente - se houver
        areaCode:
          $ref: '#/components/schemas/EnumAreaCode'
        number:
          type: string
          maxLength: 11
          pattern: '^([0-9]{8,11})|^NA$'
          example: '29875132'
          description: Número de telefone do cliente
        phoneExtension:
          type: string
          maxLength: 5
          pattern: '^\d{1,5}$|^NA$'
          description: Número do ramal. De preenchimento obrigatório se fizer parte da identificação do número do telefone informado
          example: '932'
      additionalProperties: false
    BusinessPostalAddress:
      type: object
      required:
        - isMain
        - address
        - districtName
        - townName
        - countrySubDivision
        - postCode
        - country
      properties:
        isMain:
          type: boolean
          example: true
          description: Indica se o endereço informado é o principal
        address:
          type: string
          maxLength: 150
          pattern: '[\w\W\s]*'
          example: 'Av Naburo Ykesaki, 1270'
          description: Corresponde ao endereço comercial do cliente
        additionalInfo:
          type: string
          maxLength: 30
          pattern: '[\w\W\s]*'
          example: Fundos
          description: Alguns logradouros ainda necessitam ser especificados por meio de complemento
        districtName:
          type: string
          maxLength: 50
          pattern: '[\w\W\s]*'
          example: Centro
          description: Bairro é uma comunidade ou região localizada em uma cidade ou município de acordo com as suas subdivisões geográficas.
        townName:
          type: string
          maxLength: 50
          pattern: '[\w\W\s]*'
          example: Marília
          description: |
            Localidade: O nome da localidade corresponde à designação da cidade ou município no qual o endereço está localizado.
        ibgeTownCode:
          type: string
          pattern: '\d{7}$'
          maxLength: 7
          example: '3550308'
          description: '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.'
        countrySubDivision:
          $ref: '#/components/schemas/EnumCountrySubDivision'
        postCode:
          type: string
          pattern: '\d{8}|^NA$'
          maxLength: 8
          example: '17500001'
          description: |
            Código de Endereçamento Postal: Composto por um conjunto numérico de oito dígitos, o objetivo principal do CEP é orientar e acelerar o encaminhamento, o tratamento e a entrega de objetos postados nos Correios, por meio da sua atribuição a localidades, logradouros, unidades dos Correios, serviços, órgãos públicos, empresas e edifícios. p.ex. '01311000'
        country:
          type: string
          maxLength: 80
          pattern: '[\w\W\s]*'
          example: Brasil
          description: Nome do país
        countryCode:
          type: string
          maxLength: 3
          example: BRA
          description: Código do pais de acordo com o código “alpha3” do ISO-3166
        geographicCoordinates:
          $ref: '#/components/schemas/GeographicCoordinates'
      additionalProperties: false
    PersonalPostalAddress:
      type: object
      required:
        - isMain
        - address
        - districtName
        - townName
        - countrySubDivision
        - postCode
        - country
      properties:
        isMain:
          type: boolean
          example: true
          description: Indica se o endereço informado é o principal.
        address:
          type: string
          maxLength: 150
          pattern: '[\w\W\s]*'
          example: 'Av Naburo Ykesaki, 1270'
          description: Corresponde ao endereço residencial do cliente.
        additionalInfo:
          type: string
          maxLength: 30
          pattern: '[\w\W\s]*'
          example: Fundos
          description: Alguns logradouros ainda necessitam ser especificados por meio de complemento.
        districtName:
          type: string
          maxLength: 50
          pattern: '[\w\W\s]*'
          example: Centro
          description: Bairro é uma comunidade ou região localizada em uma cidade ou município de acordo com as suas subdivisões geográficas.
        townName:
          type: string
          maxLength: 50
          pattern: '[\w\W\s]*'
          example: Marília
          description: |
            Localidade: O nome da localidade corresponde à designação da cidade ou município no qual o endereço está localizado.
        ibgeTownCode:
          type: string
          pattern: '\d{7}$'
          maxLength: 7
          example: '3550308'
          description: '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.'
        countrySubDivision:
          $ref: '#/components/schemas/EnumCountrySubDivision'
        postCode:
          type: string
          pattern: '\d{8}|^NA$'
          maxLength: 8
          example: '17500001'
          description: |
            Código de Endereçamento Postal: Composto por um conjunto numérico de oito dígitos, o objetivo principal do CEP é orientar e acelerar o encaminhamento, o tratamento e a entrega de objetos postados nos Correios, por meio da sua atribuição a localidades, logradouros, unidades dos Correios, serviços, órgãos públicos, empresas e edifícios. p.ex. '01311000'.
        country:
          type: string
          maxLength: 80
          pattern: '[\w\W\s]*'
          example: Brasil
          description: Nome do país
        countryCode:
          type: string
          maxLength: 3
          example: BRA
          description: Código do pais de acordo com o código “alpha3” do ISO-3166.
        geographicCoordinates:
          $ref: '#/components/schemas/GeographicCoordinates'
      additionalProperties: false
    BusinessAccount:
      type: object
      required:
        - compeCode
        - branchCode
        - number
        - checkDigit
        - type
      properties:
        compeCode:
          type: string
          maxLength: 3
          pattern: '\d{3}|^NA$'
          description: 'Código identificador atribuído pelo Banco Central do Brasil às instituições participantes do STR (Sistema de Transferência de reservas).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'
          example: '001'
        branchCode:
          type: string
          maxLength: 4
          pattern: '\d{4}|^NA$'
          description: |
            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)
          example: '6272'
        number:
          type: string
          maxLength: 20
          pattern: '^\d{8,20}$|^NA$'
          description: |
            Número da conta
          example: '24550245'
        checkDigit:
          type: string
          maxLength: 1
          pattern: '[\w\W\s]*'
          description: |
            Dígito da conta
          example: '4'
        type:
          type: string
          enum:
            - CONTA_DEPOSITO_A_VISTA
            - CONTA_POUPANCA
            - CONTA_PAGAMENTO_PRE_PAGA
            - SEM_TIPO_CONTA
          description: |
            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
            Conta de depósito à vista ou Conta corrente - é o tipo mais comum. Nela, o dinheiro fica à sua disposição para ser sacado a qualquer momento. Essa conta não gera rendimentos para o depositante
            Conta poupança - foi criada para estimular as pessoas a pouparem. O dinheiro que ficar na conta por trinta dias passa a gerar rendimentos, com isenção de imposto de renda para quem declara. Ou seja, o dinheiro “cresce” (rende) enquanto ficar guardado na conta. Cada depósito terá rendimentos de mês em mês, sempre no dia do mês em que o dinheiro tiver sido depositado
            Conta de pagamento pré-paga: segundo CIRCULAR Nº 3.680, BCB de  2013, é a 'destinada à execução de transações de pagamento em moeda eletrônica realizadas com base em fundos denominados em reais previamente aportados'.
            SEM_TIPO_CONTA - para reporte nos dados de identificação quando o cliente não possuir conta na instituição transmissora.
          example: CONTA_DEPOSITO_A_VISTA
      additionalProperties: false
    PersonalAccount:
      type: object
      description: |
        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
      required:
        - compeCode
        - branchCode
        - number
        - checkDigit
        - type
        - subtype
      properties:
        compeCode:
          type: string
          maxLength: 3
          pattern: '\d{3}|^NA$'
          description: 'Código identificador atribuído pelo Banco Central do Brasil às instituições participantes do STR (Sistema de Transferência de reservas).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'
          example: '001'
        branchCode:
          type: string
          maxLength: 4
          pattern: '\d{4}|^NA$'
          description: |
            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)
          example: '6272'
        number:
          type: string
          maxLength: 20
          pattern: '^\d{8,20}$|^NA$'
          description: |
            Número da conta
          example: '24550245'
        checkDigit:
          type: string
          maxLength: 1
          pattern: '[\w\W\s]*'
          description: |
            Dígito da conta
          example: '4'
        type:
          $ref: '#/components/schemas/BusinessAccount/properties/type'
        subtype:
          type: string
          enum:
            - INDIVIDUAL
            - CONJUNTA_SIMPLES
            - CONJUNTA_SOLIDARIA
            - SEM_SUB_TIPO_CONTA
          description: |
            Subtipo de conta (vide Enum): 
            Conta individual - possui um único titular
            Conta conjunta simples - onde as movimentações financeiras só podem serem realizadas mediante autorização de TODOS os correntistas da conta.
            Conta conjunta solidária - é a modalidade cujos titulares podem realizar movimentações de forma isolada, isto é, sem que seja necessária a autorização dos demais titulares.
            SEM_SUB_TIPO_CONTA - para reporte nos dados de identificação quando o cliente não possuir conta na instituição transmissora.
          example: INDIVIDUAL
      additionalProperties: false
    EconomicActivity:
      type: object
      required:
        - code
        - isMain
      properties:
        code:
          type: number
          pattern: '^\d{7}$|^NA$'
          maxLength: 7
          description: |
            Traz o código do ramo da atividade principal da empresa consultada, segundo padrão CNAE (Classificação Nacional de Atividades Econômicas)
          example: 8599604
        isMain:
          type: boolean
          description: Indica se é o ramo principal de atividade da empresa quando true e se é o ramo secundário quando false.
          example: true
    EnumAreaCode:
      type: string
      example: '19'
      description: Número de DDD (Discagem Direta à Distância) do telefone do cliente - se houver
      maxLength: 2
      enum:
        - '11'
        - '12'
        - '13'
        - '14'
        - '15'
        - '16'
        - '17'
        - '18'
        - '19'
        - '21'
        - '22'
        - '24'
        - '27'
        - '28'
        - '31'
        - '32'
        - '33'
        - '34'
        - '35'
        - '37'
        - '38'
        - '41'
        - '42'
        - '43'
        - '44'
        - '45'
        - '46'
        - '47'
        - '48'
        - '49'
        - '51'
        - '53'
        - '54'
        - '55'
        - '61'
        - '62'
        - '63'
        - '64'
        - '65'
        - '66'
        - '67'
        - '68'
        - '69'
        - '71'
        - '73'
        - '74'
        - '75'
        - '77'
        - '79'
        - '81'
        - '82'
        - '83'
        - '84'
        - '85'
        - '86'
        - '87'
        - '88'
        - '89'
        - '91'
        - '92'
        - '93'
        - '94'
        - '95'
        - '96'
        - '97'
        - '98'
        - '99'
        - NA
    EnumCountrySubDivision:
      type: string
      description: 'Enumeração referente a cada sigla da unidade da federação que identifica o estado ou o distrito federal, no qual o endereço está localizado. p.ex. ''AC''. São consideradas apenas as siglas para os estados brasileiros'
      enum:
        - AC
        - AL
        - AP
        - AM
        - BA
        - CE
        - DF
        - ES
        - GO
        - MA
        - MT
        - MS
        - MG
        - PA
        - PB
        - PR
        - PE
        - PI
        - RJ
        - RN
        - RS
        - RO
        - RR
        - SC
        - SP
        - SE
        - TO
        - NA
      example: SP
    EnumCustomerPhoneType:
      type: string
      description: Identificação do Tipo de telefone do cliente.
      maxLength: 5
      enum:
        - FIXO
        - MOVEL
        - OUTRO
      example: FIXO
    EnumFiliationType:
      type: string
      enum:
        - MAE
        - PAI
        - SEM_FILIACAO
      example: PAI
      description: Tipo de filiação.
    EnumInformedRevenueFrequency:
      type: string
      description: |
        Traz a frequência ou período do faturamento informado.
        "O faturamento é calculado a partir de todos os benefícios que a empresa conseguiu com sua atividade econômica em um determinado período. Esses benefícios são os rendimentos ou ganhos da organização através de suas vendas ou serviços prestados".
      enum:
        - DIARIA
        - SEMANAL
        - QUINZENAL
        - MENSAL
        - BIMESTRAL
        - TRIMESTRAL
        - SEMESTRAL
        - ANUAL
        - SEM_FREQUENCIA_FATURAMENTO_INFORMADO
        - OUTROS
      example: DIARIA
    EnumInformedIncomeFrequency:
      type: string
      enum:
        - DIARIA
        - SEMANAL
        - QUINZENAL
        - MENSAL
        - BIMESTRAL
        - TRIMESTRAL
        - SEMESTRAL
        - ANUAL
        - SEM_FREQUENCIA_RENDA_INFORMADA
        - OUTROS
      description: Traz a frequência ou período da renda informada.
    EnumMaritalStatusCode:
      type: string
      enum:
        - SOLTEIRO
        - CASADO
        - VIUVO
        - SEPARADO_JUDICIALMENTE
        - DIVORCIADO
        - UNIAO_ESTAVEL
        - OUTRO
      example: SOLTEIRO
      description: |
        Estado marital do cliente. 
    EnumOccupationMainCodeType:
      type: string
      enum:
        - RECEITA_FEDERAL
        - CBO
        - OUTRO
      example: RECEITA_FEDERAL
      description: |
        Traz a relação dos códigos relativos à ocupação.
    EnumPartiesParticipationDocumentType:
      type: string
      enum:
        - CPF
        - PASSAPORTE
        - OUTRO_DOCUMENTO_VIAGEM
        - CNPJ
      description: |
        Tipo do documento informado. 
    EnumPersonalOtherDocumentType:
      type: string
      enum:
        - CNH
        - RG
        - NIF
        - RNE
        - OUTROS
        - SEM_OUTROS_DOCUMENTOS
      description: |
        Relação dos Códigos dos demais documentos pessoa natural.
    EnumProcuratorsTypePersonal:
      type: string
      maxLength: 19
      enum:
        - REPRESENTANTE_LEGAL
        - PROCURADOR
        - NAO_SE_APLICA
      example: PROCURADOR
      description: |
        Tipo de representante.
        Representante legal - 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.
        Procurador - é qualquer pessoa que represente a Pessoa Natural em algum negócio, mediante autorização escrita do mesmo.
    EnumProductServiceType:
      type: string
      maxLength: 24
      enum:
        - CONTA_DEPOSITO_A_VISTA
        - CONTA_POUPANCA
        - CONTA_PAGAMENTO_PRE_PAGA
        - CARTAO_CREDITO
        - OPERACAO_CREDITO
        - SEGURO
        - PREVIDENCIA
        - INVESTIMENTO
        - OPERACOES_CAMBIO
        - CONTA_SALARIO
        - CREDENCIAMENTO
        - OUTROS
      example: SEGURO
      description: Lista com a relação dos produtos e serviços com contrato vigente.
    EnumSex:
      type: string
      enum:
        - FEMININO
        - MASCULINO
        - OUTRO
      example: FEMININO
      description: |
        "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 'OUTRO'
    GeographicCoordinates:
      type: object
      description: 'Conjunto de informações, que correspondem aos valores das coordenadas geográficas em graus decimais, no Sistema de referência WGS84'
      properties:
        latitude:
          description: |
            Informação da Latitude referente a geolocalização informada. Entre -90 e 90.p.ex. '-90.8365180'. (2 casas antes da vírgula, 11 posições) 
          type: string
          pattern: '^-?\d{1,2}\.\d{1,9}$'
          maxLength: 13
          example: '-90.8365180'
        longitude:
          description: |
            Informação da Longitude referente a geolocalização informada. Entre -180 e 180. p.ex '-180.836519.' (3 casas antes da vírgula, 11 posições) 
          type: string
          pattern: '^-?\d{1,3}\.\d{1,8}$'
          maxLength: 13
          example: '-180.836519'
      additionalProperties: false
    Links:
      type: object
      description: Referências para outros recusos da API requisitada.
      required:
        - self
      properties:
        self:
          type: string
          format: uri
          maxLength: 2000
          description: URI completo que gerou a resposta atual.
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        first:
          type: string
          format: uri
          maxLength: 2000
          description: URI da primeira página que originou essa lista de resultados. Restrição - Obrigatório quando não for a primeira página da resposta
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        prev:
          type: string
          format: uri
          maxLength: 2000
          description: "URI da página anterior dessa lista de resultados. Restrição - \tObrigatório quando não for a primeira página da resposta"
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        next:
          type: string
          format: uri
          maxLength: 2000
          description: URI da próxima página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
        last:
          type: string
          format: uri
          maxLength: 2000
          description: URI da última página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta
          example: 'https://api.banco.com.br/open-banking/api/v1/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
      additionalProperties: false
    Meta:
      type: object
      description: Meta informações referente a API requisitada.
      required:
        - totalRecords
        - totalPages
        - requestDateTime
      properties:
        totalRecords:
          type: integer
          format: int32
          description: Número total de registros no resultado
          example: 1
        totalPages:
          type: integer
          format: int32
          description: Número total de páginas no resultado
          example: 1
        requestDateTime:
          description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.'
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
      additionalProperties: false
    Nationality:
      type: object
      description: Objeto que agrupa informações relativas à nacionalidade da Pessoa Natural
      required:
        - otherNationalitiesInfo
        - documents
      properties:
        otherNationalitiesInfo:
          type: string
          maxLength: 40
          example: CAN
          description: |
            Campo de preenchimento obrigatório caso o cliente não possua nacionalidade brasileira. Preencher indicando todas suas demais nacionalidades utilizando o código de pais de acordo com o código “alpha3” do ISO-3166.p.ex.'CAN'
        documents:
          type: array
          items:
            $ref: '#/components/schemas/NationalityOtherDocument'
          description: Lista que traz relação de documentos complementares de pessoas com nacionalidade diferente de brasileira
      additionalProperties: false
    NationalityOtherDocument:
      type: object
      required:
        - type
        - number
        - expirationDate
        - issueDate
      properties:
        type:
          type: string
          maxLength: 10
          pattern: '[\w\W\s]*'
          description: 'Tipo de documento. Campo livre, de preenchimento obrigatório quando a nacionalidade for diferente de brasileira. Informar tipo e número do documento, além da, vigência e demais informações complementares para se identificar o documento de pessoa estrangeira'
          example: SOCIAL SEC
        number:
          type: string
          maxLength: 40
          pattern: '[\w\W\s]*'
          description: 'Número de identificação do documento. Campo livre, de preenchimento obrigatório quando a nacionalidade for diferente de brasileira. Informar o número do documento e demais informações complementares para se identificar o documento de pessoa estrangeira'
          example: '423929299'
        expirationDate:
          description: 'Data de validade do documento informado, conforme especificação RFC-3339.'
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
          example: '2021-05-21'
        issueDate:
          description: 'Data de emissão do documento, conforme especificação RFC-3339.'
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
          example: '2021-05-21'
        country:
          type: string
          maxLength: 80
          pattern: '[\w\W\s]*'
          example: Brasil
          description: Nome do país
        typeAdditionalInfo:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          description: Campo livre de preenchimento obrigatório se selecionada a opção OUTROS tipos de documentos.
          example: Informações adicionais.
      additionalProperties: false
    PartiesParticipation:
      type: object
      description: |
        Lista relativa às informações das partes envolvidas, como: sócio e /ou administrador
      required:
        - type
        - personType
        - civilName
        - socialName
        - companyName
        - startDate
        - shareholding
        - documentType
        - documentNumber
        - documentCountry
        - documentExpirationDate
      properties:
        personType:
          type: string
          enum:
            - PESSOA_NATURAL
            - PESSOA_JURIDICA
          description: Indica se a pessoa da parte envolvida é uma pessoa natural ou juridica
        type:
          type: string
          maxLength: 13
          description: |
            Indica o perfil de atuação na empresa. Vide Enum
            O administrador é o responsável por desempenhar todas as funções administrativas da empresa. É ele quem conduz o dia a dia do negócio, assinando documentos, respondendo legalmente pela sociedade, realizando empréstimos e outras ações gerenciais. Apesar de estar na linha de frente da empresa, ele é denominado sócio por também possuir sua parcela de participação no Capital Social.
            Sócio não tem qualquer envolvimento nas atividades administrativas da sociedade.
          enum:
            - SOCIO
            - ADMINISTRADOR
        civilName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Juan Kaique Cláudio Fernandes
          description: 'Nome civil completo da pessoa natural (Direito fundamental da pessoa, o nome civil é 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)'
        socialName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Karina
          description: 'Nome social da pessoa natural, se houver. (aquele pelo qual travestis e transexuais se reconhecem, bem como são identificados por sua comunidade e em seu meio social, conforme Decreto Local)'
        companyName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Luiza e Benjamin Assessoria Jurídica Ltda
          description: Razão social da empresa consultada é o termo registrado sob o qual uma pessoa jurídica (PJ) se individualiza e exerce suas atividades. Também pode ser chamada por denominação social ou firma empresarial
        tradeName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Mundo da Eletronica
          description: 'Nome fantasia da pessoa jurídica, se houver. (É o nome popular da empresa, utilizado para divulgação da empresa e melhor fixação com o público). De preenchimento obrigatório se houver'
        startDate:
          type: string
          maxLength: 20
          format: date-time
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: 'Data de início da participação, conforme especificação RFC-3339.'
        shareholding:
          type: string
          maxLength: 4
          pattern: '^((\d{1,9}\.\d{2}){1}|NA)$'
          example: '0.51'
          description: |
            Percentual de participação societária (informar com 2 casas decimais). Sócio só deve ser informado se sua participação societária for igual ou superior a 25%. p.ex: 0.25 (Este valor  representa 25%. O valor '1 'representa 100%)
        documentType:
          $ref: '#/components/schemas/EnumPartiesParticipationDocumentType'
        documentNumber:
          type: string
          maxLength: 20
          pattern: '[\w\W\s]*'
          example: '73677831148'
          description: Número do documento informado. Campo Texto Livre para preencher número e dígito do documento se houver
        documentAdditionalInfo:
          type: string
          maxLength: 100
          pattern: '[\w\W\s]*'
          example: CNH
          description: 'Campo livre, de preenchimento obrigatório quando o documento informado tiver informações complementares relevantes para a sua identificação'
        documentCountry:
          type: string
          maxLength: 3
          example: CAN
          description: País de emissão do documento. Código do pais de acordo com o código alpha3 do ISO-3166.
        documentExpirationDate:
          type: string
          format: date
          maxLength: 10
          example: '2021-05-21'
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])|^NA$'
          description: 'Data de validade do documento informado, conforme especificação RFC-3339.'
        documentIssueDate:
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
          example: '2021-05-21'
          description: 'Data de emissão do documento, conforme especificação RFC-3339.'
      additionalProperties: false
    PersonalDocument:
      type: object
      description: Objeto agrupador de informações relativas a Documentos da pessoa natural
      required:
        - cpfNumber
        - passportNumber
        - passportCountry
        - passportExpirationDate
      properties:
        cpfNumber:
          type: string
          maxLength: 11
          pattern: '^\d{11}$|^NA$'
          example: '25872252137'
          description: 'Número completo do CPF. Atributo que corresponde às informações mínimas exigidas pela Regulamentação em vigor. O CPF é o Cadastro de Pessoa natural.  Ele é um documento feito 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. O documento é emitido pela receita federal'
        passportNumber:
          type: string
          maxLength: 20
          pattern: '[\w\W\s]*'
          example: '75253468744594820620'
          description: |
            Número do Passaporte. Documento concedido aos viajantes por uma autoridade
            administrativa nacional a fim de certificar sua identidade perante autoridades
            estrangeiras. De preenchimento obrigatório. Aplicável somente à Pessoa natural
            residente no exterior desobrigada de inscrição no CPF.
        passportCountry:
          type: string
          maxLength: 3
          pattern: '^(\w{3}){1}$|^NA$'
          example: CAN
          description: Pais de emissão do passaporte. Código do pais de acordo com o código 'alpha3' do ISO-3166.
        passportExpirationDate:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
          example: '2021-05-21'
          description: 'Data vigência do Passaporte, conforme especificação RFC-3339.'
        passportIssueDate:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
          example: '2021-05-21'
          description: 'Data de emissão do passaporte, conforme especificação RFC-3339.'
      additionalProperties: false
    PersonalFinancialRelationData:
      type: object
      description: 'Objeto que reúne as informações relativas ao relacionamento do cliente junto à Instituição. 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'
      required:
        - updateDateTime
        - startDate
        - procurators
        - productsServicesType
        - accounts
      properties:
        updateDateTime:
          type: string
          format: date-time
          maxLength: 20
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco de Relacionamento, conforme especificação RFC-3339, formato UTC.'
        startDate:
          type: string
          format: date-time
          maxLength: 20
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: Data de início de relacionamento com a Instituição Financeira. Deve trazer o menor valor entre a informação reportada ao BACEN pelo DOC 3040 e CCS.
        productsServicesType:
          type: array
          items:
            $ref: '#/components/schemas/EnumProductServiceType'
          minItems: 1
          maxItems: 12
        productsServicesTypeAdditionalInfo:
          type: string
          pattern: '[\w\W\s]*'
          maxLength: 100
          example: Informações adicionais do tipo de serviço.
          description: |
            Informações adicionais do tipo de serviço.
            [Restrição] Campo obrigatório quando productsServicesType for 'OUTROS'.
        procurators:
          type: array
          items:
            $ref: '#/components/schemas/PersonalProcurator'
          minItems: 1
          description: Lista dos representantes. De preenchimento obrigatório se houver representante.
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/PersonalAccount'
          minItems: 1
          description: |
            Lista de contas depósito à vista, poupança e pagamento pré-pagas mantidas pelo cliente na instituição transmissora.    
      additionalProperties: false
    PersonalIdentificationData:
      type: object
      description: Conjunto de informações relativas a Identificação ou seja a ação e o efeito de identificar de forma única a pessoa natural através de seus dados cadastrais.
      required:
        - updateDateTime
        - personalId
        - brandName
        - civilName
        - socialName
        - birthDate
        - maritalStatusCode
        - sex
        - companyCnpj
        - documents
        - otherDocuments
        - hasBrazilianNationality
        - nationality
        - filiation
        - contacts
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
        personalId:
          type: string
          pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
          maxLength: 100
          description: Um identificador único e imutável usado para identificar o recurso cliente pessoa natural. Este identificador não tem significado para o cliente que deu o consentimento
          example: 578-psd-71md6971kjh-2d414
        brandName:
          type: string
          maxLength: 80
          pattern: '[\w\W\s]*'
          example: Organização A
          description: 'Nome da Marca reportada pelo participante do Open Banking. O conceito a que se refere 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'
        civilName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Juan Kaique Cláudio Fernandes
          description: 'Nome civil completo da pessoa natural (Direito fundamental da pessoa, o nome civil é 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)'
        socialName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Jaqueline de Freitas
          description: 'Nome social da pessoa natural, se houver. (aquele pelo qual travestis e transexuais se reconhecem, bem como são identificados por sua comunidade e em seu meio social, conforme Decreto Local)'
        birthDate:
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
          example: '2021-05-21'
          description: 'Data de nascimento, conforme especificação RFC-3339'
        maritalStatusCode:
          $ref: '#/components/schemas/EnumMaritalStatusCode'
        maritalStatusAdditionalInfo:
          type: string
          pattern: '[\w\W\s]*'
          maxLength: 50
          example: Casado
          description: 'Campo livre para complementar a informação relativa ao estado marital, quando selecionada a opção ''OUTROS'''
        sex:
          $ref: '#/components/schemas/EnumSex'
        companyCnpj:
          type: array
          items:
            type: string
            pattern: '\d{14}|^NA$'
            maxLength: 14
          example:
            - '01773247000103'
            - '01773247000563'
          description: |
            Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. 
            Deve-se ter apenas os números do CNPJ, sem máscara
        documents:
          $ref: '#/components/schemas/PersonalDocument'
        otherDocuments:
          type: array
          items:
            $ref: '#/components/schemas/PersonalOtherDocument'
          minItems: 1
          description: Relação dos demais documentos
        hasBrazilianNationality:
          type: boolean
          example: false
          description: Informa se o Cliente tem nacionalidade brasileira.
        nationality:
          type: array
          items:
            $ref: '#/components/schemas/Nationality'
        filiation:
          type: array
          items:
            type: object
            required:
              - type
              - civilName
            properties:
              type:
                $ref: '#/components/schemas/EnumFiliationType'
              civilName:
                type: string
                maxLength: 70
                pattern: '[\w\W\s]*'
                example: Marcelo Cláudio Fernandes
                description: |
                  Nome civil completo da pessoa relativa à filiação.
                  (Direito fundamental da pessoa, o nome civil é 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)
              socialName:
                type: string
                maxLength: 70
                pattern: '[\w\W\s]*'
                example: NA
                description: |
                  Nome social da pessoa natural, se houver. 
                  (aquele pelo qual travestis e transexuais se reconhecem, 
                  bem como são identificados por sua comunidade e em seu meio social, conforme Decreto Local)
            additionalProperties: false
        contacts:
          $ref: '#/components/schemas/PersonalContacts'
      additionalProperties: false
    PersonalOtherDocument:
      type: object
      required:
        - type
        - typeAdditionalInfo
        - number
        - checkDigit
        - expirationDate
      properties:
        type:
          $ref: '#/components/schemas/EnumPersonalOtherDocumentType'
        typeAdditionalInfo:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: NA
          description: Campo livre de preenchimento obrigatório se selecionada a opção OUTROS tipos de documentos
        number:
          type: string
          maxLength: 11
          pattern: '[\w\W\s]*'
          example: '15291908'
          description: Identificação/Número do documento informado
        checkDigit:
          type: string
          maxLength: 2
          pattern: '[\w\W\s]*'
          example: P
          description: Dígito verificador do documento informado. De preenchimento obrigatório se o documento informado tiver dígito verificador
        additionalInfo:
          type: string
          maxLength: 50
          pattern: '[\w\W\s]*'
          example: SSP/SP
          description: |
            Para documentos em que se aplique o uso do local de emissão o mesmo deve ser enviado mandatoriamente, com a informação de órgão e UF. Exemplo: RG, local de emissão: SSP/RS.
            [Restrição] Obrigatório quando o Local de Emissão do Documento for relevante.
        expirationDate:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
          example: '2021-05-21'
          description: 'Data de validade do documento informado, conforme especificação RFC-3339.'
      additionalProperties: false
    PersonalProcurator:
      type: object
      required:
        - type
        - cpfNumber
        - civilName
        - socialName
      properties:
        type:
          $ref: '#/components/schemas/EnumProcuratorsTypePersonal'
        cpfNumber:
          type: string
          maxLength: 11
          pattern: '^\d{11}$|^NA$'
          example: '73677831148'
          description: 'Número completo do CPF. O CPF é o Cadastro de Pessoa natural. Ele é um documento feito 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. O documento é emitido pela receita federal'
        civilName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Elza Milena Stefany Teixeira
          description: 'Nome civil completo da pessoa natural. (Direito fundamental da pessoa, o nome civil é 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)'
        socialName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Carlos
          description: 'Nome social da pessoa natural, se houver. (aquele pelo qual travestis e transexuais se reconhecem, bem como são identificados por sua comunidade e em seu meio social, conforme Decreto Nº 51.180, de 14 de janeiro de 2010)'
      additionalProperties: false
    PersonalQualificationData:
      type: object
      description: 'Conjunto de informações relativas ao processo de qualificação. 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'
      required:
        - updateDateTime
        - companyCnpj
        - informedIncome
        - informedPatrimony
        - occupationCode
        - occupationDescription
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco, conforme especificação RFC-3339'
        companyCnpj:
          type: string
          pattern: '\d{14}|^NA$'
          maxLength: 14
          example: '50685362000135'
          description: |
            Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. 
            Deve-se ter apenas os números do CNPJ, sem máscara
        occupationCode:
          $ref: '#/components/schemas/EnumOccupationMainCodeType'
        occupationDescription:
          type: string
          maxLength: 100
          pattern: '[\w\W\s]*'
          example: '01'
          description: 'Campo livre, de preenchimento obrigatório. Traz o código da ocupação ou o descritivo da ocupação, se selecionada a opção ''OUTRO'''
        informedIncome:
          type: object
          required:
            - frequency
            - amount
            - currency
            - date
          properties:
            frequency:
              $ref: '#/components/schemas/EnumInformedIncomeFrequency'
            amount:
              type: number
              format: double
              minLength: 0
              maxLength: 20
              nullable: true
              pattern: '^-?\d{1,15}\.\d{2,4}$'
              example: 100000.04
              description: |
                Valor total da renda informada. Expresso em valor monetário com 4 casas decimais. 
                Renda primária indica os montantes a pagar ou a receber em troca do uso temporário de recursos financeiros, trabalho ou ativos não financeiros não produzidos, a saber, remuneração de trabalhadores, renda de investimentos e demais rendas primárias.
                Fazem parte da primeira a remuneração do trabalho assalariado (salários e ordenados); da segunda, renda de investimento direto, renda de investimento em carteira, renda de outros investimentos e renda de ativos de reserva; e da terceira, tributos sobre a produção e importação, subsídios e aluguéis.
                Fonte: Banco Central do Brasil – Departamento Econômico
            currency:
              type: string
              maxLength: 3
              pattern: '^(\w{3}){1}$|^NA$'
              example: BRL
              description: 'Moeda referente ao valor da renda, segundo modelo ISO-4217.'
            date:
              type: string
              format: date
              maxLength: 10
              pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$|^NA$'
              example: '2021-05-21'
              description: 'Data da renda, conforme especificação RFC-3339.'
          additionalProperties: false
        informedPatrimony:
          $ref: '#/components/schemas/PersonalInformedPatrimony'
      additionalProperties: false
    ResponseBusinessCustomersFinancialRelation:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          $ref: '#/components/schemas/BusinessFinancialRelationData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseBusinessCustomersIdentification:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BusinessIdentificationData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseBusinessCustomersQualification:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          $ref: '#/components/schemas/BusinessQualificationData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponseError:
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          minItems: 1
          maxItems: 13
          items:
            type: object
            required:
              - code
              - title
              - detail
            properties:
              code:
                description: Código de erro específico do endpoint
                type: string
                pattern: '[\w\W\s]*'
                maxLength: 255
              title:
                description: Título legível por humanos deste erro específico
                type: string
                pattern: '[\w\W\s]*'
                maxLength: 255
              detail:
                description: Descrição legível por humanos deste erro específico
                type: string
                pattern: '[\w\W\s]*'
                maxLength: 2048
            additionalProperties: false
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponsePersonalCustomersFinancialRelation:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          $ref: '#/components/schemas/PersonalFinancialRelationData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponsePersonalCustomersIdentification:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PersonalIdentificationData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ResponsePersonalCustomersQualification:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          $ref: '#/components/schemas/PersonalQualificationData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    XFapiInteractionId:
      type: string
      pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
      maxLength: 100
      description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
  parameters:
    Authorization:
      name: Authorization
      in: header
      description: Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado
      required: true
      schema:
        type: string
        pattern: '[\w\W\s]*'
        maxLength: 2048
    page:
      name: page
      in: query
      description: Número da página que está sendo requisitada (o valor da primeira página é 1).
      schema:
        type: integer
        default: 1
        minimum: 1
        format: int32
    pageSize:
      name: page-size
      in: query
      description: Quantidade total de registros por páginas.
      schema:
        type: integer
        default: 25
        minimum: 1
        format: int32
        maximum: 1000
    xCustomerUserAgent:
      name: x-customer-user-agent
      in: header
      description: Indica o user-agent que o usuário utiliza.
      required: false
      schema:
        type: string
        pattern: '[\w\W\s]*'
        minLength: 1
        maxLength: 100
    xFapiAuthDate:
      name: x-fapi-auth-date
      in: header
      description: 'Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a [RFC7231](https://tools.ietf.org/html/rfc7231).Exemplo: Sun, 10 Sep 2017 19:43:31 UTC'
      required: false
      schema:
        type: string
        pattern: '^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$'
        minLength: 29
        maxLength: 29
    xFapiCustomerIpAddress:
      name: x-fapi-customer-ip-address
      in: header
      description: O endereço IP do usuário se estiver atualmente logado com o receptor.
      required: false
      schema:
        type: string
        pattern: '[\w\W\s]*'
        minLength: 1
        maxLength: 100
    xFapiInteractionId:
      name: x-fapi-interaction-id
      in: header
      description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      required: false
      schema:
        type: string
        pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
        minLength: 1
        maxLength: 100
  securitySchemes:
    OpenId:
      type: openIdConnect
      openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration'
    OAuth2Security:
      type: oauth2
      description: Fluxo OAuth necessário para que a receptora tenha acesso aos dados na instituição transmissora. Requer o processo de redirecionamento e autenticação do usuário a que se referem os dados.
      flows:
        authorizationCode:
          authorizationUrl: 'https://authserver.example/authorization'
          tokenUrl: 'https://authserver.example/token'
          scopes:
            customers: Escopo necessário para acesso à API Customers. O controle dos endpoints específicos é feito via permissions.
  responses:
    OKResponsePersonalCustomersIdentification:
      description: Dados sobre identificação pessoa física.
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/XFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponsePersonalCustomersIdentification'
    OKResponsePersonalCustomersQualification:
      description: Dados sobre qualificação da pessoa física
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/XFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponsePersonalCustomersQualification'
    OKResponsePersonalCustomersFinancialRelation:
      description: Dados sobre relacionamento da pessoa física
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/XFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponsePersonalCustomersFinancialRelation'
    OKResponseBusinessCustomersIdentification:
      description: Dados sobre identificação pessoa jurídica
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/XFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseBusinessCustomersIdentification'
    OKResponseBusinessCustomersQualification:
      description: Dados sobre qualificação pessoa jurídica
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/XFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseBusinessCustomersQualification'
    OKResponseBusinessCustomersFinancialRelation:
      description: Dados sobre relacionamento pessoa jurídica
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/XFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseBusinessCustomersFinancialRelation'
    BadRequest:
      description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.'
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    Forbidden:
      description: O token tem escopo incorreto ou uma política de segurança foi violada
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    InternalServerError:
      description: Ocorreu um erro no gateway da API ou no microsserviço
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    MethodNotAllowed:
      description: O consumidor tentou acessar o recurso com um método não suportado
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    NotAcceptable:
      description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    NotFound:
      description: O recurso solicitado não existe ou não foi implementado
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    TooManyRequests:
      description: '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'
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    Unauthorized:
      description: Cabeçalho de autenticação ausente/inválido ou token inválido
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
