openapi: 3.0.0
info:
  title: API Quote Housing - Open Insurance Brasil
  description: |
    API de Cotação Habitacional do Open Insurance Brasil - Fase 3.\
    Recebe informações da solicitação de cotação e contratação vindas das instituições iniciadoras.\
    Possui um conjunto de endpoints por ramo de produto e um conjunto específico de endpoints para ramos classificados como LEAD OPIN.\
    Requer consentimento do cliente para todos os 'endpoints'.
    
    # Orientações
    A `Role`  do diretório de participantes relacionada à presente API é a ``.\
    Para todos os `endpoints` desta API é previsto o envio de um `token` através do header `Authorization`.\
    Os dados serão entregues pela iniciadora na seguradora desde que o `consentId` relacionado corresponda a um consentimento válido e com o status `AUTHORISED`.\
    Relacionamos a seguir as `permissions` necessárias para o envio de dados em cada `endpoint` da presente API.

    ## Permissions necessárias para a API Quote Housing

    Para cada um dos `paths` desta API, além dos escopos (`scopes`) indicados existem `permissions` que deverão ser observadas:

    ### `/lead/request`
      - permissions:
        - POST: **QUOTE_HOUSING_LEAD_CREATE**   
    ### `/lead/request/{consentId}`
      - permissions:      
        - PATCH: **QUOTE_HOUSING_LEAD_UPDATE**
     
     ## Válidações Semanticas - Entidade não processável - 422
      - 1 - `Idempotência:` Valida se há divergência entre chave de idempotência e informações enviadas (ERRO_IDEMPOTENCIA);
      - 2 - `Não Informado:` Valida itens não explicitamente informados pelo servidor - (NAO_INFORMADO).

  version: 1.9.0
  contact:
    name: Governança do Open Insurance Brasil
    email: gt-interfaces@openinsurancebr.org
    url: 'https://www.gov.br/susep'
servers:
  - url: 'https://api.organizacao.com.br/open-insurance/quote-housing/v1'
    description: Servidor de Produção
  - url: 'https://api.organizacao.com.br/open-insurance/quote-housing/v1'
    description: Servidor de Homologação
tags:
  - name: HousingLead
    description: Iniciação de serviços de Cotação Habitacional Lead (HousingLead)
paths:
  /lead/request:
    post:
      tags:
        - HousingLead
      summary: Envia dados de solicitação de cotação de HousingLead
      description: "Método para criação de solicitação de cotação de HousingLead"
      operationId: "postQuoteHousingLead"
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
        - $ref: '#/components/parameters/xIdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteRequestHousingLead'
      responses:
        '201':
          $ref: '#/components/responses/OKResponseQuoteRequestHousingLead'
        '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/UnprocessableEntityQuote'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          description: Erro inesperado.
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ResponseError'
      security:
        - OAuth2Security:
          - quote-housing-lead
  /lead/request/{consentId}:
    patch:
      tags:
        - HousingLead
      summary: Atualiza dados de solicitação de cotação de HousingLead identificado por consentId
      description: "Método para atualização de solicitação de cotação de HousingLead"
      operationId: "patchQuoteHousingLead"
      parameters:
        - $ref: "#/components/parameters/consentId"
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/xFapiAuthDate'
        - $ref: '#/components/parameters/xFapiCustomerIpAddress'
        - $ref: '#/components/parameters/xFapiInteractionId'
        - $ref: '#/components/parameters/xCustomerUserAgent'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevokePatchPayload'
        description: Payload para postagem da atualização de proposta de cotação.
        required: true
      responses:
        '200':
          $ref: '#/components/responses/200UpdatedQuoteHousingLead'
        '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: Erro inesperado.
          content:
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/ResponseError'
      security:
        - OAuth2Security:
          - quote-housing-lead

