openapi: 3.0.0 info: title: APIs Open Data do Open Insurance Brasil description: API de informações de dados do produto Lucros Cessantes . 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 Producao - url: 'https://api.organizacao.com.br/open-insurance/products-services/v1' description: Servidor de Homologacao tags: - name: "Lucros Cessantes" - name: "LostProfit" paths: /lost-profit: get: tags: - LostProfit summary: Obtem a lista dos produtos do tipo LostProfit description: "Obtem a lista dos produtos do tipo LostProfit" operationId: "getLostProfit" 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 LostProfit content: application/json: schema: $ref: '#/components/schemas/ResponseLostProfitList' '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 API de informações de dados do produto Lucros Cessantes . Os recursos que podem ser consumidos pelos participantes conforme a regra 3.1.2 do manual de escopo de dados. content: application/json: schema: $ref: '#/components/schemas/ResponseLostProfitList' components: schemas: ResponseLostProfitList: type: object required: - data - links - meta properties: data: type: object required: - brand properties: brand: $ref: '#/components/schemas/LostProfitBrand' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' LostProfitBrand: type: object description: Organizacao 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 da empresa em fornecer uma série específica de atributos, benefícios e serviços uniformes aos clientes. maxLength: 80 example: ACME Group Seguros companies: $ref: '#/components/schemas/LostProfitCompany' LostProfitCompany: 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. maxLength: 80 example: ACME Seguros cnpjNumber: type: string description: CNPJ da sociedade pertencente à marca. pattern: ^\d{14}$ example: '12345678901234' products: $ref: '#/components/schemas/LostProfitProduct' LostProfitProduct: type: array description: Lista de produtos de uma empresa. items: type: object required: - code - coverages - traits - microinsurance - validity - termsAndConditions - targetAudiences properties: name: type: string description: Nome comercial do produto, pelo qual é identificado nos canais de distribuição e atendimento da sociedade. maxLength: 80 example: Produto de Seguro code: type: string description: Código único a ser definido pela sociedade. maxLength: 100 example: "01234589-0" coverages: type: array items: type: object required: - coverage - coverageDescription - coverageAttributes - allowApartPurchase properties: coverage: description: Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas type: string example: PERDA_DE_RECEITA_OU_INTERRUPCAO_DE_NEGOCIOS enum: [LUCRO_BRUTO_LUCRO_LIQUIDO_E_DESPESAS_FIXAS, LUCRO_LIQUIDO, DESPESAS_FIXAS, PERDA_DE_RECEITA_OU_INTERRUPCAO_DE_NEGOCIOS, OUTRAS] coverageDescription: type: string maxLength: 3000 description: Campo aberto para detalhamento de cada uma das coberturas possíveis dos produtos example: descrição cobertura coverageAttributes: $ref: '#/components/schemas/LostProfitCoverageAttributes' allowApartPurchase: type: boolean description: Indicação se a cobertura permite contratação separada (por cobertura selecionada). traits: type: boolean description: Indicação se o produto é classificado como destinado para cobertura de grandes riscos, sendo tal classificação de acordo com regulamentação específica microinsurance: type: boolean description: Indicação se o produto é classificado como microsseguro validity: $ref: '#/components/schemas/LostProfitValidity' premiumRates: $ref: '#/components/schemas/structurePremiumRates' termsAndConditions: $ref: '#/components/schemas/LostProfitTerms' targetAudiences: type: array items: type: string example: PESSOA_NATURAL enum: [PESSOA_NATURAL, PESSOA_JURIDICA] structurePremiumRates: type: object description: | - O campo “Taxa de Prêmio” ou “Taxa de Contribuição” é apenas para referência sobre o valor praticado no mercado para determinado produto e faixas de risco, servindo apenas como estimativa, e não representa o valor que será aplicado na cotação do caso específico do cliente. O preço do seguro leva em consideração diversos fatores e variáveis, e o valor ofertado na cotação/proposta da Seguradora/EAPC é a que prevalecerá. Desse modo, este valor NÃO substitui uma cotação e NÃO garante a aceitação do risco do cliente. - Para os produtos cujo LMI, LMG ou Capital Segurado transpassem da faixa máxima apresentada é necessário contatar diretamente o seu intermediador (corretor) ou a sua seguradora para que seja realizada uma cotação adequada e uma estimativa de valor correta seja transmitida. - Esta informação não está sendo reportada para produtos que não são comercializados de forma individual, ou seja, não são disponibilizadas as informações de seguros coletivos (Exceto Habitacional e Transportes) ou de produtos acessórios. Para maiores detalhes de cotação é necessário entrar em contato comsua seguradora ou seu intermediador (corretor). - A metodologia utilizada para o levantamento destas informações é a que consta no Manual de Escopo de Dados e Serviços do Open Insurance. - Pode haver alterações entre produtos do mesmo ramo dependendo da seguradora, isso porque cada empresa possui um grupo focal de clientes e um estilo operacional. Para mais detalhes entre em contato com a seguradora ou o intermediador (corretor). - As informações de Taxa de prêmio e Taxa de Contribuição são destinadas exclusivamente para o consumo do usuário final para que ele tenha uma noção de quanto custa um seguro, não devem ser utilizadas para fins estatísticos. - Os valores reportados no campo Taxa Prêmio e Taxa de Contribuição são valores que refletem um conjunto de características de um seguro específico de cada companhia, logo,devem ser analisados em conjunto com as demais informações dispostas na Fase I, não sendo factível comparar somente este campo entre Seguradoras. - Para os produtos e modalidades que não estão com as estimativas de valores preenchidas neste campo, é necessário que o cliente entre em contato com a seguradora ou intermediário para realizar a cotação e saber o valor de seu seguro. required: - range_1 - range_2 - range_3 - range_4 properties: range_1: $ref: '#/components/schemas/rangePremiumRates' range_2: $ref: '#/components/schemas/rangePremiumRates' range_3: $ref: '#/components/schemas/rangePremiumRates' range_4: $ref: '#/components/schemas/rangePremiumRates' rangePremiumRates: type: object required: - minimum - maximum - median properties: minimum: $ref: '#/components/schemas/amountRangePremiumRates' maximum: $ref: '#/components/schemas/amountRangePremiumRates' median: $ref: '#/components/schemas/amountRangePremiumRates' amountRangePremiumRates: type: string pattern: ^\d{1,16}\.\d{2}$ example: '10000.00' LostProfitValidity: type: array items: type: object required: - term properties: term: type: array items: type: string example: ANUAL enum: [ANUAL , ANUAL_INTERMITENTE , PLURIANUAL , PLURIANUAL_INTERMITENTE , MENSAL, MENSAL_INTERMITENTE , DIARIO , DIARIO_INTERMITENTE, OUTROS] termOthers: type: string description: Campo livre para descrição por cada participante ao selecionar o domínio “Outros” no campo Prazo (acima). maxLength: 100 LostProfitTerms: type: object description: Informações dos termos e condições conforme número do processo SUSEP. required: - definition properties: susepProcessNumber: type: string description: Número do processo SUSEP. maxLength: 20 example: '15414622222222222' definition: type: string description: Campo aberto (possibilidade de incluir uma url). maxLength: 1024 example: https://www.seguradora.com.br/produto/tradicional/pdf/condicoes_gerais.pdf LostProfitCoverageAttributes: type: object description: Informações de cobertura do Seguro Residencial. required: - maxLMI properties: maxLMI: $ref: '#/components/schemas/LostProfitLimit' LostProfitLimit: type: object description: Lista com valor de LMI aceito pela sociedade para cada cobertura. required: - type - amount properties: type: type: string enum: [FINANCEIRO, PERCENTUAL] amount: $ref: '#/components/schemas/LostProfitCoverageAttributesDetails' index: type: string description: Indexador. Condicional, vinculado ao preenchimento do campo Tipo com Percentual enum: [LMG, FINANCEIRO_COBERTURA, OUTRO] maxIndexAmount: $ref: '#/components/schemas/LostProfitCoverageAttributesDetails' LostProfitCoverageAttributesDetails: description: Lista com valor de LMI aceito pela sociedade para cada cobertura. type: object required: - amount - unit properties: amount: type: number unit: $ref: '#/components/schemas/LostProfitCoverageAttributesDetailsUnit' LostProfitCoverageAttributesDetailsUnit: type: object required: - code - description properties: code: type: string maxLength: 2 example: R$ description: type: string maxLength: 5 example: REAL Links: type: object properties: self: type: string description: URL da página atualmente requisitada pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/lost-profit.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/lost-profit' first: type: string description: URL da primeira página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/lost-profit.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/lost-profit' prev: type: string description: URL da página anterior de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/lost-profit.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/lost-profit' next: type: string description: URL da próxima página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/lost-profit.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/lost-profit' last: type: string description: URL da última página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/lost-profit.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/lost-profit' 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 maxLength: 255 detail: description: Descrição legível por humanos deste erro específico type: string maxLength: 2048 requestDateTime: description: 'Data e hora da consulta, conforme especificação RFC-3339, formato UTC.' type: string 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 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'