﻿openapi: 3.0.0
info:
  title: API Pension - Open Finance Brasil
  description: |
    API de Previdência do Open Finance Brasil – Fase 4.
    API que retorna informações de Previdência.
  version: 2.0.0-beta.1
  license:
    name: Apache 2.0
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
  contact:
    name: Governança do Open Finance Brasil – Especificações
    email: gt-interfaces@openbankingbr.org
    url: 'https://openbanking-brasil.github.io/areadesenvolvedor/'
servers:
  - url: 'https://api.banco.com.br/open-banking/opendata-pension/v2'
    description: Servidor de Produção
  - url: 'https://apih.banco.com.br/open-banking/opendata-pension/v2'
    description: Servidor de Homologação
tags:
  - name: Risk Coverages
    description: Operações relacionadas à Previdência com Coberturas de Risco.
  - name: Survival Coverages
    description: Operações relacionadas à Previdência com Coberturas de Sobrevivência.
paths:
  /risk-coverages:
    get:
      tags:
        - Risk Coverages
      summary: Informações de Previdência com Cobertura de Riscos.
      operationId: getPensionRiskCoverages
      description: Método para obter informações de Previdência de Cobertura de Riscos.
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseRiskCoveragePension'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '529':
          $ref: '#/components/responses/SiteIsOverloaded'
  /survival-coverages:
    get:
      tags:
        - Survival Coverages
      summary: Informações de Previdência com Cobertura de Sobrevivência.
      operationId: getPensionSurvivalCoverages
      description: Método para obter informações de Previdência de Cobertura de Sobrevivência.
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          $ref: '#/components/responses/OKResponseSurvivorCoveragePension'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '529':
          $ref: '#/components/responses/SiteIsOverloaded'
