openapi: 3.0.0
info:
title: API Seguros - Open Finance Brasil
description: |
As APIs descritas neste documento são referentes a API de Seguros da fase OpenInsurance do Open Finance Brasil.
version: 2.1.0
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-insurance/v2'
description: Servidor de Produção
- url: 'https://apih.banco.com.br/open-banking/opendata-insurance/v2'
description: Servidor de Homologação
tags:
- name: Seguros
description: 'Operações para consulta de informações de seguros automotivos, residenciais e pessoais'
paths:
/personals:
get:
tags:
- Seguros
summary: Conjunto de informações referentes a seguros pessoais de uma instituição
operationId: getPersonalInsurance
description: Método para obter a lista de todos os seguros pessoais de uma instituição
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/pageSize'
responses:
'200':
$ref: '#/components/responses/OKResponsePersonalInsuranceList'
'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:
Participant:
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
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Organização
name:
type: string
description: Nome do participante do Open Finance.
minLength: 1
maxLength: 80
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Organização A1
cnpjNumber:
$ref: '#/components/schemas/CnpjNumber'
urlComplementaryList:
type: string
format: url
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.
minLength: 0
maxLength: 1024
example: 'https://empresaa1.com/companies'
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: '^[0-9A-Z]{12}[0-9]{2}$'
example: '13456789000112'
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
InsurancePensionMinValue:
type: object
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.
Conforme moeda.'
properties:
amount:
description: Campo sem descrição na API em OPIN.
type: string
minLength: 1
maxLength: 21
pattern: '^(\d{1,16}\.\d{2,4})$'
example: '0.01'
currency:
$ref: '#/components/schemas/CurrencyCode'
additionalProperties: false
InsurancePensionMaxValue:
type: object
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.
Conforme moeda.'
properties:
amount:
description: Campo sem descrição na API em OPIN.
type: string
minLength: 1
maxLength: 21
pattern: '^(\d{1,16}\.\d{2,4})$'
example: '0.01'
currency:
$ref: '#/components/schemas/CurrencyCode'
additionalProperties: false
TermsAndConditionsItem:
type: object
required:
- susepProcessNumber
- detail
x-regulatory-required:
- susepProcessNumber
- detail
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)
Observação: Mascaras da SUSEP – Serão permitidos todas as máscaras de Produtos. Limitar pelos códigos das Máscaras.'
minLength: 2
maxLength: 20
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
detail:
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
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: 'https://openinsurance.com.br/aaa'
additionalProperties: false
EnumProductModality:
type: string
description: |
- Funeral
- Prestamista (exceto Habitacional e Rural)
- Viagem
- Educacional
- Dotal (Misto e Puro)
- Acidentes Pessoais
- Vida
- Perda do Certificado de Habilitação de Voo – PCHV
- Doenças Graves ou Doença Terminal
- Desemprego/ Perda de Renda
- Eventos Aleatórios
- Pecúlio
- Pensão prazo certo
- Pensão menores 21 anos
- Pensão menores 24 anos
- Pensão cônjuge vitalícia
- Pensão cônjuge temporária
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
EnumGracePeriodUnit:
type: string
description: |
Informar o critério de carência para a cobertura
- Dias
- Meses
enum:
- DIAS
- MESES
example: MESES
InsurancePensionEnumPmbacRemuneration:
type: object
description: Somente informado se Regime Financeiro for igual a Capitalização.
x-regulatory-required:
- interestRate
- updateIndexes
properties:
interestRate:
type: string
pattern: '^(\d{1}\.\d{6})$'
description: Taxa de juros para capitalização da PMBaC
minLength: 8
maxLength: 9
example: '0.019800'
updateIndexes:
type: array
items:
$ref: '#/components/schemas/EnumPersonalUpdateIndex'
additionalProperties: false
AgeAdjustment:
description: Campo sem descrição na API em OPIN.
type: object
required:
- frequency
x-regulatory-required:
- criterias
- frequency
properties:
criterias:
type: array
minItems: 0
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
example: APOS_PERIODO_ANOS
enum:
- APOS_PERIODO_ANOS
- CADA_PERIODO_ANOS
- MUDANCA_FAIXA_ETARIA
frequency:
type: integer
description: 'Período em anos, caso critério de reenquadramento após ou a cada período em anos.'
minimum: 0
maximum: 2147483647
example: 10
additionalProperties: false
InsurancePensionEnumFinancialRegime:
type: string
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
EnumInsurancePersonalBenefitRecalculationUpdateIndex:
type: string
description: |
Índice utilizado na atualização do prêmio/contribuição e do capital segurado/ benefício, caso critério de atualização por meio de índice
enum:
- IPCA
- IGP_M
- INPC
example: IPCA
EnumPersonalUpdateIndex:
type: string
description: |
Índice utilizado na atualização da PMBaC:
1. IPC-FGV
2. IGP-DI-FGV
3. IPCA-IBGE
4. IGPM-FGV
5. INPC-IBGE
6. TR
7. OUTROS
enum:
- IPC-FGV
- IGP-DI-FGV
- IPCA-IBGE
- IGPM-FGV
- INPC-IBGE
- TR
- OUTROS
example: IPC-FGV
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
OKResponsePersonalInsuranceList:
type: object
required:
- data
- links
- meta
properties:
data:
description: Conjunto de informações referente ao produto Seguros Pessoais.
type: array
minItems: 1
maxItems: 2147483647
items:
$ref: '#/components/schemas/PersonalInsuranceData'
links:
$ref: '#/components/schemas/Links'
meta:
$ref: '#/components/schemas/OpenDataMeta'
additionalProperties: false
PersonalInsuranceData:
type: object
required:
- participant
- society
properties:
participant:
$ref: '#/components/schemas/Participant'
society:
$ref: '#/components/schemas/PersonalInsuranceSociety'
additionalProperties: false
PersonalCoverageItem:
type: object
x-regulatory-required:
- type
- typeAdditionalInfos
properties:
type:
$ref: '#/components/schemas/EnumInsurancePersonalCoverageTypePersonal'
typeAdditionalInfos:
type: array
minItems: 0
maxItems: 2147483647
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'
items:
type: string
maxLength: 100
example: [Informações Adicionais]
attributes:
$ref: '#/components/schemas/PersonalCoverageItemAttributes'
additionalProperties: false
PersonalCoverageItemAttributes:
description: Informações referente as características da cobertura do seguro.
type: object
required:
- minValue
- maxValue
- indemnifiablePeriods
- maximumQtyIndemnifiableInstallments
- gracePeriod
- deductibleDays
- deductible
x-regulatory-required:
- indemnityPaymentMethods
- indemnityPaymentFrequencies
- indemnifiablePeriods
- maximumQtyIndemnifiableInstallments
- differentiatedGracePeriod
- deductibleDays
- differentiatedDeductibleDays
- deductible
- differentiatedDeductible
- excludedRisks
- excludedRisksURL
- allowApartPurchase
properties:
indemnityPaymentMethods:
description: Listagem da forma de pagamento da indenização para cada combinação de modalidade/cobertura do produto.
type: array
minItems: 0
maxItems: 2147483647
items:
type: string
enum:
- PAGAMENTO_CAPITAL_SEGURADO_VALOR_MONETARIO
- REEMBOLSO_DESPESAS
- PRESTACAO_SERVICOS
example: PAGAMENTO_CAPITAL_SEGURADO_VALOR_MONETARIO
indemnityPaymentFrequencies:
description: Listagem de tipos de frequência de pagamento de indenização para cada combinação de modalidade/cobertura do produto.
type: array
items:
$ref: '#/components/schemas/EnumPersonalIndemnityPaymentFrequencyType'
minValue:
$ref: '#/components/schemas/InsurancePensionMinValue'
maxValue:
$ref: '#/components/schemas/InsurancePensionMaxValue'
indemnifiablePeriods:
description: Listagem de período indenizável para cada combinação de modalidade/cobertura do produto.
type: array
minItems: 0
maxItems: 2147483647
items:
type: string
enum:
- QUANTIDADE_DETERMINADA_DE_PARCELAS
- ATE_FIM_CICLO_DETERMINADO
example: ATE_FIM_CICLO_DETERMINADO
maximumQtyIndemnifiableInstallments:
type: integer
description: 'Caso o período indenizável seja relacionado a parcelas, listagem de número máximo de parcelas indenizáveis para cada combinação de modalidade/ cobertura do produto.'
minimum: 0
maximum: 2147483647
example: 10
gracePeriod:
$ref: '#/components/schemas/PersonalInsuranceGracePeriod'
differentiatedGracePeriod:
type: string
description: Campo aberto para detalhamento de período de carência diferenciado, se houver.
minLength: 1
maxLength: 500
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: 90 DIAS
deductibleDays:
type: integer
description: Listagem de franquia em dias para cada combinação de modalidade/cobertura do produto.
minimum: 0
maximum: 2147483647
example: 10
differentiatedDeductibleDays:
type: integer
description: 'Detalhamento da franquia em dias diferentes para cada cobertura que exista alguma especificidade. Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.'
minimum: 0
maximum: 2147483647
example: 15
deductible:
type: object
x-regulatory-required:
- amount
- currency
description: Listagem de franquia em reais para cada combinação de modalidade/cobertura do produto.
properties:
amount:
description: Valor de dedução.
type: string
minLength: 1
maxLength: 21
pattern: '^(\d{1,16}\.\d{2,4})$'
example: '0.01'
currency:
$ref: '#/components/schemas/CurrencyCode'
additionalProperties: false
differentiatedDeductible:
type: object
x-regulatory-required:
- amount
- currency
description: 'Detalhamento da franquia em reais diferentes para cada cobertura que exista alguma especificidade.
Caso a seguradora não tenha essa diferenciação, não retornará nada no campo.'
properties:
amount:
description: Campo sem descrição na API em OPIN.
type: string
minLength: 1
maxLength: 21
pattern: '^(\d{1,16}\.\d{2,4})$'
example: '0.01'
currency:
$ref: '#/components/schemas/CurrencyCode'
additionalProperties: false
excludedRisks:
type: array
items:
$ref: '#/components/schemas/EnumExcludedRisks'
excludedRisksURL:
type: string
description: Campo aberto (possibilidade de incluir URL)
minLength: 1
maxLength: 1024
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: 'https://openinsurance.com.br/aaa'
allowApartPurchase:
type: boolean
description: |
Indicar se a cobertura pode ser contratada isoladamente ou não:
1. true
2. false
example: true
additionalProperties: false
EnumPersonalIndemnityPaymentFrequencyType:
type: string
description: ''
enum:
- INDENIZACAO_UNICA
- DIARIA_OU_PARCELA
example: INDENIZACAO_UNICA
EnumExcludedRisks:
type: string
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
EnumPersonalInsuranceOtherGuaranteedValues:
type: string
description: |
1. Saldamento
2. Benefício Prolongado
enum:
- SALDAMENTO
- BENEFICIO_PROLONGADO
example: SALDAMENTO
EnumPersonalInsuranceIndemnityPaymentMethod:
type: string
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
EnumPersonalInsuranceIndemnityPaymentIncome:
type: string
description: |
Tipo de renda ou pensão, caso modalidade de pagamento de indenização seja sob a forma de renda:
1. Certa
2. Temporária
3. Temporária reversível
4. Temporário com mínimo garantido
5. Temporária reversível com mínimo garantido
6. Vitalícia
7. Vitalícia reversível
8. Vitalícia com o mínimo garantido
9. Vitalícia reversível como mínimo garantido
enum:
- CERTA
- TEMPORARIA
- TEMPORARIA_REVERSIVEL
- TEMPORARIO_MINIMO_GARANTIDO
- TEMPORARIA_REVERSIVEL_MINIMO_GARANTIDO
- VITALICIA
- VITALICIA_REVERSIVEL
- VITALICIA_MINIMO_GARANTIDO
- VITALICIA_REVERSIVEL_MINIMO_GARANTIDO
example: CERTA
PersonalInsurancePremiumPayment:
description: Campo sem descrição na API em OPIN.
type: object
x-regulatory-required:
- paymentMethods
- frequencies
- contributionTax
properties:
paymentMethods:
type: array
minItems: 1
items:
$ref: '#/components/schemas/EnumPremiumPaymentMethodTypePersonal'
paymentMethodAdittionalInfo:
type: string
description: |
Campo livre para preenchimento das informações adicionais referente ao "paymentMethod".
[Restrição] Obrigatório quando "paymentMethod" for igual 'OUTROS'.
maxLength: 144
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Informações Adicionais.
frequencies:
type: array
minItems: 1
items:
$ref: '#/components/schemas/EnumPersonalInsurancePremiumPaymentFrequency'
contributionTax:
type: string
description: 'Distribuição de frequência relativa aos valores referentes às taxas cobradas, nos termos do Anexo III.'
minLength: 1
maxLength: 500
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
additionalProperties: false
EnumPersonalInsurancePremiumPaymentFrequency:
type: string
description: |
Periodicidade de pagamento do prêmio:
1. Diária
2. Mensal
3. Única
4. Anual
5. Trimestral
6. Semestral
7. Fracionado
8. Outra
enum:
- DIARIA
- MENSAL
- UNICA
- ANUAL
- TRIMESTRAL
- SEMESTRAL
- FRACIONADO
- OUTRA
example: DIARIA
PersonalInsuranceMinimumRequirement:
description: Campo sem descrição na API em OPIN.
type: object
required:
- contractingMinRequirement
x-regulatory-required:
- contractType
- contractingMinRequirement
properties:
contractType:
$ref: '#/components/schemas/EnumContractTypePersonal'
contractingMinRequirement:
type: string
description: Campo aberto (possibilidade de incluir URL)
minLength: 1
maxLength: 1024
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: 'https://openinsurance.com.br/aaa'
additionalProperties: false
PersonalInsuranceGracePeriod:
description: Período de Carência.
type: object
x-regulatory-required:
- amount
- unit
- details
properties:
amount:
type: integer
format: int64
description: Informar o prazo de carência
example: 90
minimum: 0
maximum: 2147483647
unit:
$ref: '#/components/schemas/EnumGracePeriodUnit'
details:
description: Descrições adicionais do período de carência.
type: string
minLength: 1
maxLength: 500
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Descrições adicionais do período de carência
additionalProperties: false
PersonalInsuranceReclaim:
description: Somente informado se Regime Financeiro for igual a Capitalização.
type: object
required:
- gracePeriod
x-regulatory-required:
- differenciatedPercentage
properties:
table:
description: Listagem de percentuais de resgate da PMBaC para cada conjunto de prazo aplicável e para cada combinação de modalidade/cobertura estruturados em regime de capitalização.
type: array
minItems: 1
maxItems: 2147483647
items:
$ref: '#/components/schemas/PersonalInsuranceReclaimTableItem'
gracePeriod:
description: Período de carência.
type: object
x-regulatory-required:
- amount
- unit
- details
properties:
amount:
type: integer
format: int64
description: Informar o prazo de carência
example: 90
minimum: 0
maximum: 2147483647
unit:
type: string
description: |
Informar o critério de carência para a cobertura
- Dias
- Meses
enum:
- DIAS
- MESES
details:
description: Descrições adicionais do período de carência.
type: string
minLength: 1
maxLength: 500
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Descrições adicionais do período de carência
differenciatedPercentage:
description: Campo aberto (possibilidade de incluir URL)
type: string
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
minLength: 1
maxLength: 1024
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%'
additionalProperties: false
PersonalInsuranceReclaimTableItem:
type: object
required:
- initialMonthRange
- finalMonthRange
- percentage
x-regulatory-required:
- initialMonthRange
- finalMonthRange
- percentage
properties:
initialMonthRange:
description: Mês inicial do range.
type: integer
minimum: 0
maximum: 12
example: 1
finalMonthRange:
description: Mês final do range.
type: integer
minimum: 0
maximum: 12
example: 12
percentage:
type: string
pattern: '^(\d{1}\.\d{6})$'
minLength: 8
maxLength: 9
description: Percentual de faixa de resgate.
example: '0.019800'
additionalProperties: false
EnumInsurancePersonalCoverageTypePersonal:
type: string
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:
- ADIANTAMENTO_DOENCA_ESTAGIO_TERMINAL
- AUXILIO_CESTA_BASICA
- AUXILIO_FINANCEIRO_IMEDIATO
- CANCELAMENTO_VIAGEM
- CIRURGIA
- COBERTURA_HERNIA
- COBERTURA_LER_DORT
- CUIDADOS_PROLONGADOS_ACIDENTE
- DESEMPREGO_PERDA_RENDA
- DESPESAS_EXTRA_INVALIDEZ_PERMANENTE_TOTAL_PARCIAL_ACIDENTE_DEI
- DESPESAS_EXTRA_MORTE_DEM
- DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS
- DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS_BRASIL
- DESPESAS_MEDICAS_HOSPITALARES_ODONTOLOGICAS_EXTERIOR
- DIARIA_INCAPACIDADE_TOTAL_TEMPORARIA
- DIARIA_INTERNACAO_HOSPITALAR
- INTERNACAO_HOSPITALAR
- DIARIAS_INCAPACIDADE_PECUNIARIA_DIP
- DOENCA_CONGENITA_FILHOS_DCF
- FRATURA_OSSEA
- DOENCAS_TROPICAIS
- INCAPACIDADE_TOTAL_OU_TEMPORARIA
- INVALIDEZ_PERMANENTE_TOTAL_PARCIAL
- INVALIDEZ_TOTAL_ACIDENTE
- INVALIDEZ_PARCIAL_ACIDENTE
- INVALIDEZ_FUNCIONAL_PERMANENTE_DOENCA
- INVALIDEZ_LABORATIVA_DOENCA
- MORTE
- MORTE_ACIDENTAL
- MORTE_CONJUGE
- MORTE_FILHOS
- MORTE_ADIATAMENTO_DOENCA_ESTAGIO_TERMINAL
- PAGAMENTO_ANTECIPADO_ESPECIAL_DOENCA_PROFISSIONAL_PAED
- PERDA_AUTONOMIA_PESSOAL
- PERDA_INVOLUNTARIA_EMPREGO
- QUEIMADURA_GRAVE
- REGRESSO_ANTECIPADO_SANITARIO
- RENDA_INCAPACIDADE_TEMPORARIA
- RESCISAO_CONTRATUAL_CASO_MORTE_RCM
- RESCISAO_TRABALHISTA
- SERVICO_AUXILIO_FUNERAL
- SOBREVIVENCIA
- TRANSPLANTE_ORGAOS
- TRASLADO
- TRANSLADO_CORPO
- VERBA_RESCISORIA
- DOENCA_GRAVE
- TRANSLADO_MEDICO
- OUTROS
example: INVALIDEZ_PERMANENTE_TOTAL_PARCIAL
EnumPremiumPaymentMethodTypePersonal:
type: string
description: |
Meio de pagamento escolhido pelo segurado. A considerar os domínios abaixo:
1. Cartão de Crédito
2. Cartão de Débito
3. Débito em conta corrente
4. Débito em conta poupança
5. Boleto bancário
6. PIX
7. Consignação em Folha de Pagamento
8. Pontos de Programa de Benefício
9. Regra de Parceiro
10. TED e DOC
11. Outros
enum:
- CARTAO_CREDITO
- CARTAO_DEBITO
- DEBITO_CONTA_CORRENTE
- DEBITO_CONTA_POUPANCA
- BOLETO_BANCARIO
- PIX
- CONSIGNACAO_FOLHA_PAGAMENTO
- PONTOS_PROGRAMA_BENEFICIO
- REGRA_PARCEIRO
- TED_DOC
- OUTROS
example: CARTAO_CREDITO
EnumContractTypePersonal:
type: string
description: |
A considerar os domínios abaixo:
1. Coletivo;
2. Individual
enum:
- COLETIVO
- INDIVIDUAL
example: COLETIVO
PersonalInsuranceSociety:
type: object
description: Objeto que representa a empresa regulada pela SUSEP que oferta produtos definidos em OPIN.
required:
- name
- cnpjNumber
- brand
- products
x-regulatory-required:
- name
- cnpjNumber
- brand
properties:
name:
type: string
description: Nome da Sociedade Seguradora.
minLength: 1
maxLength: 80
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Society A1
cnpjNumber:
$ref: '#/components/schemas/CnpjNumber'
brand:
type: string
description: 'Nome da marca reportada pela sociedade seguradora participante do Open Finance. O conceito a que se refere a marca é em essência uma promessa das sociedades sob ela em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes.'
minLength: 1
maxLength: 80
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Marca
products:
type: array
description: Lista de produtos de uma empresa.
minItems: 1
items:
$ref: '#/components/schemas/Product'
additionalProperties: false
Product:
type: object
required:
- name
- code
- coverages
- termsAndConditions
x-regulatory-required:
- name
- code
- category
- modality
- assistanceTypes
- assistanceTypesAdditionalInfos
- additionalServices
- globalCapital
- terms
- financialRegimes
- otherGuaranteedValues
- allowPortability
- indemnityPaymentMethods
- indemnityPaymentIncomes
- targetAudience
properties:
name:
type: string
description: 'Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade.'
minLength: 1
maxLength: 80
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: Produto A
code:
type: string
description: Código único a ser definido pela sociedade.
minLength: 1
maxLength: 80
pattern: '^(?!\s)[\w\W\s]*[^\s]$'
example: '0001'
category:
type: string
description: |
Indicar a categoria do Produto
- Tradicional
- Microsseguro
enum:
- TRADICIONAL
- MICROSSEGURO
example: TRADICIONAL
modality:
$ref: '#/components/schemas/EnumProductModality'
coverages:
description: Informações referente a cobertura do seguro.
type: array
minItems: 1
maxItems: 2147483647
items:
$ref: '#/components/schemas/PersonalCoverageItem'
assistanceTypes:
type: array
minItems: 0
maxItems: 2147483647
items:
type: string
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
assistanceTypesAdditionalInfos:
description: Lista a ser preenchido pelas participantes quando houver 'Outros' no campo 'Tipo de Assistência'
type: array
minItems: 0
maxItems: 2147483647
items:
type: string
example: [Informações Adicionais]
additionalServices:
type: array
description: Lista dos serviços adicionais associado ao produto.
minItems: 0
maxItems: 2147483647
items:
type: string
enum:
- SORTEIO
- SERVICOS_ASSISTENCIAS_COMPLEMENTARES_PAGO
- SERVICOS_ASSISTENCIA_COMPLEMENTARES_GRATUITO
- OUTROS
example: SORTEIO
termsAndConditions:
type: array
description: Termos e condições do produto Seguros.
minItems: 1
maxItems: 2147483647
items:
$ref: '#/components/schemas/TermsAndConditionsItem'
globalCapital:
type: boolean
description: |
A considerar os seguintes domínios:
1. true
2. false
example: true
terms:
type: array
minItems: 0
maxItems: 2147483647
items:
type: string
description: |
Define o prazo do plano contratado
1. Vitalícia
2. Temporária - prazo fixo
3. Temporária – intermitente
enum:
- VITALICIA
- TEMPORARIA_PRAZO_FIXO
- TEMPORARIA_INTERMITENTE
example: VITALICIA
pmbacRemuneration:
$ref: '#/components/schemas/InsurancePensionEnumPmbacRemuneration'
benefitRecalculation:
$ref: '#/components/schemas/BenefitRecalculation'
ageAdjustment:
$ref: '#/components/schemas/AgeAdjustment'
financialRegimes:
type: array
items:
$ref: '#/components/schemas/InsurancePensionEnumFinancialRegime'
reclaim:
$ref: '#/components/schemas/PersonalInsuranceReclaim'
otherGuaranteedValues:
type: array
items:
$ref: '#/components/schemas/EnumPersonalInsuranceOtherGuaranteedValues'
allowPortability:
type: boolean
description: |
1. true
2. false
example: true
portabilityGraceTime:
$ref: '#/components/schemas/PersonalInsurancePortabilityGraceTime'
indemnityPaymentMethods:
type: array
items:
$ref: '#/components/schemas/EnumPersonalInsuranceIndemnityPaymentMethod'
indemnityPaymentIncomes:
type: array
items:
$ref: '#/components/schemas/EnumPersonalInsuranceIndemnityPaymentIncome'
premiumPayment:
$ref: '#/components/schemas/PersonalInsurancePremiumPayment'
minimumRequirement:
$ref: '#/components/schemas/PersonalInsuranceMinimumRequirement'
targetAudience:
type: string
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
PersonalInsurancePortabilityGraceTime:
description: Período de carência (Somente informado se Regime Financeiro for igual a Capitalização).
type: object
x-regulatory-required:
- amount
- unit
properties:
amount:
type: integer
format: int64
description: Informar o prazo de carência
example: 90
minimum: 0
maximum: 2147483647
unit:
type: string
description: |
Informar o critério de carência para a cobertura
- Dias
- Meses
enum:
- DIAS
- MESES
additionalProperties: false
BenefitRecalculation:
type: object
description: Campo sem descrição na API em OPIN.
required:
- criterias
x-regulatory-required:
- criterias
- updateIndexes
properties:
criterias:
type: array
description: Campo sem descrição na API em OPIN.
minItems: 0
maxItems: 2147483647
items:
type: string
enum:
- INDICE
- VINCULADO_SALDO_DEVEDOR
- VARIAVEL_ACORDO_CRITERIO_ESPECIFICO
- NA
updateIndexes:
type: array
items:
$ref: '#/components/schemas/EnumInsurancePersonalBenefitRecalculationUpdateIndex'
additionalProperties: false
Links:
type: object
description: Referências para outros recusos da API requisitada.
required:
- self
properties:
self:
type: string
format: url
maxLength: 2000
description: URI completo que gerou a resposta atual.
example: 'https://api.banco.com.br/open-banking/api/v2/resource'
first:
type: string
format: url
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'
prev:
type: string
format: url
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'
next:
type: string
format: url
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'
last:
type: string
format: url
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'
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
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
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:
OKResponsePersonalInsuranceList:
description: Dados de seguro(s) pessoais obtidos com sucesso.
content:
application/json:
schema:
$ref: '#/components/schemas/OKResponsePersonalInsuranceList'
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'
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'
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 de requisições concorrentes foi atingido.'
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ResponseError'
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:
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:
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'