openapi: 3.0.4
info:
  title: Producer Database Search
  version: v1
paths:
  /producerpdbsearch/v1/agent/search:
    post:
      tags:
        - ProducerPdbSearch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LookupIndividualRequest'
            examples:
              Individual By name:
                summary: ''
                value:
                  SearchType: NAME
                  FirstName: John
                  MiddleName: null
                  LastName: Smith
                  Ssn: null
                  Npn: null
                  LicenseJurisdiction: null
                  LicenseNumber: null
                  CostCenter: null
              Individual By SSN:
                summary: ''
                value:
                  SearchType: SSN
                  FirstName: null
                  MiddleName: null
                  LastName: Smith
                  Ssn: '123456789'
                  Npn: null
                  LicenseJurisdiction: null
                  LicenseNumber: null
                  CostCenter: null
              Individual By NIPR Producer Number (NPN):
                summary: ''
                value:
                  SearchType: NPN
                  FirstName: null
                  MiddleName: null
                  LastName: null
                  Ssn: null
                  Npn: 123456789
                  LicenseJurisdiction: null
                  LicenseNumber: null
                  CostCenter: null
              Individual By License State / Number:
                summary: ''
                value:
                  SearchType: LICENSE
                  FirstName: null
                  MiddleName: null
                  LastName: null
                  Ssn: null
                  Npn: null
                  LicenseJurisdiction: AL
                  LicenseNumber: '1234567891011'
                  CostCenter: null
          application/xml:
            schema:
              $ref: '#/components/schemas/LookupIndividualRequest'
            examples:
              Individual By name:
                summary: ''
                value: "<LookupIndividualRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <SEARCHTYPE>NAME</SEARCHTYPE>\r\n  <FIRSTNAME>John</FIRSTNAME>\r\n  <LASTNAME>Smith</LASTNAME>\r\n  <NPN xsi:nil=\"true\" />\r\n</LookupIndividualRequest>"
              Individual By SSN:
                summary: ''
                value: "<LookupIndividualRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <SEARCHTYPE>SSN</SEARCHTYPE>\r\n  <LASTNAME>Smith</LASTNAME>\r\n  <SSN>123456789</SSN>\r\n  <NPN xsi:nil=\"true\" />\r\n</LookupIndividualRequest>"
              Individual By NIPR Producer Number (NPN):
                summary: ''
                value: "<LookupIndividualRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <SEARCHTYPE>NPN</SEARCHTYPE>\r\n  <NPN>123456789</NPN>\r\n</LookupIndividualRequest>"
              Individual By License State / Number:
                summary: ''
                value: "<LookupIndividualRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <SEARCHTYPE>LICENSE</SEARCHTYPE>\r\n  <NPN xsi:nil=\"true\" />\r\n  <LICSTATE>AL</LICSTATE>\r\n  <LICNUMBER>1234567891011</LICNUMBER>\r\n</LookupIndividualRequest>"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupIndividualResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/LookupIndividualResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
  /producerpdbsearch/v1/agency/search:
    post:
      tags:
        - ProducerPdbSearch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LookupFirmRequest'
            examples:
              Firm by name:
                summary: ''
                value:
                  SearchType: NAME
                  FirmName: Firm Name
                  FirmFein: '123456789'
                  LicenseJurisdiction: null
                  LicenseNumber: null
                  CostCenter: null
              Firm  By License State / Number:
                summary: ''
                value:
                  SearchType: LICENSE
                  FirmName: null
                  FirmFein: null
                  LicenseJurisdiction: AL
                  LicenseNumber: '1234567891011'
                  CostCenter: null
          application/xml:
            schema:
              $ref: '#/components/schemas/LookupFirmRequest'
            examples:
              Firm by name:
                summary: ''
                value: "<LookupFirmRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <SEARCHTYPE>NAME</SEARCHTYPE>\r\n  <FIRMNAME>Firm Name</FIRMNAME>\r\n  <FIRMFEIN>123456789</FIRMFEIN>\r\n</LookupFirmRequest>"
              Firm  By License State / Number:
                summary: ''
                value: "<LookupFirmRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <SEARCHTYPE>LICENSE</SEARCHTYPE>\r\n  <LICSTATE>AL</LICSTATE>\r\n  <LICNUMBER>1234567891011</LICNUMBER>\r\n</LookupFirmRequest>"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupFirmResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/LookupFirmResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
  /producerpdbsearch/v1/agent:
    get:
      tags:
        - ProducerPdbSearch
      parameters:
        - name: Npn
          in: query
          description: National Producer Number (NPN)
          required: true
          schema:
            type: integer
            description: National Producer Number (NPN)
            format: int32
        - name: CostCenter
          in: query
          description: Account specific cost center
          schema:
            maxLength: 50
            minLength: 0
            type: string
            description: Account specific cost center
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/FetchResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
  /producerpdbsearch/v1/agency:
    get:
      tags:
        - ProducerPdbSearch
      parameters:
        - name: Npn
          in: query
          description: National Producer Number (NPN)
          required: true
          schema:
            type: integer
            description: National Producer Number (NPN)
            format: int32
        - name: CostCenter
          in: query
          description: Account specific cost center
          schema:
            maxLength: 50
            minLength: 0
            type: string
            description: Account specific cost center
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/FetchResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
components:
  schemas:
    FetchResponse:
      type: object
      properties:
        NiprFullInfo:
          $ref: '#/components/schemas/NiprFullInfo'
      additionalProperties: false
    LookupFirmRequest:
      type: object
      properties:
        SearchType:
          $ref: '#/components/schemas/SearchTypeEnum'
        FirmName:
          maxLength: 150
          minLength: 0
          type: string
          description: '*required* if SearchType is NAME'
          nullable: true
        FirmFein:
          maxLength: 12
          minLength: 0
          pattern: ([0-9\-]+)
          type: string
          description: '*required* if SearchType is NAME'
          nullable: true
        LicenseJurisdiction:
          type: string
          description: '*required* if SearchType is LICENSE'
          nullable: true
        LicenseNumber:
          maxLength: 30
          minLength: 0
          type: string
          description: '*required* if SearchType is LICENSE'
          nullable: true
        CostCenter:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
      additionalProperties: false
    LookupFirmResponse:
      type: object
      properties:
        NiprFirmsSummaryInfo:
          $ref: '#/components/schemas/NiprFirmsSummaryInfo'
        AdditionalInfo:
          $ref: '#/components/schemas/NiprAdditionalInfo'
      additionalProperties: false
    LookupIndividualRequest:
      type: object
      properties:
        SearchType:
          $ref: '#/components/schemas/SearchTypeEnum'
        FirstName:
          maxLength: 80
          minLength: 0
          type: string
          description: '*required* if SearchType is NAME'
          nullable: true
        MiddleName:
          maxLength: 30
          minLength: 0
          type: string
          nullable: true
        LastName:
          maxLength: 80
          minLength: 0
          type: string
          description: '*required* if SearchType is NAME or SSN'
          nullable: true
        Ssn:
          maxLength: 12
          minLength: 0
          pattern: ([0-9]+)
          type: string
          description: '*required* if SearchType is SSN'
          nullable: true
        Npn:
          type: integer
          description: '*required* if SearchType is NPN'
          format: int32
          nullable: true
        LicenseJurisdiction:
          type: string
          description: '*required* if SearchType is LICENSE'
          nullable: true
        LicenseNumber:
          maxLength: 30
          minLength: 0
          type: string
          description: '*required* if SearchType is LICENSE'
          nullable: true
        CostCenter:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
      additionalProperties: false
    LookupIndividualResponse:
      type: object
      properties:
        IndividualsSummaryInfo:
          $ref: '#/components/schemas/NiprIndividualsSummaryInfo'
        AdditionalInfo:
          $ref: '#/components/schemas/NiprAdditionalInfo'
      additionalProperties: false
    NiprAdditionalInfo:
      type: object
      properties:
        TransactionType:
          $ref: '#/components/schemas/NiprTransactionType'
        Entity:
          $ref: '#/components/schemas/NiprIndividualAdditionalInfo'
      additionalProperties: false
    NiprAddress:
      required:
        - AddressType
        - State
      type: object
      properties:
        BranchId:
          type: string
          nullable: true
        DateUpdated:
          type: date
          description: >-
            The date any information in this segment/entity was updated by the
            States.
          format: MM/dd/yyyy
          nullable: true
        AddressTypeCode:
          type: integer
          format: int64
        AddressType:
          maxLength: 50
          minLength: 0
          type: string
          description: >-
            Describes the type of address. The most common types are as
            follows:  

            Unknown, Residence, Business, Mailing
        AddressLine1:
          maxLength: 50
          minLength: 0
          type: string
          description: >-
            First address line of the entity. Usually contains the street
            address or PO Box.
          nullable: true
        AddressLine2:
          maxLength: 50
          minLength: 0
          type: string
          description: >-
            Second address line of the entity. Usually contains apartment or
            suite number.
          nullable: true
        AddressLine3:
          maxLength: 50
          minLength: 0
          type: string
          description: >-
            Third address line of the entity. Might contain department number or
            mail stop.
          nullable: true
        City:
          maxLength: 35
          minLength: 0
          type: string
          description: The city where the address is located
          nullable: true
        State:
          maxLength: 2
          minLength: 0
          type: string
          description: The State where the address is located.
        Zip:
          maxLength: 10
          minLength: 0
          type: string
          description: >-
            The ZIP Code where the address is located. ZIP + 4 codes can also be
            stored, but should be in the format #####-#### (with a hyphen).  

            Foreign mail codes are also stored here and should be in the format
            AAAAAAAAAA only if the country code is not 001 (USA).
          nullable: true
        Country:
          maxLength: 50
          minLength: 0
          type: string
          description: Name of the country where the address is located.
          nullable: true
        Key:
          type: string
          nullable: true
        LineOne:
          type: string
          nullable: true
        LineTwo:
          type: string
          nullable: true
        CityName:
          type: string
          nullable: true
        StateOrProvinceCode:
          type: string
          nullable: true
        PostalCode:
          type: string
          nullable: true
        CountryCode:
          type: string
          nullable: true
      additionalProperties: false
    NiprAddressInfo:
      type: object
      properties:
        Person:
          $ref: '#/components/schemas/NiprPerson'
        Organization:
          $ref: '#/components/schemas/NiprOrganization'
        Address:
          type: array
          items:
            $ref: '#/components/schemas/NiprAddress'
          nullable: true
      additionalProperties: false
    NiprAddressReferences:
      type: object
      properties:
        AddressReference:
          type: string
          nullable: true
        Address:
          type: string
          nullable: true
      additionalProperties: false
    NiprAddresses:
      type: object
      properties:
        State:
          type: string
          nullable: true
        Addresses:
          type: array
          items:
            $ref: '#/components/schemas/NiprAddress'
          nullable: true
      additionalProperties: false
    NiprAddressesNiprStates:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/NiprAddresses'
          nullable: true
      additionalProperties: false
    NiprAgencyAffiliations:
      type: object
      properties:
        AgencyName:
          type: string
          nullable: true
        FeinStateCodeId:
          type: string
          nullable: true
      additionalProperties: false
    NiprAlertBiographic:
      type: object
      properties:
        Person:
          $ref: '#/components/schemas/NiprPerson'
        Organization:
          type: array
          items:
            $ref: '#/components/schemas/NiprOrganization'
          nullable: true
      additionalProperties: false
    NiprAppointment:
      required:
        - CompanyName
        - Fein
        - LoaCode
        - Status
        - StatusReasonDate
      type: object
      properties:
        BranchId:
          type: string
          nullable: true
        CompanyName:
          maxLength: 100
          minLength: 0
          type: string
          description: 'The name of the appointing firm.  '
        Fein:
          maxLength: 10
          minLength: 0
          type: string
          description: >-
            The Federal Employers Identification Number of an appointing firm in
            the format ##-####### (with hyphen).  
        CompanyCode:
          maxLength: 5
          minLength: 0
          type: string
          description: The NAIC/NIPR-defined Company Code of the appointing firm.
          nullable: true
        Loa:
          maxLength: 50
          minLength: 0
          type: string
          description: |-
            The text description of the appointment Line of Authority (LOA).  
            Not all States have Lines of Authority at the appointment level.
          nullable: true
        LoaCode:
          type: integer
          description: >-
            The NAIC code for the lines of authorities for license and
            appointments of the producer.  

            The lines of authority vary from state to state. The PDB State
            Offerings contain these codes.  
          format: int64
        Status:
          maxLength: 30
          minLength: 0
          type: string
          description: The status.
        TerminationReason:
          maxLength: 50
          minLength: 0
          type: string
          description: >-
            The text description of the reason for the appointment termination,
            which varies by State.
          nullable: true
        StatusReasonDate:
          type: date
          description: The date the license status reason takes effect.
          format: MM/dd/yyyy
        AppointmentRenewalDate:
          type: date
          description: The renewal date of the appointment.
          format: MM/dd/yyyy
          nullable: true
        CountyCode:
          type: string
          nullable: true
        AgencyAffiliations:
          $ref: '#/components/schemas/NiprAgencyAffiliations'
        InsurerReferences:
          $ref: '#/components/schemas/NiprInsurerReferences'
        LineOfAuthority:
          $ref: '#/components/schemas/NiprLineOfAuthority'
        StateOrProvinceCode:
          type: string
          nullable: true
        StatusCode:
          type: string
          nullable: true
        StatusReasonDescription:
          type: string
          nullable: true
        AppointmentEffectiveDate:
          type: string
          format: date-time
          nullable: true
        TerminationEffectiveDate:
          type: string
          format: date-time
          nullable: true
        CountyName:
          type: string
          nullable: true
      additionalProperties: false
    NiprBiographic:
      required:
        - Fein
        - FirstName
        - LastName
        - Name
      type: object
      properties:
        Fein:
          maxLength: 10
          minLength: 0
          type: string
          description: >-
            The Federal Employers Identification Number of business entity in
            the format ##-####### (with hyphen).
        Name:
          maxLength: 100
          minLength: 0
          type: string
          description: 'The name of the business entity.  '
        CompanyStateId:
          type: string
          nullable: true
        MiddleName:
          maxLength: 25
          minLength: 0
          type: string
          description: The middle name or middle initial of the individual.
          nullable: true
        Suffix:
          maxLength: 10
          minLength: 0
          type: string
          description: The name suffix (if any) - (i.e., Sr., Jr., III) of the individual.
          nullable: true
        DateOfBirth:
          type: date
          description: The individual's date of birth.
          format: MM/dd/yyyy
          nullable: true
        DomicileState:
          maxLength: 2
          minLength: 0
          type: string
          description: 'The two letter state code indicating where a firm is incorporated.  '
          nullable: true
        Ssn:
          maxLength: 11
          minLength: 0
          type: string
          description: >-
            The social security number of an individual in the format #### (last
            4 digits). 
          nullable: true
        LastName:
          maxLength: 25
          minLength: 0
          type: string
          description: The last name of the individual.
        FirstName:
          maxLength: 25
          minLength: 0
          type: string
          description: The first name of the individual.
        Npn:
          type: string
          nullable: true
        OtherNames:
          $ref: '#/components/schemas/NiprOtherNamesNiprStates'
      additionalProperties: false
    NiprBusinessCommunication:
      type: object
      properties:
        MailingAddress:
          $ref: '#/components/schemas/NiprMailingAddress'
      additionalProperties: false
    NiprContactInfo:
      type: object
      properties:
        State:
          type: string
          nullable: true
        BranchId:
          type: string
          nullable: true
        BusinessPhone:
          type: string
          nullable: true
        BusinessPhoneUpdateDate:
          type: date
          format: MM/dd/yyyy
          nullable: true
        BusinessEmail:
          type: string
          nullable: true
        BusinessEmailUpdateDate:
          type: date
          format: MM/dd/yyyy
          nullable: true
        Fax:
          type: string
          nullable: true
        FaxUpdateDate:
          type: date
          format: MM/dd/yyyy
          nullable: true
      additionalProperties: false
    NiprContactInfos:
      type: object
      properties:
        State:
          type: string
          nullable: true
        ContactInfo:
          type: array
          items:
            $ref: '#/components/schemas/NiprContactInfo'
          nullable: true
      additionalProperties: false
    NiprContactInfosNiprStates:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/NiprContactInfos'
          nullable: true
      additionalProperties: false
    NiprDesignatedHomeState:
      required:
        - HomeState
      type: object
      properties:
        HomeState:
          maxLength: 2
          minLength: 0
          type: string
          description: Identifies Designated Home State
      additionalProperties: false
    NiprEntity:
      type: object
      properties:
        EntityBiographic:
          $ref: '#/components/schemas/NiprEntityBiographic'
        ProducerLicensing:
          $ref: '#/components/schemas/NiprProducerLicensing'
      additionalProperties: false
    NiprEntityAdditionalInfoCategory:
      type: object
      properties:
        Name:
          type: string
          description: The name.
          nullable: true
        LastUpdated:
          type: date
          format: MM/dd/yyyy
          nullable: true
      additionalProperties: false
    NiprEntityBiographic:
      type: object
      properties:
        Biographic:
          $ref: '#/components/schemas/NiprBiographic'
        Addresses:
          $ref: '#/components/schemas/NiprAddressesNiprStates'
        ContactInfos:
          $ref: '#/components/schemas/NiprContactInfosNiprStates'
      additionalProperties: false
    NiprExternalId:
      type: object
      properties:
        TypeCode:
          type: string
          nullable: true
        Id:
          type: string
          nullable: true
      additionalProperties: false
    NiprFirmSummaryInfo:
      required:
        - Fein
        - Name
      type: object
      properties:
        Name:
          maxLength: 100
          minLength: 0
          type: string
          description: The name of the business entity.
        EntityId:
          type: integer
          format: int64
        Npn:
          type: integer
          format: int32
        Fein:
          maxLength: 10
          minLength: 0
          type: string
          description: >-
            The Federal Employers Identification Number of an appointing firm in
            the format ##-####### (with hyphen).
        BusinessState:
          type: string
          nullable: true
      additionalProperties: false
    NiprFirmsSummaryInfo:
      type: object
      properties:
        TransactionType:
          $ref: '#/components/schemas/NiprTransactionType'
        Firms:
          type: array
          items:
            $ref: '#/components/schemas/NiprFirmSummaryInfo'
          nullable: true
      additionalProperties: false
    NiprFullInfo:
      type: object
      properties:
        TransactionType:
          $ref: '#/components/schemas/NiprTransactionType'
        Producer:
          $ref: '#/components/schemas/NiprProducer'
        Biographic:
          $ref: '#/components/schemas/NiprAlertBiographic'
        Organization:
          type: array
          items:
            $ref: '#/components/schemas/NiprOrganization'
          nullable: true
        LastUpdated:
          type: date
          format: MM/dd/yyyy
          nullable: true
        AddressInfo:
          $ref: '#/components/schemas/NiprAddressInfo'
        LicenseData:
          $ref: '#/components/schemas/NiprLicenseData'
      additionalProperties: false
    NiprIndividualAdditionalInfo:
      type: object
      properties:
        EntityId:
          type: integer
          format: int64
        Categories:
          type: array
          items:
            $ref: '#/components/schemas/NiprEntityAdditionalInfoCategory'
          nullable: true
      additionalProperties: false
    NiprIndividualSummaryInfo:
      type: object
      properties:
        Name:
          type: string
          description: The name.
          nullable: true
        EntityId:
          type: integer
          format: int64
        Npn:
          type: integer
          format: int32
        ResidentState:
          type: string
          nullable: true
        DateOfBirth:
          type: date
          description: The individual's date of birth.
          format: MM/dd/yyyy
          nullable: true
      additionalProperties: false
    NiprIndividualsSummaryInfo:
      type: object
      properties:
        TransactionType:
          $ref: '#/components/schemas/NiprTransactionType'
        Individuals:
          type: array
          items:
            $ref: '#/components/schemas/NiprIndividualSummaryInfo'
          nullable: true
      additionalProperties: false
    NiprInsuranceLicense:
      type: object
      properties:
        ResidentLicenseIndicator:
          type: string
          nullable: true
        TypeCode:
          type: string
          nullable: true
        License:
          $ref: '#/components/schemas/NiprLicense'
        LineOfAuthorities:
          type: array
          items:
            $ref: '#/components/schemas/NiprLineOfAuthority'
          nullable: true
      additionalProperties: false
    NiprInsurerReferences:
      type: object
      properties:
        OrganizationReferences:
          $ref: '#/components/schemas/NiprOrganizationReferences'
      additionalProperties: false
    NiprJurisdictionReport:
      type: object
      properties:
        JurisdictionReportItem:
          type: array
          items:
            $ref: '#/components/schemas/NiprJurisdictionReportItem'
          nullable: true
      additionalProperties: false
    NiprJurisdictionReportItem:
      type: object
      properties:
        StateOrProvinceCode:
          type: string
          nullable: true
        LicenseInformation:
          $ref: '#/components/schemas/NiprLicenseInformation'
        RegulatoryFileRef:
          maxLength: 25
          minLength: 0
          type: string
          description: >-
            Identifies the State’s internal file regulatory action (RIRS)
            reference number.
          nullable: true
      additionalProperties: false
    NiprLicense:
      required:
        - Active
        - LicenseClass
        - LicenseClassCode
        - LicenseNumber
        - ResidencyStatus
      type: object
      properties:
        BranchId:
          type: string
          nullable: true
        LicenseNumber:
          maxLength: 14
          minLength: 0
          type: string
          description: >-
            The state license number. This unformatted text field is used to
            store the state license number.
        DateUpdated:
          type: date
          description: >-
            The date any information in this segment/entity was updated by the
            States.
          format: MM/dd/yyyy
          nullable: true
        OriginalLicenseIssueDate:
          type: date
          description: The date the license was originally issued by the state.
          format: MM/dd/yyyy
          nullable: true
        LicenseExpireDate:
          type: date
          description: >-
            The date the license is scheduled to expire. If there is no
            expiration date, this field will be blank.  

            If this attribute is blank, "perpetual" may be displayed on the PDB
            reports.
          format: MM/dd/yyyy
          nullable: true
        LicenseClass:
          maxLength: 50
          minLength: 0
          type: string
          description: The text description of the State license class.
        LicenseClassCode:
          type: integer
          description: >-
            The NAIC/NIPR code for the license class assigned to this
            producer.  

            License codes vary from state to state. The PDB State Offerings
            contains these codes.
          format: int64
        ResidencyStatus:
          maxLength: 2
          minLength: 0
          type: string
          description: >-
            Indicates whether the producer is a resident in the state in which
            the license was issued.  

            - R : Resident  

            - NR : Nonresident
        Active:
          maxLength: 3
          minLength: 0
          type: string
          description: The license class status. (Yes, No)
        DesignatedHomeState:
          $ref: '#/components/schemas/NiprDesignatedHomeState'
        Details:
          type: array
          items:
            $ref: '#/components/schemas/NpnLicenseDetail'
          nullable: true
        CeCreditsNeeded:
          type: integer
          description: >-
            The remaining number of continuing education hours a producer has to
            complete before being certified for license renewal.  

            Most States do not provide or maintain this information on the PDB;
            therefore, most responses will be 0 (zero).
          format: int64
          nullable: true
        CeRenewalDate:
          type: date
          description: >-
            The CE renewal date of a producer.  

            Most States do not provide or maintain this information on the PDB;
            therefore, the field is usually blank.
          format: MM/dd/yyyy
          nullable: true
        CeCompliance:
          maxLength: 13
          minLength: 0
          type: string
          description: "Text description of whether the producer is in compliance with the CE requirements of your state.  \nMost States do not provide or maintain this information to the PDB.  \n- N/S\t:\tThe state requires CE but did not supply compliance information.  \n- Yes\t:\tThe producer is in compliance with the state’s CE requirements  \n- No\t:\tThe producer is not in compliance with the state’s CE requirements  \n- N/A\t:\tThe state does not require CE (example: for nonresident license)- In Compliance"
          nullable: true
        Key:
          type: string
          nullable: true
        LicenseNumberId:
          type: string
          nullable: true
        LicensePeriod:
          $ref: '#/components/schemas/NiprLicensePeriod'
        StatusCode:
          type: string
          nullable: true
        IssueDate:
          type: string
          format: date-time
          nullable: true
        LicenseClassNumberCode:
          type: string
          nullable: true
        LicenseClassDescription:
          type: string
          nullable: true
        StateOrProvinceCode:
          type: string
          nullable: true
        StateOrProvinceName:
          type: string
          nullable: true
        AsOfDate:
          type: string
          nullable: true
      additionalProperties: false
    NiprLicenseData:
      type: object
      properties:
        JurisdictionReport:
          $ref: '#/components/schemas/NiprJurisdictionReport'
      additionalProperties: false
    NiprLicenseInformation:
      type: object
      properties:
        InsuranceLicense:
          type: array
          items:
            $ref: '#/components/schemas/NiprInsuranceLicense'
          nullable: true
        InsuranceAppointment:
          type: array
          items:
            $ref: '#/components/schemas/NiprAppointment'
          nullable: true
        RegulatoryAction:
          $ref: '#/components/schemas/NiprRegulatoryAction'
      additionalProperties: false
    NiprLicensePeriod:
      type: object
      properties:
        EndDate:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    NiprLicenses:
      type: object
      properties:
        State:
          type: string
          nullable: true
        Licenses:
          type: array
          items:
            $ref: '#/components/schemas/NiprLicense'
          nullable: true
        Appointments:
          type: array
          items:
            $ref: '#/components/schemas/NiprAppointment'
          nullable: true
      additionalProperties: false
    NiprLicensesNiprStates:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/NiprLicenses'
          nullable: true
      additionalProperties: false
    NiprLineOfAuthority:
      type: object
      properties:
        IssueDate:
          type: string
          format: date-time
          nullable: true
        StateOrProvinceCode:
          type: string
          nullable: true
        StateOrProvinceName:
          type: string
          nullable: true
        LineOfAuthorityCode:
          type: string
          nullable: true
        LineOfAuthorityDescription:
          type: string
          nullable: true
        StatusCode:
          type: string
          nullable: true
        StatusDescription:
          type: string
          nullable: true
        StatusPeriod:
          $ref: '#/components/schemas/NiprLoaStatusPeriod'
        CeCompliance:
          maxLength: 13
          minLength: 0
          type: string
          description: "Text description of whether the producer is in compliance with the CE requirements of your state.  \nMost States do not provide or maintain this information to the PDB.  \n- N/S\t:\tThe state requires CE but did not supply compliance information.  \n- Yes\t:\tThe producer is in compliance with the state’s CE requirements  \n- No\t:\tThe producer is not in compliance with the state’s CE requirements  \n- N/A\t:\tThe state does not require CE (example: for nonresident license)- In Compliance"
          nullable: true
        CeRenewalDate:
          type: date
          description: >-
            The CE renewal date of a producer.  

            Most States do not provide or maintain this information on the PDB;
            therefore, the field is usually blank.
          format: MM/dd/yyyy
          nullable: true
        CeCreditsNeeded:
          type: integer
          description: >-
            The remaining number of continuing education hours a producer has to
            complete before being certified for license renewal.  

            Most States do not provide or maintain this information on the PDB;
            therefore, most responses will be 0 (zero).
          format: int64
          nullable: true
        RenewalDate:
          type: date
          format: MM/dd/yyyy
          nullable: true
      additionalProperties: false
    NiprLoaStatusPeriod:
      type: object
      properties:
        StartDate:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    NiprMailingAddress:
      type: object
      properties:
        AsOfDate:
          type: string
          nullable: true
        AddressReferences:
          $ref: '#/components/schemas/NiprAddressReferences'
      additionalProperties: false
    NiprOrganization:
      type: object
      properties:
        Key:
          type: string
          nullable: true
        OrganizationName:
          $ref: '#/components/schemas/NiprOrganizationName'
        OrganizationCommunication:
          $ref: '#/components/schemas/NiprOrganizationCommunication'
        ExternalId:
          type: array
          items:
            $ref: '#/components/schemas/NiprExternalId'
          nullable: true
      additionalProperties: false
    NiprOrganizationCommunication:
      type: object
      properties:
        MailingAddress:
          $ref: '#/components/schemas/NiprMailingAddress'
        PhysicalAddress:
          $ref: '#/components/schemas/NiprPhysicalAddress'
        PrincipalAddress:
          $ref: '#/components/schemas/NiprPhysicalAddress'
      additionalProperties: false
    NiprOrganizationName:
      type: object
      properties:
        FullName:
          type: string
          nullable: true
        TypeCode:
          type: string
          nullable: true
      additionalProperties: false
    NiprOrganizationReferences:
      type: object
      properties:
        OrganizationReference:
          type: string
          nullable: true
      additionalProperties: false
    NiprOtherName:
      type: object
      properties:
        BranchId:
          type: string
          nullable: true
        StateCompanyId:
          type: string
          nullable: true
        Type:
          type: string
          nullable: true
        Name:
          type: string
          nullable: true
      additionalProperties: false
    NiprOtherNames:
      type: object
      properties:
        State:
          type: string
          nullable: true
        OtherNames:
          type: array
          items:
            $ref: '#/components/schemas/NiprOtherName'
          nullable: true
      additionalProperties: false
    NiprOtherNamesNiprStates:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/NiprOtherNames'
          nullable: true
      additionalProperties: false
    NiprPerson:
      type: object
      properties:
        Key:
          type: string
          nullable: true
        DateOfBirth:
          type: date
          format: MM/dd/yyyy
          nullable: true
        ExternalId:
          $ref: '#/components/schemas/NiprExternalId'
        PersonName:
          $ref: '#/components/schemas/NiprPersonName'
        PersonCommunication:
          $ref: '#/components/schemas/NiprPersonCommunication'
        BusinessCommunication:
          $ref: '#/components/schemas/NiprBusinessCommunication'
      additionalProperties: false
    NiprPersonCommunication:
      type: object
      properties:
        MailingAddress:
          $ref: '#/components/schemas/NiprMailingAddress'
        ResidentialAddress:
          $ref: '#/components/schemas/NiprResidentialAddress'
      additionalProperties: false
    NiprPersonName:
      type: object
      properties:
        TypeCode:
          type: string
          nullable: true
        FullName:
          type: string
          nullable: true
        Surname:
          type: string
          nullable: true
        GivenName:
          type: string
          nullable: true
      additionalProperties: false
    NiprPhysicalAddress:
      type: object
      properties:
        AsOfDate:
          type: string
          nullable: true
        AddressReferences:
          $ref: '#/components/schemas/NiprAddressReferences'
      additionalProperties: false
    NiprProducer:
      type: object
      properties:
        Firm:
          $ref: '#/components/schemas/NiprEntity'
        Individual:
          $ref: '#/components/schemas/NiprEntity'
      additionalProperties: false
    NiprProducerLicensing:
      type: object
      properties:
        ClearanceCertification:
          type: string
          nullable: true
        LicenseInformation:
          $ref: '#/components/schemas/NiprLicensesNiprStates'
        RegulatoryActions:
          $ref: '#/components/schemas/NiprRegulatoryActionNiprStates'
      additionalProperties: false
    NiprRegulatoryAction:
      required:
        - DateOfAction
        - EffectiveDate
        - EnterDate
        - OriginOfAction
        - ReasonForAction
      type: object
      properties:
        State:
          type: string
          nullable: true
        ActionId:
          type: integer
          format: int64
          nullable: true
        OriginOfAction:
          maxLength: 16
          minLength: 0
          type: string
          description: Text description of the origination of the regulatory action (RIRS).
        ReasonForAction:
          maxLength: 48
          minLength: 0
          type: string
          description: Text description of the regulatory action (RIRS).
        Disposition:
          maxLength: 250
          minLength: 0
          type: string
          description: Text description of the disposition of the regulatory action (RIRS).
          nullable: true
        DateOfAction:
          type: date
          description: |-
            The date of the regulatory action.  
            The DateOfAction may not be greater than the calendar date.
          format: MM/dd/yyyy
        EffectiveDate:
          type: date
          description: |-
            The effective date of the regulatory action.  
            EffectiveDate may be greater than the calendar date.
          format: MM/dd/yyyy
        EnterDate:
          type: date
          description: The entry date of the regulatory action.
          format: MM/dd/yyyy
        FileRef:
          maxLength: 25
          minLength: 0
          type: string
          description: >-
            Identifies the State’s internal file regulatory action (RIRS)
            reference number.
          nullable: true
        PenaltyFineForfeiture:
          type: integer
          description: >-
            The amount of the penalty that was assessed for the regulatory
            action (RIRS).  

            The amount is in whole dollars only.
          format: int64
          nullable: true
        LengthOfOrder:
          type: integer
          description: >-
            The length of the sanction specified in days (i.e., one year equals
            365 days) for the regulatory action (RIRS).
          format: int64
          nullable: true
        StateOrProvinceCode:
          type: string
          nullable: true
        PenaltyAmount:
          type: integer
          format: int64
          nullable: true
        ActionInceptionCode:
          type: string
          nullable: true
        ActionReasonDescription:
          type: string
          nullable: true
        ActionDate:
          type: string
          format: date-time
          nullable: true
        ActionRegulatoryEntryDate:
          type: string
          format: date-time
          nullable: true
        RegulatoryActionPeriod:
          $ref: '#/components/schemas/NiprRegulatoryActionPeriod'
      additionalProperties: false
    NiprRegulatoryActionNiprStates:
      type: object
      properties:
        Items:
          type: array
          items:
            $ref: '#/components/schemas/NiprRegulatoryAction'
          nullable: true
      additionalProperties: false
    NiprRegulatoryActionPeriod:
      type: object
      properties:
        StartDate:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    NiprResidentialAddress:
      type: object
      properties:
        AsOfDate:
          type: string
          nullable: true
        AddressReferences:
          $ref: '#/components/schemas/NiprAddressReferences'
      additionalProperties: false
    NiprTransactionType:
      required:
        - Type
      type: object
      properties:
        Type:
          maxLength: 15
          minLength: 0
          type: string
          description: |-
            The type of the producer:  
            - Individual  
            - Business Entity
      additionalProperties: false
    NpnLicenseDetail:
      required:
        - Loa
        - LoaCode
        - Status
        - StatusReasonDate
      type: object
      properties:
        Loa:
          maxLength: 50
          minLength: 0
          type: string
          description: |-
            The text description of the State license line of authority (LOA).  
            The State Offerings should be consulted for the specific State LOAs.
        LoaCode:
          type: integer
          description: >-
            The NAIC code for the lines of authorities for license and
            appointments of the producer.  

            The lines of authority vary from state to state. The PDB State
            Offerings contain these codes.  
          format: int64
        AuthorityIssueDate:
          type: date
          description: The date the license was issued according to the State.
          format: MM/dd/yyyy
          nullable: true
        StatusReason:
          maxLength: 30
          minLength: 0
          type: string
          description: >-
            The text description of the license Line of Authority (LOA) status
            reason.  

            Why a producer got a particular status. These vary from state to
            state.
          nullable: true
        StatusReasonDate:
          type: date
          description: The date the license status reason takes effect.
          format: MM/dd/yyyy
        CeCompliance:
          maxLength: 13
          minLength: 0
          type: string
          description: "Text description of whether the producer is in compliance with the CE requirements of your state.  \nMost States do not provide or maintain this information to the PDB.  \n- N/S\t:\tThe state requires CE but did not supply compliance information.  \n- Yes\t:\tThe producer is in compliance with the state’s CE requirements  \n- No\t:\tThe producer is not in compliance with the state’s CE requirements  \n- N/A\t:\tThe state does not require CE (example: for nonresident license)- In Compliance"
          nullable: true
        CeRenewalDate:
          type: date
          description: >-
            The CE renewal date of a producer.  

            Most States do not provide or maintain this information on the PDB;
            therefore, the field is usually blank.
          format: MM/dd/yyyy
          nullable: true
        CeCreditsNeeded:
          type: integer
          description: >-
            The remaining number of continuing education hours a producer has to
            complete before being certified for license renewal.  

            Most States do not provide or maintain this information on the PDB;
            therefore, most responses will be 0 (zero).
          format: int64
          nullable: true
        Status:
          maxLength: 30
          minLength: 0
          type: string
          description: The status.
      additionalProperties: false
    SearchTypeEnum:
      enum:
        - NAME
        - SSN
        - NPN
        - LICENSE
      type: string