components:
  schemas:
    PolicyDataHousingLead:
      type: array
      description: Lista que agrupa as informações das apólices históricos em categorias.
      items:
        type: object
        properties:
          policyInfo:
            $ref: '#/components/schemas/InsuranceHousingPolicyInfo'  
          premium:
            $ref: '#/components/schemas/InsuranceHousingPremium'  
          claim:
            $ref: '#/components/schemas/InsuranceHousingClaim' 
    InsuranceHousingPolicyInfo:    
      type: object
      description: Objeto que agrupa dados de ápolice.
      required:
        - documentType 
        - policyId
        - issuanceType
        - issuanceDate
        - termStartDate
        - termEndDate
        - maxLMG
        - proposalId
        - insureds
        - insuredObjects
        - branchInfo
      properties:
        documentType:
          description: Tipo de Documento Emitido
          type: string
          enum: [APOLICE_INDIVIDUAL,
                BILHETE,
                CERTIFICADO,
                APOLICE_INDIVIDUAL_AUTOMOVEL,
                APOLICE_FROTA_AUTOMOVEL,
                CERTIFICADO_AUTOMOVEL]
          example: APOLICE_INDIVIDUAL
        policyId:
          description: Identificador da apólice ou bilhete
          type: string
          maxLength: 60
          example: "111111"
        susepProcessNumber: 
          description: Número SUSEP da apólice, conforme regulamentação vigente (Obrigatório caso apólice com coberturas do ramo Garantia)
          type: string
          maxLength: 60
        groupCertificateId: 
          description: "Identificador do Certificado(Caso Tipo de Documento Emitido for certificado)"
          type: string
          maxLength: 60
        issuanceType: 
          description: "Tipo de Emissão"
          type: string
          enum: [EMISSAO_PROPRIA,
                COSSEGURO_ACEITO]
          example: EMISSAO_PROPRIA
        issuanceDate:
          description: Data de emissão do documento
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        termStartDate: 
          description: Data de início de vigência do documento
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        termEndDate:
          description: Data de fim de vigência do documento
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        leadInsurerCode:
          description: "Código da seguradora líder para contratos com arranjo de cosseguro"
          type: string
          maxLength: 1024
        leadInsurerPolicyId:
          description: "Identificador da apólice seguradora líder para apólice de cosseguro aceito"
          type: string
          maxLength: 1024
        maxLMG:
          description: Valor Limite máximo de garantia (LMG)
          allOf:
            - $ref: '#/components/schemas/AmountDetails'                
        proposalId:
          description: Identificador da Proposta
          type: string
          maxLength: 60
        insureds:
          type: array
          description: Lista que agrupa os dados dos segurados.
          items:
            $ref: '#/components/schemas/PersonalInfo'  
        beneficiaries: 
          type: array
          description: Lista que agrupa os dados dos beneficiários.
          items:
            $ref: '#/components/schemas/BeneficiaryInfo'
        principals:
          type: array
          description: Lista que agrupa os dados dos tomadores/garantidos.
          items:
            $ref: '#/components/schemas/PrincipalInfo'
        intermediaries:
          type: array
          description: Lista que agrupa os dados de intermediários.
          items:
            $ref: '#/components/schemas/Intermediary'
        insuredObjects:
          type: array
          description: Lista que agrupa os dados de objetos segurados.
          items:
            $ref: '#/components/schemas/InsuranceHousingInsuredObject'
        coverages:    
          type: array
          description: Lista que agrupa os dados das coberturas.
          items:
            $ref: '#/components/schemas/InsuranceHousingCoverage'
        coinsuranceRetainedPercentage:
          description: "Percentual Retido em Cosseguro (Quando há cosseguro)"
          type: string
          pattern: '^100\.0{1,9}$|^\d{1,2}\.\d{1,9}$' 
          example: '10.00'
        coinsurers:
          type: array
          description: Lista que agrupa os dados dos cosseguros.
          items:
            $ref: '#/components/schemas/Coinsurer'
        branchInfo:
          $ref: '#/components/schemas/InsuranceHousingSpecificPolicyInfo'
    PrincipalInfo:
      type: object
      required:
        - identification
        - identificationType
        - name
        - postCode
        - city
        - state
        - country
        - address
      properties:
        identification:
          description: Documento de Identificação do Tomador/Garantidor
          type: string
          maxLength: 60
          example: "12345678900"
        identificationType:
          description: Tipo de Documento do Tomador/Garantidor
          type: string
          enum: [
            CPF,
            CNPJ,
            OUTROS
          ]
          example: CPF
        identificationTypeOthers:
          description: Campo de detalhamento para quando a opcao do tipo de documento do Tomador/Garantidor for OUTROS
          type: string
          maxLength: 100
          example: RNE
        name:
          description: Nome ou Razão Social do Tomador/Garantidor
          type: string
          maxLength: 60
          example: Nome Sobrenome
        postCode:
          description: Código Postal do Tomador/Garantidor
          type: string
          maxLength: 60
          example: "10000000"
        email:
          description: E-mail do Tomador/Garantidor (caso possua)
          type: string
          pattern: ^\S+@\S+\.\S+$
          maxLength: 256
        city:
          description: Cidade do Tomador/Garantidor (por extenso)
          type: string
          maxLength: 60
        state:
          description: Estado do Tomador/Garantidor (por extenso)
          type: string
          example: AC
          enum: ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO', 'BR', 'XX']
        country:
          description: País do Tomador/Garantidor (de acordo com o código "alpha3" do ISO-3166)
          type: string
          enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
          example: BRA 
        address:
          description: Endereço do Tomador/Garantidor (restante do endereço, excluindo cidade, estado e país)
          type: string
          maxLength: 60
        addressAdditionalInfo:
          description: Complemento do endereço do Tomador/Garantidor.
          type: string
          maxLength: 30
          example: Fundos
    PersonalInfo:
      type: object
      required:
        - identification
        - identificationType
        - name
        - postCode
        - birthDate
        - city
        - state
        - country
        - address
      properties:
        identification:
          description: Documento de Identificação da Pessoa
          type: string
          maxLength: 60
          example: "12345678900"
        identificationType:
          description: Tipo de Documento da Pessoa
          type: string
          enum: [
            CPF,
            CNPJ,
            OUTROS
          ]
          example: CPF
        identificationTypeOthers:
          description: Campo de detalhamento para quando a opcao do tipo de documento do segurado for OUTROS
          type: string
          maxLength: 100
          example: RNE
        name:
          description: Nome ou Razão Social do segurado
          type: string
          maxLength: 60
          example: Nome Sobrenome
        birthDate:
          description: Data de nascimento do segurado
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '1999-06-12'
        postCode:
          description: Código Postal do segurado
          type: string
          maxLength: 60
          example: "10000000"
        email:
          description: E-mail do segurado (caso possua)
          type: string
          pattern: ^\S+@\S+\.\S+$
          maxLength: 256
        city:
          description: Cidade do segurado (por extenso)
          type: string
          maxLength: 60
        state:
          description: Estado do segurado (por extenso)
          type: string
          example: AC
          enum: ['AC', 'AL', 'AP', 'AM', 'BA', 'CE', 'DF', 'ES', 'GO', 'MA', 'MT', 'MS', 'MG', 'PA', 'PB', 'PR', 'PE', 'PI', 'RJ', 'RN', 'RS', 'RO', 'RR', 'SC', 'SP', 'SE', 'TO', 'BR', 'XX']
        country:
          description: País do segurado (de acordo com o código "alpha3" do ISO-3166)
          type: string
          enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
          example: BRA 
        address:
          description: Endereço da Pessoa (restante do endereço, excluindo cidade, estado e país)
          type: string
          maxLength: 60
    BeneficiaryInfo:
      type: object
      required:
        - identification
        - identificationType
        - name
      properties:
        identification:
          description: Documento de Identificação do Beneficiário
          type: string
          maxLength: 60
          example: "12345678900"
        identificationType:
          description: Tipo de Documento do Beneficiário
          type: string
          enum: [
            CPF,
            CNPJ,
            OUTROS
          ]
          example: CPF
        identificationTypeOthers:
          description: Campo de detalhamento para quando a opcao do tipo de documento do beneficiário for OUTROS
          type: string
          maxLength: 100
          example: RNE
        name:
          description: Nome ou Razão Social do Beneficiário
          type: string
          maxLength: 60
          example: Nome Sobrenome
    Intermediary:
      type: object
      required:
        - type
        - name
      properties:
        type:
          description: Tipo do Intermediador
          type: string
          enum: [ 
            CORRETOR,
            REPRESENTANTE,
            ESTIPULANTE_AVERBADOR_INSTITUIDOR,
            CORRESPONDENTE,
            AGENTE_DE_MICROSSEGUROS,
            OUTROS
          ]
          example: REPRESENTANTE
        typeOthers:
          description: Descricao do Tipo do Intermediador quando for informada a opcao OUTROS
          type: string
          maxLength: 100
        identification:
          description: Documento de Identificação do Intermediador(a) (Caso Tipo de Intermediador não seja CORRETOR ou quando for CORRETOR, porém o identificador do intermediador não seja informado)
          type: string
          maxLength: 60
          pattern: '^\d{1,60}$'
          example: "12345678900"
        brokerId:
          description: Identificador do intermediador da apólice - código Susep do corretor(a) (Caso Tipo de Intermediador for CORRETOR)
          type: string
          pattern: ^\d{9}$
        identificationType:
          description: Tipo de Documento do Intermediador(a) (Caso Tipo de Intermediador não seja CORRETOR ou quando for CORRETOR, porém o identificador do intermediador não seja informado)
          type: string
          enum: [
            CPF,
            CNPJ,
            OUTROS
          ]
          example: CPF
        identificationTypeOthers:
          description: Campo de detalhamento para quando a opcao do tipo de documento do intermediador(a) for OUTROS
          type: string
          maxLength: 100
          example: RNE
        name:
          description: Nome ou Razão Social da Intermediador
          type: string
          maxLength: 60
          example: Nome Sobrenome
        postCode:
          description: Código Postal da Intermediador (Caso Tipo de Intermediador for ESTIPULANTE) 
          type: string
          maxLength: 60
          example: "10000000"
        city:
          description: Cidade da Intermediador (por extenso; Caso Tipo de Intermediador for ESTIPULANTE)
          type: string
          maxLength: 60
        state:
          description: Estado da Intermediador (por extenso; Caso Tipo de Intermediador for ESTIPULANTE)
          type: string
          maxLength: 60
        country:
          description: País da Intermediador (de acordo com o código "alpha3" do ISO-3166; Caso Tipo de Intermediador for ESTIPULANTE)
          type: string
          enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
          example: BRA 
        address:
          description: Endereço da Intermediador (restante do do endereço, excluindo cidade, estado e país; Caso Tipo de Intermediador for ESTIPULANTE)
          type: string
          maxLength: 60
    InsuranceHousingInsuredObject:
      type: object
      required:
        - type
        - description
        - coverages
      properties:
        identification:
          type: string
          maxLength: 100
          description: "Identificador do objeto segurado(Quando o Tipo de Objeto Segurado for diferente de PESSOA). Obs.: Para Fiança Locatícia, é a identificação do Contrato de Locação."
        type:
          type: string
          description: Tipo do objeto segurado
          enum: [CONTRATO,
                PROCESSO_ADMINISTRATIVO,
                PROCESSO_JUDICIAL,
                AUTOMOVEL,
                CONDUTOR,
                FROTA,
                PESSOA,
                OUTROS]
        typeAdditionalInfo:
          type: string
          maxLength: 100
          description: "Descrição do tipo do objeto segurado(caso tipo de objeto segurado for outros)."
        description: 
          type: string
          maxLength: 1024
          description: Descrição do objeto segurado 
        amount:
          $ref: '#/components/schemas/AmountDetails'
        coverages:
          type: array
          items:
            $ref: '#/components/schemas/InsuranceHousingInsuredObjectCoverage'
    InsuranceHousingInsuredObjectCoverage:
      type: object
      required:
        - branch
        - code
        - susepProcessNumber
        - LMI
        - termStartDate
        - termEndDate
        - feature
        - type
        - premiumPeriodicity
      properties:
        branch:
          type: string
          maxLength: 4
          example: '0111'
          description: Grupo e Ramo da Cobertura (Conforme regulamentação Susep vigente)
        code:
            type: string
            description: Código da cobertura, conforme Anexo II do Manual de Escopo de Dados
            enum: [
              DANOS_ELETRICOS,
              DANOS_FISICOS_AO_CONTEUDO,
              DANOS_FISICOS_AO_IMOVEL,
              MORTE_E_INVALIDEZ_TOTAL_E_PERMANENTE,
              PAGAMENTO_DE_ALUGUEL,
              RESPONSABILIDADE_CIVIL_DO_CONSTRUTOR,
              ROUBO_E_FURTO_AO_CONTEUDO,
              OUTRAS
            ]
        description:
          type: string
          maxLength: 500
          description: "Descrição / Nome da Cobertura (Obrigatório quando o campo 'Codigo' for preenchido com 'Outras')"
        internalCode:
          type: string
          maxLength: 500
          description: "Código interno da cobertura da seguradora(obrigatório se houver)"
        susepProcessNumber:
            type: string
            maxLength: 50
        LMI:          
          description: Valor Limite Máximo de Indenização (LMI).
          allOf:
            - $ref: '#/components/schemas/AmountDetails'
        isLMISublimit:
          type: boolean
          description: Limite máximo de indenização (LMI) é sublimite (Caso aplicável)
        termStartDate: 
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
          description: "Data de início de vigência da cobertura"
        termEndDate:  
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
          description: "Data de fim de vigência da cobertura"
        isMainCoverage:
          type: boolean
          description: "Cobertura Principal"
        feature:
          type: string
          description: "Característica da cobertura"
          enum: [MASSIFICADOS,
                MASSIFICADOS_MICROSEGUROS,
                GRANDES_RISCOS]
        type:    
          type: string
          description: "Tipo de cobertura"
          enum: [PARAMETRICO,
                INTERMITENTE,
                REGULAR_COMUM,
                CAPITAL_GLOBAL,
                PARAMETRICO_E_INTERMITENTE]    
        gracePeriod:
          type: integer
          maxLength: 5
          description: "Período de carência. OBS: Obrigatório, se houver"       
        gracePeriodicity:
          type: string
          description: "Periodicidade da carência. OBS: Obrigatório, se houver"
          enum: [DIA,
                MES,
                ANO]     
        gracePeriodCountingMethod:   
          type: string
          description: "Indicador de dias úteis ou corridos da carência. OBS: Obrigatório, se houver"
          enum: [DIAS_UTEIS,
                DIAS_CORRIDOS] 
        gracePeriodStartDate:            
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
          description: "Data de início da carência. OBS: Obrigatório, se houver"
        gracePeriodEndDate:            
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
          description: "Data de fim da carência. OBS: Obrigatório, se houver"
        premiumPeriodicity:
          description: Periodicidade de pagamento do premio
          type: string
          enum: [MENSAL,
                BIMESTRAL,
                TRIMESTRAL,
                QUADRIMESTRAL,
                SEMESTRAL,
                ANUAL,
                ESPORADICA,
                PAGAMENTO_UNICO,
                OUTROS]
        premiumPeriodicityOthers:
          description: Descricao da Periodicidade de pagamento do premio quando for informada a opcao OUTROS
          type: string
          maxLength: 100  
    InsuranceHousingCoverage:
      type: object
      required:
        - branch
        - code
      minProperties: 3
      properties:
        branch:
          description: Grupo e ramo da cobertura
          type: string
          maxLength: 4
          example: '0111'
        code:
            type: string
            description: Código da cobertura, conforme Anexo II do Manual de Escopo de Dados
            enum: [
              DANOS_ELETRICOS,
              DANOS_FISICOS_AO_CONTEUDO,
              DANOS_FISICOS_AO_IMOVEL,
              MORTE_E_INVALIDEZ_TOTAL_E_PERMANENTE,
              PAGAMENTO_DE_ALUGUEL,
              RESPONSABILIDADE_CIVIL_DO_CONSTRUTOR,
              ROUBO_E_FURTO_AO_CONTEUDO,
              OUTRAS
            ]
        description:
          description: Descrição / Nome da Cobertura (Caso Código da Cobertura for "OUTRAS")
          type: string
          maxLength: 500
        deductible:
          $ref: '#/components/schemas/Deductible'
        POS:
          $ref: '#/components/schemas/POS'
    Deductible:
      type: object
      description: Informações de franquia
      required:
        - type
        - amount
        - period
        - periodicity
        - periodStartDate
        - periodEndDate
        - description
      properties:
        type:
          description: Tipo de Franquia
          type: string
          enum: [
            REDUZIDA,
            NORMAL,
            MAJORADA,
            DEDUTIVEL,
            OUTROS
          ]
          example: DEDUTIVEL
        typeAdditionalInfo:
          description: Descriçao do Tipo de Franquia (Caso Tipo de Franquia for "OUTROS")
          type: string
          maxLength: 500
        amount:
          $ref: '#/components/schemas/AmountDetails'
        period:
          description: Prazo da Franquia
          type: integer
          maxLength: 5
          example: 10
        periodicity:
          description: Periodicidade da Franquia
          type: string
          enum: [
            DIA,
            MES,
            ANO
          ]
          example: DIA
        periodCountingMethod:
          description: Indicador de Dias Úteis ou Corridos (Caso aplicável)
          type: string
          enum: [
            DIAS_UTEIS,
            DIAS_CORRIDOS
          ]
          example: DIAS_UTEIS
        periodStartDate:
          description: Data de Início da Franquia
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-05-16'
        periodEndDate:
          description: Data de Fim da Franquia
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-05-17'
        description:
          description: Descrição da Franquia
          type: string
          maxLength: 60
          example: Franquia de exemplo
    POS:
      type: object
      description: Informações de franquia
      required:
        - applicationType
      properties:
        applicationType:
          description: Forma de Aplicação do POS
          type: string
          enum: [
            VALOR,
            PERCENTUAL,
            OUTROS
          ]
          example: VALOR
        applicationTypeOthers:
          description: Descrição da Forma de Aplicação do POS (Obrigatório caso Forma de Aplicação do POS for outros). 
          type: string
        description:
          description: Descrição do POS
          type: string
          maxLength: 60
          example: "Descrição de exemplo"
        minValue:
          $ref: '#/components/schemas/AmountDetails'
        maxValue:
          $ref: '#/components/schemas/AmountDetails'
        percentage:
          $ref: '#/components/schemas/AmountDetails'
        valueOthers: 
          $ref: '#/components/schemas/AmountDetails'  
    Coinsurer:
      type: object
      required:
        - identification
        - cededPercentage
      properties:
        identification:
          description: "Identificação da congênere, cessionário do cosseguro. Obs: Obrigatório quando há cosseguro"
          type: string
          maxLength: 60
        cededPercentage:
          description: "Percentual cedido para a congênere para contratos de cosseguro cedido. Obs: Obrigatório quando há cosseguro"
          type: string
          pattern: '^100\.0{1,9}$|^\d{1,2}\.\d{1,9}$'
          example: '10.00'
    InsuranceHousingPremium:
      type: object
      description: Objeto que agrupa dados de prêmio.
      required:
        - amount
        - paymentsQuantity
        - coverages
        - payments
      properties:
        paymentsQuantity:
          description: Quantidade de parcelas do prêmio do contrato
          type: integer
          maxLength: 3
          example: 4
        amount:
          $ref: '#/components/schemas/AmountDetails'
        coverages:
          type: array
          description: Lista que agrupa os dados de coberturas.
          items:
            $ref: '#/components/schemas/InsuranceHousingPremiumCoverage'
        payments:
          type: array
          description: Lista que agrupa os dados de pagamentos.
          items:
            $ref: '#/components/schemas/Payment'
    InsuranceHousingPremiumCoverage:
      type: object
      required:
        - branch
        - code
        - premiumAmount
      properties:
        branch:
          description: Grupo e ramo da cobertura
          type: string
          maxLength: 4
          example: '0111'
        code:
            type: string
            description: Código da cobertura, conforme Anexo II do Manual de Escopo de Dados
            enum: [
              DANOS_ELETRICOS,
              DANOS_FISICOS_AO_CONTEUDO,
              DANOS_FISICOS_AO_IMOVEL,
              MORTE_E_INVALIDEZ_TOTAL_E_PERMANENTE,
              PAGAMENTO_DE_ALUGUEL,
              RESPONSABILIDADE_CIVIL_DO_CONSTRUTOR,
              ROUBO_E_FURTO_AO_CONTEUDO,
              OUTRAS
            ]
        description:
          description: Descrição / Nome da Cobertura (Caso Código da Cobertura for "OUTRAS")
          type: string
          maxLength: 500
        premiumAmount:
          $ref: '#/components/schemas/AmountDetails'
    Payment:
      type: object
      required:
        - movementDate
        - movementType
        - movementPaymentsNumber
        - amount
        - maturityDate
      properties:
        movementDate:
          description: Data do movimento de prêmio
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        movementType:
          description: Tipo do Movimento
          type: string
          enum: [LIQUIDACAO_DE_PREMIO,
                LIQUIDACAO_DE_RESTITUICAO_DE_PREMIO,
                ESTORNO_DE_PREMIO,
                ESTORNO_DE_RESTITUICAO_DE_PREMIO,
                EMISSAO_DE_PREMIO,
                CANCELAMENTO_DE_PARCELA,
                EMISSAO_DE_RESTITUICAO_DE_PREMIO,
                REABERTURA_DE_PARCELA,
                BAIXA_POR_PERDA,
                CANCELAMENTO_DE_PREMIO_E_PARCELA]
          example: LIQUIDACAO_DE_PREMIO
        movementOrigin:
          description: "Origem do Movimento. Obs: Obrigatório caso Tipo de Movimento for LIQUIDACAO_DE_PREMIO e ESTORNO_DE_PREMIO"
          type: string
          enum: [EMISSAO_DIRETA,
            EMISSAO_ACEITA_DE_COSSEGURO,
            EMISSAO_CEDIDA_DE_COSSEGURO]
          example: EMISSAO_DIRETA
        movementPaymentsNumber:
          description: Identificador da parcela do movimento
          type: string
          maxLength: 3
        amount:
          $ref: '#/components/schemas/AmountDetails'
        maturityDate:
          description: Data de Vencimento da Parcela
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        tellerId:
          description: "Documento do Pagador/Recebedor Obs: Obrigatório caso Tipo de Movimento for  LIQUIDACAO_DE_PREMIO e LIQUIDACAO_DE_CUSTO_DE_AQUISICAO"
          type: string
          maxLength: 1024
        tellerIdType:
          description: "Tipo do Documento do Pagador/Recebedor Obs: Obrigatório caso Tipo de Movimento for  LIQUIDACAO_DE_PREMIO e LIQUIDACAO_DE_CUSTO_DE_AQUISICAO"
          type: string
          enum: [CPF,
            CNPJ,
            OUTROS]
          example: CPF
        tellerIdOthers:
          description: Descricao do campo de tipo do documento do pagador/recebedor quando a opcao escolhida for OUTROS
          type: string
          maxLength: 100
          example: RNE
        tellerName:
          description: "Nome ou Razão Social do Pagador/Recebedor Obs: Obrigatório caso Tipo de Movimento for  LIQUIDACAO_DE_PREMIO e LIQUIDACAO_DE_CUSTO_DE_AQUISICAO"
          type: string
          maxLength: 100
        financialInstitutionCode:
          description: "Código da Instituição Financeiro do Pagamento Obs: Obrigatório caso Tipo de Movimento for  LIQUIDACAO_DE_PREMIO e LIQUIDACAO_DE_CUSTO_DE_AQUISICAO"
          type: string
          maxLength: 100
        paymentType:
          description: "Meio de Pagamento Obs: Obrigatório caso Tipo de Movimento for  LIQUIDACAO_DE_PREMIO e LIQUIDACAO_DE_CUSTO_DE_AQUISICAO"
          type: string
          enum: [BOLETO,
                TED,
                TEF,
                CARTAO,
                COMUNICABILIDADE,
                DOC,
                CHEQUE,
                DESCONTO_EM_FOLHA,  
                PIX,
                DINHEIRO_EM_ESPECIE,
                OUTROS]
          example: BOLETO
        paymentTypeOthers:
          description: Campo de detalhamento para quando a opcao do meio de pagamento for OUTROS
          type: string
          maxLength: 100
    InsuranceHousingClaim:
      type: object
      description: Objeto que agrupa dados de sinistro.
      required:
        - identification
        - status
        - statusAlterationDate
        - occurrenceDate
        - warningDate
        - amount
        - coverages
      properties:
        identification:
          description: Identificador do processo de sinistro
          type: string
          maxLength: 50
        documentationDeliveryDate:
          description: Data de entrega da documentação completa (Caso tenha ocorrido toda a entrega)
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        status:
          description: Status do sinistro     
          type: string
          example: ABERTO
          enum: [ABERTO,
                ENCERRADO_COM_INDENIZACAO,
                ENCERRADO_SEM_INDENIZACAO,
                REABERTO,
                CANCELADO_POR_ERRO_OPERACIONAL,
                AVALIACAO_INICIAL]
        statusAlterationDate:
          description: Data de alteração do status do sinistro
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        occurrenceDate:
          description: Data de ocorrência do sinistro
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        warningDate:
          description: Data de aviso do sinistro
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        thirdPartyClaimDate:
          description: Data de reclamação do terceiro
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        amount:
          $ref: '#/components/schemas/AmountDetails'
        denialJustification:
          description: "Justificativa da Negativa(Caso Status do Sinistro for 'ENCERRADO_SEM_INDENIZACAO')"
          type: string
          example: RISCO_EXCLUIDO
          enum: [RISCO_EXCLUIDO,
            RISCO_AGRAVADO,
            SEM_DOCUMENTACAO,
            DOCUMENTACAO_INCOMPLETA,
            PRESCRICAO,
            FORA_COBERTURA,
            OUTROS]
        denialJustificationDescription:
          description: "Descrição da Justificativa da Negativa(Caso Justificativa da Negativa for 'OUTROS')"
          type: string
          maxLength: 100  
        coverages:
          type: array
          description: Lista que agrupa os dados de coberturas.
          items:
            $ref: '#/components/schemas/InsuranceHousingClaimCoverage'   
    InsuranceHousingClaimCoverage:
      type: object
      required:
        - branch
        - code
      properties:
        insuredObjectId:
          description: Identificador do Objeto Segurado (Caso aplicável)
          type: string
          maxLength: 100
        branch:
          description: Grupo e ramo da cobertura
          type: string
          maxLength: 4
          example: '0111'
        code:
            type: string
            description: Código da cobertura, conforme Anexo II do Manual de Escopo de Dados
            example: DANOS_ELETRICOS
            enum: [
              DANOS_ELETRICOS,
              DANOS_FISICOS_AO_CONTEUDO,
              DANOS_FISICOS_AO_IMOVEL,
              MORTE_E_INVALIDEZ_TOTAL_E_PERMANENTE,
              PAGAMENTO_DE_ALUGUEL,
              RESPONSABILIDADE_CIVIL_DO_CONSTRUTOR,
              ROUBO_E_FURTO_AO_CONTEUDO,
              OUTRAS
            ]
        description:
          description: Descrição / Nome da Cobertura (Caso Código da Cobertura for "OUTRAS")
          type: string
          maxLength: 500
        warningDate:
          description: Data de Aviso do Sinistro por Cobertura (Caso aplicável)
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
        thirdPartyClaimDate:
          description: Data de Reclamação do Terceiro por Cobertura (Caso aplicável)
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
    InsuranceHousingSpecificPolicyInfo:
      description: Informações do Anexo Específico
      type: object
      required:
        - insuredObjects
        - insureds
      properties:
        insuredObjects:
          description: Lista que agrupa os dados de objetos segurados.
          type: array
          items:
            $ref: '#/components/schemas/InsuranceHousingSpecificInsuredObject'
        insureds:
          type: array
          description: Lista que agrupa os dados dos segurados do Anexo Específico.
          items:
            $ref: '#/components/schemas/InsuranceHousingSpecificInsured'
    InsuranceHousingSpecificInsuredObject:
      type: object
      required:
        - identification
        - propertyType
        - postCode
        - interestRate
        - costRate
        - updateIndex
        - lenders
      properties:
        identification:
          description: Identificador do objeto segurado
          type: string
          maxLength: 100
        propertyType:
          description:  Tipo do imóvel
          type: string
          enum: [
            CASA,
            APARTAMENTO,
            COMERCIAL,
            OUTROS
          ]
          example: CASA
        propertyTypeAdditionalInfo:
          description: Descrição do tipo do imóvel (Campo para em caso de Tipo do imóvel OUTROS)
          type: string
          maxLength: 256
        postCode:
          description: CEP do imóvel
          type: string
          maxLength: 60
          example: "10000000"
        interestRate:
          description: Taxa de juros anual
          type: string
          pattern: '^\d{1,3}\.\d{1,9}$'
          example: '10.00'
        costRate:
          description: Taxa do custo efetivo do seguro habitacional
          type: string
          pattern: '^\d{1,3}\.\d{1,9}$'
          example: '10.00'
        updateIndex:
          type: string
          description: Índice de Atualização do Financiamento
          example: IPCA_IBGE
          enum: [IPCA_IBGE, IGPM_FGV, IGPDI_FGV, IPC_FGV, IPC_FIPE, INPC_IBGE, INCC_FGV, TR_BC, OUTROS]
        updateIndexOthers:
          type: string
          description: Descrição do Índice de Atualização do Financiamento (Caso Índice de Atualização do Financiamento for outros)
          maxLength: 200
          example: Índice de atualização
        lenders:
          description: Identificação dos financiadores
          type: array
          items:
            type: object
            required:
              - companyName
              - cnpjNumber
            properties:
              companyName:
                description: Razão Social do financiador
                type: string
                maxLength: 200
              cnpjNumber:
                description: CNPJ do financiador
                type: string
                maxLength: 14
                pattern: '^\d{14}$'
                example: "12345678901234"
    InsuranceHousingSpecificInsured:
      type: object
      required:
        - identification
        - identificationType
      properties:
        identification:
          description: Documento de Identificação da Pessoa
          type: string
          maxLength: 60
          example: "12345678900"
        identificationType:
          description: Tipo de Documento da Pessoa
          type: string
          enum: [
            CPF,
            CNPJ,
            OUTROS
          ]
          example: CPF
        identificationTypeOthers:
          description: Campo de detalhamento para quando a opcao do tipo de documento do intermediador(a) for OUTROS
          type: string
          maxLength: 100
          example: RNE
        birthDate:
          description: Data de nascimento do segurado (caso cobertura do ramo habitacional e Pessoa Física com "Tipo documento CPF ou Outros")
          type: string
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2022-12-31'
              
    HistoricalPersonalComplimentaryInformationData:
      $ref: "#/components/schemas/PersonalComplimentaryInformationData"
    HistoricalPersonalIdentificationData:
      $ref: "#/components/schemas/PersonalIdentificationData"
    PersonalProcurator:
      type: object
      required:
        - nature
      properties:
        nature:
          $ref: '#/components/schemas/EnumProcuratorsNaturePersonal'
        cpfNumber:
          type: string
          maxLength: 11
          pattern: '^\d{11}$'
          example: '73677831148'
          description: '(Caso Natureza dos poderes vigentes de representante for “Representante legal” ou “Procurador”) CPF do representante'
        civilName:
          type: string
          maxLength: 70
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: Elza Milena Stefany Teixeira
          description: '(Caso Natureza dos poderes vigentes de representante for “Representante legal” ou “Procurador”) Nome ou razão social do representante'
        socialName:
          type: string
          maxLength: 70
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: 'string'
          description: '(Caso Natureza dos poderes vigentes de representante for “Representante legal” ou “Procurador”) Nome social do representante'
      additionalProperties: false
    HistoricalPersonalQualificationData:
      $ref: "#/components/schemas/PersonalQualificationData"
    
    HistoricalBusinessComplimentaryInformationData:
      $ref: "#/components/schemas/BusinessComplimentaryInformationData"
    HistoricalBusinessIdentificationData:
      $ref: "#/components/schemas/BusinessIdentificationData"
    BusinessProcurator:
      type: object
      required:
        - nature
      properties:
        nature:
          $ref: '#/components/schemas/EnumProcuratorsNatureBusiness'
        cnpjCpfNumber:
          type: string
          maxLength: 14
          pattern: '^\d{11}$|^\d{14}$'
          example: '73677831148'
          description: '(Caso Natureza dos poderes vigentes de representantefor “Representante legal” ou “Procurador”) CPF ou CNPJ do representante'
        civilName:
          type: string
          maxLength: 70
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: Elza Milena Stefany Teixeira
          description: '(Caso Natureza dos poderes vigentes de representante for “Representante legal” ou “Procurador”) Nome ou razão social do representante'
        socialName:
          type: string
          maxLength: 70
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: 'string'
          description: '(Caso Natureza dos poderes vigentes de representante for “Representante legal” ou “Procurador”) Nome social do representante'  
      additionalProperties: false
    HistoricalBusinessQualificationData:
      $ref: "#/components/schemas/BusinessQualificationData"
    
    BusinessComplimentaryInformationData:
      type: object
      description: 'Objeto que reúne as informações relativas ao relacionamento do cliente junto à Instituição. Considera-se relacionamento as informações que permitam conhecer desde quando a pessoa consultada é cliente da instituição, bem como um indicador dos produtos e serviços que ela consome atualmente e seus representantes'
      required:
        - startDate
        - updateDateTime
        - productsServices
      properties:
        updateDateTime:
          type: string
          format: date-time
          maxLength: 20
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2020-07-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco de Relacionamento, conforme especificação RFC-3339, formato UTC.'
        startDate:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2014-05-21'
          description: Data mais antiga de início de relacionamento, considerando todos os contratos (vigentes e não vigentes). Os contratos não vigentes considerados devem contemplar, no mínimo o período indicado na Tabela 4.1.
        relationshipBeginning:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2014-05-21'
          description: Campo deve ser preenchido com a data da apólice/contrato vigente mais antiga. (caso haja contrato vigente)
        productsServices:
          type: array
          minItems: 1
          items:
            type: object
            description: Lista de todos os contratos vigentes e não vigentes.
            required: 
              - contract
              - type
            properties:
              contract:
                type: string
                maxLength: 60
                description: Campo deve conter todos os contratos do cliente nos últimos 12 meses (número da apólice individual ou contrato ou certificado ou bilhete)
              type:
                $ref: '#/components/schemas/EnumProductServiceType'
              insuranceLineCode:
                type: string
                maxLength: 4
                example: '6272'
                description: Indicar para cada contrato, caso aplicável, o código do ramo, conforme listagem de códigos definida em regulamentação específica sobre contabilização em ramos. - Caso tipo de produto do contrato for “Seguros de Danos.  
              procurators:
                type: array
                items:
                  $ref: '#/components/schemas/BusinessProcurator'
                minItems: 1
                description: Lista dos representantes. De preenchimento obrigatório se houver representante.
          additionalProperties: false
      additionalProperties: false
    BusinessIdentificationData:
      type: object
      description: Conjunto de informações relativas a Identificação ou seja a ação e o efeito de identificar de forma única a pessoa jurídica através de seus dados cadastrais
      required:
        - updateDateTime
        - brandName
        - companyInfo
        - businessName
        - document
        - contact
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco, conforme especificação RFC-3339'
        businessId:
          type: string
          maxLength: 100
          pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
          example: 578-psd-71md6971kjh-2d414
          description: Um identificador único e imutável usado para identificar o recurso cliente pessoa jurídica dentro da transmissora. Este identificador não tem significado para o cliente que deu o consentimento
        brandName:
          type: string
          maxLength: 80
          pattern: '[\w\W\s]*'
          example: Organização A
          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
        companyInfo:  
          type: object
          description: Informações referente a sociedade a qual a marca pertence.
          required:
          - name
          - cnpjNumber
          properties:
              cnpjNumber:
                  type: string
                  pattern: '\d{14}|^NA$'
                  maxLength: 14
                  example: '01773247000563'
                  description: |
                    Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. 
                    Deve-se ter apenas os números do CNPJ, sem máscara
              name:
                  type: string
                  maxLength: 70
                  pattern: '[\w\W\s]*'
                  example: Empresa da Organização A
                  description: Nome da Instituição, pertencente à Marca, responsável pela Dependência
        businessName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Luiza e Benjamin Assessoria Jurídica Ltda
          description: Razão social da empresa consultada é o termo registrado sob o qual uma pessoa jurídica (PJ) se individualiza e exerce suas atividades. Também pode ser chamada por denominação social ou firma empresarial
        businessTradeName:
          type: string
          maxLength: 70
          pattern: '[\w\W\s]*'
          example: Organização B
          description: Nome fantasia - Se Aplicável
        incorporationDate:
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2012-05-21'
          description: 'Data de constituição, conforme especificação RFC-3339' 
        document:
          $ref: '#/components/schemas/BusinessDocument'
        type:
          type: string
          example: PRIVADO
          enum: 
            - PRIVADO 
            - PUBLICO 
          description: Campo deve ser preenchido com o Tipo Pessoa Jurídica
        contact:
          $ref: '#/components/schemas/BusinessContact'
        parties:
          $ref: '#/components/schemas/BusinessParties'
    BusinessQualificationData:
      type: object
      description: 'Objeto que reúne as informações relativas ao processo de qualificação.'
      required:
        - updateDateTime
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco, conforme especificação RFC-3339'
        mainBranch:
          type: string
          maxLength: 20
          description: 'Código do ramo da atividade da empresa consultada, segundo padrão CNAE (Classificação Nacional de Atividades Econômicas).'
        secondaryBranch:
          type: string
          maxLength: 200
          description: Códigos relativos às demais atividades econômicas da empresa, segundo padrão CNAE (Classificação Nacional de Atividades Econômicas). Se disponível.
        informedRevenue:
          type: object
          description: Objeto que agrupa dados de receita informada.
          properties:
            incomeFrequency:
              $ref: '#/components/schemas/EnumIncomeFrequency'
            currency:
              type: string
              enum: [ AFN,AFA,ALL,ALK,DZD,USD,EUR,ADP,ESP,FRF,AOA,AOK,AON,AOR,XCD,ARS,ARA,ARP,ARY,AMD,RUR,AWG,AUD,ATS,AZN,AYM,AZM,BSD,BHD,BDT,BBD,BYN,BYB,BYR,BEC,BEF,BEL,BZD,XOF,BMD,INR,BTN,BOP,BOB,BOV,BAM,BAD,BWP,NOK,BRL,BRB,BRC,BRE,BRN,BRR,BND,BGN,BGJ,BGK,BGL,BUK,BIF,CVE,KHR,XAF,CAD,KYD,CLP,CLF,CNY,COP,COU,KMF,CDF,NZD,CRC,HRK,HRD,CUP,CUC,ANG,CYP,CZK,CSJ,CSK,DKK,DJF,DOP,ECS,ECV,EGP,SVC,GQE,ERN,EEK,SZL,ETB,XEU,FKP,FJD,FIM,XPF,GMD,GEL,GEK,DDM,DEM,GHS,GHC,GHP,GIP,GRD,GTQ,GBP,GNF,GNE,GNS,GWE,GWP,GYD,HTG,ITL,HNL,HKD,HUF,ISK,ISJ,IDR,XDR,IRR,IQD,IEP,ILS,ILP,ILR,JMD,JPY,JOD,KZT,KES,KPW,KRW,KWD,KGS,LAJ,LAK,LVL,LVR,LBP,LSL,ZAR,LSM,ZAL,LRD,LYD,CHF,LTL,LTT,LUC,LUF,LUL,MOP,MGA,MGF,MWK,MYR,MVR,MVQ,MLF,MTL,MTP,MRU,MRO,MUR,XUA,MXN,MXV,MXP,MDL,MNT,MAD,MZN,MZE,MZM,MMK,NAD,NPR,NLG,NIO,NIC,NGN,MKD,OMR,PKR,PAB,PGK,PYG,PEN,PEH,PEI,PES,PHP,PLN,PLZ,PTE,QAR,RON,ROK,ROL,RUB,RWF,SHP,WST,STN,STD,SAR,RSD,CSD,SCR,SLL,SGD,XSU,SKK,SIT,SBD,SOS,SSP,SDG,RHD,ESA,ESB,LKR,SDD,SDP,SRD,SRG,SEK,CHE,CHW,CHC,SYP,TWD,TJS,TJR,TZS,THB,TPE,TOP,TTD,TND,TRY,TRL,TMT,TMM,UGX,UGS,UGW,UAH,UAK,SUR,AED,USS,USN,UYU,UYI,UYW,UYN,UYP,UZS,VUV,VEB,VEF,VES,VND,VNC,YER,YDD,YUD,YUM,YUN,ZRN,ZRZ,ZMW,ZMK,ZWL,ZWC,ZWD,ZWN,ZWR,XBA,XFO,XBB,XRE,XBC,XBD,XFU,XTS,XXX,XAU,XPD,XPT,XAG ]
              example: BRL
              description: 'Moeda referente ao valor do faturamento, segundo modelo ISO-4217.'
            amount:
              type: string
              nullable: true
              pattern: '^-?\d{1,15}\.\d{2}$'
              example: '100000.04'
              description: |
                Valor do faturamento
            year:
              type: string
              format: date-fullyear
              pattern: '^\d{4}$'
              example: '2010'
              description: 'Ano de referência do faturamento, conforme especificação RFC-3339.' 
          additionalProperties: false
        informedPatrimony:
          type: object
          description: Objeto que agrupa dados de informações de patrimônio.
          properties:
            currency:
              type: string
              enum: [ AFN,AFA,ALL,ALK,DZD,USD,EUR,ADP,ESP,FRF,AOA,AOK,AON,AOR,XCD,ARS,ARA,ARP,ARY,AMD,RUR,AWG,AUD,ATS,AZN,AYM,AZM,BSD,BHD,BDT,BBD,BYN,BYB,BYR,BEC,BEF,BEL,BZD,XOF,BMD,INR,BTN,BOP,BOB,BOV,BAM,BAD,BWP,NOK,BRL,BRB,BRC,BRE,BRN,BRR,BND,BGN,BGJ,BGK,BGL,BUK,BIF,CVE,KHR,XAF,CAD,KYD,CLP,CLF,CNY,COP,COU,KMF,CDF,NZD,CRC,HRK,HRD,CUP,CUC,ANG,CYP,CZK,CSJ,CSK,DKK,DJF,DOP,ECS,ECV,EGP,SVC,GQE,ERN,EEK,SZL,ETB,XEU,FKP,FJD,FIM,XPF,GMD,GEL,GEK,DDM,DEM,GHS,GHC,GHP,GIP,GRD,GTQ,GBP,GNF,GNE,GNS,GWE,GWP,GYD,HTG,ITL,HNL,HKD,HUF,ISK,ISJ,IDR,XDR,IRR,IQD,IEP,ILS,ILP,ILR,JMD,JPY,JOD,KZT,KES,KPW,KRW,KWD,KGS,LAJ,LAK,LVL,LVR,LBP,LSL,ZAR,LSM,ZAL,LRD,LYD,CHF,LTL,LTT,LUC,LUF,LUL,MOP,MGA,MGF,MWK,MYR,MVR,MVQ,MLF,MTL,MTP,MRU,MRO,MUR,XUA,MXN,MXV,MXP,MDL,MNT,MAD,MZN,MZE,MZM,MMK,NAD,NPR,NLG,NIO,NIC,NGN,MKD,OMR,PKR,PAB,PGK,PYG,PEN,PEH,PEI,PES,PHP,PLN,PLZ,PTE,QAR,RON,ROK,ROL,RUB,RWF,SHP,WST,STN,STD,SAR,RSD,CSD,SCR,SLL,SGD,XSU,SKK,SIT,SBD,SOS,SSP,SDG,RHD,ESA,ESB,LKR,SDD,SDP,SRD,SRG,SEK,CHE,CHW,CHC,SYP,TWD,TJS,TJR,TZS,THB,TPE,TOP,TTD,TND,TRY,TRL,TMT,TMM,UGX,UGS,UGW,UAH,UAK,SUR,AED,USS,USN,UYU,UYI,UYW,UYN,UYP,UZS,VUV,VEB,VEF,VES,VND,VNC,YER,YDD,YUD,YUM,YUN,ZRN,ZRZ,ZMW,ZMK,ZWL,ZWC,ZWD,ZWN,ZWR,XBA,XFO,XBB,XRE,XBC,XBD,XFU,XTS,XXX,XAU,XPD,XPT,XAG ]
              example: BRL
              description: 'Moeda referente ao valor do patrimônio, segundo modelo ISO-4217.'
            amount:
              type: string
              nullable: true
              pattern: '^-?\d{1,15}\.\d{2}$'
              example: '100000.04'
              description: |
                Valor do patrimônio
            date:
              type: string
              maxLength: 10
              format: date
              pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
              example: '2012-05-21'
              description: 'Data de referência do patrimônio, conforme especificação RFC-3339.' 
          additionalProperties: false
      additionalProperties: false
    
    PersonalComplimentaryInformationData:
      type: object
      description: 'Objeto que reúne as informações relativas ao relacionamento do cliente junto à Instituição. Considera-se relacionamento as informações que permitam conhecer desde quando a pessoa consultada é cliente da instituição, bem como um indicador dos produtos e serviços que ela consome atualmente e seus representantes'
      required:
        - updateDateTime
        - productsServices
        - startDate
      properties:
        updateDateTime:
          type: string
          format: date-time
          maxLength: 20
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco de Relacionamento, conforme especificação RFC-3339, formato UTC.'
        startDate:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2014-05-21'
          description: Data mais antiga de início de relacionamento, considerando todos os contratos (vigentes e não vigentes). Os contratos não vigentes considerados devem contemplar, no mínimo o período indicado na Tabela 4.1.
        relationshipBeginning:
          type: string
          format: date
          maxLength: 10
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2014-05-21'
          description: Campo deve ser preenchido com a data da apólice/contrato vigente mais antiga (caso haja contrato vigente)
        productsServices:
          type: array
          minItems: 1
          items:
            type: object
            description: Lista de todos os contratos vigentes e não vigentes.
            required: 
              - contract
              - type
            properties:
              contract:
                type: string
                maxLength: 60
                description: Campo deve conter todos os contratos do cliente nos últimos 12 meses (número da apólice individual ou contrato ou certificado ou bilhete)
              type:
                $ref: '#/components/schemas/EnumProductServiceType'
              insuranceLineCode:
                type: string
                maxLength: 4
                example: '6272'
                description: Indicar para cada contrato, caso aplicável, o código do ramo, conforme listagem de códigos definida em regulamentação específica sobre contabilização em ramos. Obs - Caso tipo de produto do contrato for “Seguros de Danos”     
              procurators:
                type: array
                items:
                  $ref: '#/components/schemas/PersonalProcurator'
                minItems: 1
                description: Lista dos representantes. De preenchimento obrigatório se houver representante.
          additionalProperties: false 
      additionalProperties: false
    PersonalIdentificationData:
      type: object
      description: Conjunto de informações relativas a Identificação ou seja a ação e o efeito de identificar de forma única a pessoa natural através de seus dados cadastrais.
      required:
        - updateDateTime
        - brandName
        - companyInfo
        - civilName
        - hasBrazilianNationality
        - contact
        - cpfNumber
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco, conforme especificação RFC-3339'
        personalId:
          type: string
          pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
          maxLength: 100
          description: Um identificador único e imutável usado para identificar o recurso cliente pessoa natural dentro da transmissora. Este identificador não tem significado para o cliente que deu o consentimento
          example: 578-psd-71md6971kjh-2d414
        brandName:
          type: string
          maxLength: 80
          pattern: '[\w\W\s]*'
          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
          example: Organização A
        civilName:
          type: string
          maxLength: 70
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: Juan Kaique Cláudio Fernandes
          description: 'Nome civil completo da pessoa natural (Direito fundamental da pessoa, o nome civil é aquele atribuído à pessoa natural desde o registro de seu nascimento, com o qual será identificada por toda a sua vida, bem como após a sua morte)'
        socialName:
          type: string
          maxLength: 70
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: 'string'
          description: |
            Nome social da pessoa natural, se houver. 
            (aquele pelo qual travestis e transexuais se reconhecem, 
            bem como são identificados por sua comunidade e em seu meio social, conforme Decreto Local). 
        cpfNumber:
          type: string
          maxLength: 11
          pattern: '^\d{11}$|^NA$'
          description: |
            Número completo do CPF. Atributo que corresponde às informações mínimas exigidas pela Regulamentação em vigor. O CPF é o Cadastro de Pessoa natural.  Ele é um documento feito pela Receita Federal e serve para identificar os contribuintes. O CPF é uma numeração com 11 dígitos, que só mudam por decisão judicial. O documento é emitido pela receita federal
            Condicional a seleção de true em hasBrazilianNationality
        companyInfo:  
          type: object
          description: Informações referente a sociedade a qual a marca pertence.
          required:
            - name
            - cnpjNumber
          properties:
              cnpjNumber:
                  type: string
                  pattern: '\d{14}|^NA$'
                  maxLength: 14
                  example: '01773247000563'
                  description: |
                    Número completo do CNPJ da instituição responsável pelo Cadastro - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. 
                    Deve-se ter apenas os números do CNPJ, sem máscara
              name:
                  type: string
                  maxLength: 70
                  pattern: '[\w\W\s]*'
                  example: Empresa da Organização A
                  description: Nome da Instituição, pertencente à Marca, responsável pela Dependência
        documents:
          $ref: '#/components/schemas/PersonalDocuments'
        hasBrazilianNationality:
          type: boolean
          nullable: true
          example: false
          description: Informa se o Cliente tem nacionalidade brasileira.
        otherNationalitiesInfo:
          type: string
          example: CAN
          enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
          description: Código do pais de acordo com o código “alpha3” do ISO-3166
        otherDocuments:
          $ref: '#/components/schemas/OtherPersonalDocuments'
        contact:
          $ref: '#/components/schemas/PersonalContact'
        civilStatusCode:
          $ref: '#/components/schemas/EnumCivilStatusCode'
        sex:
          type: string
          maxLength: 20
          example: FEMININO  
        birthDate:
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0?[1-9])-(3[01]|[12][0-9]|0?[1-9])$'
          example: '2021-05-21'
          description: 'Data de nascimento, conforme especificação RFC-3339'  
        filiation:
          type: object
          description: Objeto que agrupa dados da pessoa relativa à filiação.
          properties:
            type:
              $ref: '#/components/schemas/EnumFiliationType'
            civilName:
              type: string
              maxLength: 70
              pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
              example: Marcelo Cláudio Fernandes
              description: |
                Nome civil completo da pessoa relativa à filiação.
                (Direito fundamental da pessoa, o nome civil é aquele atribuído à pessoa natural desde o registro de seu nascimento, 
                com o qual será identificada por toda a sua vida, bem como após a sua morte).
        identificationDetails:
          type: object
          description: Informações referente ao cônjuge.
          properties: 
            civilName:
              type: string
              maxLength: 70
              pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
              example: Juan Kaique Cláudio Fernandes
              description: 'Nome civil completo da pessoa natural (Direito fundamental da pessoa, o nome civil é aquele atribuído à pessoa natural desde o registro de seu nascimento, com o qual será identificada por toda a sua vida, bem como após a sua morte)'
            cpfNumber:
              type: string
              maxLength: 11
              pattern: '^\d{11}$|^NA$'
              description: |
                Número completo do CPF. Atributo que corresponde às informações mínimas exigidas pela Regulamentação em vigor. O CPF é o Cadastro de Pessoa natural.  Ele é um documento feito pela Receita Federal e serve para identificar os contribuintes. O CPF é uma numeração com 11 dígitos, que só mudam por decisão judicial. O documento é emitido pela receita federal
                Condicional a seleção de true em hasBrazilianNationality
      additionalProperties: false
    PersonalQualificationData:
      type: object
      description: 'Conjunto de informações relativas ao processo de qualificação.'
      required:
        - pepIdentification
        - updateDateTime
        - lifePensionPlans
      properties:
        updateDateTime:
          type: string
          maxLength: 20
          format: date-time
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
          description: 'Data e hora da atualização do bloco, conforme especificação RFC-3339' 
        pepIdentification:
          type: string
          description: 'Campo deve ser preenchido com a exposição política do segurado:'
          example: NAO_EXPOSTO
          enum: 
            - NAO_EXPOSTO 
            - PESSOA_POLITICAMENTE_EXPOSTA_PPE
            - PESSOA_PROXIMA_A_PESSOA_POLITICAMENTE_EXPOSTA_PPEE
            - SEM_INFORMACAO
        occupation:
          type: array
          minItems: 1
          items:
            type: object
            description: Objeto agrupador de informações relativas ocupação da pessoa natural
            properties:
              details:
                type: string
                maxLength: 100
                description: 'Ocupação'
              occupationCode:
                type: string
                maxLength: 100
                example: 'RECEITA_FEDERAL'
                description: 'Código da ocupação'
              occupationCodeType:
                type: string
                example: RFB
                enum: 
                  - RFB 
                  - CBO 
                  - OUTROS
                description: 'Tipo de código da ocupação'
        lifePensionPlans:
          type: string
          description: Condição de proponente qualificado, aplicável à contratação de planos de previdência e vida por sobrevivência
          example: SIM
          enum: 
            - SIM 
            - NAO 
            - NAO_SE_APLICA
        informedRevenue:
          type: object
          description: Objeto que agrupa dados de receita informada.
          properties:
            incomeFrequency:
              $ref: '#/components/schemas/EnumIncomeFrequency'
            currency:
              type: string
              enum: [ AFN,AFA,ALL,ALK,DZD,USD,EUR,ADP,ESP,FRF,AOA,AOK,AON,AOR,XCD,ARS,ARA,ARP,ARY,AMD,RUR,AWG,AUD,ATS,AZN,AYM,AZM,BSD,BHD,BDT,BBD,BYN,BYB,BYR,BEC,BEF,BEL,BZD,XOF,BMD,INR,BTN,BOP,BOB,BOV,BAM,BAD,BWP,NOK,BRL,BRB,BRC,BRE,BRN,BRR,BND,BGN,BGJ,BGK,BGL,BUK,BIF,CVE,KHR,XAF,CAD,KYD,CLP,CLF,CNY,COP,COU,KMF,CDF,NZD,CRC,HRK,HRD,CUP,CUC,ANG,CYP,CZK,CSJ,CSK,DKK,DJF,DOP,ECS,ECV,EGP,SVC,GQE,ERN,EEK,SZL,ETB,XEU,FKP,FJD,FIM,XPF,GMD,GEL,GEK,DDM,DEM,GHS,GHC,GHP,GIP,GRD,GTQ,GBP,GNF,GNE,GNS,GWE,GWP,GYD,HTG,ITL,HNL,HKD,HUF,ISK,ISJ,IDR,XDR,IRR,IQD,IEP,ILS,ILP,ILR,JMD,JPY,JOD,KZT,KES,KPW,KRW,KWD,KGS,LAJ,LAK,LVL,LVR,LBP,LSL,ZAR,LSM,ZAL,LRD,LYD,CHF,LTL,LTT,LUC,LUF,LUL,MOP,MGA,MGF,MWK,MYR,MVR,MVQ,MLF,MTL,MTP,MRU,MRO,MUR,XUA,MXN,MXV,MXP,MDL,MNT,MAD,MZN,MZE,MZM,MMK,NAD,NPR,NLG,NIO,NIC,NGN,MKD,OMR,PKR,PAB,PGK,PYG,PEN,PEH,PEI,PES,PHP,PLN,PLZ,PTE,QAR,RON,ROK,ROL,RUB,RWF,SHP,WST,STN,STD,SAR,RSD,CSD,SCR,SLL,SGD,XSU,SKK,SIT,SBD,SOS,SSP,SDG,RHD,ESA,ESB,LKR,SDD,SDP,SRD,SRG,SEK,CHE,CHW,CHC,SYP,TWD,TJS,TJR,TZS,THB,TPE,TOP,TTD,TND,TRY,TRL,TMT,TMM,UGX,UGS,UGW,UAH,UAK,SUR,AED,USS,USN,UYU,UYI,UYW,UYN,UYP,UZS,VUV,VEB,VEF,VES,VND,VNC,YER,YDD,YUD,YUM,YUN,ZRN,ZRZ,ZMW,ZMK,ZWL,ZWC,ZWD,ZWN,ZWR,XBA,XFO,XBB,XRE,XBC,XBD,XFU,XTS,XXX,XAU,XPD,XPT,XAG ]
              example: BRL
              description: 'Moeda referente ao valor da renda, segundo modelo ISO-4217.'
            amount:
              type: string
              nullable: true
              pattern: '^-?\d{1,15}\.\d{2}$'
              example: '100000.04'
              description: |
                Valor do rendimento
            date:
              type: string
              maxLength: 10
              format: date
              pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
              example: '2012-05-21'
              description: 'Data de referência da renda, conforme especificação RFC-3339.' 
          additionalProperties: false
        informedPatrimony:
          type: object
          description: Objeto que agrupa dados de informações de patrimônio.
          properties:
            currency:
              type: string
              enum: [ AFN,AFA,ALL,ALK,DZD,USD,EUR,ADP,ESP,FRF,AOA,AOK,AON,AOR,XCD,ARS,ARA,ARP,ARY,AMD,RUR,AWG,AUD,ATS,AZN,AYM,AZM,BSD,BHD,BDT,BBD,BYN,BYB,BYR,BEC,BEF,BEL,BZD,XOF,BMD,INR,BTN,BOP,BOB,BOV,BAM,BAD,BWP,NOK,BRL,BRB,BRC,BRE,BRN,BRR,BND,BGN,BGJ,BGK,BGL,BUK,BIF,CVE,KHR,XAF,CAD,KYD,CLP,CLF,CNY,COP,COU,KMF,CDF,NZD,CRC,HRK,HRD,CUP,CUC,ANG,CYP,CZK,CSJ,CSK,DKK,DJF,DOP,ECS,ECV,EGP,SVC,GQE,ERN,EEK,SZL,ETB,XEU,FKP,FJD,FIM,XPF,GMD,GEL,GEK,DDM,DEM,GHS,GHC,GHP,GIP,GRD,GTQ,GBP,GNF,GNE,GNS,GWE,GWP,GYD,HTG,ITL,HNL,HKD,HUF,ISK,ISJ,IDR,XDR,IRR,IQD,IEP,ILS,ILP,ILR,JMD,JPY,JOD,KZT,KES,KPW,KRW,KWD,KGS,LAJ,LAK,LVL,LVR,LBP,LSL,ZAR,LSM,ZAL,LRD,LYD,CHF,LTL,LTT,LUC,LUF,LUL,MOP,MGA,MGF,MWK,MYR,MVR,MVQ,MLF,MTL,MTP,MRU,MRO,MUR,XUA,MXN,MXV,MXP,MDL,MNT,MAD,MZN,MZE,MZM,MMK,NAD,NPR,NLG,NIO,NIC,NGN,MKD,OMR,PKR,PAB,PGK,PYG,PEN,PEH,PEI,PES,PHP,PLN,PLZ,PTE,QAR,RON,ROK,ROL,RUB,RWF,SHP,WST,STN,STD,SAR,RSD,CSD,SCR,SLL,SGD,XSU,SKK,SIT,SBD,SOS,SSP,SDG,RHD,ESA,ESB,LKR,SDD,SDP,SRD,SRG,SEK,CHE,CHW,CHC,SYP,TWD,TJS,TJR,TZS,THB,TPE,TOP,TTD,TND,TRY,TRL,TMT,TMM,UGX,UGS,UGW,UAH,UAK,SUR,AED,USS,USN,UYU,UYI,UYW,UYN,UYP,UZS,VUV,VEB,VEF,VES,VND,VNC,YER,YDD,YUD,YUM,YUN,ZRN,ZRZ,ZMW,ZMK,ZWL,ZWC,ZWD,ZWN,ZWR,XBA,XFO,XBB,XRE,XBC,XBD,XFU,XTS,XXX,XAU,XPD,XPT,XAG ]
              example: BRL
              description: 'Moeda referente ao valor do patrimônio, segundo modelo ISO-4217.'
            amount:
              type: string
              nullable: true
              pattern: '^-?\d{1,15}\.\d{2}$'
              example: '100000.04'
              description: |
                Valor do patrimônio
            year:
              type: string
              maxLength: 4
              format: date-fullyear
              pattern: '^\d{4}$'
              example: '2010'
              description: 'Ano de referência do patrimônio, conforme especificação RFC-3339.' 
          additionalProperties: false  
      additionalProperties: false
    
    QuoteStatus:
      type: object
      required:
        - status
        - statusUpdateDateTime
      properties:
        status:
          description: Status da cotação.
          type: string
          example: RCVD
          enum: [RCVD,
                EVAL,
                ACPT,
                RJCT,
                ACKN,
                CANC]
        rejectionReason:
              description: Campo condicionado ao status "RJCT", que deve apresentar a justificativa a recusa ao risco.
              type: string
              maxLength: 1024
        statusUpdateDateTime:
          type: string
          description: Data e hora da atualização do status.
          format: date-time
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
          example: '2021-05-21T08:30:00Z'
                  
    PersonalDocuments:
      type: array
      description: Objeto agrupador de informações relativas a Documentos da pessoa natural
      items:
        type: object
        properties:
          type:
            $ref: '#/components/schemas/EnumPersonalDocumentType'
          documentTypeOthers:
            description: Descricao do tipo de documento quando for informada a opcao OUTROS
            type: string
            maxLength: 100
          number:
            type: string
            maxLength: 20
            description: Número/código do(s) documento(s) de identificação - Se aplicável.
            example: '15291908'
          expirationDate:
            type: string
            maxLength: 10
            format: date
            pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
            example: '2023-05-21'
            description: Data de validade do(s) documento(s) de identificação - Se aplicável.
          issueLocation: 
            type: string
            maxLength: 40
            description: Local de emissão - Se aplicável.
      additionalProperties: false
    OtherPersonalDocuments:
      type: object
      description: Objeto agrupador de informações relativas a Outros Documentos da pessoa natural.
      properties:
        type:
          type: string
          maxLength: 40
          description: Tipo do(s) documento(s) estrangeiro(s) de identificação
          example: 'SOCIAL SEC'
        number:
          type: string
          maxLength: 20
          description: Número/código do(s) documento(s) de identificação.
          example: '15291908'
        country: 
          type: string
          maxLength: 40
          description: País do(s) documento(s) estrangeiro(s) de identificação.
        expirationDate:
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2023-05-21'
          description: Data de vigência do documento de registro - conforme especificação RFC-3339.
      additionalProperties: false
    BusinessDocument:
      type: object
      required:
        - businesscnpjNumber
      description: Objeto agrupador de informações relativas a Documentos da pessoa natural
      properties:
        businesscnpjNumber:
          type: string
          maxLength: 14
          pattern: '\d{14}|^NA$'
          example: '50685362006773'
          description: |
            Número completo do CNPJ da Empresa consultada  - o CNPJ corresponde ao número de inscrição no Cadastro de Pessoa Jurídica. Deve-se ter apenas os números do CNPJ, sem máscara
            Condicional ao Brasil no (BRA) campo País de emissão do documento de registro
        businessRegisterNumberOriginCountry:
          type: string
          maxLength: 20
          description: | 
            Aplicável somente as pessoas jurídicas com domicílio ou sede no exterior desobrigadas de inscrição no CNPJ.
        country:
          type: string
          example: BRA
          enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
          description: Código do pais de acordo com o código “alpha3” do ISO-3166.
        expirationDate:
          type: string
          maxLength: 10
          format: date
          pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
          example: '2023-05-21'
          description: 'Data de vigência do documento de registro - conforme especificação RFC-3339.'
      additionalProperties: false
    AmountDetails:
        type: object
        description: Detalhes de valores/limites
        required:
          - amount
          - unitType
        properties:
          amount:
            type: string
            pattern: '^(^(100\.\00|\d{1,2}\.\d{2})$|^(\d{1,6})$|^(\d{1,15}\.\d{2})$)$'
            description: |
              Valor.
              Exemplos de preenchimento do campo:

              PORCENTAGEM: 90.85
                              
              MONETARIO: 62500.67

              OUTROS: 1000 (Exemplo de outro tipo: horas)
          unitType:
            description: "Tipo da unidade referente ao valor inserido no campo Amount"
            type: string
            enum: [PORCENTAGEM, MONETARIO, OUTROS]
          unitTypeOthers:
            description: Caso o tipo do valor informado for "Outros", esse campo deve ser preenchido com o tipo do valor, obrigatoriamente.
            type: string
            example: Horas
          unit:
            description: Preenchimento obrigatório em caso de valor "MONETARIO" ser informado no campo "unitType"
            type: object
            required:
              - code
              - description
            properties:
              code:
                type: string
                enum: [ د.إ , Af, L,  Դ,  Kz, $,  ƒ,  ман,  КМ, ৳,  лв, ب.د,  ₣,  Bs.,  R$, P,  Br, ¥,  ₡,  Kč, kr, د.ج,  £,  
                        Nfk,  N/A,  €,  ლ,  ₵,  D,  Q,  Kn, G,  Ft, Rp, ₪,  ₹,  ع.د,  ﷼,  Sh, ៛,  ₩,  د.ك,  〒,  ₭,  ل.ل,  Rs,
                        ل.د,  د.م., ден,  K,  ₮,  UM, ₨,  ރ., MK, RM, MTn,  ₦,  C$, ر.ع., B/.,  S/.,  ₱,  zł, ₲,  ر.ق,  din,  
                        р., ر.س,  Le, Db, ل.س,  ฿,  ЅМ, m,  د.ت,  T$, ₤,  ₴,  Bs F, ₫,  Vt, T,  R,  ZK ]
                example: R$
              description:
                type: string
                description: Moeda da Parcela, de acordo com ISO-4217.
                example: BRL
                enum: [ AFN,AFA,ALL,ALK,DZD,USD,EUR,ADP,ESP,FRF,AOA,AOK,AON,AOR,XCD,ARS,ARA,ARP,ARY,AMD,RUR,AWG,AUD,ATS,AZN,AYM,AZM,BSD,BHD,BDT,BBD,BYN,BYB,BYR,BEC,BEF,BEL,BZD,XOF,BMD,INR,BTN,BOP,BOB,BOV,BAM,BAD,BWP,NOK,BRL,BRB,BRC,BRE,BRN,BRR,BND,BGN,BGJ,BGK,BGL,BUK,BIF,CVE,KHR,XAF,CAD,KYD,CLP,CLF,CNY,COP,COU,KMF,CDF,NZD,CRC,HRK,HRD,CUP,CUC,ANG,CYP,CZK,CSJ,CSK,DKK,DJF,DOP,ECS,ECV,EGP,SVC,GQE,ERN,EEK,SZL,ETB,XEU,FKP,FJD,FIM,XPF,GMD,GEL,GEK,DDM,DEM,GHS,GHC,GHP,GIP,GRD,GTQ,GBP,GNF,GNE,GNS,GWE,GWP,GYD,HTG,ITL,HNL,HKD,HUF,ISK,ISJ,IDR,XDR,IRR,IQD,IEP,ILS,ILP,ILR,JMD,JPY,JOD,KZT,KES,KPW,KRW,KWD,KGS,LAJ,LAK,LVL,LVR,LBP,LSL,ZAR,LSM,ZAL,LRD,LYD,CHF,LTL,LTT,LUC,LUF,LUL,MOP,MGA,MGF,MWK,MYR,MVR,MVQ,MLF,MTL,MTP,MRU,MRO,MUR,XUA,MXN,MXV,MXP,MDL,MNT,MAD,MZN,MZE,MZM,MMK,NAD,NPR,NLG,NIO,NIC,NGN,MKD,OMR,PKR,PAB,PGK,PYG,PEN,PEH,PEI,PES,PHP,PLN,PLZ,PTE,QAR,RON,ROK,ROL,RUB,RWF,SHP,WST,STN,STD,SAR,RSD,CSD,SCR,SLL,SGD,XSU,SKK,SIT,SBD,SOS,SSP,SDG,RHD,ESA,ESB,LKR,SDD,SDP,SRD,SRG,SEK,CHE,CHW,CHC,SYP,TWD,TJS,TJR,TZS,THB,TPE,TOP,TTD,TND,TRY,TRL,TMT,TMM,UGX,UGS,UGW,UAH,UAK,SUR,AED,USS,USN,UYU,UYI,UYW,UYN,UYP,UZS,VUV,VEB,VEF,VES,VND,VNC,YER,YDD,YUD,YUM,YUN,ZRN,ZRZ,ZMW,ZMK,ZWL,ZWC,ZWD,ZWN,ZWR,XBA,XFO,XBB,XRE,XBC,XBD,XFU,XTS,XXX,XAU,XPD,XPT,XAG ]

    EnumProductServiceType:
      type: string
      enum:
        - MICROSSEGUROS
        - TITULOS_DE_CAPITALIZACAO
        - SEGUROS_DE_PESSOAS
        - PLANOS_DE_PREVIDENCIA_COMPLEMENTAR
        - SEGUROS_DE_DANOS
      example: MICROSSEGUROS
      description: Tipos de produtos.
    PersonalContact:
      type: object
      description: Conjunto de informações referentes às formas para contatar o cliente.
      required:
        - postalAddresses
      properties:
        postalAddresses:
          type: array
          items:
            $ref: '#/components/schemas/PersonalPostalAddress'
          minItems: 1
          description: Lista de endereços da pessoa natural
        phones:
          type: array
          items:
            $ref: '#/components/schemas/CustomerPhone'
          minItems: 1
          description: Lista com telefones de contato da pessoa natural
        emails:
          type: array
          items:
            $ref: '#/components/schemas/CustomerEmail'
          minItems: 1
          description: Lista e-mails de contato
      additionalProperties: false
    CustomerEmail:
      type: object
      properties:
        email:
          type: string
          description: Endereço de email
          maxLength: 320
          pattern: '^\S+@\S+\.\S+$'
          example: nome@br.net
      additionalProperties: false
    CustomerPhone:
      type: object
      properties:
        countryCallingCode:
          type: string
          maxLength: 4
          pattern: '^\d{1,4}$|^NA$'
          example: '55'
          description: Número de DDI (Discagem Direta Internacional) para telefone de acesso ao Cliente - se aplicável
        areaCode:
          $ref: '#/components/schemas/EnumAreaCode'
        number:
          type: string
          maxLength: 11
          pattern: '^([0-9]{8,11})|^NA$'
          example: '29875132'
          description: Número de telefone do cliente
        phoneExtension:
          type: string
          maxLength: 5
          pattern: '^\d{1,5}$|^NA$'
          description: Número do ramal. De preenchimento obrigatório se fizer parte da identificação do número do telefone informado
          example: '932'
      additionalProperties: false
    PersonalPostalAddress:
      type: object
      required:
        - address
        - townName
        - countrySubDivision
        - postCode
        - country
      properties:
        address:
          type: string
          maxLength: 200
          pattern: '[\w\W\s]*'
          example: 'Av Naburo Ykesaki, 1270'
          description: Corresponde ao endereço residencial do cliente.
        additionalInfo:
          type: string
          maxLength: 30
          pattern: '[\w\W\s]*'
          example: Fundos
          description: Alguns logradouros ainda necessitam ser especificados por meio de complemento.
        districtName:
          type: string
          maxLength: 50
          pattern: '[\w\W\s]*'
          example: Centro
          description: Bairro é uma comunidade ou região localizada em uma cidade ou município de acordo com as suas subdivisões geográficas.
        townName:
          type: string
          maxLength: 50
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: Marília
          description: |
            Localidade: O nome da localidade corresponde à designação da cidade ou município no qual o endereço está localizado.
        countrySubDivision:
          $ref: '#/components/schemas/EnumCountrySubDivision'
        postCode:
          type: string
          pattern: '\d{8}|^NA$'
          maxLength: 8
          example: '10000000'
          description: |
            Código de Endereçamento Postal: Composto por um conjunto numérico de oito dígitos, o objetivo principal do CEP é orientar e acelerar o encaminhamento, o tratamento e a entrega de objetos postados nos Correios, por meio da sua atribuição a localidades, logradouros, unidades dos Correios, serviços, órgãos públicos, empresas e edifícios. p.ex. '01311000'.
        country:
          type: string
          example: BRA
          enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
          description: Código do pais de acordo com o código “alpha3” do ISO-3166.
      additionalProperties: false
    EnumCountrySubDivision:
      type: string
      description: 'Enumeração referente a cada sigla da unidade da federação que identifica o estado ou o distrito federal, no qual o endereço está localizado. p.ex. ''AC''. São consideradas apenas as siglas para os estados brasileiros'
      enum:
        - AC
        - AL
        - AP
        - AM
        - BA
        - CE
        - DF
        - ES
        - GO
        - MA
        - MT
        - MS
        - MG
        - PA
        - PB
        - PR
        - PE
        - PI
        - RJ
        - RN
        - RS
        - RO
        - RR
        - SC
        - SP
        - SE
        - TO
      example: SP
    EnumCivilStatusCode:
      type: string
      enum:
        - SOLTEIRO
        - CASADO
        - VIUVO
        - SEPARADO_JUDICIALMENTE
        - DIVORCIADO
        - UNIAO_ESTAVEL
        - OUTROS
      example: SOLTEIRO
      description: |
        Estado civil do cliente. 
    EnumAreaCode:
      type: string
      example: '19'
      description: Número de DDD (Discagem Direta à Distância) do telefone do cliente - se houver
      enum:
        - '11'
        - '12'
        - '13'
        - '14'
        - '15'
        - '16'
        - '17'
        - '18'
        - '19'
        - '21'
        - '22'
        - '24'
        - '27'
        - '28'
        - '31'
        - '32'
        - '33'
        - '34'
        - '35'
        - '37'
        - '38'
        - '41'
        - '42'
        - '43'
        - '44'
        - '45'
        - '46'
        - '47'
        - '48'
        - '49'
        - '51'
        - '53'
        - '54'
        - '55'
        - '61'
        - '62'
        - '63'
        - '64'
        - '65'
        - '66'
        - '67'
        - '68'
        - '69'
        - '71'
        - '73'
        - '74'
        - '75'
        - '77'
        - '79'
        - '81'
        - '82'
        - '83'
        - '84'
        - '85'
        - '86'
        - '87'
        - '88'
        - '89'
        - '91'
        - '92'
        - '93'
        - '94'
        - '95'
        - '96'
        - '97'
        - '98'
        - '99'
        - NA
    EnumIncomeFrequency:
      type: string
      enum:
        - DIARIA
        - SEMANAL
        - QUINZENAL
        - MENSAL
        - BIMESTRAL
        - TRIMESTRAL
        - SEMESTRAL
        - ANUAL
      description: |
        Frequência da renda informada.
    EnumPersonalDocumentType:
      type: string
      enum:
        - CNH
        - RG
        - NIF
        - RNE
        - OUTROS
        - SEM_OUTROS_DOCUMENTOS
      example: CNH
      description: |
        Tipo do(s) documento(s) de identificação. 
    EnumFiliationType:
      type: string
      enum:
        - MAE
        - PAI
        - SEM_FILIACAO
      description: Tipo de filiação.    
    EnumProcuratorsNaturePersonal:
      type: string
      enum:
        - REPRESENTANTE_LEGAL
        - PROCURADOR
        - NAO_SE_APLICA
      example: PROCURADOR
      description: |
        Natureza dos poderes vigentes de representante
    EnumProcuratorsNatureBusiness:
      type: string
      enum:
        - REPRESENTANTE_LEGAL
        - PROCURADOR
        - NAO_SE_APLICA
      example: PROCURADOR
      description: |
        Natureza dos poderes vigentes de representante
    BusinessParties:
      type: array
      description: Conjunto de informações referentes ao vínculo com uma pessoa.
      items:
        type: object
        properties:
          type: 
            type: string
            example: SOCIO
            description: Tipo de vínculo com a pessoa jurídica
            enum:
              - SOCIO
              - ADMINISTRADOR
          civilName:
            type: string
            maxLength: 70
            pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
            example: Juan Kaique Cláudio Fernandes
            description: 'Nome civil completo da pessoa natural (Direito fundamental da pessoa, o nome civil é aquele atribuído à pessoa natural desde o registro de seu nascimento, com o qual será identificada por toda a sua vida, bem como após a sua morte)' 
          socialName:
            type: string
            maxLength: 70
            pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
            example: 'string'
            description: |
              Nome social da pessoa natural, se houver. 
              (aquele pelo qual travestis e transexuais se reconhecem, 
              bem como são identificados por sua comunidade e em seu meio social, conforme Decreto Local).  
          startDate:
            type: string
            format: date
            maxLength: 10
            pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
            example: '2014-05-21'
            description: 'Data de início da participação, conforme especificação RFC-3339.'
          shareholding:
            type: string
            format: double
            pattern: '^100\.0{1,9}$|^\d{1,2}\.\d{1,9}$'
            example: '0.510000'
            description: |
              Percentual de participação societária (informar com 6 casas decimais). 
              O Sócio só deve ser informado se sua participação societária for igual ou superior a 25%.
          documentType:
            type: string
            maxLength: 15
            example: CPF
            description: 'Tipo de documento de identificação do sócio ou administrador'
          documentNumber:
            type: string
            maxLength: 20
            example: '73677831148'
            description: Número do documento informado. Campo Texto Livre para preencher número e dígito do documento se houver
          documentCountry:
            type: string
            example: BRA
            enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
            description: |
              País de emissão do documento. Código do pais de acordo com o código alpha3 do ISO-3166.
          documentExpirationDate:
            type: string
            format: date
            maxLength: 10
            example: '2021-05-21'
            pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])$'
            description: 'Data de validade do documento informado, conforme especificação RFC-3339.'
      additionalProperties: false
    BusinessContact:
      type: object
      description: Conjunto de informações referentes às formas para contatar o cliente.
      required:
        - postalAddresses
      properties:
        postalAddresses:
          type: array
          items:
            $ref: '#/components/schemas/BusinessPostalAddress'
          minItems: 1
          description: Lista de endereços da pessoa jurídica
        phones:
          type: array
          items:
            $ref: '#/components/schemas/CustomerPhone'
          minItems: 1
          description: Lista com telefones de contato da pessoa jurídica
        emails:
          type: array
          items:
            $ref: '#/components/schemas/CustomerEmail'
          minItems: 1
          description: Lista e-mails de contato
      additionalProperties: false
    BusinessPostalAddress:
      type: object
      required:
        - address
        - townName
        - countrySubDivision
        - postCode
        - country
      properties:
        address:
          type: string
          maxLength: 200
          pattern: '[\w\W\s]*'
          example: 'Av Naburo Ykesaki, 1270'
          description: Corresponde ao endereço residencial do cliente.
        additionalInfo:
          type: string
          maxLength: 30
          pattern: '[\w\W\s]*'
          example: Fundos
          description: Alguns logradouros ainda necessitam ser especificados por meio de complemento.
        districtName:
          type: string
          maxLength: 50
          pattern: '[\w\W\s]*'
          example: Centro
          description: Bairro é uma comunidade ou região localizada em uma cidade ou município de acordo com as suas subdivisões geográficas.
        townName:
          type: string
          maxLength: 50
          pattern: '^[A-Za-z\sáâãéêíïóôõúçÁÂÃÉÍÏÓÔÕÚÇ]+$'
          example: Marília
          description: |
            Localidade: O nome da localidade corresponde à designação da cidade ou município no qual o endereço está localizado.
        countrySubDivision:
          $ref: '#/components/schemas/EnumCountrySubDivision'
        postCode:
          type: string
          pattern: '\d{8}|^NA$'
          maxLength: 8
          example: '10000000'
          description: |
            Código de Endereçamento Postal: Composto por um conjunto numérico de oito dígitos, o objetivo principal do CEP é orientar e acelerar o encaminhamento, o tratamento e a entrega de objetos postados nos Correios, por meio da sua atribuição a localidades, logradouros, unidades dos Correios, serviços, órgãos públicos, empresas e edifícios. p.ex. '01311000'.
        ibgeTownCode:
          type: string
          pattern: '\d{7}|^NA$'
          maxLength: 7
          example: "1750000"
          description: |
            Código IBGE do município
        country:
          type: string
          maxLength: 60
          example: Brasil
        countryCode:
          type: string
          example: BRA
          enum: [AFG,ALA,ALB,DZA,ASM,AND,AGO,AIA,ATA,ATG,ARG,ARM,ABW,AUS,AUT,AZE,BHS,BHR,BGD,BRB,BLR,BEL,BLZ,BEN,BMU,BTN,BOL,BES,BIH,BWA,BVT,BRA,IOT,BRN,BGR,BFA,BDI,CPV,KHM,CMR,CAN,CYM,CAF,TCD,CHL,CHN,CXR,CCK,COL,COM,COG,COD,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,SWZ,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,VAT,HND,HKG,HUN,ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,PRK,KOR,KWT,KGZ,LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,MAC,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,MKD,MNP,NOR,OMN,PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,REU,ROU,RUS,RWA,BLM,SHN,KNA,LCA,MAF,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SXM,SVK,SVN,SLB,SOM,ZAF,SGS,SSD,ESP,LKA,SDN,SUR,SJM,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VEN,VNM,VGB,VIR,WLF,ESH,YEM,ZMB,ZWE]
          description: Código do pais de acordo com o código “alpha3” do ISO-3166.
        geographicCoordinates:
          $ref: '#/components/schemas/GeographicCoordinates'
      additionalProperties: false
    GeographicCoordinates:
      type: object
      description: 'Conjunto de informações, que correspondem aos valores das coordenadas geográficas em graus decimais, no Sistema de referência WGS84'
      properties:
        latitude:
          description: |
            Informação da Latitude referente a geolocalização informada. Entre -90 e 90.p.ex. '-23.5475000'. (2 casas antes da vírgula, 11 posições)
          type: string
          pattern: '^-?(90\.0{1,9}|[0-8][0-9]\.\d{1,9})$'
          example: '-23.5475000'
        longitude:
          description: |
            Informação da Longitude referente a geolocalização informada. Entre -180 e 180. p.ex '-46.6361100'. (3 casas antes da vírgula, 11 posições)
          type: string
          pattern: '^-?(180\.0{1,9}|1[0-7]\d{1}\.\d{1,9}|\d{1,2}\.\d{1,9})$'
          example: '-46.6361100'
      additionalProperties: false      
    
    RevokePatchPayload:
      type: object
      required:
        - data
      properties:
        data:
          type: object
          description: Revogação de LEAD.
          required:
            - author
          properties:
            author:
              type: object
              required:
                - identificationType
                - identificationNumber
              properties:
                identificationType:
                  type: string
                  description: Tipo identificação (CPF ou CNPJ) do solicitante do cancelamento/revogação.
                  enum: [CPF,CNPJ]
                  example: CPF
                identificationNumber:
                  type: string
                  description: Número de identificação (CPF ou CNPJ) do solicitante do cancelamento/revogação.
                  maxLength: 20
                  pattern: '[\w\W\s]*'
                  example: '73677831148'
    
    ResponseRevokePatch:
      type: object
      required:
        - data
      properties:
        data:
          type: object
          description: Objeto contendo informações da atualização.
          required:
            - status
          properties:
            status:
              description: Status da cotação.
              type: string
              example: CANC
              enum: [CANC]
    Links:
      type: object
      properties:
        self:
          type: string
          description: URL da página atualmente requisitada
          example: 'https://api.organizacao.com.br/open-insurance/quote-housing/v1'
        first:
          type: string
          description: URL da primeira página de registros
          example: 'https://api.organizacao.com.br/open-insurance/quote-housing/v1'
        prev:
          type: string
          description: URL da página anterior de registros
          example: 'https://api.organizacao.com.br/open-insurance/quote-housing/v1'
        next:
          type: string
          description: URL da próxima página de registros
          example: 'https://api.organizacao.com.br/open-insurance/quote-housing/v1'
        last:
          type: string
          description: URL da última página de registros
          example: 'https://api.organizacao.com.br/open-insurance/quote-housing/v1'
    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
    422ResponseErrorCreateQuote:
        type: object
        required:
          - errors
        properties:
          errors:
            type: object
            minItems: 1
            required:
              - code
              - title
              - detail
            properties:
              code:
                type: string
                enum:
                  - ERRO_IDEMPOTENCIA
                  - NAO_INFORMADO
                example: 'ERRO_IDEMPOTENCIA'
                description: 'Código do erro 422 de Entidade não processada.'
              title:
                type: string
                maxLength: 255
                pattern: '[\w\W\s*]'
                example: 'Tentativa de alteração de requisição já processada'
                description: |
                  - ERRO_ IDEMPOTENCIA: Tentativa de alteração de requisição já processada
                  - NÃO_INFORMADO: Não informada pelo servidor
              detail:
                type: string
                maxLength: 2048
                pattern: '[\w\W\s*]'
                example: 'Tentativa de alteração de requisição já processada'
                description: |
                  - ERRO_ IDEMPOTENCIA: Tentativa de alteração de requisição já processada
                  - NÃO_INFORMADO: Não informada pelo servidor
    ResponseError:
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          minItems: 1
          maxItems: 13
          items:
            type: object
            required:
              - code
              - title
              - detail
            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: 20
                format: date-time
                pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
                example: '2021-08-20T08:30:00Z'
            additionalProperties: false
        meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    XFapiInteractionId:
      type: string
      pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
      maxLength: 100
      description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
    QuoteRequestHousingLead:
      type: object
      required:
        - data
      properties:
        data:
          type: object
          required:
            - consentId
            - expirationDateTime
            - quoteCustomer
            - quoteData
          properties:
            consentId:
              description: |
                O consentId é o identificador único do consentimento e deverá ser um URN - Uniform Resource Name.  
                Um URN, conforme definido na [RFC8141](https://tools.ietf.org/html/rfc8141) é um Uniform Resource 
                Identifier - URI - que é atribuído sob o URI scheme "urn" e um namespace URN específico, com a intenção de que o URN 
                seja um identificador de recurso persistente e independente da localização.  
                Considerando a string urn:initiator:C1DD93123 como exemplo para consentId temos:
                - o namespace(urn)
                - o identificador associado ao namespace da instituição transnmissora (initiator) 
                - o identificador específico dentro do namespace (C1DD93123).  
                Informações mais detalhadas sobre a construção de namespaces devem ser consultadas na [RFC8141](https://tools.ietf.org/html/rfc8141).
              type: string
              pattern: '^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[a-zA-Z0-9()+,\-.:=@;$_!*''%\/?#]+$'
              maxLength: 256
              example: 'urn:initiator:C1DD93123'
            expirationDateTime:
              description: 'Data e hora de expiração da permissão. De preenchimento obrigatório, reflete a data limite de validade do consentimento. Uma string com data e hora conforme especificação RFC-3339, sempre com a utilização de timezone UTC(UTC time format).'
              type: string
              format: date-time
              pattern: '^(\d{4})-(1[0-2]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)Z$'
              example: '2021-05-21T08:30:00Z'
              maxLength: 20
            quoteCustomer:
              type: object
              description: Objeto que agrupa as categorias de dados cadastrais do cliente.
              properties:
                identificationData:
                  oneOf:
                    - $ref: '#/components/schemas/PersonalIdentificationData'
                    - $ref: '#/components/schemas/BusinessIdentificationData'
                qualificationData:
                  oneOf:
                    - $ref: '#/components/schemas/PersonalQualificationData'
                    - $ref: '#/components/schemas/BusinessQualificationData'
                complimentaryInformationData:
                  oneOf:
                    - $ref: '#/components/schemas/PersonalComplimentaryInformationData'
                    - $ref: '#/components/schemas/BusinessComplimentaryInformationData'
            historicalData:
              type: object
              description: Objeto que agrupa todos dados históricos do cliente.
              properties:
                customer:
                  type: object
                  description: Dados históricos cadastrais do cliente
                  properties: 
                    identificationData:
                      oneOf:
                        - $ref: '#/components/schemas/HistoricalPersonalIdentificationData' ## schema dados cadastrais de fase 2 (customers v1.1.1)
                        - $ref: '#/components/schemas/HistoricalBusinessIdentificationData' ## schema dados cadastrais de fase 2 (customers v1.1.1)
                    qualificationData:
                      oneOf:
                        - $ref: '#/components/schemas/HistoricalPersonalQualificationData' ## schema dados cadastrais de fase 2 (customers v1.1.1)
                        - $ref: '#/components/schemas/HistoricalBusinessQualificationData' ## schema dados cadastrais de fase 2 (customers v1.1.1)
                    complimentaryInformationData:
                      oneOf:
                        - $ref: '#/components/schemas/HistoricalPersonalComplimentaryInformationData' ## schema dados cadastrais de fase 2 (customers v1.1.1)
                        - $ref: '#/components/schemas/HistoricalBusinessComplimentaryInformationData' ## schema dados cadastrais de fase 2 (customers v1.1.1)
                policies:
                  $ref: '#/components/schemas/PolicyDataHousingLead'
            quoteData: 
              type: object
              required:
                - coverages
              description: Objeto que agrupa dados específicos do ramo de cotação.
              properties:
                coverages:
                  type: array
                  description: Lista que agrupa os dados de coberturas.
                  items:
                    type: object
                    required:
                      - branch
                      - code
                      - description
                    properties:
                      branch:
                        description: Grupo e ramo da cobertura
                        type: string
                        maxLength: 4
                        example: "0111"
                      code:
                        type: string
                        description: Código da cobertura, conforme Anexo II do Manual de Escopo de Dados
                        enum: [
                          DANOS_ELETRICOS,
                          DANOS_FISICOS_AO_CONTEUDO,
                          DANOS_FISICOS_AO_IMOVEL,
                          MORTE_E_INVALIDEZ_TOTAL_E_PERMANENTE,
                          PAGAMENTO_DE_ALUGUEL,
                          RESPONSABILIDADE_CIVIL_DO_CONSTRUTOR,
                          ROUBO_E_FURTO_AO_CONTEUDO,
                          OUTRAS
                        ]
                      description:
                        description: Descrição / Nome da Cobertura (Caso Código da Cobertura for "OUTRAS")
                        type: string
                        maxLength: 500
                 
    ###### quoteRequest
    
    ResponseQuoteHousingLead:
      type: object
      required:
        - data
        - links
        - meta
      properties:
        data:
          $ref: '#/components/schemas/QuoteStatus'                    
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
          
  parameters:
    consentId:
        name: consentId
        in: path
        required: true
        schema:
          type: string
          maxLength: 60
    Authorization:
      name: Authorization
      in: header
      description: Cabeçalho HTTP padrão. Permite que as credenciais sejam fornecidas dependendo do tipo de recurso solicitado.
      required: true
      schema:
        type: string
        pattern: '[\w\W\s]*'
        maxLength: 2048
    xCustomerUserAgent:
      name: x-customer-user-agent
      in: header
      description: Indica o user-agent que o usuário utiliza.
      required: false
      schema:
        type: string
        pattern: '[\w\W\s]*'
        minLength: 1
        maxLength: 100
    xFapiAuthDate:
      name: x-fapi-auth-date
      in: header
      description: 'Data em que o usuário logou pela última vez com o receptor. Representada de acordo com a [RFC7231](https://tools.ietf.org/html/rfc7231). Exemplo: Sun, 10 Sep 2017 19:43:31 UTC'
      required: false
      schema:
        type: string
        pattern: '^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$'
        minLength: 29
        maxLength: 29
    xFapiCustomerIpAddress:
      name: x-fapi-customer-ip-address
      in: header
      description: O endereço IP do usuário se estiver atualmente logado com o receptor.
      required: false
      schema:
        type: string
        pattern: '[\w\W\s]*'
        minLength: 1
        maxLength: 100
    xFapiInteractionId:
      name: x-fapi-interaction-id
      in: header
      description: 'Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação. Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.'
      required: true
      schema:
        type: string
        pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
        minLength: 1
        maxLength: 100
    xIdempotencyKey:
      name: x-idempotency-key
      in: header
      description: | 
        Cabeçalho HTTP personalizado. Identificador de solicitação 
        exclusivo para suportar a idempotência.
      required: true
      schema:
        type: string
        minLength: 1
        maxLength: 40
        pattern: ^(?!\s)(.*)(\S)$
  securitySchemes:
    OpenId:
      type: openIdConnect
      openIdConnectUrl: 'https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration'
    OAuth2Security:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: "https://authserver.example/token"
          scopes:
            quote-housing-lead: Escopo necessário para acesso à API Housing.
            
  responses:
    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'
    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 presentes
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/ResponseError'
    UnprocessableEntityQuote:
      description: Seguir as orientações presentes na descrição deste endpoint
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/422ResponseErrorCreateQuote'
    OKResponseQuoteRequestHousingLead:
      description: Dados de Cotação HousingLead criados com sucesso
      headers:
        x-fapi-interaction-id:
          schema:
            $ref: '#/components/schemas/XFapiInteractionId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseQuoteHousingLead'       
    200UpdatedQuoteHousingLead:
      description: "Atualização de Cotação HousingLead feita com sucesso"
      headers:
        x-fapi-interaction-id:
          description: |
            Um UID [RFC4122](https://tools.ietf.org/html/rfc4122) usado como um ID de correlação.  
            Se fornecido, o transmissor deve "reproduzir" esse valor no cabeçalho de resposta.          
          schema:
            type: string
            pattern: '^[a-zA-Z0-9][a-zA-Z0-9\-]{0,99}$'
            minLength: 1
            maxLength: 100
            example: 73cac523-d3ae-2289-b106-330a6218710d
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseRevokePatch'
