openapi: 3.0.0 info: title: APIs Open Data do Open Insurance Brasil description: API de informações de Seguro Residencial. Os recursos que podem ser consumidos pelos participantes conforme a regra 3.2.2 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: "home-insurance" paths: /home-insurance/commercializationArea/{commercializationArea}: get: tags: - home-insurance summary: Obtém informações de seguros residenciais description: "Obtém informações de seguros redidenciais" operationId: "getResidentialInsurance" 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/commercializationArea" responses: '200': description: Dados dos Seguros Residenciais content: application/json: schema: $ref: '#/components/schemas/ResponseHomeInsuranceList' '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 Seguros Residenciais content: application/json: schema: $ref: '#/components/schemas/ResponseHomeInsuranceList' components: schemas: ResponseHomeInsuranceList: type: object required: - data - links - meta properties: data: type: object required: - brand properties: brand: $ref: '#/components/schemas/HomeInsuranceBrand' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' HomeInsuranceBrand: type: object 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. maxLength: 80 example: EMPRESA A seguros companies: $ref: '#/components/schemas/HomeInsuranceCompany' HomeInsuranceCompany: type: array items: type: object description: Informações referente a sociedade a qual a marca pertence. required: - name - cnpjNumber properties: name: type: string description: Nome da sociedade pertencente à marca. maxLength: 80 example: ABCDE SEGUROS cnpjNumber: type: string description: CNPJ da sociedade pertencente à marca. pattern: ^\d{14}$ example: '12345678901234' products: $ref: '#/components/schemas/HomeInsuranceProduct' 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' HomeInsuranceProduct: type: array description: Produtos de Seguro Residencial. items: type: object required: - name - code - coverages - propertyCharacteristics - propertyZipCode - protective - additional - assistanceServices - microInsurance - termsAndConditions - validity - customerServices - premiumPayments - minimumRequirements - 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: RESIDENCIAL XPTO code: type: string description: Código único a ser definido pela sociedade. maxLength: 80 example: '0000-0' coverages: $ref: '#/components/schemas/HomeInsuranceCoverages' propertyCharacteristics: $ref: '#/components/schemas/HomeInsurancePropertyCharacteristics' propertyZipCode: type: string description: Código de Endereçamento Postal do Imóvel maxLength: 8 example: "1311000" protective: type: boolean description: Protecionais - Indicativo de exigência de itens protecionais. example: true additional: type: array items: type: string description: Adicionais do Produto. example: SORTEIO_GRATUITO enum: [SORTEIO_GRATUITO , CLUBE_BENEFICIOS , CASHBACK , DESCONTOS , OUTROS] additionalOthers: type: string description: Campo aberto para descrição de cada participante ao selecionar o domínio ‘Outros’ no campo acima ‘Adicionais’. maxLength: 100 assistanceServices: $ref: '#/components/schemas/HomeInsuranceAssistanceServices' microInsurance: type: boolean description: Indicação se o produto é classificado como microsseguro. example: true termsAndConditions: $ref: '#/components/schemas/HomeInsuranceTermsAndConditions' validity: $ref: '#/components/schemas/HomeInsuranceValidity' customerServices: type: array description: Rede de atendimento items: type: string example: LIVRE_ESCOLHA enum: [REDE_REFERENCIADA , LIVRE_ESCOLHA , REDE_REFERENCIADA_LIVRE_ESCOLHA] premiumRates: $ref: '#/components/schemas/structurePremiumRates' premiumPayments: $ref: '#/components/schemas/HomeInsurancePremiumPayment' minimumRequirements: type: array items: $ref: '#/components/schemas/HomeInsuranceMinimumRequirements' targetAudiences: type: array items: type: string description: Público a quem se destina o produto example: PESSOA_NATURAL enum: [PESSOA_NATURAL , PESSOA_JURIDICA, AMBAS] HomeInsuranceMinimumRequirements: type: object description: Produtos de Seguro Residencial. required: - contractingMinRequirement - contractingType properties: contractingType: type: string description: Tipo de contratação. example: COLETIVO enum: [COLETIVO , INDIVIDUAL, AMBAS] contractingMinRequirement: type: string description: Campo aberto contendo todos os requisitos mínimos para contratação (possibilidade de incluir URL). maxLength: 1024 example: https://www.seguradora.com.br/produto/requisitos.pdf HomeInsuranceCoverageAttributes: type: object description: Informações de cobertura do Seguro Residencial. required: - minLMI - maxLMI - minDeductibleAmount - insuredMandatoryParticipationPercentage properties: minLMI: $ref: '#/components/schemas/HomeInsuranceLimit' maxLMI: $ref: '#/components/schemas/HomeInsuranceLimit' minDeductibleAmount: $ref: '#/components/schemas/HomeInsuranceCoverageAttributesDetails' insuredMandatoryParticipationPercentage: type: number description: Listagem percentual de franquia e/ou percentual de participação obrigatória do segurado estabelecida pela sociedade para cada tipo de cobertura de produto. maxLength: 9 HomeInsuranceLimit: type: object description: Lista com valor de LMI aceito pela sociedade para cada cobertura. required: - type - amount properties: type: type: string enum: [FINANCEIRO, PERCENTUAL] example: FINANCEIRO amount: $ref: '#/components/schemas/HomeInsuranceCoverageAttributesDetails' index: type: string description: Indexador. Condicional, vinculado ao preenchimento do campo Tipo com Percentual enum: [LMG, FINANCEIRO_COBERTURA, OUTRO] example: LMG maxIndexAmount: $ref: '#/components/schemas/HomeInsuranceCoverageAttributesDetails' HomeInsuranceCoverageAttributesDetailsUnit: type: object required: - code - description properties: code: type: string example: R$ description: type: string example: REAL HomeInsuranceCoverageAttributesDetails: type: object description: Valor required: - amount - unit properties: amount: type: number unit: $ref: '#/components/schemas/HomeInsuranceCoverageAttributesDetailsUnit' HomeInsuranceTermsAndConditions: type: array description: Informações dos termos e condições conforme número do processo SUSEP. items: type: object required: - susepProcessNumber - definition properties: susepProcessNumber: type: string description: Número do processo SUSEP. maxLength: 20 example: XXXXX.XXXXXX/XXXX-XX definition: type: string description: Campo aberto (possibilidade de incluir uma url). maxLength: 1024 example: https://www.seguradora.com.br/produto/termos.pdf HomeInsuranceValidity: type: array description: Vigência items: type: object required: - term properties: term: type: string description: Prazo de vigência do seguro contratado Intervalo contínuo de tempo durante o qual está em vigor o contrato de seguro. (RESOLUÇÃO CNSP Nº 341/2016). 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 HomeInsurancePremiumPayment: type: array description: Informações de pagamento de prêmio. items: type: object required: - paymentMethod - paymentType properties: paymentMethod: type: string description: Meio de pagamento escolhido pelo segurado. example: CARTAO_CREDITO enum: [CARTAO_CREDITO , CARTAO_DEBITO , DEBITO_CONTA_CORRENTE , DEBITO_CONTA_POUPANCA , BOLETO_BANCARIO , PIX , CONSIGINACAO_FOLHA_PAGAMENTO , PONTOS_PROGRAMAS_BENEFICIO, OUTROS] paymentMethodDetail: type: string description: Campo aberto para detalhamento do campo ‘Outros’ por cada participante. maxLength: 100 paymentType: type: array description: Forma de pagamento items: type: string example: A_VISTA enum: [A_VISTA, PARCELADO] HomeInsuranceAssistanceServices: type: array description: Agrupamento dos serviços de assistências disponíveis vinculado ao produto. items: type: object required: - assistanceServicesPackage - complementaryAssistanceServicesDetail - chargeTypeSignaling properties: assistanceServicesPackage: type: string description: Pacotes de Assistência. example: ATE_10_SERVICOS enum: [ATE_10_SERVICOS, ATE_20_SERVICOS , ACIMA_20_SERVICOS, CUSTOMIZAVEL] complementaryAssistanceServicesDetail: type: string description: Campo livre para descrição dos serviços ofertados por cada sociedade participante. maxLength: 1000 example: Encanador chargeTypeSignaling: type: string description: Sinalização em campo exclusivo se o pacote de Assistência é gratuita ou contratada/paga. example: GRATUITA enum: [GRATUITA, PAGO] HomeInsuranceCoverages: type: array description: Listagem de coberturas incluídas no produto. items: type: object required: - coverageType - coverageDetail - allowApartPurchase - coverageAttributes properties: coverageType: type: string enum: [IMOVEL_BASICA , IMOVEL_AMPLA , DANOS_ELETRICOS , DANOS_POR_AGUA , ALAGAMENTO , RESPONSABILIDADE_CIVIL_FAMILIAR, RESPONSABILIDADE_CIVIL_DANOS_MORAIS , ROUBO_SUBTRACAO_BENS , ROUBO_SUBTRACAO_BENS_FORA_LOCAL_SEGURADO , TACOS_GOLFE_HOLE_ONE , PEQUENAS_REFORMAS_OBRAS , GREVES_TUMULTOS_LOCKOUT , MICROEMPREENDEDOR , ESCRITORIO_RESIDENCIA , DANOS_EQUIPAMENTOS_ELETRONICOS , QUEBRA_VIDROS , IMPACTO_VEICULOS , VENDAVAL , PERDA_PAGAMENTO_ALUGUEL , BICICLETA , RESPONSABILIDADE_CIVIL_BICICLETA , RC_EMPREGADOR , DESMORONAMENTO , DESPESAS_EXTRAORDINARIAS , JOIAS_OBRAS_ARTE , TERREMOTO , IMPACTO_AERONAVES , PAISAGISMO , INCENDIO , QUEDA_RAIO , EXPLOSAO, OUTRAS] description: Nome do tipo da cobertura. example: IMOVEL_BASICA coverageDetail: type: string description: Campo aberto para detalhamento por coberturas possíveis dos produtos a ser feito por cada participante. maxLength: 1000 example: Cobertura especial para escritório residenciais allowApartPurchase: type: boolean description: Indicação se a cobertura permite contratação separada (por cobertura selecionada). example: false coverageAttributes: $ref: '#/components/schemas/HomeInsuranceCoverageAttributes' HomeInsurancePropertyCharacteristics: type: array description: Caracteristicas do imóvel. items: type: object required: - propertyType - propertyUsageType - propertyBuildType - destinationInsuredImportance properties: propertyType: description: Tipo de imóvel. type: string example: CASA enum: [CASA , APARTAMENTO] propertyBuildType: type: string description: Descrição do tipo de construção da propriedade. example: ALVENARIA enum: [ALVENARIA , MADEIRA , METALICA , MISTA] propertyUsageType: type: string description: Descrição do tipo de uso da propriedade. example: HABITUAL enum: [HABITUAL , VERANEIO , DESOCUPADO , CASA_ESCRITORIO , ALUGUEL_TEMPORADA] destinationInsuredImportance: type: string description: Destinação da Importância Segurada. example: PREDIO enum: [PREDIO, CONTEUDO, AMBOS] Links: type: object properties: self: type: string description: URL da página atualmente requisitada pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/home-insurance.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/home-insurance/commercializationArea' first: type: string description: URL da primeira página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/home-insurance.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/home-insurance/commercializationArea' prev: type: string description: URL da página anterior de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/home-insurance.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/home-insurance/commercializationArea' next: type: string description: URL da próxima página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/home-insurance.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/home-insurance/commercializationArea' last: type: string description: URL da última página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/home-insurance.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/home-insurance/commercializationArea' 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 commercializationArea: name: commercializationArea in: path description: Area de comercialização. 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'