openapi: 3.0.0 info: title: APIs Open Data do Open Insurance Brasil description: API de informações de dados do produto Rural. Os recursos que podem ser consumidos pelos participantes conforme a regra 3.1.2 do manual de escopo de dados.. version: 1.1.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: "Rural" paths: /rural: get: tags: - Rural summary: Obtem a lista dos produtos do tipo Rural description: "Obtem a lista dos produtos do tipo Rural - Seguro Agrícola com cobertura do FESR, Seguro Agrícola sem cobertura do FESR, Seguro Florestas sem cobertura do FESR, Seguro Pecuário com cobertura do FESR, Seguro Pecuário sem cobertura do FESR, Seguros Animais, Penhor Rural e Seguro Benfeitorias, Produtos Agropecuários, Penhor Rural, Seguro Benfeitorias, Produtos Agropecuários e Seguro de Vida do Produtor Rural." operationId: "getRural" 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 Rural - Seguro Agrícola com cobertura do FESR, Seguro Agrícola sem cobertura do FESR, Seguro Florestas sem cobertura do FESR, Seguro Pecuário com cobertura do FESR, Seguro Pecuário sem cobertura do FESR e Seguros Animais content: application/json: schema: $ref: '#/components/schemas/ResponseRuralList' '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 Rural. Os recursos que podem ser consumidos pelos participantes conforme a regra 3.1.2 do manual de escopo de dados. - Seguro Agrícola com cobertura do FESR, Seguro Agrícola sem cobertura do FESR, Seguro Florestas sem cobertura do FESR, Seguro Pecuário com cobertura do FESR, Seguro Pecuário sem cobertura do FESR e Seguros Animais content: application/json: schema: $ref: '#/components/schemas/ResponseRuralList' components: schemas: ResponseRuralList: type: object required: - data - links - meta properties: data: type: object required: - brand properties: brand: $ref: '#/components/schemas/RuralBrand' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' RuralBrand: 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: EMPRESA A seguros companies: $ref: '#/components/schemas/RuralCompany' RuralCompany: 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 Instituição, pertencente à Marca. maxLength: 80 example: ACME Seguros cnpjNumber: type: string description: CNPJ da sociedade pertencente à marca. maxLength: 14 example: "12345678901234" products: $ref: '#/components/schemas/RuralProduct' RuralProduct: type: array description: Lista de produtos de uma empresa. items: type: object required: - name - code - modality - coverages - maxLMG - traits - validity - premiumPayment - termsAndConditions - minimumRequirements 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: 80 example: "01234589-0" modality: description: Modalidade type: string enum: [AGRICOLA, PECUARIO, AQUICOLA, FLORESTAS, BENFEITORIAS_E_PRODUTOS_AGROPECUARIOS, PENHOR_RURAL, ANIMAIS, VIDA_DO_PRODUTOR_RURAL] example: AGRICOLA coverages: type: array items: type: object required: - coverage - coverageDescription - allowApartPurchase - coverageAttributes properties: coverage: description: Listagem de coberturas incluídas no produto que deve observar a relação discriminada de coberturas, conforme Tabela II.17 do Anexo II. type: string example: GRANIZO enum: [GRANIZO, GEADA, GRANIZO_GEADA, GRANIZO_GEADA_CHUVA_EXCESSIVA, COMPREENSIVA_INCENDIO_E_RAIO_TROMBA_D_AGUA_VENTOS_FORTES_E_VENTOS_FRIOS_CHUVAS_EXCESSIVAS_SECA_VARIACAO_EXCESSIVA_DE_TEMPERATURA_GRANIZO_GEADA, COMPREENSIVA_INCENDIO_E_RAIO_TROMBA_D_AGUA_VENTOS_FORTES_E_VENTOS_FRIOS_CHUVAS_EXCESSIVAS_SECA_VARIACAO_EXCESSIVA_DE_TEMPERATURA_GRANIZO_GEADA_COM_DOENCAS_E_PRAGAS, CANCRO_CITRICO, COMPREENSIVA_PARA_A_MODALIDADE_BENFEITORIAS_E_PRODUTOS_AGROPECUARIOS_INCENDIO_RAIO_EXPLOSAO_VENDAVAL_GRANIZO_TREMORES_DE_TERRA_IMPACTO_DE_VEICULOS_DESMORONAMENTO_TOTAL_OU_PARCIAL_DANOS_AS_MERCADORIAS_DO_SEGURADO_EXCLUSIVAMENTE_PARA_OS_PRODUTOS_AGROPECUARIOS_DECORRENTES_DE_ACIDENTES_COM_O_VEICULO_TRANSPORTADOR_DANOS_AS_MAQUINAS_AGRICOLAS_E_SEUS_IMPLEMENTOS_DECORRENTES_DE_COLISAO_ABALROAMENTO_E_OU_CAPOTAGEM_QUEDA_DE_PONTES_VIADUTOS_OU_EM_PRECIPICIOS_ROUBO_OU_FURTO_TOTAL_CASO_FORTUITO_OU_FORCA_MAIOR_OCORRIDOS_DURANTE_O_TRANSPORTE, COMPREENSIVA_PARA_A_MODALIDADE_PENHOR_RURAL, MORTE_DE_ANIMAIS, CONFINAMENTO_SEMI_CONFINAMENTO_BOVINOS_DE_CORTE, CONFINAMENTO_BOVINOS_DE_LEITE, VIAGEM, EXPOSICAO_MOSTRA_E_LEILAO, CARREIRA, SALTO_E_ADESTRAMENTO, PROVAS_FUNCIONAIS, HIPISMO_RURAL, POLO, TROTE, VAQUEJADA, EXTENSAO_DE_COBERTURA_EM_TERRITORIO_ESTRANGEIRO, TRANSPORTE, RESPONSABILIDADE_CIVIL, PERDA_DE_FERTILIDADE_DE_GARANHAO, REEMBOLSO_CIRURGICO, COLETA_DE_SEMEN, PREMUNICAO, COMPREENSIVA_PARA_A_MODALIDADE_FLORESTAS, VIDA_DO_PRODUTOR_RURAL, BASICA_DE_FATURAMENTO_PARA_O_PECUARIO, OUTRAS] coverageDescription: type: string maxLength: 3000 description: Campo aberto para detalhamento de cada uma das coberturas possíveis dos produtos a ser feito por cada participante allowApartPurchase: type: boolean description: Indicação se a cobertura permite contratação separada (por cobertura selecionada). example: true coverageAttributes: $ref: '#/components/schemas/RuralCoverageAttributes' maxLMG: $ref: '#/components/schemas/RuralCoverageLimitGuarantee' traits: 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. type: boolean example: false crops: description: "Lista com tipos de culturas cobertas. OBS: Condicional a seleção de 1. Agrícola no campo Modalidade" type: array items: type: string enum: [FRUTAS, GRAOS_DE_VERAO, GRAOS_DE_INVERNO, OLERICOLAS, OUTROS] example: FRUTAS cropsOthers: description: "Campo livre para descrição por cada participante ao selecionar o domínio “Outros” no campo Culturas OBS: Condicional a seleção de 5. Outros no campo acima" type: string maxLength: 1024 forestCode: description: "Lista com tipos de florestas cobertas. OBS: Condicional a seleção de 4. Florestas no campo Modalidade" type: array items: type: string enum: [PINUS, EUCALIPITO, TECA, SERINGUEIRA, OUTROS] example: PINUS forestCodeOthers: description: "Campo livre para descrição por cada participante ao selecionar o domínio “Outros” no campo Código Floresta OBS: Condicional a seleção de 5. Outros no campo acima" type: string maxLength: 1024 flockCode: description: "Lista com tipos de rebanhos cobertos. OBS: Condicional a seleção de 2. Pecuário no campo Modalidade" type: array items: type: string enum: [BOVINOS, EQUINOS, OVINOS, SUINOS, CAPRINOS, AVES, BUBALINOS, OUTROS] example: BOVINOS flockCodeOthers: description: "Campo livre para descrição por cada participante ao selecionar o domínio “Outros” no campo Código do Rebanho OBS: Condicional a seleção de 8. Outros no campo acima" type: string maxLength: 1024 animalDestination: description: "Lista com tipos de destinação do animal coberto. OBS: Condicional a seleção de 2. Pecuário no campo Modalidade" type: array items: type: string enum: [PRODUCAO, TRABALHO_DESTINADOS_A_SELA, TRABALHO_POR_TRACAO, TRANSPORTE_NO_MANEJO_DA_FAZENDA, ATIVIDADE_REPRODUTIVA] example: PRODUCAO animalsClassification: description: "Listas com classificações de animais cobertos. OBS: Condicional a seleção de 8. Animais no campo Modalidade" type: array items: type: string enum: [ANIMAIS_DESTINADOS_A_COMPANHIA, CONVIVIO_FAMILIAR, SEGURANCA, LAZER, EXPOSICAO, ATIVIDADES_ESPORTIVAS, ATIVIDADE_REPRODUTIVA] example: LAZER subvention: type: boolean description: "Permite contratação por subvenção? OBS: Condicional a seleção de 1. Agrícola, 2. Pecuário, 3. Aquícola ou 4. Florestas no campo Modalidade" example: true termsAndConditions: $ref: '#/components/schemas/RuralTerms' validity: $ref: '#/components/schemas/RuralValidity' premiumPayment: $ref: '#/components/schemas/RuralPremiumPayment' minimumRequirements: $ref: '#/components/schemas/RuralMinimumRequirements' RuralCoverageLimitGuarantee: type: object description: Lista com valor de LMG aceito pela sociedade para cada produto required: - type - amount properties: type: type: string enum: [FINANCEIRO, PERCENTUAL] amount: $ref: '#/components/schemas/RuralCoverageAttributesDetails' index: type: string description: Indexador. Condicional, vinculado ao preenchimento do campo Tipo com Percentual enum: [FINANCEIRO_COBERTURA, OUTRO] maxIndexAmount: $ref: '#/components/schemas/RuralCoverageAttributesDetails' RuralCoverageAttributesDetails: description: "Valor de LMG aceito pela sociedade para cada produto. Em reais (R$) Importante: Campo de valor numérico relacionado ao produto que possui o campo. Quando não houver o campo, enviar o valor zerado." type: object required: - amount - unit properties: amount: type: number maxLength: 36 unit: $ref: '#/components/schemas/RuralCoverageAttributesDetailsUnit' RuralCoverageAttributesDetailsUnit: type: object required: - code - description properties: code: type: string maxLength: 2 example: R$ description: type: string maxLength: 5 example: REAL RuralValidity: type: object required: - term properties: term: type: array items: type: string description: Prazo 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 RuralPremiumPayment: type: array items: required: - paymentMethod - paymentType properties: paymentMethod: description: Metodo de pagamento type: string enum: [CARTAO_DE_CREDITO, CARTAO_DE_DEBITO, DEBITO_EM_CONTA_CORRENTE, DEBITO_EM_CONTA_POUPANCA, BOLETO_BANCARIO, PIX, CONSIGNACAO_EM_FOLHA_DE_PAGAMENTO, PONTOS_DE_PROGRAMA_DE_BENEFICIO, OUTROS] paymentDetail: type: string maxLength: 100 description: Campo livre para descrição por cada participante ao selecionar o domínio “Outros” no campo Meio de pagamento (acima) paymentType: type: array description: Forma de Pagamento items: type: string example: A_VISTA enum: [A_VISTA, PARCELADO] premiumRates: description: Distribuição de frequência relativa aos valores referentes às taxas cobradas, nos termos do Anexo III. type: string maxLength: 1024 RuralTerms: type: object description: Informações dos termos e condições conforme número do processo SUSEP. properties: susepProcessNumber: type: string description: "Número do processo Susep. OBS: Condicional a seleção de 2. Não no campo acima." maxLength: 20 example: 15414.622222/2222-22 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 RuralMinimumRequirements: type: object description: Requisitos mínimos. required: - contractType - minimumRequirementDetails - targetAudiences properties: contractType: type: array items: type: string enum: [COLETIVO, INDIVIDUAL] minimumRequirementDetails: type: string maxLength: 1024 description: Campo aberto contendo todos os requisitos mínimos para contratação (possibilidade de incluir URL). example: https://openinsurance.com.br/aaa targetAudiences: type: array items: type: string example: PESSOA_FISICA enum: [PESSOA_FISICA, PESSOA_JURIDICA] RuralCoverageAttributes: type: object description: Informações de cobertura do Seguro. required: - insuredParticipation properties: insuredParticipation: type: array description: Lista com indicativo do tipo de participação do segurado para cada cobertura. items: type: string example: FRANQUIA enum: [FRANQUIA, POS, NAO_SE_APLICA] insuredParticipationDescription: description: "Lista com descrição referente ao campo “Participação do Segurado” para cada cobertura. OBS: Obrigatório, quando houver" type: string maxLength: 1024 Links: type: object properties: self: type: string description: URL da página atualmente requisitada pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/rural.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/rural' first: type: string description: URL da primeira página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/rural.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/rural' prev: type: string description: URL da página anterior de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/rural.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/rural' next: type: string description: URL da próxima página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/rural.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/rural' last: type: string description: URL da última página de registros pattern: ^(https:\/\/)(.*?)(\/open-insurance\/products-services\/v\d+)(\/rural.*)?$ example: 'https://api.organizacao.com.br/open-insurance/products-services/v1/rural' 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'