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'