components:
  schemas:
    OKResponseRiskCoveragePension:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          description: Conjunto de informações referente ao produto previdência
          minItems: 1
          maxItems: 2147483647
          items:
            $ref: '#/components/schemas/GetRiskPensionContractData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/OpenDataMeta'
      additionalProperties: false
    GetRiskPensionContractData:
      type: object
      required:
        - participant
        - society
      properties:
        participant:
          $ref: '#/components/schemas/PensionParticipant'
        society:
          $ref: '#/components/schemas/RiskSociety'
    OKResponseSurvivalCoveragePension:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          type: array
          description: Conjunto de informações referente ao produto previdência
          minItems: 1
          maxItems: 2147483647
          items:
            $ref: '#/components/schemas/GetSurvivalPensionContractData'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/OpenDataMeta'
      additionalProperties: false
    GetSurvivalPensionContractData:
      type: object
      required:
        - participant
      properties:
        participant:
          $ref: '#/components/schemas/PensionParticipant'
        society:
          $ref: '#/components/schemas/SurvivalSociety'
      additionalProperties: false
    SurvivalPensionInvestmentFund:
      type: object
      description: Fundos de Investimento (por fundo).
      required:
        - cnpjNumber
        - name
        - maximumAdministrationFee
      x-regulatory-required:
        - cnpjNumber
        - name
        - maximumAdministrationFee
        - typePerformanceFee
        - maximumPerformanceFee
        - eligibilityRule
        - minimumContributionAmount
        - minimumMathematicalProvisionAmount
        - currency
      properties:
        cnpjNumber:
          $ref: '#/components/schemas/CnpjNumber'
        name:
          type: string
          description: |
            Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando:
            - Nome Fantasia
          minLength: 1
          maxLength: 80
          example: EMPRESAAPREV
        maximumAdministrationFee:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          description: |
            Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando:
              - Taxa Máxima de Administração - em %
          example: '0.019800'
          maxLength: 9
          minLength: 8
        typePerformanceFee:
          type: string
          minLength: 1
          maxLength: 20
          enum:
            - DIRETAMENTE
            - INDIRETAMENTE
          description: |
            Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando:
               - Tipo de taxa de performance
          example: DIRETAMENTE
        maximumPerformanceFee:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          description: |
            Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: 
              - Taxa Máxima de Performance - em %
          maxLength: 9
          minLength: 8
          example: '0.019800'
        eligibilityRule:
          type: boolean
          description: |
            Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando:
              - Regra de Elegibilidade
          example: true
        minimumContributionAmount:
          type: string
          minLength: 1
          maxLength: 21
          description: |
            Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: 
              - Valor Mínimo de Contribuição
          pattern: '^(\d{1,16}\.\d{2,4})$'
          example: '1000.00'
        minimumContributionValue:
          type: number
          description: Valor Mínimo de Aporte de Portabilidade. Caso a Regra de Elegibilidade SIM.​
          minimum: 0
          maximum: 2147483647
          example: 1
        minimumMathematicalProvisionAmount:
          type: string
          description: |
            Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação, contemplando: 
              - Valor Mínimo do Saldo Provisão matemática
          pattern: '^(\d{1,16}\.\d{2,4})$'
          example: '1000.00'
          minLength: 1
          maxLength: 21
        currency:
          $ref: '#/components/schemas/CurrencyCode'
      additionalProperties: false
    SurvivalPensionMinimumRequirements:
      type: object
      description: Requerimento mínimo do serviço contratado
      required:
        - contractingMinRequirement
      x-regulatory-required:
        - contractType
        - participantQualified
        - contractingMinRequirement
      properties:
        contractType:
          type: string
          minLength: 1
          maxLength: 30
          enum:
            - COLETIVO_AVERBADO
            - COLETIVO_INSTITUIDO
            - INDIVIDUAL
          description: |
            O tipo de serviço contratado. A considerar os domínios abaixo:
            1. Coletivo Averbado;
            2. Coletivo instituído;
            3. Individual.
          example: COLETIVO_AVERBADO
        participantQualified:
          type: boolean
          description: |
            Indicação se o plano é destinado para participante qualificado. A considerar os domínios abaixo:
            1. true
            2. false
          example: true
        contractingMinRequirement:
          type: string
          minLength: 1
          maxLength: 1024
          description: Campo aberto (possibilidade de incluir URL)
          example: 'https://openinsurance.com.br/aaa'
      additionalProperties: false
    CnpjNumber:
      type: string
      description: '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.'
      minLength: 14
      maxLength: 14
      pattern: '^\d{14}$'
      example: '13456789000112'
    RiskProducts:
      type: object
      required:
        - name
        - code
        - coverages
        - termsAndConditions
        - contributionPayment
        - minimumRequirement
      x-regulatory-required:
        - name
        - code
        - modality
        - assistanceTypes
        - additional
        - pmbacRemuneration
        - premiumUpdateIndex
        - ageAdjustment
        - financialRegimeContractType
        - reclaim
        - otherGuaranteedValues
        - contributionPayment
        - minimumRequirement
        - targetAudience
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 80
          description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.'
          example: Produto A
        code:
          type: string
          minLength: 1
          maxLength: 80
          description: Código único a ser definido pela sociedade.
          example: '0001'
        modality:
          $ref: '#/components/schemas/EnumProductModality'
        coverages:
          type: array
          description: Conjunto de informações referente a cobertura
          minItems: 1
          maxItems: 2147483647
          items:
            $ref: '#/components/schemas/Coverage'
        assistanceTypes:
          type: array
          items:
            $ref: '#/components/schemas/EnumAssistanceType'
          example:
            - PET
            - FUNERAL
        assistanceTypesAdditionalInfos:
          type: array
          minItems: 0
          maxItems: 2147483647
          items:
            type: string
          description: Lista a ser preenchida pelas participantes quando houver 'Outros' no campo 'Tipo de Assistência'.
          example:
            - Assistance additional info.
        planAdditional:
          $ref: '#/components/schemas/EnumPlanAdditional'
        termsAndConditions:
          type: array
          description: Conjunto de informações referente aos termos e condições conforme número do processo SUSEP
          minItems: 1
          maxItems: 2147483647
          items:
            $ref: '#/components/schemas/TermsAndConditions'
        pmbacRemuneration:
          $ref: '#/components/schemas/RiskPensionEnumPmbacRemuneration'
        premiumUpdateIndex:
          $ref: '#/components/schemas/RiskPensionEnumPremiumUpdateIndex'
        ageAdjustment:
          $ref: '#/components/schemas/AgeAdjustment'
        financialRegimeContractType:
          $ref: '#/components/schemas/RiskPensionEnumFinancialRegime'
        reclaim:
          $ref: '#/components/schemas/RiskPensionReclaim'
        otherGuaranteedValues:
          $ref: '#/components/schemas/RiskPensionEnumOtherGuaranteedValues'
        contributionPayment:
          $ref: '#/components/schemas/RiskPensionEnumContributionPayment'
        contributionTax:
          type: string
          description: Distribuição de frequência relativa aos valores referentes às taxas cobradas
        minimumRequirement:
          $ref: '#/components/schemas/RiskPensionMinimumRequirement'
        targetAudience:
          type: string
          minLength: 1
          maxLength: 23
          description: |
            A considerar os domínios abaixo:

              1. Pessoa Natural
              2. Pessoa Jurídica
              3. Ambas (Pessoa Natural e Jurídica)
          enum:
            - PESSOA_NATURAL
            - PESSOA_JURIDICA
            - PESSOA_NATURAL_JURIDICA
          example: PESSOA_NATURAL
    SurvivalProducts: 
      type: object
      required:
        - name
        - code
        - defferalPeriod
        - grantPeriodBenefit
        - costs
      x-regulatory-required:
        - name
        - code
        - segment
        - modality
        - type
        - defferalPeriod
        - grantPeriodBenefit
        - costs
        - minimumRequirement
        - targetAudience
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 80
          description: |
            Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.
          example: Produto A
        code:
          type: string
          minLength: 1
          maxLength: 80
          description: |
            Código único a ser definido pela sociedade.
          example: '0001'
        segment:
          type: string
          minLength: 1
          maxLength: 20
          description: |
            Segmento do qual se trata o produto contratado
            1. Seguro de Pessoas
            2. Previdência
          enum:
            - SEGURO_PESSOAS
            - PREVIDENCIA
          example: PREVIDENCIA
        modality:
          type: string
          minLength: 1
          maxLength: 20
          description: |
            1. Contribuição Variável;
            2. Benefício Definido.
          enum:
            - CONTRIBUICAO_VARIAVEL
            - BENEFICIO_DEFINIDO
          example: BENEFICIO_DEFINIDO
        additionalInfo:
          type: string
          description: Campo aberto (possibilidade de incluir URL)
          example: 'https://openinsurance.com.br/aaa'
          minLength: 1
          maxLength: 1024
        termsAndConditions:
          type: array
          description: Conjunto de informações referente aos termos e condições conforme número do processo SUSEP
          items:
            $ref: '#/components/schemas/TermsAndConditions'
          minItems: 1
          maxItems: 2147483647
        type:
          $ref: '#/components/schemas/SurvivalPensionType'
        defferalPeriod:
          $ref: '#/components/schemas/SurvivalPensionDefferalPeriod'
        grantPeriodBenefit:
          $ref: '#/components/schemas/SurvivalPensionGrantPeriodBenefit'
        costs:
          $ref: '#/components/schemas/SurvivalPensionCosts'
        minimumRequirement:
          $ref: '#/components/schemas/SurvivalPensionMinimumRequirements'
        targetAudience:
          $ref: '#/components/schemas/SurvivalPensionEnumTargetAudience'
    SurvivalPensionDefferalPeriod:
      type: object
      description: Período de Diferimento
      required:
        - interestRate
        - otherMinimumPerformanceGarantees
        - reversalFinancialResults
        - redemptionPaymentTerm
        - portabilityPaymentTerm
      x-regulatory-required:
        - interestRate
        - updateIndex
        - otherMinimumPerformanceGarantees
        - reversalFinancialResults
        - permissionExtraordinaryContributions
        - permissionScheduledFinancialPayments
        - gracePeriod
        - redemptionPaymentTerm
        - portabilityPaymentTerm
      properties:
        interestRate:
          type: string
          maxLength: 9
          minLength: 8
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          description: Taxa de juros mensal garantida que remunera o plano durante a fase de diferimento/acumulação.
          example: '0.019800'
        updateIndex:
          $ref: '#/components/schemas/UpdateIndex'
        otherMinimumPerformanceGarantees:
          type: string
          description: 'Para produtos do tipo PDR e VDR, indicação do índice de ampla divulgação utilizados como garantia mínima de desempenho.'
          example: SELIC
          minLength: 1
          maxLength: 12
        otherMinGuaranteesPercentage:
          type: string
          description: Para produtos do tipo PDR e VDR, indicação do percentual do índice de ampla divulgação utilizados como garantia mínima de desempenho. Exemplo 1.000000 igual a 100 por cento.
          pattern: ^(\d{1}\.\d{6})$
          minLength: 8
          maxLength: 8
          example: '1.000000'
        reversalFinancialResults:
          type: string
          maxLength: 9
          minLength: 8
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          description: Percentual de reversão de excedente financeiro na concessão. Em %.
          example: '0.019800'
        minimumPremiums:
          type: array
          description: Valor mínimo do prêmio/contribuição aceita pela sociedade ao plano (identificar valor mensal e/ou aporte único)
          minItems: 0
          maxItems: 2147483647
          items:
            $ref: '#/components/schemas/SurvivalPensionMinimumPremium'
        premiumPaymentMethods:
          type: array
          description: Meio de pagamento escolhido pelo segurado
          minItems: 0
          maxItems: 2147483647
          items:
            type: string
            enum:
              - CARTAO_CREDITO
              - DEBITO_CONTA
              - DEBITO_CONTA_POUPANCA
              - BOLETO_BANCARIO
              - PIX
              - CARTAO_DEBITO
              - REGRA_PARCEIRO
              - CONSIGNACAO_FOLHA_PAGAMENTO
              - PONTOS_PROGRAMA_BENEFICIO
              - TED_DOC
              - OUTROS
              - NA
            example: CARTAO_CREDITO
        premiumPaymentMethodsAdditionalInfo:
          type: string
          description: |
            Campo livre para preenchimento das informações adicionais referente a descrição do meio de pagamento.
            
            [Restrição] Obrigatório quando ""premiumPaymentMethods"" for igual 'OUTROS'
          minLength: 1
          maxLength: 144
          example: Informações adicionais
        permissionExtraordinaryContributions:
          description: |
            Se ficam permitidos aportes extraordinários. A considerar os seguintes domínios:
            1. true
            2. false
          type: boolean
          example: true
        permissionScheduledFinancialPayments:
          description: |
            Se ficam permitidos pagamentos financeiros programados. A considerar os seguintes domínios:
            1. true
            2. false
          type: boolean
          example: true
        gracePeriod:
          $ref: '#/components/schemas/SurvivalPensionGracePeriod'
        redemptionPaymentTerm:
          type: integer
          description: Prazo em dias para pagamento do resgate
          maximum: 9999
          example: 10
        portabilityPaymentTerm:
          type: integer
          description: Prazo em dias para pagamento da portabilidade (entre empresas diferentes).
          example: 20
          minimum: 0
          maximum: 9999
        investmentFunds:
          type: array
          description: Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação ou de concessão
          minItems: 0
          maxItems: 2147483647
          items:
            $ref: '#/components/schemas/SurvivalPensionInvestmentFund'
      additionalProperties: false
    SurvivalPensionType:
      type: string
      minLength: 1
      maxLength: 80
      description: |
        1.  PGBL
        2.  PRGP
        3.  PAGP
        4.  PRSA
        5.  PRI
        6.  PDR
        7.  VGBL
        8.  VRGP
        9.  VAGP
        10. VRSA
        11. VRI
        12. VDR
        13. Demais produtos de Previdência.
      enum:
        - PGBL
        - PRGP
        - PAGP
        - PRSA
        - PRI
        - PDR
        - VGBL
        - VRGP
        - VAGP
        - VRSA
        - VRI
        - VDR
        - DEMAIS_PRODUTOS_PREVIDENCIA
      example: PGBL
    SurvivalPensionGracePeriod:
      type: object
      description: Prazo de carência
      required:
        - redemption
        - betweenRedemptionRequests
        - portability
        - betweenPortabilityRequests
      x-regulatory-required:
        - redemption
        - betweenRedemptionRequests
        - portability
        - betweenPortabilityRequests 
      properties:
        redemption:
          type: integer
          description: |
            Prazo em dias de carência para resgate Para Coletivos: Valor máximo da carência.
          example: 100
          minimum: 0
          maximum: 9999
        betweenRedemptionRequests:
          type: integer
          description: |
            Prazo em dias de carência entre pedidos de resgate Para Coletivos: Valor máximo da carência
          example: 30
          minimum: 0
          maximum: 9999
        portability:
          type: integer
          description: Prazo em dias de carência para portabilidade (entre empresas diferentes).
          example: 12
          minimum: 0
          maximum: 9999
        betweenPortabilityRequests:
          type: integer
          description: Prazo em dias de carência entre pedidos de portabilidade (entre empresas diferentes).
          example: 15
          minimum: 0
          maximum: 9999
      additionalProperties: false
    SurvivalPensionCosts:
      type: object
      description: Custos
      required:
        - loadingAntecipated
        - loadingLate
      x-regulatory-required:
        - loadingAntecipated
        - loadingLate
      properties:
        loadingAntecipated:
          $ref: '#/components/schemas/SurvivalPensionLoadingAntecipated'
        loadingLate:
          $ref: '#/components/schemas/SurvivalPensionLoadingLate'
      additionalProperties: false
    SurvivalPensionLoadingAntecipated:
      type: object
      description: Carregamento antecipado.
      required:
        - minValue
        - maxValue
      x-regulatory-required:
        - minValue
        - maxValue
      properties:
        minValue:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          maxLength: 9
          minLength: 8
          description: Percentual mínimo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %.
          example: '0.019800'
        maxValue:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          maxLength: 9
          minLength: 8
          description: Percentual máximo de carregamento cobrada quando do pagamento do prêmio/ contribuição. Em %.
          example: '0.019800'
      additionalProperties: false
    SurvivalPensionLoadingLate:
      type: object
      description: Carregamento postecipado.
      required:
        - minValue
        - maxValue
      x-regulatory-required:
        - minValue
        - maxValue
      properties:
        minValue:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          maxLength: 9
          minLength: 8
          description: Percentual mínimo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade.
          example: '0.019800'
        maxValue:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          maxLength: 9
          minLength: 8
          description: Percentual máximo de taxa de carregamento cobrado quando da efetivação de resgate ou portabilidade.
          example: '0.019800'
      additionalProperties: false
    SurvivalPensionMinimumPremium:
      type: object
      x-regulatory-required:
        - currency
        - periodicityDescription
        - amount
      description: Valor mínimo de prêmio/contribuição
      properties:
        currency:
          $ref: '#/components/schemas/CurrencyCode'
        periodicityDescription:
          description: Descrição da periodicidade do prêmio/contribuição
          type: string
          minLength: 5
          maxLength: 15
          pattern: ^(?!\s)[\w\W\s]*[^\s]$
          example: MENSAL
        amount:
          type: string
          maxLength: 21
          pattern: '^(\d{1,16}\.\d{2,4})$'
          description: Valor mínimo em R$ de prêmio/ contribuição aceita pela sociedade ao plano (identificar valor mensal e/ou aporte único).
          example: '250.00'
      additionalProperties: false
    SurvivalPensionGrantPeriodBenefit:
      type: object
      description: Período de concessão do benefício
      required:
        - incomeModalities
        - interestRate
        - reversalFinancialResults
      x-regulatory-required:
        - incomeModalities
        - biometricTable
        - interestRate
        - updateIndex
        - reversalFinancialResults
      properties:
        incomeModalities:
          type: array
          description: Modalidades de renda disponíveis para contratação. A considerar os seguintes domínios
          minItems: 1
          maxItems: 2147483647
          items:
            type: string
            description: |
              Modalidades de renda disponíveis para contratação.
                A considerar os seguintes domínios:
                1. Pagamento Único
                2. Renda por Prazo Certo;
                3. Renda Temporária;
                4. Renda Temporária Reversível;
                5. Renda Temporária com mínimo garantido;
                6. Renda Temporária Reversível com Mínimo Garantido;
                7. Renda Vitalícia;
                8. Renda Vitalícia Reversível ao Beneficiário Indicado
                9. Renda Vitalícia Reversível ao Cônjuge com Continuidade de Menores
                10. Renda Vitalícia com o Mínimo Garantido;
                11. Renda Vitalícia com Prazo mínimo garantido.
                12. NA
            enum:
              - PAGAMENTO_UNICO
              - RENDA_PRAZO_CERTO
              - RENDA_TEMPORARIA
              - RENDA_TEMPORARIA_REVERSIVEL
              - RENDA_TEMPORARIA_MINMO_GARANTIDO
              - RENDA_TEMPORARIA_REVERSIVEL_MININO_GARANTIDO
              - RENDA_VITALICIA
              - RENDA_VITALICIA_REVERSIVEL_BENEFICIARIO_INDICADO
              - RENDA_VITALICIA_CONJUGE_CONTINUIDADE_MENORES
              - RENDA_VITALICIA_MINIMO_GARANTIDO
              - RENDA_VITALICIA_PRAZO_MINIMO_GRANTIDO
              - NA
            example: PAGAMENTO_UNICO
        biometricTable:
          type: array
          description: Obrigatório caso modalidade de renda seja diferente de (PAGAMENTO_UNICO, RENDA_PRAZO_CERTO). Tábua biométrica é o instrumento que mede a duração da vida humana (também conhecida como tábua de mortalidade) ou a probabilidade de entrada em invalidez e é um parâmetro utilizado para tarifar os planos de previdência complementar aberta.
          minItems: 0
          maxItems: 2147483647
          items:
            type: string
            description: |
              Tábua biométrica utilizada como parâmetro para conversão em renda atuarial que deve observar a relação discriminada de coberturas, conforme Tabela II.2 do Anexo II.
              Deverá ser informada a tábua biométrica aplicável à modalidade de renda padrão do plano.
            enum:
              - AT_2000_MALE
              - AT_2000_FEMALE
              - AT_2000_MALE_FEMALE
              - AT_2000_MALE_SUAVIZADA_10
              - AT_2000_FEMALE_SUAVIZADA_10
              - AT_2000_MALE_FEMALE_SUAVIZADA_10
              - AT_2000_MALE_SUAVIZADA_15
              - AT_2000_FEMALE_SUAVIZADA_15
              - AT_2000_MALE_FEMALE_SUAVIZADA_15
              - AT_83_MALE
              - AT_83_FEMALE
              - AT_83_MALE_FEMALE
              - BR_EMSSB_MALE
              - BR_EMSSB_FEMALE
              - BR_EMSSB_MALE_FEMALE
              - NA
            example: AT_2000_MALE
        interestRate:
          type: string
          maxLength: 9
          minLength: 8
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          description: Taxa de juros garantida utilizada para conversão em renda. Em %
          example: '0.019800'
        updateIndex:
          $ref: '#/components/schemas/UpdateIndex'
        reversalFinancialResults:
          type: string
          maxLength: 9
          minLength: 8
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          description: Percentual de reversão de excedente financeiro na concessão. Em %.
          example: '0.019800'
        investmentFunds:
          type: array
          description: Lista com as informações do(s) Fundo(s) de Investimento(s) disponíveis para o período de diferimento/acumulação ou de concessão.
          minItems: 0
          maxItems: 2147483647
          items:
            $ref: '#/components/schemas/SurvivalPensionInvestmentFund'
      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/v2/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/v2/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/v2/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/v2/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/v2/resource'
          pattern: '^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)$'
      additionalProperties: false
    PensionParticipant:
      type: object
      description: Conjunto de informações relativas ao participante do produto de Open Finance
      required:
        - brand
        - name
        - cnpjNumber
      x-regulatory-required:
        - brand
        - name
        - cnpjNumber
      properties:
        brand:
          type: string
          description: 'Nome da marca reportada pelo participante do Open Finance. 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.'
          minLength: 1
          maxLength: 80
          example: Organização
        name:
          type: string
          description: Nome do participante do Open Finance.
          minLength: 1
          maxLength: 80
          example: Organização A1
        cnpjNumber:
          $ref: '#/components/schemas/CnpjNumber'
        urlComplementaryList:
          description: |
            Espera-se que valor de retorno, após acesso ao link ‘urlComplementaryList’, deve ser array de objeto com a estrutura abaixo:

            - ‘name’ com o valor contido no campo ‘LegalEntityName’ conforme cadastro no diretório;

            - ‘cnpjNumber’ com o valor contido no campo CNPJ (‘RegistrationNumber’) correspondente a esta instituição;

            - Ambos do tipo string;

            - Ambos obrigatórios.
          type: string
          maxLength: 1024
          pattern: '^((https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*))$'
          example: 'https://empresaa1.com/companies'
      additionalProperties: false
    RiskSociety:
      type: object
      description: Conjunto de informações relativas à seguradora do produto de open insurance
      required:
        - name
        - cnpjNumber
        - products
      x-regulatory-required:
        - name
        - cnpjNumber
      properties:
        name:
          type: string
          description: Nome da Sociedade Seguradora.
          minLength: 1
          maxLength: 80
          example: Society A1
        cnpjNumber:
          $ref: '#/components/schemas/CnpjNumber'
        brand:
          type: string
          description: Nome da Marca reportada pelo participante do Open Insurance. 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.
          pattern: '^(?!\s)[\w\W\s]*[^\s]$'
          maxLength: 80
          minLength: 1
          example: Marca no OPIN.
        products:
          type: array
          minItems: 1
          description: Lista de produtos de uma empresa.
          items:
            $ref: '#/components/schemas/RiskProducts'
      additionalProperties: false
    SurvivalSociety:
      type: object
      description: Conjunto de informações relativas à seguradora do produto de open insurance
      required:
        - name
        - cnpjNumber
        - products
      x-regulatory-required:
        - name 
        - cnpjNumber
      properties:
        name:
          type: string
          description: Nome da Sociedade Seguradora.
          minLength: 1
          maxLength: 80
          example: Society A1
        cnpjNumber:
          $ref: '#/components/schemas/CnpjNumber'
        brand:
          type: string
          description: Nome da Marca reportada pelo participante do Open Insurance. 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.
          pattern: '^(?!\s)[\w\W\s]*[^\s]$'
          maxLength: 80
          minLength: 1
          example: Marca no OPIN.
        products:
          type: array
          minItems: 1
          description: Lista de produtos de uma empresa.
          items:
            $ref: '#/components/schemas/SurvivalProducts'
      additionalProperties: false
    RiskPensionEnumIndemnifiablePeriodType:
      type: string
      minLength: 1
      maxLength: 80
      description: |
        Listagem do pagamento para cada benefício:
          1. Quantidade determinada de parcelas;
          2. Até o fim de ciclo determinado.

        Observação: Se for pagamento único, este campo não deve ser informado.
      enum:
        - QUANTIDADE_DETERMINADA_PARCELAS
        - FIM_CICLO_DETERMINADO
      example: QUANTIDADE_DETERMINADA_PARCELAS
    SurvivalPensionEnumTargetAudience:
      type: string
      minLength: 1
      maxLength: 30
      description: |
        A considerar os domínios abaixo:

          1. Pessoa Natural
          2. Pessoa Jurídica
      enum:
        - PESSOA_NATURAL
        - PESSOA_JURIDICA
      example: PESSOA_NATURAL
    EnumProductModality:
      type: string
      minLength: 1
      maxLength: 80
      description: <ol><li>Funeral</li><li>Prestamista (exceto Habitacional e Rural)</li><li>Viagem</li><li>Educacional</li><li>Dotal (Misto e Puro)</li><li>Acidentes Pessoais</li><li>Vida</li><li>Perda do Certificado de Habilitação de Voo – PCHV</li><li>Doenças Graves ou Doença Terminal</li><li>Desemprego/ Perda de Renda</li><li>Eventos Aleatórios</li><li>Pecúlio</li><li>Pensão prazo certo</li><li>Pensão menores 21 anos</li><li>Pensão menores 24 anos</li><li>Pensão cônjuge vitalícia</li><li>Pensão cônjuge temporária</li></ol>
      enum:
        - FUNERAL
        - PRESTAMISTA
        - VIAGEM
        - EDUCACIONAL
        - DOTAL
        - ACIDENTES_PESSOAIS
        - VIDA
        - PERDA_CERTIFICADO_HABILITACAO_VOO
        - DOENCAS_GRAVES_DOENCA_TERMINAL
        - DESEMPREGO_PERDA_RENDA
        - EVENTOS_ALEATORIOS
        - PECULIO
        - PENSAO_PRAZO_CERTO
        - PENSAO_MENORES_21
        - PENSAO_MENORES_24
        - PENSAO_CONJUGE_VITALICIA
        - PENSAO_CONJUGE_TEMPORARIA
      example: FUNERAL
    Coverage:
      type: object
      required:
        - coveragePeriod
      x-regulatory-required:
        - type
        - attributes
      properties:
        type:
          $ref: '#/components/schemas/EnumRiskPensionCoverageType'
        typeAdditionalInfos:
          type: array
          description: |
            Lista de textos para complementar informação relativa ao campo type, quando for selecionada a opção 'OUTROS'.
            Restrição: Campo de preenchimento obrigatório se 'type' estiver preenchida a opção 'OUTROS'
          minItems: 0
          maxItems: 2147483647
          items:
            type: string
            maxLength: 100
          example:
            - Detalhar os serviços
            - benefícios
            - outros
        attributes:
          $ref: '#/components/schemas/CoverageAttributes'
        coveragePeriod:
          type: array
          description: Mapeamento dos regimes financeiros associados a cada modalidade e cobertura do produto
          items:
            type: string
            enum:
              - VITALICIA
              - TEMPORARIA
          example: 
            - TEMPORARIA
      additionalProperties: false
    EnumRiskPensionCoverageType:
      type: string
      minLength: 1
      maxLength: 20
      description: 'É o conjunto dos riscos cobertos elencados na apólice. (RESOLUÇÃO CNSP Nº 341/2016). Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela Tipo de Cobertura.'
      enum:
        - MORTE
        - INVALIDEZ
        - OUTROS
      example: MORTE
    CoverageAttributes:
      type: object
      description: Atributos da cobertura
      required:
        - minValue
        - maxValue
        - indemnifiableDeadline
        - gracePeriod
        - excludedRisksURL
      x-regulatory-required:
        - minValue
        - maxValue
        - indemnifiablePeriod
        - indemnifiableDeadline
        - indemnityPaymentMethod
        - gracePeriod
        - excludedRisks
        - excludedRisksURL
        - profitModality
      properties:
        minValue:
          $ref: '#/components/schemas/InsurancePensionMinValue'
        maxValue:
          $ref: '#/components/schemas/InsurancePensionMaxValue'
        indemnifiablePeriod:
          $ref: '#/components/schemas/RiskPensionEnumIndemnifiablePeriodType'
        indemnifiableDeadline:
          type: integer
          description: Número máximo de parcelas indenizáveis. Caso seja relacionado a parcelas.
          example: 1
        indemnityPaymentMethod:
          $ref: '#/components/schemas/RiskPensionEnumIndemnityPaymentMethod'
        gracePeriod:
          type: object
          x-regulatory-required:
            - amount
            - unit
          description: Período de carência da cobertura
          properties:
            amount:
              type: integer
              format: int64
              description: Informar o prazo de carência
              example: 90
              minimum: 0
              maximum: 9999999999
            unit:
              $ref: '#/components/schemas/EnumGracePeriodUnit'
          additionalProperties: false
        excludedRisks:
          type: array
          items:
            $ref: '#/components/schemas/EnumExcludedRisks'
        excludedRisksURL:
          type: string
          minLength: 1
          maxLength: 1024
          description: Campo aberto (possibilidade de incluir URL).
          example: 'https://openinsurance.com.br/aaa'
        profitModality:
          $ref: '#/components/schemas/RiskPensionEnumProfitModality'
      additionalProperties: false
    RiskPensionGracePeriod:
      type: object
      description: Período de carência
      required:
        - amount
      x-regulatory-required:
        - amount
        - unit
      properties:
        amount:
          type: integer
          format: int64
          description: Informar o prazo de carência
          example: 90
          minimum: 0
          maximum: 9999999999
        unit:
          $ref: '#/components/schemas/RiskPensionEnumGracePeriodUnit'
      additionalProperties: false
    TermsAndConditions:
      type: object
      required:
        - susepProcessNumber
        - contractTermsConditions
      x-regulatory-required:
        - susepProcessNumber
        - contractTermsConditions
      properties:
        susepProcessNumber:
          type: string
          description: 'Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais, conforme campo de consulta no site da SUSEP (XXXXX.XXXXXX/XXXX-XX)<br>Observação&#58; Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.'
          minLength: 1
          maxLength: 30
          pattern: '^(\d{5}\.\d{6}\/\d{4}-\d{2}$|^\d{2}\.\d{6}\/\d{2}-\d{2}$|^\d{3}-\d{5}\/\d{2}$|^\d{5}\.\d{6}\/\d{2}-\d{2})$'
          example: 15414.622222/2222-22
        contractTermsConditions:
          type: string
          description: 'Representam as Condições Gerais, Condições Especiais e Condições ou Cláusulas Particulares de um mesmo produto. (Circular SUSEP 321/06). Campo aberto (possibilidade de incluir URL)'
          minLength: 1
          maxLength: 1024
          example: 'https://openinsurance.com.br/aaa'
      additionalProperties: false
    UpdateIndex:
      type: string
      minLength: 1
      maxLength: 20
      description: |
        Índice utilizado na atualização do prêmio e do capital segurado, caso critério de atualização por meio de índice:
        1. IPCA (IBGE);
        2. IGP-M (FGV);
        3. INPC (IBGE).
      enum:
        - IPCA
        - IGP_M
        - INPC
      example: IPCA
    RiskPensionReclaim:
      type: object
      description: Resgate
      required:
        - gracePeriod
      x-regulatory-required:
        - gracePeriod
      properties:
        table:
          type: array
          description: Percentual de resgate para PMBaC para cada conjunto aplicável
          items:
            $ref: '#/components/schemas/RiskPensionReclaimTableItem'
          minItems: 1
          maxItems: 2147483647
        gracePeriod:
          $ref: '#/components/schemas/RiskPensionGracePeriod'
        differenciatedPercentage:
          description: Campo aberto (possibilidade de incluir URL)
          example: |
            https://openinsurance.com.br/aaa’
            Obs.: Exceção de cobertura ou critério definido acima será descrito aqui na URL
            Exemplo: Cobertura X: a partir de 25 meses = 100%
          maxLength: 1024
      additionalProperties: false
    InsurancePensionMinValue:
      type: object
      required:
        - amount
        - currency
      x-regulatory-required:
        - amount
        - currency
      description: 'Listagem do valor mínimo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.<br>Conforme moeda.'
      properties:
        amount:
          type: string
          description: Valor mínimo/máximo de cobertura diária ou parcelada
          maxLength: 21
          pattern: '^(\d{1,16}\.\d{2,4})$'
          example: '0.01'
        currency:
          $ref: '#/components/schemas/CurrencyCode'
      additionalProperties: false
    InsurancePensionMaxValue:
      type: object
      required:
        - amount
        - currency
      x-regulatory-required:
        - amount
        - currency
      description: 'Listagem do valor máximo de cobertura (Capital Segurado), diária ou parcela aceito pela sociedade para cada combinação de modalidade/cobertura do produto.<br>Conforme moeda.'
      properties:
        amount:
          type: string
          description: Valor mínimo/máximo de cobertura diária ou parcelada
          maxLength: 21
          pattern: '^(\d{1,16}\.\d{2,4})$'
          example: '0.01'
        currency:
          $ref: '#/components/schemas/CurrencyCode'
      additionalProperties: false
    RiskPensionMinimumRequirement:
      type: object
      description: Requisitos mínimos
      required:
        - contractingMinRequirement
      x-regulatory-required:
        - contractType
        - contractingMinRequirement
      properties:
        contractType:
          type: string
          minLength: 1
          maxLength: 20
          description: |
            O tipo de serviço contratado. A considerar os domínios abaixo:
            1. Coletivo;
            2. Individual.
          enum:
            - COLETIVO
            - INDIVIDUAL
          example: COLETIVO
        contractingMinRequirement:
          type: string
          description: Campo aberto contendo todos os requisitos mínimos para contratação (possibilidade de incluir URL).
          minLength: 1
          maxLength: 1024
          example: 'https://openinsurance.com.br/aaa'
      additionalProperties: false
    RiskPensionReclaimTableItem:
      type: object
      required:
        - initialMonthRange
        - finalMonthRange
        - percentage
      x-regulatory-required:
        - initialMonthRange
        - finalMonthRange
        - percentage
      properties:
        initialMonthRange:
          type: integer
          description: Mês inicial do range
          minimum: 1
          maximum: 12
          example: 1
        finalMonthRange:
          type: integer
          description: Mês final do range
          minimum: 1
          maximum: 12
          example: 12
        percentage:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          maxLength: 9
          minLength: 8
          description: Percentual de faixa de resgate.
          example: '0.019800'
      additionalProperties: false
    RiskPensionEnumPmbacRemuneration:
      type: object
      description: Atualização/ Remuneração da PMBaC
      required:
        - interestRate
      x-regulatory-required:
        - interestRate
        - updateIndexes
      properties:
        interestRate:
          type: string
          pattern: '^(\d{1}\.\d{6})$|^(-1.000000)$'
          description: Taxa de juros para capitalização da PMBaC
          maxLength: 9
          minLength: 8
          example: '0.019800'
        updateIndexes:
          type: array
          description: Índice utilizado na atualização da PMBaC
          minItems: 0
          maxItems: 2147483647
          items:
            type: string
            description: |
              Índice utilizado na atualização da PMBaC:
                1. IPCA (IBGE)
                2. IGP-M (FGV)
                3. INPC (IBGE)
                4. NA
            enum:
              - IPCA
              - IGP_M
              - INPC
              - NA
            example: IPCA
      additionalProperties: false
    AgeAdjustment:
      type: object
      description: Reenquadramento etário
      required:
        - criterias
        - frequency
      x-regulatory-required:
        - criterias
        - frequency
      properties:
        criterias:
          type: array
          description: Critério para reenquadramento etário
          minItems: 1
          maxItems: 2147483647
          items:
            type: string
            description: |
              Critério escolhido para reenquadramento etário
                1. Após período em anos
                2. A cada período em anos
                3. Por mudança de faixa etária
                4. Não aplicável
                5. NA
            example: APOS_PERIODO_ANOS
            enum:
              - APOS_PERIODO_ANOS
              - CADA_PERIODO_ANOS
              - MUDANCA_FAIXA_ETARIA
              - NAO_APLICAVEL
              - NA
        frequency:
          type: integer
          description: 'Período em anos, caso critério de reenquadramento após ou a cada período em anos.'
          example: 10
      additionalProperties: false
    CurrencyCode:
      type: string
      pattern: '^([A-Z]{3})$'
      minLength: 3
      maxLength: 3
      description: 'Moeda referente ao valor monetário, seguindo o modelo ISO-4217.'
      example: BRL
    EnumExcludedRisks:
      type: string
      minLength: 1
      maxLength: 50
      description: Listagem para indicar quais serão o(s) risco(s) excluído(s) aplicável(is) à(s) cobertura(s).
      enum:
        - ATO_RECONHECIMENTO_PERIGOSO
        - ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO
        - OPERACOES_GUERRA
        - FURACOES_CICLONES_TERREMOTOS
        - MATERIAL_NUCLEAR
        - DOENCAS_LESOES_PREEXISTENTES
        - EPIDEMIAS_PANDEMIAS
        - SUICIDIO
        - ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR
        - OUTROS
      example: ATO_RECONHECIMENTO_PERIGOSO
    EnumAssistanceType:
      type: string
      minLength: 1
      maxLength: 80
      description: 'Lista padronizada de tipo de assistências ofertadas vinculadas ao produto. Por exemplo, Funeral, Bicicleta, Assistência PET – Tabela padrão a ser consolidada com retorno das empresas com a relação de assistências, permitindo um campo ‘Outros’ para assistências não contempladas na tabela padronizada.'
      enum:
        - ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA
        - ARQUITETO_VIRTUAL
        - ASSESSORIA_FINANCEIRA
        - AUTOMOVEL
        - AUXILIO_NATALIDADE
        - AVALIACAO_CLINICA_PREVENTIVA
        - BOLSA_PROTEGIDA
        - CESTA_BASICA
        - CHECKUP_ODONTOLOGICO
        - CLUBE_VANTAGENS_BENEFICIOS
        - CONVALESCENCIA
        - DECESSO
        - DESCONTO_FARMACIAS_MEDICAMENTOS
        - DESPESAS_FARMACEUTICAS_VIAGEM
        - DIGITAL
        - EDUCACIONAL
        - EMPRESARIAL
        - ENCANADOR
        - ENTRETENIMENTO
        - EQUIPAMENTOS_MEDICOS
        - FIANCAS_DESPESAS_LEGAIS
        - FISIOTERAPIA
        - FUNERAL
        - HELP_LINE
        - HOSPEDAGEM_ACOMPANHANTE
        - INTERRUPCAO_VIAGEM
        - INVENTARIO
        - MAIS_VIDA
        - MAMAE_BEBE
        - MEDICA_ACIDENTE_DOENCA
        - MOTOCICLETA
        - MULHER
        - NUTRICIONISTA
        - ODONTOLOGICA
        - ORIENTACAO_FITNESS
        - ORIENTACAO_JURIDICA
        - ORIENTACAO_NUTRICIONAL
        - PERSONAL_FITNESS
        - ORIENTACAO_PSICOSSOCIAL_FAMILIAR
        - PERDA_ROUBO_CARTAO
        - PET
        - PRORROGACAO_ESTADIA
        - PROTECAO_DADOS
        - RECOLOCACAO_PROFISSIONAL
        - REDE_DESCONTO_NUTRICIONAL
        - RESIDENCIAL
        - RETORNO_MENORES_SEGURADO
        - SAQUE_COACAO
        - SAUDE_BEM_ESTAR
        - SEGUNDA_OPINIAO_MEDICA
        - SENIOR
        - SUSTENTAVEL_DESCARTE_ECOLOGICO
        - TELEMEDICINA
        - VIAGEM
        - VITIMA
        - OUTROS
      example: ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA
    EnumPlanAdditional:
      type: string
      description: Adicional do plano
      minLength: 1
      maxLength: 80
      enum:
        - SORTEIO
        - SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO
        - SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO
        - OUTROS
      example: SORTEIO
    EnumGracePeriodUnit:
      type: string
      description: |
        Informar o critério de carência para a cobertura:
          1. Dias
          2. Meses
      enum:
        - DIAS
        - MESES
      example: MESES
    RiskPensionEnumGracePeriodUnit:
      type: string
      minLength: 1
      maxLength: 20
      description: |
        Informar o critério de carência para resgate:
        1. Dias;
        2. Meses;
      enum:
        - DIAS
        - MESES
      example: MESES
    RiskPensionEnumFinancialRegime:
      type: string
      minLength: 1
      maxLength: 20
      description: |
        Listagem de regime financeiro para cada combinação de modalidade/cobertura do produto indicando:
          1. Repartição simples
          2. Repartição Capitais Cobertura
          3. Capitalização
      example: REPARTICAO_SIMPLES
      enum:
        - REPARTICAO_SIMPLES
        - REPARTICAO_CAPITAIS
        - CAPITALIZACAO
    RiskPensionEnumPremiumUpdateIndex:
      type: string
      minLength: 1
      maxLength: 20
      description: Índice utilizado na atualização do prêmio/contribuição e do capital segurado/benefício
      enum:
        - IPCA
        - IGPM
        - INPC
      example: IPCA
    RiskPensionEnumContributionPayment:
      type: object
      x-regulatory-required:
        - contributionPaymentMethod
        - contributionPaymentMethodAdditionalInfo
        - contributionPeriodicity
        - contributionPeriodicityAdditionalInfo
      description: Pagamento da contribuição.
      properties:
        contributionPaymentMethod:
          type: string
          minLength: 1
          maxLength: 80
          example: CARTAO_CREDITO
          description: |
            Forma de pagamento da contribuição.
             - CARTAO_CREDITO
             - CARTAO_DEBITO
             - DEBITO_CONTA
             - DEBITO_CONTA_POUPANCA
             - BOLETO_BANCARIO
             - PIX
             - TED_DOC
             - CONSIGNACAO_FOLHA_PAGAMENTO
             - PONTOS_PROGRAMA_BENEFICIO
             - OUTROS
          enum:
            - CARTAO_CREDITO
            - CARTAO_DEBITO
            - DEBITO_CONTA
            - DEBITO_CONTA_POUPANCA
            - BOLETO_BANCARIO
            - PIX
            - TED_DOC
            - CONSIGNACAO_FOLHA_PAGAMENTO
            - PONTOS_PROGRAMA_BENEFICIO
            - OUTROS
        contributionPaymentMethodAdditionalInfo:
          type: string
          pattern: '[\w\W\s]*'
          example: Informações adicionais
          minLength: 1
          maxLength: 140
          description: |
            Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod.

            [Restrição] Obrigatório quando 'contributionPaymentMethod' for igual 'OUTROS'. 
        contributionPeriodicity:
          type: string
          minLength: 1
          maxLength: 20
          example: MENSAL
          description: |
            Periodicidade de pagamento da contribuição.
            - MENSAL
            - UNICA
            - ANUAL
            - TRIMESTRAL
            - SEMESTRAL
            - BIMESTRAL
            - OUTROS
          enum:
            - MENSAL
            - UNICA
            - ANUAL
            - TRIMESTRAL
            - SEMESTRAL
            - BIMESTRAL
            - OUTROS
        contributionPeriodicityAdditionalInfo:
          type: string
          pattern: '[\w\W\s]*'
          example: Informações adicionais
          minLength: 1
          maxLength: 140
          description: |
            Campo livre para preenchimento das informações adicionais referente ao contributionPaymentMethod.

            [Restrição] Obrigatório quando 'contributionPeriodicity' for igual 'OUTROS'.
      additionalProperties: false
    RiskPensionEnumIndemnityPaymentMethod:
      type: string
      minLength: 1
      maxLength: 20
      description: |
        Modalidade de pagamento da indenização, a considerar os domínios abaixo:
          1. Único
          2. Sob a forma de renda
      enum:
        - UNICO
        - SOB_FORMA_RENDA
      example: UNICO
    RiskPensionEnumOtherGuaranteedValues:
      type: string
      minLength: 1
      maxLength: 20
      description: |
        1. Saldamento
        2. Benefício Prolongado
      enum:
        - SALDAMENTO
        - BENEFICIO_PROLONGADO
      example: SALDAMENTO
    RiskPensionEnumProfitModality:
      type: string
      minLength: 1
      maxLength: 20
      description: |
        Modalidade de pagamento da indenização.
      enum:
        - PAGAMENTO_UNICO
        - FORMA_RENDA
      example: PAGAMENTO_UNICO
    ResponseErrorMetaSingle:
      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
        meta:
          $ref: '#/components/schemas/MetaOnlyRequestDateTime'
    MetaOnlyRequestDateTime:
      type: object
      description: Meta informações referente à API requisitada.
      required:
        - requestDateTime
      properties:
        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"
    OpenDataResponseError:
      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/OpenDataMeta'
      additionalProperties: false
    OpenDataMeta:
      type: object
      description: Meta informações referente à API requisitada.
      required:
        - totalRecords
        - totalPages
      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
      additionalProperties: false
  parameters:
    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
        maximum: 2147483647
        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
  responses:
    OKResponseRiskCoveragePension:
      description: Dados de previdência de risco obtidos com sucesso da instituição.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OKResponseRiskCoveragePension'
    OKResponseSurvivorCoveragePension:
      description: Dados de previdência de sobrevivência obtidos com sucesso da instituição.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OKResponseSurvivalCoveragePension'
    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/OpenDataResponseError'
    NotFound:
      description: O recurso solicitado não existe ou não foi implementado
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OpenDataResponseError'
    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/OpenDataResponseError'
    TooManyRequests:
      description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite de requisições concorrentes foi atingido.'
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OpenDataResponseError'
    InternalServerError:
      description: Ocorreu um erro no gateway da API ou no microsserviço
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OpenDataResponseError'
    SiteIsOverloaded:
      description: 'O site está sobrecarregado e a operação foi recusada, pois foi atingido o limite máximo de TPS global, neste momento.'
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseErrorMetaSingle'
