openapi: 3.0.4
info:
  title: Producer Import
  version: v1
paths:
  /producerimport/v1/agents:
    post:
      tags:
        - ProducerImport
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/AgentImportRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/AgentImportRequest'
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ProfileImportResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileImportResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
  /producerimport/v1/agencies:
    post:
      tags:
        - ProducerImport
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Firmimportrequest'
          application/json:
            schema:
              $ref: '#/components/schemas/Firmimportrequest'
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ProfileImportResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileImportResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Internal Server Error
components:
  schemas:
    AgentImportAddressModel:
      required:
        - City
        - State
        - StreetAddress1
        - Zip
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        AddressId:
          type: integer
          format: int64
          nullable: true
        City:
          minLength: 1
          type: string
        ClientAddressId:
          type: string
          nullable: true
        Country:
          type: string
          nullable: true
        County:
          type: string
          nullable: true
        FromDate:
          type: string
          format: date-time
          nullable: true
        State:
          minLength: 1
          type: string
        StreetAddress1:
          minLength: 1
          type: string
        StreetAddress2:
          type: string
          nullable: true
        ToDate:
          type: string
          format: date-time
          nullable: true
        Zip:
          minLength: 1
          type: string
      additionalProperties: false
    AgentImportContactModel:
      required:
        - BusinessEmailAddress
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        AdditionalEmailAddress:
          type: string
          nullable: true
        BusinessEmailAddress:
          minLength: 1
          type: string
        BusinessFaxNumber:
          type: string
          nullable: true
        BusinessPhoneExtension:
          type: string
          nullable: true
        BusinessPhoneNumber:
          type: string
          nullable: true
        CellPhoneNumber:
          type: string
          nullable: true
        HomeEmailAddress:
          type: string
          nullable: true
        HomeFaxNumber:
          type: string
          nullable: true
        HomePhoneNumber:
          type: string
          nullable: true
        SuppressEmail:
          type: string
          nullable: true
      additionalProperties: false
    AgentImportDemographicModel:
      required:
        - EmpStatus
        - FirstName
        - LastName
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        AffiliatedWithBank:
          type: string
          nullable: true
        Alias:
          type: string
          nullable: true
        BackOfficeNrf:
          type: string
          nullable: true
        BillingCode:
          type: string
          nullable: true
        BranchLocation:
          type: string
          nullable: true
        CityOfBirth:
          type: string
          nullable: true
        CostCenter:
          type: string
          nullable: true
        Country:
          type: string
          nullable: true
        CountryOfBirth:
          type: string
          nullable: true
        CrdNumber:
          type: string
          nullable: true
        CustomField1:
          type: string
          nullable: true
        CustomField2:
          type: string
          nullable: true
        CustomField3:
          type: string
          nullable: true
        CustomField4:
          type: string
          nullable: true
        CustomField5:
          type: string
          nullable: true
        CustomField6:
          type: string
          nullable: true
        CustomField7:
          type: string
          nullable: true
        CustomField8:
          type: string
          nullable: true
        CustomField9:
          type: string
          nullable: true
        CustomField10:
          type: string
          nullable: true
        DateOfBirth:
          type: string
          format: date-time
          nullable: true
        DeptNumber:
          type: string
          nullable: true
        DriverLicenseNumber:
          type: string
          nullable: true
        DriverLicenseState:
          type: string
          nullable: true
        EmployerId:
          type: string
          nullable: true
        EmployersFein:
          type: string
          nullable: true
        EmpStatus:
          minLength: 1
          type: string
        FirstName:
          minLength: 1
          type: string
        Gender:
          type: string
          nullable: true
        HireDate:
          type: string
          format: date-time
          nullable: true
        JobTitle:
          type: string
          nullable: true
        LastName:
          minLength: 1
          type: string
        MiddleInitial:
          type: string
          nullable: true
        NiprNumber:
          type: string
          nullable: true
        NmlsRegPriorFirmYn:
          type: string
          nullable: true
        NmlsRenewalDate:
          type: string
          format: date-time
          nullable: true
        NmlsRenewalStatus:
          type: string
          nullable: true
        ResidentState:
          type: string
          nullable: true
        RfoCode:
          type: string
          nullable: true
        Salutation:
          type: string
          nullable: true
        StateOfBirth:
          type: string
          nullable: true
        Suffix:
          type: string
          nullable: true
        TerminationDate:
          type: string
          format: date-time
          nullable: true
        UsCitizen:
          type: string
          nullable: true
      additionalProperties: false
    AgentImportEmploymentHistoryModel:
      required:
        - City
        - EmployerName
        - HireDate
        - JobTitle
        - State
        - StreetAddress1
        - Zip
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        City:
          minLength: 1
          type: string
        Country:
          type: string
          nullable: true
        County:
          type: string
          nullable: true
        EmployerName:
          minLength: 1
          type: string
        EmploymentId:
          type: integer
          format: int64
          nullable: true
        HireDate:
          type: string
          format: date-time
        InvestmentRelated:
          type: string
          nullable: true
        JobTitle:
          minLength: 1
          type: string
        State:
          minLength: 1
          type: string
        StreetAddress1:
          minLength: 1
          type: string
        StreetAddress2:
          type: string
          nullable: true
        SupervisorName:
          type: string
          nullable: true
        Zip:
          minLength: 1
          type: string
      additionalProperties: false
    AgentImportHierarchyModel:
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        HierarchyCode:
          type: string
          nullable: true
        Manager1:
          type: string
          nullable: true
        Manager2:
          type: string
          nullable: true
        Manager3:
          type: string
          nullable: true
        Manager4:
          type: string
          nullable: true
        Manager5:
          type: string
          nullable: true
        Manager6:
          type: string
          nullable: true
        Manager7:
          type: string
          nullable: true
        Manager8:
          type: string
          nullable: true
        Manager9:
          type: string
          nullable: true
        Manager10:
          type: string
          nullable: true
        Supervisor:
          type: string
          nullable: true
      additionalProperties: false
    AgentImportInformationModel:
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        IaBrochureSupplementDate:
          type: string
          format: date-time
          nullable: true
        IaBrochureSupplementRequired:
          type: string
          nullable: true
        IaSupervisorName:
          type: string
          nullable: true
        IaSupervisorPhoneNumber:
          type: string
          nullable: true
        IaSupervisorTitle:
          type: string
          nullable: true
      additionalProperties: false
    AgentImportRequest:
      required:
        - ProfileKey
        - Ssn
      type: object
      properties:
        BusinessAddress:
          $ref: '#/components/schemas/AgentImportAddressModel'
        Contact:
          $ref: '#/components/schemas/AgentImportContactModel'
        CurrentEmployment:
          $ref: '#/components/schemas/AgentImportEmploymentHistoryModel'
        Demographic:
          $ref: '#/components/schemas/AgentImportDemographicModel'
        Hierarchy:
          $ref: '#/components/schemas/AgentImportHierarchyModel'
        Information:
          $ref: '#/components/schemas/AgentImportInformationModel'
        MailingAddress:
          $ref: '#/components/schemas/AgentImportAddressModel'
        ProfileKey:
          minLength: 1
          type: string
        ResidentAddress:
          $ref: '#/components/schemas/AgentImportAddressModel'
        Ssn:
          minLength: 1
          type: string
      additionalProperties: false
    FirmImportAddressModel:
      required:
        - City
        - State
        - StreetAddress1
        - Zip
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        AddressId:
          type: integer
          format: int64
          nullable: true
        City:
          minLength: 1
          type: string
        ClientAddressId:
          type: string
          nullable: true
        Country:
          type: string
          nullable: true
        County:
          type: string
          nullable: true
        FromDate:
          type: string
          format: date-time
          nullable: true
        State:
          minLength: 1
          type: string
        StreetAddress1:
          minLength: 1
          type: string
        StreetAddress2:
          type: string
          nullable: true
        ToDate:
          type: string
          format: date-time
          nullable: true
        Zip:
          minLength: 1
          type: string
      additionalProperties: false
    FirmImportContactModel:
      required:
        - ContactType
        - EmailAddress
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        BusinessFaxNumber:
          type: string
          nullable: true
        BusinessPhoneExtension:
          type: string
          nullable: true
        BusinessPhoneNumber:
          type: string
          nullable: true
        CellPhoneNumber:
          type: string
          nullable: true
        ClientContactId:
          type: string
          nullable: true
        ContactId:
          type: integer
          format: int64
          nullable: true
        ContactType:
          minLength: 1
          type: string
        EmailAddress:
          minLength: 1
          type: string
        FirstName:
          type: string
          nullable: true
        LastName:
          type: string
          nullable: true
      additionalProperties: false
    FirmImportDemographicModel:
      required:
        - FirmName
        - Status
      type: object
      properties:
        DynamicData:
          type: object
          additionalProperties: {}
          nullable: true
        AffiliatedWithBank:
          type: string
          nullable: true
        BusinessFax:
          type: string
          nullable: true
        BusinessPhone:
          type: string
          nullable: true
        CostCenter:
          type: string
          nullable: true
        FirmBillingCode:
          type: string
          nullable: true
        CustomField1:
          type: string
          nullable: true
        CustomField2:
          type: string
          nullable: true
        CustomField3:
          type: string
          nullable: true
        DbaName:
          type: string
          nullable: true
        DomicileCountry:
          type: string
          nullable: true
        DomicileState:
          type: string
          nullable: true
        EmailAddress:
          type: string
          nullable: true
        FirmCrd:
          type: string
          nullable: true
        FirmId:
          type: string
          nullable: true
        FirmName:
          minLength: 1
          type: string
        IncorporationDate:
          type: string
          nullable: true
        Nipr:
          type: string
          nullable: true
        OrganizationDate:
          type: string
          format: date-time
          nullable: true
        OrganizationType:
          type: integer
          format: int64
          nullable: true
        ParentFirmProfileKey:
          type: string
          nullable: true
        Region:
          type: string
          nullable: true
        StartDate:
          type: string
          format: date-time
          nullable: true
        Status:
          type: integer
          format: int64
        TerminationDate:
          type: string
          format: date-time
          nullable: true
        WebAddress:
          type: string
          nullable: true
      additionalProperties: false
    Firmimportrequest:
      required:
        - ProfileKey
        - Tin
      type: object
      properties:
        BusinessAddress:
          $ref: '#/components/schemas/FirmImportAddressModel'
        Contacts:
          type: array
          items:
            $ref: '#/components/schemas/FirmImportContactModel'
          nullable: true
        Demographic:
          $ref: '#/components/schemas/FirmImportDemographicModel'
        MailingAddress:
          $ref: '#/components/schemas/FirmImportAddressModel'
        PrimaryAddress:
          $ref: '#/components/schemas/FirmImportAddressModel'
        ProfileKey:
          minLength: 1
          type: string
        Tin:
          minLength: 1
          type: string
      additionalProperties: false
    ProfileImportResponse:
      type: object
      properties:
        Success:
          type: boolean
        Validations:
          type: string
          nullable: true
        Message:
          type: string
          nullable: true
      additionalProperties: false
