openapi: 3.0.4
info:
  title: Producer Validation
  version: v1
paths:
  /producervalidation/v1/agencies/verifycansell:
    post:
      tags:
        - Agency
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/AgencyRequestDto'
            example: "<AgencyRequestDto xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <TransactionRefGuid>00000000-0000-0000-0000-000000000000</TransactionRefGuid>\r\n  <ProductTypeCode>2</ProductTypeCode>\r\n  <ApplicationJurisdictionTypeCode>35</ApplicationJurisdictionTypeCode>\r\n  <ApplicationSignedDate>2022-05-05</ApplicationSignedDate>\r\n  <Appoint>false</Appoint>\r\n  <PrimaryProducer>\r\n    <IdentificationNumber>16985969</IdentificationNumber>\r\n    <IdentificationType>1</IdentificationType>\r\n  </PrimaryProducer>\r\n  <CarrierCode>65811</CarrierCode>\r\n  <OwnerResidenceStateCode>35</OwnerResidenceStateCode>\r\n  <SecondaryProducers>\r\n    <ProducerDetail>\r\n      <IdentificationNumber>16985969</IdentificationNumber>\r\n      <IdentificationType>1</IdentificationType>\r\n    </ProducerDetail>\r\n  </SecondaryProducers>\r\n</AgencyRequestDto>"
          application/json:
            schema:
              $ref: '#/components/schemas/AgencyRequestDto'
            example:
              transactionRefGuid: 00000000-0000-0000-0000-000000000000
              productTypeCode: 2
              applicationJurisdictionTypeCode: 35
              applicationSignedDate: '2022-05-05'
              appoint: false
              primaryProducer:
                identificationNumber: '16985969'
                identificationType: 1
              carrierCode: '65811'
              ownerResidenceStateCode: 35
              secondaryProducers:
                - identificationNumber: '16985969'
                  identificationType: 1
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ResponseDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDto'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
  /producervalidation/v1/agents/verifycansell:
    post:
      tags:
        - Agent
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/AgentRequestDto'
            example: "<AgentRequestDto xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <TransactionRefGuid>48dcf502-6e88-45f9-bed0-7efb821f8494</TransactionRefGuid>\r\n  <ProductTypeCode>2</ProductTypeCode>\r\n  <ApplicationJurisdictionTypeCode>33</ApplicationJurisdictionTypeCode>\r\n  <ApplicationSignedDate>2022-05-05</ApplicationSignedDate>\r\n  <Appoint>false</Appoint>\r\n  <PrimaryProducer>\r\n    <IdentificationNumber>518942236</IdentificationNumber>\r\n    <IdentificationType>1</IdentificationType>\r\n  </PrimaryProducer>\r\n  <CarrierCode>54321</CarrierCode>\r\n  <OwnerResidenceStateCode>33</OwnerResidenceStateCode>\r\n  <SecondaryProducers>\r\n    <ProducerDetail>\r\n      <IdentificationNumber>518942236</IdentificationNumber>\r\n      <IdentificationType>1</IdentificationType>\r\n    </ProducerDetail>\r\n  </SecondaryProducers>\r\n  <CusipNum>10687771</CusipNum>\r\n</AgentRequestDto>"
          application/json:
            schema:
              $ref: '#/components/schemas/AgentRequestDto'
            example:
              cusipNum: '10687771'
              transactionRefGuid: 48dcf502-6e88-45f9-bed0-7efb821f8494
              productTypeCode: 2
              applicationJurisdictionTypeCode: 33
              applicationSignedDate: '2022-05-05'
              appoint: false
              primaryProducer:
                identificationNumber: '518942236'
                identificationType: 1
              carrierCode: '54321'
              ownerResidenceStateCode: 33
              secondaryProducers:
                - identificationNumber: '518942236'
                  identificationType: 1
      responses:
        '200':
          description: OK
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/ResponseDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseDto'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
components:
  schemas:
    AgencyRequestDto:
      required:
        - applicationJurisdictionTypeCode
        - appoint
        - ownerResidenceStateCode
        - primaryProducer
        - productTypeCode
      type: object
      properties:
        transactionRefGuid:
          type: string
          description: Callers own transaction tracking GUID
          nullable: true
        productTypeCode:
          type: integer
          description: >-
            The product the producer wants to sell<br/>1 - Whole Life<br/>2 -
            Term<br/>3 - Universal Life<br/>4 - Variable Universal Life<br/>5 -
            Indexed Universal Life<br/>8 - Variable Whole Life<br/>9 - Fixed
            Annuity<br/>10 - Variable Annuity<br/>11 - Indexed Annuity<br/>46 -
            Property, Casualty, and Personal Lines<br/>56 - Registered Indexed
            Annuity<br/>This is an incomplete list, contact RegEd for additional
            information.
          format: int32
        applicationJurisdictionTypeCode:
          $ref: '#/components/schemas/StateCodes'
        applicationSignedDate:
          type: string
          description: Date the application is signed.
          format: date
          nullable: true
        appoint:
          type: boolean
          description: >-
            For clients utilizing the JIT process: if the producer isn't already
            appointed to sell in the jurisdiction, but is otherwise ready to
            sell, go ahead and attempt to appoint them in that jurisdiction. For
            clients not utilizing the JIT process: this can be sent as false
        primaryProducer:
          $ref: '#/components/schemas/ProducerDetail'
        carrierCode:
          pattern: ^\d{5}$
          type: string
          description: Insurance Company's (Carrier) NAIC Code. Only needed for appointment
          nullable: true
        ownerResidenceStateCode:
          $ref: '#/components/schemas/StateCodes'
        secondaryProducers:
          type: array
          items:
            $ref: '#/components/schemas/ProducerDetail'
          description: Any secondary producers to include in the decision
          nullable: true
      additionalProperties: false
    AgentRequestDto:
      required:
        - applicationJurisdictionTypeCode
        - appoint
        - ownerResidenceStateCode
        - primaryProducer
        - productTypeCode
      type: object
      properties:
        transactionRefGuid:
          type: string
          description: Callers own transaction tracking GUID
          nullable: true
        productTypeCode:
          type: integer
          description: >-
            The product the producer wants to sell<br/>1 - Whole Life<br/>2 -
            Term<br/>3 - Universal Life<br/>4 - Variable Universal Life<br/>5 -
            Indexed Universal Life<br/>8 - Variable Whole Life<br/>9 - Fixed
            Annuity<br/>10 - Variable Annuity<br/>11 - Indexed Annuity<br/>46 -
            Property, Casualty, and Personal Lines<br/>56 - Registered Indexed
            Annuity<br/>This is an incomplete list, contact RegEd for additional
            information.
          format: int32
        applicationJurisdictionTypeCode:
          $ref: '#/components/schemas/StateCodes'
        applicationSignedDate:
          type: string
          description: Date the application is signed.
          format: date
          nullable: true
        appoint:
          type: boolean
          description: >-
            For clients utilizing the JIT process: if the producer isn't already
            appointed to sell in the jurisdiction, but is otherwise ready to
            sell, go ahead and attempt to appoint them in that jurisdiction. For
            clients not utilizing the JIT process: this can be sent as false
        primaryProducer:
          $ref: '#/components/schemas/ProducerDetail'
        carrierCode:
          pattern: ^\d{5}$
          type: string
          description: Insurance Company's (Carrier) NAIC Code. Only needed for appointment
          nullable: true
        ownerResidenceStateCode:
          $ref: '#/components/schemas/StateCodes'
        secondaryProducers:
          type: array
          items:
            $ref: '#/components/schemas/ProducerDetail'
          description: Any secondary producers to include in the decision
          nullable: true
        cusipNum:
          maxLength: 10
          minLength: 0
          pattern: ^[A-Za-z0-9]+$
          type: string
          description: Financial Instrument Identifier used for validating carrier training
          nullable: true
      additionalProperties: false
    ProducerDetail:
      required:
        - identificationNumber
        - identificationType
      type: object
      properties:
        identificationNumber:
          maxLength: 30
          minLength: 1
          type: string
          description: >-
            IdentificationNumber can be a NIPR Number, Government ID like an
            individual Social Security Number (SSN), or an Internal Identifier)
        identificationType:
          type: integer
          description: >-
            What kind of Identifier is being used to identify the
            Producer:<br/>1 - The IdentificationNumber is a NIPR Number<br/>2 -
            The IdentificationNumber is a Government ID<br/>3 - The
            IdentificationNumber is an Internal Identifier
          format: int32
      additionalProperties: false
    ResponseDto:
      type: object
      properties:
        transactionRefGuid:
          type: string
          description: >-
            Callers own transaction tracking GUID returned in the response.
            Useful for RegEd personnel when tracking any issues between request
            and response.
          nullable: true
        transExeDate:
          type: string
          description: Date of response. In M/d/yyyy format.
          nullable: true
        transExeTime:
          type: string
          description: Time of response. In HH:mm:ss tt format.
          nullable: true
        resultCode:
          type: integer
          description: >-
            Is the producer verified to sell:<br/>1 - Success<br/>2 - Success
            with validation errors<br/>5 - Fail<br/>
          format: int32
        errorMessages:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          nullable: true
      additionalProperties: false
    StateCodes:
      enum:
        - 1
        - 2
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 12
        - 13
        - 14
        - 15
        - 16
        - 17
        - 18
        - 19
        - 20
        - 21
        - 22
        - 23
        - 25
        - 26
        - 27
        - 28
        - 29
        - 30
        - 31
        - 32
        - 33
        - 34
        - 35
        - 36
        - 37
        - 38
        - 39
        - 41
        - 42
        - 43
        - 45
        - 46
        - 47
        - 48
        - 49
        - 50
        - 51
        - 52
        - 53
        - 54
        - 55
        - 56
        - 57
        - 58
        - 59
      type: integer
      description: >-
        1 - Alabama   <br />2 - Alaska   <br />4 - Arizona   <br />5 -
        Arkansas   <br />6 - California   <br />7 - Colorado   <br />8 -
        Connecticut   <br />9 - Delaware   <br />10 - District of Columbia   <br
        />12 - Florida   <br />13 - Georgia   <br />14 - Guam   <br />15 -
        Hawaii   <br />16 - Idaho   <br />17 - Illinois   <br />18 - Indiana  
        <br />19 - Iowa   <br />20 - Kansas   <br />21 - Kentucky   <br />22 -
        Louisiana   <br />23 - Maine   <br />25 - Maryland   <br />26 -
        Massachusetts   <br />27 - Michigan   <br />28 - Minnesota   <br />29 -
        Mississippi   <br />30 - Missouri   <br />31 - Montana   <br />32 -
        Nebraska   <br />33 - Nevada   <br />34 - New Hampshire   <br />35 - New
        Jersey   <br />36 - New Mexico   <br />37 - New York   <br />38 - North
        Carolina   <br />39 - North Dakota   <br />41 - Ohio   <br />42 -
        Oklahoma   <br />43 - Oregon   <br />45 - Pennsylvania   <br />46 -
        PuertoRico   <br />47 - Rhode Island   <br />48 - South Carolina   <br
        />49 - South Dakota   <br />50 - Tennessee   <br />51 - Texas   <br />52
        - Utah   <br />53 - Vermont   <br />54 - Virgin Islands   <br />55 -
        Virginia   <br />56 - Washington   <br />57 - West Virginia   <br />58 -
        Wisconsin   <br />59 - Wyoming   
      format: int32
    ValidationError:
      type: object
      properties:
        errorCode:
          type: string
          description: >-
            Error Code<br/>4060 - Your appointment does not match<br/>4061 -
            Your appointment does not match for Add on Product<br/>4070 - Your
            license does not match<br/>4071 - Your License does not match for
            Add on Product<br/>4080 - State PT Not Found<br/>4080 - State PT
            Window not valid<br/>4080 - State PT requirement is not
            fulfilled<br/>4090 - Customer Specific Annuities requirement is not
            complete<br/>4090 - AML is not complete<br/>4099 - Producer Not
            Found<br/>5000 - Shield Validation Failure<br/>5000 - NY Life and
            Annuities Best Practice requirement is not complete<br/>5010 -
            Appointments App Sign Validation Error<br/>5010 - Licensing App Sign
            Validation Error<br/>5010 - State PT App Sign Validation
            Error<br/>5011 - Add on State Appointments App Sign Validation
            Error<br/>5011 - Add on State Licenses App Sign Validation Error
          nullable: true
        errorDescription:
          type: string
          description: Explanation of Error
          nullable: true
      additionalProperties: false
