openapi: 3.0.0 info: title: APIs Open Data do Open Insurance Brasil description: API de informações de Planos de Previdência e Seguros de Pessoas ambos com cobertura por sobrevivência (excluindo seguros Dotais). Os recursos que podem ser consumidos pelos participantes conforme a regra 3.1.1 do manual de escopo de dados. version: 1.4.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: "life-pension" paths: /life-pension: get: tags: - life-pension summary: Obtém a lista dos produtos do tipo vida e previdência. description: "Obtém a lista dos produtos do tipo vida e previdência." operationId: "getLifePension" 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" responses: '200': description: Dados dos produtos de Vida e Previdência content: application/json: schema: $ref: '#/components/schemas/ResponseLifePensionList' '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 produtos de Vida e Previdência content: application/json: schema: $ref: '#/components/schemas/ResponseLifePensionList' components: schemas: ResponseLifePensionList: 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/LifePensionBrand' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' LifePensionBrand: 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/LifePensionCompany' LifePensionCompany: 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/LifePensionProduct' LifePensionProduct: type: array items: type: object required: - name - code - segment - type - modality - productDetails - minimumRequirements - targetAudience properties: name: type: string description: Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade. maxLength: 80 example: Brasilprev Private Multimercado 2020 code: type: string description: Código único a ser definido pela sociedade. maxLength: 80 example: "1234" segment: type: string description: Segmento do qual se trata o produto contratado. example: PREVIDENCIA enum: [SEGURO_PESSOAS , PREVIDENCIA] type: type: string description: Tipo do produto contratado. example: PGBL enum: [PGBL , PRGP , PAGP, PRSA, PRI, PDR, VGBL, VRGP, VAGP, VRSA, VRI, VDR, DEMAIS_PRODUTOS_PREVIDENCIA] modality: type: string description: Modalidade do produto contratado. example: CONTRIBUICAO_VARIAVEL enum: [CONTRIBUICAO_VARIAVEL , BENEFICIO_DEFINIDO] optionalCoverage: type: string description: Campo aberto (possibilidade de incluir URL) para a descricao das coberturas de risco (previdencia) comercializadas facultativamente a cobertura de sobrevivencia maxLength: 1024 productDetails: $ref: '#/components/schemas/LifePensionProductDetails' minimumRequirements: $ref: '#/components/schemas/LifePensionMinimumRequirements' targetAudience: type: string description: Público-alvo. example: PESSOA_NATURAL enum: [PESSOA_NATURAL, PESSOA_JURIDICA] LifePensionProductDetails: type: array items: type: object required: - susepProcessNumber - contractTermsConditions - defferalPeriod - grantPeriodBenefit - costs properties: susepProcessNumber: type: string description: Sequência numérica utilizada para consulta dos processos eletrônicos na SUSEP, com caracteres especiais. example: 15414.614141/2020-71 maxLength: 30 contractTermsConditions: type: string description: Campo aberto (possibilidade de incluir URL). example: https://www.seguradora.com.br/produto/pdf/condicoes_gerais.pdf maxLength: 1024 defferalPeriod: $ref: '#/components/schemas/LifePensionDefferalPeriod' grantPeriodBenefit: $ref: '#/components/schemas/LifePensionPeriodGrantBenefit' costs: $ref: '#/components/schemas/LifePensionCosts' LifePensionDefferalPeriod: type: object required: - interestRate - updateIndex - reversalFinancialResults - minimumPremiumAmount - premiumPaymentMethod - permissionExtraordinaryContributions - permissonScheduledFinancialPayments - gracePeriodRedemption - gracePeriodBetweenRedemptionRequests - redemptionPaymentTerm - gracePeriodPortability - gracePeriodBetweenPortabilityRequests - portabilityPaymentTerm - investmentFunds properties: interestRate: type: number description: Taxa de juros garantida que remunera o plano durante a fase de diferimento/acumulação. example: 0.25123 maxLength: 10 multipleOf: 0.00001 updateIndex: type: string description: Indice garantido que remunera o plano durante a fase de diferimento/ acumulação. example: IPCA enum: [IPCA,IGP-M,INPC, NAO_SE_APLICA] otherMinGuaranteesIndex: 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 maxLength: 15 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}$ example: '1.000000' reversalFinancialResults: type: number description: Percentual de reversão de excedente financeiro no período de diferimento. example: 5.123 maxLength: 5 minimumPremiumAmount: type: array items: type: object description: Valor mínimo em R$ de prêmio/ contribuição aceita pela sociedade ao plano (identificar valor mensal e/ou aporte único). required: - minimumPremiumAmountValue - minimumPremiumAmountDescription properties: minimumPremiumAmountValue: type: number description: Valor maxLength: 13 example: 250 minimumPremiumAmountDescription: type: string description: Descrição Período. maxLength: 15 example: VALOR MENSAL premiumPaymentMethod: type: array items: type: string description: Meio de pagamento escolhido pelo segurado. example: CARTAO_CREDITO enum: [CARTAO_CREDITO, DEBITO_CONTA, DEBITO_CONTA_POUPANCA, BOLETO_BANCARIO, PIX, CARTAO_DEBITO, REGRA_PARCEIRO, CONSIGNACAO_FOLHA_PAGAMENTO, PONTOS_PROGRAMA_BENEFICIO, TED_DOC, OUTROS] paymentDetail: description: Descrição de Meio(s) de pagamento do Prêmio disponíveis quando for informada a opção OUTROS. type: string maxLength: 100 example: OUTROS permissionExtraordinaryContributions: type: boolean description: Se ficam permitidos aportes extraordinários. example: true permissonScheduledFinancialPayments: type: boolean description: Se ficam permitidos pagamentos financeiros programados. example: true gracePeriodRedemption: type: integer description: Prazo em dias de carência para resgate. maxLength: 4 example: 100 gracePeriodBetweenRedemptionRequests: type: integer description: Prazo em dias de carência entre pedidos de resgate. maxLength: 4 example: 30 redemptionPaymentTerm: type: integer description: Prazo em dias para pagamento do resgate. maxLength: 4 example: 10 gracePeriodPortability: type: integer description: Prazo em dias de carência para portabilidade. maxLength: 4 example: 12 gracePeriodBetweenPortabilityRequests: type: integer description: Prazo em dias de carência entre pedidos de portabilidade. maxLength: 4 example: 15 portabilityPaymentTerm: type: integer description: Prazo em dias para pagamento da portabilidade. maxLength: 4 example: 20 investmentFunds: $ref: '#/components/schemas/LifePensionInvestmentFunds' LifePensionInvestmentFunds: 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. items: type: object required: - cnpjNumber - companyName - maximumAdministrationFee - typePerformanceFee - eligibilityRule properties: cnpjNumber: type: string description: Número de CNPJ. pattern: ^\d{14}$ example: '12345678901234' companyName: type: string description: Nome Fantasia. example: EYPREV maxLength: 200 maximumAdministrationFee: type: number description: Taxa Máxima de Administração – em %. example: 20.1 maxLength: 5 typePerformanceFee: type: array items: type: string description: Tipo de Taxa de Performance example: DIRETAMENTE enum: [DIRETAMENTE, INDIRETAMENTE, NAO_APLICA] maximumPerformanceFee: type: number description: Taxa Máxima de Performance. Caso o Tipo de Taxa de Performance seja ‘Diretamente’. maxLength: 5 example: 20.0 eligibilityRule: type: boolean description: Regra de Eligibilidade. example: true minimumContributionAmount: type: number description: Valor Mínimo de Contribuição. Regra de Elegibilidade. Caso a Regra de Elegibilidade SIM. example: 1000000000 maxLength: 15 minimumContributionValue: type: number description: Valor Mínimo de Aporte de Portabilidade. Caso a Regra de Elegibilidade SIM. example: 1000000000 maxLength: 15 minimumMathematicalProvisionAmount: type: number description: Valor Mínimo Provisão Matemática. Caso a Regra de Elegibilidade SIM. maxLength: 5 example: 1000 LifePensionPeriodGrantBenefit: type: object required: - incomeModality - interestRate - updateIndex - reversalResultsFinancial properties: incomeModality: type: array items: type: string description: Modalidades de renda disponíveis para contratação. A considerar os seguintes domínios example: RENDA_VITALICIA enum: [PAGAMENTO_UNICO, RENDA_PRAZO_CERTO, RENDA_TEMPORARIA, RENDA_TEMPORARIA_REVERSIVEL, RENDA_TEMPORARIA_MINIMO_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] biometricTable: type: array items: type: string description: Obrigatorio 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. example: AT_2000_FEMALE_SUAVIZADA_15 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] interestRate: type: number description: Taxa de juros garantida utilizada para conversão em renda. Em %. example: 3.225 maxLength: 6 updateIndex: type: string description: É o índice contratado para atualização monetária dos valores relativos ao plano, na forma estabelecida por este regulamento. example: IPCA enum: [IPCA, IGP-M, INPC, NAO_SE_APLICA] reversalResultsFinancial: type: number description: Percentual de reversão de excedente financeiro na concessão. Em %. example: 013.252 maxLength: 8 investmentFunds: $ref: '#/components/schemas/LifePensionInvestmentFunds' LifePensionCosts: type: object required: - loadingAntecipated - loadingLate properties: loadingAntecipated: description: Percentual de carregamento cobrado quando do pagamento do premio/contribuicao. Para coletivos Valor maximo allOf: - $ref: '#/components/schemas/LifePensionLoading' loadingLate: description: Percentual de taxa de carregamento cobrado quando da efetivacao de resgate ou portabilidade. Para coletivos Valor maximo allOf: - $ref: '#/components/schemas/LifePensionLoading' LifePensionLoading: type: object required: - minValue - maxValue properties: minValue: type: number description: Valor mínimo em %. example: 4.122 maxLength: 7 maxValue: type: number description: alor máximo em %. example: 10 maxLength: 8 LifePensionMinimumRequirements: type: object required: - contractType - participantQualified - minRequirementsContract properties: contractType: type: array description: Os tipos de serviços contratados. items: type: string example: INDIVIDUAL enum: [COLETIVO_AVERBADO, COLETIVO_INSTITUIDO, INDIVIDUAL] participantQualified: type: boolean description: Indicação se o plano é destinado para participante qualificado. minRequirementsContract: type: string description: Campo aberto contendo todos os requisitos mínimos para contratação (possibilidade de incluir URL). example: https://www.seguradora.com.br/produto/pdf/min_contrato.pdf maxLength: 1024 Links: type: object properties: self: type: string description: URL da página atualmente requisitada pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/life-pension.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/life-pension' first: type: string description: URL da primeira página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/life-pension.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/life-pension' prev: type: string description: URL da página anterior de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/life-pension.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/life-pension' next: type: string description: URL da próxima página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/life-pension.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/life-pension' last: type: string description: URL da última página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/life-pension.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/life-pension' Meta: type: object 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 required: - totalRecords - totalPages 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]*' 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'