openapi: 3.0.0 info: title: APIs Open Data do Open Insurance Brasil description: API de informações de Plano de Previdência com cobertura de risco. Os recursos que podem ser consumidos pelos participantes conforme a regra 3.1.2 do manual de escopo de dados. version: 1.3.0 contact: url: 'https://www.gov.br/susep/' servers: - url: 'https://api.organizacao.com.br/open-insurance/products-services/v1' description: Servidor de Produção - url: 'https://api.organizacao.com.br/open-insurance/products-services/v1' description: Servidor de Homologação tags: - name: "pension-plan" paths: /pension-plan: get: tags: - pension-plan summary: Obtém informações de plano de previdência com cobertura de risco description: "Obtém informações de plano de previdência com cobertura de risco" operationId: "getPensionPlan" parameters: - $ref: "#/components/parameters/cache-Control" - $ref: "#/components/parameters/content-Security-Policy" - $ref: "#/components/parameters/content-Type" - $ref: "#/components/parameters/strict-Transport-Security" - $ref: "#/components/parameters/x-Content-Type-Options" - $ref: "#/components/parameters/x-Frame-Options" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/pageSize" - $ref: "#/components/parameters/x-v" - $ref: "#/components/parameters/x-min-v" responses: '200': description: Dados dos Plano de Previdência com cobertura de risco content: application/json: schema: $ref: '#/components/schemas/ResponsePensionPlanList' headers: x-v: description: | Caso x-min-v e x-v tenham sido enviados, o titular dos dados deve responder com a versao mais alta suportada entre x-min-v e x-v. Caso x-min-v e x-v nao tenham sido enviados, o titular dos dados deve responder com a versao que esta sendo utilizada naquele momento. required: true schema: type: string '201': description: Criado - Dados dos Plano de Previdência com cobertura de risco content: application/json: schema: $ref: '#/components/schemas/ResponsePensionPlanList' '204': $ref: '#/components/responses/NoContent' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/MethodNotAllowed' '406': $ref: '#/components/responses/NotAcceptable' '422': $ref: '#/components/responses/UnprocessableEntity' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' default: description: Dados dos Plano de Previdência com cobertura de risco content: application/json: schema: $ref: '#/components/schemas/ResponsePensionPlanList' headers: x-v: description: | Caso x-min-v e x-v tenham sido enviados, o titular dos dados deve responder com a versao mais alta suportada entre x-min-v e x-v. Caso x-min-v e x-v nao tenham sido enviados, o titular dos dados deve responder com a versao que esta sendo utilizada naquele momento. required: true schema: type: string components: schemas: ResponsePensionPlanList: type: object required: - data - links - meta properties: requestTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' type: string pattern: '[\w\W\s]*' maxLength: 2048 format: date-time example: '2021-08-20T08:30:00Z' data: type: object required: - brand properties: brand: $ref: '#/components/schemas/PensionPlanBrand' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' PensionPlanBrand: type: object description: Organização controladora do grupo. required: - name - companies properties: name: 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 das sociedades sob ela em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes. example: EMPRESA companies: $ref: '#/components/schemas/PensionPlanCompany' PensionPlanCompany: type: array items: description: Informações referente a sociedade a qual a marca pertence. required: - name - cnpjNumber - products properties: name: type: string description: Nome da sociedade pertencente à marca. example: EMPRESA Seguros cnpjNumber: type: string description: CNPJ da sociedade pertencente à marca. pattern: ^\d{14}$ example: '12345678901234' products: $ref: '#/components/schemas/PensionPlanProduct' PensionPlanProduct: type: array description: Produtos de Seguro de Automóveis. items: type: object required: - name - code - coverages - termsAndConditions - premiumUpdateIndex - ageReframing - otherGuaranteedValues - contributionPayment - minimumRequirements - targetAudience properties: name: type: string description: Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade. example: Nome comercial do Produto code: type: string description: Código único a ser definido pela sociedade. example: 123456789_cap coverages: type: array items: type: object required: - coverage - coveragesAttributes - coveragePeriod - financialRegimeContractType properties: coverage: type: string description: Formas de coberturas. example: INVALIDEZ enum: [MORTE, INVALIDEZ] coveragesAttributes: $ref: '#/components/schemas/PensionPlanCoverageAttributes' coveragePeriod: type: array description: Formas de coberturas items: type: string example: VITALICIA enum: [VITALICIA, TEMPORARIA] financialRegimeContractType: type: string description: Listagem de regime financeiro para cada combinação de modalidade/cobertura do produto example: REPARTICAO_SIMPLES enum: [REPARTICAO_SIMPLES, REPARTICAO_CAPITAIS_COBERTURA, CAPITALIZACAO] additional: type: string description: Adicional ao plano. enum: [SORTEIO, OUTROS] additionalOthers: type: string description: Lista a ser preenchida pelas participantes quando houver ‘Outros’ no campo ‘additional’ assistanceType: type: array description: Tipos de assistências. items: type: string example: FUNERAL enum: [ACOMPANHANTE_CASO_HOSPITALIZACAO_PROLONGADA, ARQUITETO_VIRTUAL, ASSESSORIA_FINANCEIRA, AUTOMOVEL, AUXILIO_NATALIDADE, AVALIACAO_CLINICA_PREVENTIVA, BOLSA_PROTEGIDA, CESTA_BASICA, CHECKUP_ODONTOLOGICO, CLUBE_DE_VANTAGENS_BENEFICIOS, CONVALESCENCIA, DECESSO_FAMILIAR_E_OU_INDIVIDUAL, DESCONTO_FARMACIAS_MEDICAMENTOS, DESPESAS_FARMACEUTICAS_VIAGEM, DIGITAL, EDUCACIONAL, EMPRESARIAL, ENTRETENIMENTO, EQUIPAMENTOS_MEDICOS, FIANCAS_E_DESPESAS_LEGAIS, FISIOTERAPIA, FUNERAL, HELP_LINE, HOSPEDAGEM_DE_ACOMPANHANTE, INTERRUPCAO_DA_VIAGEM, INVENTARIO, MAIS_EM_VIDA, MAMAE_BEBE, MEDICA_POR_ACIDENTE_OU_DOENCA, MOTOCICLETA, MULHER, NUTRICIONISTA, ODONTOLOGICA, ORIENTACAO_FITNESS, ORIENTACAO_JURIDICA, ORIENTACAO_PSICOSSOCIAL_FAMILIAR, PERDA_ROUBO_CARTAO, PET, PRORROGACAO_DE_ESTADIA, PROTECAO_DE_DADOS, RECOLOCACAO_PROFISSIONAL, REDE_DESCONTO_NUTRICIONAL, RESIDENCIAL, RETORNO_MENORES_E_OU_SEGURADO, SAQUE_SOB_COACAO, SAUDE_BEMESTAR, SEGUNDA_OPINIAO_MEDICA, SENIOR, SUSTENTAVEL_(DESCARTE_ECOLOGICO), TELEMEDICINA, VIAGEM, VITIMAS] assistanceTypeOthers: type: array description: Outros tipos de assistências. items: type: string termsAndConditions: type: array items: $ref: '#/components/schemas/PensionPlanTerms' updatePMBaC: $ref: '#/components/schemas/PensionPlanUpdatePMBaC' premiumUpdateIndex: type: string description: Índice utilizado na atualização do prêmio/contribuição e do capital segurado/benefício enum: [IPCA, IGPM, INPC] ageReframing: $ref: '#/components/schemas/PensionPlanAgeReframing' reclaim: $ref: '#/components/schemas/PensionPlanReclaim' otherGuaranteedValues: type: string description: Outros valores garantidos. example: SALDAMENTO enum: [SALDAMENTO, BENEFICIO_PROLOGANDO, NAO_APLICA] contributionPayment: $ref: '#/components/schemas/PensionPlanContributionPayment' contributionTax: type: string description: Distribuição de frequência relativa aos valores referentes às taxas cobradas minimumRequirements: $ref: '#/components/schemas/PensionPlanMinimumRequirements' targetAudience: type: string example: PESSOA_NATURAL enum: [PESSOA_NATURAL, PESSOA_JURIDICA] PensionPlanTerms: type: object description: Informações dos termos e condições conforme número do processo SUSEP. required: - susepProcessNumber - definition properties: susepProcessNumber: type: string description: Número do processo SUSEP. example: 15414.622222/2222-22 definition: type: string description: Campo aberto (possibilidade de incluir uma url). example: https://www.seguradora.com.br/produto/tradicional/pdf/condicoes_gerais.pdf PensionPlanCoverageAttributesDetailsUnit: type: object required: - code - description properties: code: type: string description: Tipo unidade de medida description: type: string description: Descrição da unidade de medida PensionPlanCoverageAttributesDetails: type: object description: Valor mínimo/máximo de cobertura diária ou parcelada. Em reais. required: - amount - unit properties: amount: type: number example: 14 unit: $ref: '#/components/schemas/PensionPlanCoverageAttributesDetailsUnit' PensionPlanCoverageAttributes: type: object description: Atributos da cobertura. required: - modality - indenizationPaymentMethod - minValue - maxValue - currency - gracePeriod - excludedRisk properties: modality: type: string description: Modalidade da cobertura. example: RENDA enum: [PECULIO, RENDA, PENSAO_PRAZO_CERTO, PENSAO_MENORES_21, PENSAO_MENORES_24, PENSAO_CONJUGE_VITALICIA, PENSAO_CONJUGE_TEMPORARIA ] indenizationPaymentMethod: type: array description: Forma de pagamento da indenização. items: type: string example: PAGAMENTO_UNICO enum: [PAGAMENTO_UNICO, FORMA_RENDA] minValue: $ref: '#/components/schemas/PensionPlanCoverageAttributesDetails' maxValue: $ref: '#/components/schemas/PensionPlanCoverageAttributesDetails' indemnifiablePeriod: type: string description: Período indenizável. Se for indenização única, esse campo não se aplica. example: PRAZO enum: [PRAZO, ATE_FIM_CICLO_DETERMINADO] indemnifiableDeadline: type: integer description: Número máximo de parcelas indenizáveis. Caso seja relacionado a parcelas. example: 48 currency: type: string description: Moeda utilizada. example: BRL enum: [AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, XSU, XUA, YER, ZAR, ZMW, ZWL] gracePeriod: $ref: '#/components/schemas/PensionPlanGracePeriod' excludedRisk: type: array description: Riscos excluídos. items: type: string enum: [ATO_RECONHECIMENTO_PERIGOSO, ATO_ILICITO_DOLOSO_PRATICADO_SEGURADO, OPERACOES_DE_GUERRA, FURACOES_CICLONES_TERREMOTOS, MATERIAL_NUCLEAR, DOENCAS_LESOES_PREEXISTENTES, EPIDEMIAS_PANDEMIAS, SUICIDIO, ATO_ILICITO_DOLOSO_PRATICADO_CONTROLADOR, OUTROS, NAO_SE_APLICA] excludedRiskURL: type: string description: Campo aberto (possibilidade de incluir URL) PensionPlanUpdatePMBaC: type: object description: Atualização/ Remuneração da PMaC. required: - interestRate - updateIndex properties: interestRate: type: number description: Taxa de juros para capitalização da PMBaC. example: 14 updateIndex: type: string description: Índice utilizado na atualização da PMBaC. example: IPCA enum: [IPCA, IGPM, INPC] PensionPlanAgeReframing: type: object description: Reenquadramento etário. required: - reframingCriterion properties: reframingCriterion: type: string description: Critério para reenquadramento etário. example: APOS_PERIODO_ANOS enum: [APOS_PERIODO_ANOS, CADA_PERIODO_ANOS, MUDANCA_FAIXA_ETARIA, NAO_APLICAVEL] reframingPeriodicity: type: integer description: Período em anos para reenquadramento etário. example: 10 PensionPlanReclaim: type: object description: Resgate. required: - gracePeriod properties: reclaimTable: type: array description: Percentual de resgate para PMBaC para cada conjunto aplicável. items: $ref: '#/components/schemas/PensionPlanReclaimTable' gracePeriod: $ref: '#/components/schemas/PensionPlanGracePeriod' PensionPlanReclaimTable: type: object required: - initialMonthRange - finalMonthRange - percentage properties: initialMonthRange: type: number description: Mês inicial do range finalMonthRange: type: number description: Mês final do range percentage: type: string description: Percentual da faixa de resgate da PMBaC para cada conjunto de prazo aplicável. differentiatedPercentage: type: string description: Campo aberto (possibilidade de incluir URL), caso o percentual de resgate não siga o padrão apenas no que se refere ao critério temporal padronizado no campo “Resgate-Percentual” PensionPlanContributionPayment: type: object description: Pagamento da contribuição. required: - contributionPaymentMethod - contributionPeriodicity properties: contributionPaymentMethod: type: array description: Forma de pagamento da contribuição. items: type: string example: CARTAO_CREDITO enum: [CARTAO_CREDITO, DEBITO_CONTA, DEBITO_CONTA_POUPANCA, BOLETO_BANCARIO, PIX, CARTAO_DEBITO, TED_DOC, CONSIGNACAO_FOLHA_PAGAMENTO, PONTOS_PROGRAMA_BENEFICIO, OUTROS] contributionPaymentDetail: description: Descrição da Forma de pagamento da contribuição quando for informada a opção OUTROS. type: string maxLength: 100 example: OUTROS contributionPeriodicity: type: array description: Periodicidade de pagamento da contribuição. items: type: string example: MENSAL enum: [MENSAL, UNICA, ANUAL, TRIMESTRAL, SEMESTRAL, BIMESTRAL, OUTRAS] contributionDetail: description: Descrição da Periodicidade de pagamento da contribuição quando for informada a opção OUTRAS. type: string maxLength: 100 example: OUTRAS PensionPlanMinimumRequirements: type: object description: Requisitos mínimos. required: - contractMinRequirementsType - contractMinRequirements properties: contractMinRequirementsType: type: string description: Tipo de contratação. example: INDIVIDUAL enum: [COLETIVO, INDIVIDUAL] contractMinRequirements: type: string description: Campo aberto contendo todos os requisitos mínimos para contratação. example: wwww.seguradora.com.br/termos PensionPlanGracePeriod: type: object required: - amount - unit description: Período de carência. properties: amount: type: number description: Prazo de Carência unit: type: string description: Unidade do prazo (dias ou meses) enum: [DIAS, MESES, NAO_SE_APLICA] Links: type: object required: - self properties: self: type: string description: URI completo que gerou a resposta atual. pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/pension-plan.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/pension-plan' first: type: string 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 pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/pension-plan.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/pension-plan' prev: type: string description: URI da página anterior dessa lista de resultados. Restrição - Obrigatório quando não for a primeira página da resposta pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/pension-plan.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/pension-plan' next: type: string 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 pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/pension-plan.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/pension-plan' last: type: string description: URI da última página dessa lista de resultados. Restrição - Obrigatório quando não for a última página da resposta pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/pension-plan.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/pension-plan' Meta: type: object required: - totalRecords - totalPages properties: totalRecords: type: integer description: Total de registros encontrados example: 10 totalPages: type: integer description: Total de páginas para os registros encontrados example: 1 ResponseError: type: object required: - errors properties: errors: type: array minItems: 1 maxItems: 13 items: type: object required: - code - title - detail - requestDateTime 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 requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' type: string pattern: '[\w\W\s]*' maxLength: 2048 format: date-time example: '2021-08-20T08:30:00Z' 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 pageSize: name: page-size in: query description: Quantidade total de registros por páginas. schema: type: integer default: 10 minimum: 1 cnpjNumber: name: cnpjNumber in: path description: Número de CNPJ. required: true schema: type: string cache-Control: name: cache-control in: header description: Controle de cache para evitar que informações confidenciais sejam armazenadas em cache. required: true schema: type: string pattern: '[\w\W\s]*' content-Security-Policy: name: Content-Security-Policy in: header description: Campo para proteção contra ataques clickjack do estilo - drag and drop. schema: type: string pattern: '[\w\W\s]*' content-Type: name: content-Type in: header description: Especificar o tipo de conteúdo da resposta. schema: type: string pattern: '[\w\W\s]*' strict-Transport-Security: name: Strict-Transport-Security in: header description: Campo para exigir conexões por HTTPS e proteger contra certificados falsificados. schema: type: string pattern: '[\w\W\s]*' x-Content-Type-Options: name: X-Content-Type-Options in: header description: Campo para evitar que navegadores executem a detecção de MIME e interpretem respostas como HTML de forma inadequada. schema: type: string pattern: '[\w\W\s]*' x-Frame-Options: name: X-Frame-Options in: header description: Campo indica se o navegador deve ou não renderizar um frame. schema: type: string pattern: '[\w\W\s]*' x-v: name: x-v in: header description: | Versão do endpoint da API requisitado pelo cliente. O titular dos dados deve responder com a versão mais alta suportada entre x-min-v e x-v. Se o valor de x-min-v for igual ou maior que o valor de x-v, o cabeçalho x-min-v deve ser tratado como ausente. Se todas as versões solicitadas não forem suportadas, o titular dos dados deve responder com o código de status 406 Not Acceptable. required: false schema: type: string example: '2.1.3' x-min-v: name: x-min-v in: header description: | Versão mínima do endpoint da API requisitado pelo cliente. O detentor dos dados deve responder com a versão mais alta suportada entre x-min-v e x-v. Se todas as versões solicitadas não forem suportadas, o titular dos dados deve responder com um código de status 406 Not Acceptable. required: false schema: type: string example: '2.0.0' responses: UnprocessableEntity: description: 'O servidor entende o tipo de conteúdo da entidade da requisição, e a sintaxe da requisição esta correta, mas não foi possível processar as instruções presente.' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' NoContent: description: 'O recurso solicitado não existe ou não foi localizado.' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' BadRequest: description: 'A requisição foi malformada, omitindo atributos obrigatórios, seja no payload ou através de atributos na URL.' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' Forbidden: description: O token tem escopo incorreto ou uma política de segurança foi violada content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' InternalServerError: description: Ocorreu um erro no gateway da API ou no microsserviço content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' MethodNotAllowed: description: O consumidor tentou acessar o recurso com um método não suportado content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' NotAcceptable: description: A solicitação continha um cabeçalho Accept diferente dos tipos de mídia permitidos ou um conjunto de caracteres diferente de UTF-8 content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' NotFound: description: O recurso solicitado não existe ou não foi implementado content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' TooManyRequests: description: 'A operação foi recusada, pois muitas solicitações foram feitas dentro de um determinado período ou o limite global de requisições concorrentes foi atingido' content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError' Unauthorized: description: Cabeçalho de autenticação ausente/inválido ou token inválido content: application/json; charset=utf-8: schema: $ref: '#/components/schemas/ResponseError'