---
title: "Submit Annuity Application to Zinnia"
url: "https://developers.zinnia.com/apis/new-business-annuity/versions/45a989ab-c3aa-4f85-8f67-f05c41747ed7/operations/createAnnuityApplication_v3"
---

> Full API specification: https://developers.zinnia.com/apis/new-business-annuity/versions/45a989ab-c3aa-4f85-8f67-f05c41747ed7.md

# Submit Annuity Application to Zinnia

`POST` `/new-business/v1/eapp`

Operation ID: `createAnnuityApplication_v3`

Submits an annuity new business case to Zinnia for processing.

## Header parameters

- `Authorization` (string, required) - This will be passed as Bearer plus "token" as generated by above token API.

## Request body (required)

Content types: `application/json`

## Responses

- `202` - Accepted
- `400` - Bad request
- `401` - Authentication failed
- `403` - Access denied
- `500` - Server error

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: Zinnia New Business Annuity API
  version: 0.7.0
servers:
  - url: https://qa.api.zinnia.io
    description: QA Environment
  - url: https://dev.api.zinnia.io
    description: DEV Environment
  - url: https://uat.api.zinnia.io
    description: UAT Environment
  - url: https://api.zinnia.io
    description: PROD Environment
paths:
  /new-business/v1/eapp:
    post:
      x-kong-plugin-request-transformer:
        config:
          replace:
            uri: /appprocessing/v1/new-business/annuity-applications
      tags:
        - New Business Annuity
      summary: Submit Annuity Application to Zinnia
      description: Submits an annuity new business case to Zinnia for processing.
      operationId: createAnnuityApplication_v3
      parameters:
        - name: Authorization
          required: true
          description: This will be passed as Bearer plus "token" as generated by above
            token API.
          in: header
          schema:
            type: string
          example: Bearer eykjsfjfjasdasdad
      requestBody:
        description: Details required to submit the Annuity new business case to Zinnia
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CasePayload"
            example:
              caseId: CA0123456789
              correlationId: 0ca10708-4b53-464c-b745-355c8f6f0edb
              application:
                key: "435232"
                appId: XXXXEDJ041120240000000001
                vendorAppId: XXXXEDJ041120240000000001
                versionNumber: "000"
                qlacIndicator: YES
                dateQualifiers:
                  applicationDate: 2025-10-22
                  initialSubmitDate: 2025-10-22
                  applicationReceivedDate: 2023-12-19
                  clientAgreementDate: 2023-12-19
                  agentSubmitDate: 2023-12-19
                  ownerSignedDate: 2023-12-19
                  jointOwnerSignedDate: 2023-12-19
                  annuitantSignedDate: 2023-12-19
                  jointAnnuitantSignedDate: 2023-12-19
                  trusteeSignedDate: 2023-12-19
                  primaryAgentSignedDate: 2023-12-19
                  beneficiarySignedDate: 2023-12-19
                  spouseSignedDate: 2023-12-19
                submissionType: ELECTRONIC
                customerOtherProductsAnswer: YES
                applicationSignedCounty: Dade
                submitterNsccId: "6407"
                submitterNsccName: ADVISOR EXCEL
                associatedFirmId: "1234"
                associatedFirmName: LPL
                vendorId: "1234"
                vendorName: FIRELIGHT
                carrierName: USAA
                firmExternalId: Q01530
                firmTaxId: "123456789"
                firmNPN: "294128"
                replacementIndicator: true
                qualificationType: Q401K
                custodial: YES
                commissionOption: STD
                brokerageIdentificationNumber: "12345"
                suitabilityAppIndicator: YES
                attachment:
                  - signatureMethod: SIGNATUREPAD
                    documentControlNumber: "14124235235"
                    totalAttachmentCount: "2"
              illustrations:
                solicitationState: AA
                solicitationDate: 2025-10-22
                quoteStartDate: 2025-10-22
                quoteEndDate: 2025-10-22
                quoteId: "525262"
              policy:
                policyNumber: "76488683213"
                planCode: IU0101
                productCusip: "43241124"
                productType: ANNUITY
                policyStatus: PENDING
                policyEffectiveDate: 2025-10-22
                issueState: TN
                issueCountry: US
                initialPurchase:
                  grossAmount: 43546
                  netAmount: 22334
                  payment:
                    - paymentId: "1"
                      referenceNumber: "13486821"
                      netAmount: "43546.00"
                      grossAmount: "22334.00"
                      method: CREDITCARD
                      withdrawalIndicator: FULL
                      partialWithdrawType: SPECIFIEDAMOUNTWITHDRAWAL
                      surrenderingDateInstruction: UPONRECEIPT
                      frequency: DAILY
                      paymentDate: 2025-05-27
                      draftDate: 2025-05-27
                      externalTransactionId: A12345
                      externalArrangementId: B45678
                      automaticPayment: true
                      premType: DIRECTROLLOVER
                      currentAlloc: YES
                      waivePremium: "0"
                      distributorId: "12344"
                      party:
                        - 5f8f2f5c-6c3b-4e3b-8f2f-5c6c3b4e3b8f
                      taxInfo:
                        currentContribAmount: 22334
                        priorContribAmount: 22334
                        taxYear: "2025"
                        totalBasis: 0
                        pretefraBasis: 0
                        posttefraBasis: 0
                        post88Amount: 22334
                      policyHistory:
                        previousPolicyNumber: "55852164"
                        emailId: abc@gmail.com
                        carrier: New York Life
                        useExistingPolicyFunds: true
                        amount: 22334
                        status: ACTIVE
                        replacementCoverageAmount: 22334
                        issueDate: 2025-08-29
                        productType: ANNUITY
                        productSubType: DISABILITY
                        exchangeType: EXTERNAL1035
                        taxId: AAA-GG-SSSS
                        originalCostBasis: "1000"
                        applyRateLock: YES
                        priorEstTransValue: 0
                        priorCarrierProcessLocation: ABC123DEF4
                        addressDetail:
                          addressType: MAILING
                          addressLine1: 123 Main St
                          addressLine2: Apt 4B
                          addressLine3: Near Apollo
                          city: Topeka
                          state: TN
                          zipCode: "66675"
                          country: US
                        qualificationType: INDIVIDUALRETIREMENTACCOUNTREGULAR
                        mecIndicator: NO
                        internalExcInd: YES
                        exchangeDate: 2025-10-17
                      bankInformation:
                        bankId: "456456465"
                        nameOnAccount: abc
                        accountStatus: Active
                        accountNumber: "****2456"
                        routingNumber: "789167934"
                        accountType: SAVINGS
                        ibaNumber: "123456789"
                        abaNumber: "123456789"
                        bankName: XYZ Branch
                        address:
                          addressType: RESIDENCE
                          addressLine1: 123 Main St
                          addressLine2: Apt 4B
                          addressLine3: Near Apollo
                          city: San Francisco
                          state: AL
                          zipCode: "94105"
                          zipCodeExt: "4465"
                          country: US
                feature:
                  - featureCode: ABC0000000
                    featureName: Auto Payment
                    featureStartDate: 2023-12-19
                    featureProcessDay: FIRST
                    featureDuration: "30"
                    featureDurationType: DAYS
                    featureFrequency: WEEKLY
                    featureValue: "22334.00"
                    featureValueType: AMOUNT
                    taxWithholdingIndicator: YES
                    taxFilingStatus: MARRIED
                    withholding:
                      withAmount: 22334
                      withAmountDesc: EXTRASTEP4C
                      withAmountType: PERCENTAGE
                      withAuthority: FEDERAL
                    fund:
                      - srcFundCode: ABC000
                        srcFundAllocAmt: 50
                        srcFundAllocPercent: 50
                        srcTargetFundCode: ABC000
                        srcTargetFundAllocAmt: 50
                        srcTargetFundAllocPercent: 50
                    payment:
                      - amountType: PERCENTAGE
                        amount: 22334
                        method: CREDITCARD
                        grossNetInd: NET
                        accountType: CHECKING
                        abaNumber: "123456789"
                        bankName: ABC Bank
                        accountNumber: "1000000000"
                        payeeContractEntRelationPtr: "124124"
                    payouts:
                      payoutOption: LIFEONLY
                      livesType: Single
                      primarySurvivorAdjType: string
                      primarySurvivorAdjPct: "100"
                      jointSurvivorAdjType: string
                      jointSurvivorAdjPct: "100"
                      annuityFrequencyCode: MONTHLY
                      certainPeriodQualifier: ANNUAL
                      certainPeriod: "1"
                      payoutStartDate: 2023-12-19
                      fixedPaymentAmount: "1000"
                fundDetails:
                  - fundType: FIXED
                    fundCode: GDGE123
                    fundName: Fixed Account
                    allocationType: PERCENTAGE
                    allocationTypeValue: "238500.50"
              parties:
                - partyType: INDIVIDUAL
                  personalInformation:
                    firstName: Aura
                    middleName: Smith
                    lastName: Monroe
                    fullName: Edward Jones
                    prefix: DR.
                    suffix: Sr
                    dateOfBirth: 2000-02-02
                    gender: FEMALE
                    birthSex: FEMALE
                    birthState: AL
                    birthCountry: US
                    citizenCountry: US
                  partyId: 3f2504e0-4f89-11d3-9a0c-0305e82c3301
                  partyCommunication: EMAIL
                  eDelivery: YES
                  partyRole: INSURED
                  signatures:
                    - date: 2026-07-01
                      city: Sacramento
                      state: CA
                  partyPercentage: "50.00"
                  contractEntRelationPtr: "124124"
                  revocabilityCode: IRREVOCABLE
                  benedistribOption: EQUAL
                  decedentDob: 2023-12-19
                  trustDate: 2023-12-19
                  dod: 2023-12-19
                  authType: ASSETALLOCATION
                  authMode: PHONE
                  relationship: FATHER
                  identifiers:
                    - type: SSN
                      value: "123456789"
                  address:
                    preferredAddressId: 33f206dc-71f4-485f-ad85-5fd25b4fad5f
                    addresses:
                      - addressId: c6de7205-8f10-4e09-8321-a1f6159790e3
                        addressType: RESIDENCE
                        addressLine1: 19 RED RIVER CT
                        addressLine2: Apt 4B
                        city: SACRAMENTO
                        state: AL
                        zipCode: "95831"
                        zipCodeExt: "4465"
                        country: US
                        foreignAddressInd: YES
                  phoneNumber:
                    preferredPhoneId: 07f1828e-1cd0-4333-a6c5-360beffce75a
                    phoneNumbers:
                      - phoneId: 07f1828e-1cd0-4333-a6c5-360beffce75a
                        type: MOBILE
                        countryCode: "1"
                        areaCode: "234"
                        dialNumber: "5678900"
                        extension: "1234"
                        bestTime: Morning
                        timezone: EST
                        zip: "10100"
                        zipSuffix: "1010"
                  email:
                    preferredEmailId: 61dd39a5-0b9f-48a8-9a56-e4eca6186c05
                    emails:
                      - id: 61dd39a5-0b9f-48a8-9a56-e4eca6186c05
                        type: PERSONAL
                        emailAddress: rishal.srivastava@zinnia.com
      responses:
        "202":
          description: Accepted
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SuccessResponseV3"
        "400":
          description: Bad request
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValidationResponseV3"
        "401":
          description: Authentication failed
        "403":
          description: Access denied
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessDeniedResponseV3"
        "500":
          description: Server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServerErrorResponseV3"
      security:
        - Auth0: []
security:
  - Auth0: []
components:
  schemas:
    CasePayload:
      type: object
      additionalProperties: false
      required:
        - application
        - policy
        - parties
      properties:
        caseId:
          type: string
          description: Zinnia Unique Identifier for a case.[Derived by Zinnia]. This is
            required for Paper Apps, not eApps and will be sent via Orion
            Application.
        correlationId:
          type: string
          format: uuid
          example: 0ca10708-4b53-464c-b745-355c8f6f0edb
          description: Zinnia Unique Identifier for a case.[Derived by Zinnia]. This is
            not required for Paper Apps , only eApps.
        application:
          $ref: "#/components/schemas/ApplicationV3"
        illustrations:
          $ref: "#/components/schemas/Illustrations"
        policy:
          $ref: "#/components/schemas/Policy"
        parties:
          type: array
          items:
            $ref: "#/components/schemas/Party"
    SuccessResponseV3:
      type: object
      properties:
        statusCode:
          type: integer
          format: int32
          example: 202
        timestamp:
          type: string
          format: date-time
        message:
          type: string
          example: Request Submitted Successfully
    ValidationResponseV3:
      type: object
      properties:
        status:
          type: string
          example: FAILED
        timestamp:
          type: string
          format: date-time
        message:
          type: string
          example: Bad Request
        error:
          type: array
          items:
            type: string
            example: Mandatory attribute label missing
    AccessDeniedResponseV3:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        message:
          type: string
          example: "User is not authorized for the carrier : CarrierName_1"
    ServerErrorResponseV3:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        message:
          type: string
          example: Failed to process request
    ApplicationV3:
      type: object
      required:
        - appId
        - submissionType
        - carrierName
        - versionNumber
        - qualificationType
        - suitabilityAppIndicator
        - dateQualifiers
      properties:
        key:
          type: string
          description: Zinnia Unique idenitifer for a case. [Derived by Zinnia]
        appId:
          type: string
          description: Unique Identifier against an e-App application. First 4 letters
            represent the receiving company, next 3 letters represent the firm,
            next 8 positions represent the date eApp is submitted, next 10
            positions represents the sequential number of the eApps from the
            eApp instance.
        vendorAppId:
          type: string
          description: Application identifier assigned by an external vendor or partner
            system.
        versionNumber:
          type: string
          description: Version for that case - 3 digits, incremental if same case if
            submitted more than once in case of errors.
        qlacIndicator:
          type: string
          description: Flag indicating whether the contract is a Qualified Longevity
            Annuity Contract (QLAC).
          enum:
            - YES
            - NO
          example: YES
        ofacIndicator:
          type: string
          description: Indicator identifying whether the address is subject to OFAC review
            or screening.
          enum:
            - YES
            - NO
        fileInceptionTime:
          type: string
          format: date-time
          description: Time when the case is received within ETP
          example: 2025-06-26T00:00:00Z
        dateQualifiers:
          type: object
          required:
            - initialSubmitDate
            - agentSubmitDate
          properties:
            effectiveDate:
              type: string
              format: date
              description: e-App submitted date to Zinnia (with pattern "yyyy-mm-dd").
            applicationDate:
              type: string
              format: date
              description: Application date (with pattern "yyyy-mm-dd"). This field is
                required for paper app rate lock calculations.
            initialSubmitDate:
              type: string
              format: date
              description: Initial e-App submitted date (yyyy-mm-dd)
            applicationReceivedDate:
              type: string
              format: date
              description: Application received date (with pattern "yyyy-mm-dd"). Mandatory
                field for Paper Apps.
            clientAgreementDate:
              type: string
              format: date
              description: Client agreement date (with pattern "yyyy-mm-dd").
            agentSubmitDate:
              type: string
              format: date
              description: Agent submission date (yyyy-mm-dd)
            ownerSignedDate:
              type: string
              format: date
              description: Owner signed date (yyyy-mm-dd)
            jointOwnerSignedDate:
              type: string
              format: date
              description: Joint owner signed date (yyyy-mm-dd)
            annuitantSignedDate:
              type: string
              format: date
              description: Annuitant signed date (yyyy-mm-dd)
            jointAnnuitantSignedDate:
              type: string
              format: date
              description: Joint annuitant signed date (yyyy-mm-dd)
            trusteeSignedDate:
              type: string
              format: date
              description: Trustee signed date (yyyy-mm-dd)
            primaryAgentSignedDate:
              type: string
              format: date
              description: Primary agent signed date (yyyy-mm-dd)
            beneficiarySignedDate:
              type: string
              format: date
              description: Beneficiary signed date (yyyy-mm-dd)
            spouseSignedDate:
              type: string
              format: date
              description: Spouse signed date (yyyy-mm-dd)
        submissionType:
          type: string
          example: ELECTRONIC
          description: To determine whether the request is via eApp or Paper App
          enum:
            - ELECTRONIC
            - PAPER
        customerOtherProductsAnswer:
          type: string
          example: YES
          description: Indicates whether the applicant has existing life insurance or
            annuity policies. Valid values are Yes, No, or Unknown.
        applicationSignedCounty:
          type: string
          description: County where the application was signed by the customer.
        submitterNsccId:
          type: string
          description: The NSCC assigned membership ID for the firm initiating the
            transactions.Only applicable for DTCC cases.
        submitterNsccName:
          type: string
          description: Name of the Submitter (Settling Firm).Only applicable for DTCC cases.
        associatedFirmId:
          type: string
          description: Identifier assigned by a clearing firm/service provider to a firm
            that clears business through them.Only applicable for DTCC cases.
        associatedFirmName:
          type: string
          description: Name of associated firm.Only applicable for DTCC cases.
        vendorId:
          type: string
          description: An identifer that represents Transmitting Company which is of 4 char.
        vendorName:
          type: string
          description: Transmitting Company Name
          example: FIRELIGHT
        carrierName:
          type: string
          description: Name of the U.S. insurance company that is issuing the policy.
            [Derived by Zinnia]
        carrierId:
          type: number
          description: Carrier Id is DTCC part id for a given insurance carrier such as
            4527, 0015.
        firmTaxId:
          type: string
          description: 9 digit Tax ID in MCS [Zinnia Commission System] that belongs to
            the Firm. firmExternalId or firmTaxId or firmNPN is mandatory.
        firmNPN:
          type: string
          description: NPN in MCS [Zinnia Commission System] that belongs to the Firm.
            firmExternalId or firmTaxId or firmNPN is mandatory.
        firmExternalId:
          type: string
          description: External ID in MCS [Zinnia Commission System] that belongs to the
            Firm. firmExternalId or firmTaxId or firmNPN is mandatory.
        replacementIndicator:
          type: boolean
          description: Indicates whether the application is submitted as an exchange or
            replacement of an existing policy.
        qualificationType:
          type: string
          description: Indicator showing whether the application meets qualification
            requirements.
          enum:
            - Q401K
            - SOLO401K
            - HEALTHREIMBURSEMENT501C9
            - Q457B
            - HR10KEOGH
            - INHERITEDINDIVIDUALRETIREMENTACCOUNT
            - NONQUALIFIEDSTRETCH
            - INHERITEDROTHINDIVIDUALRETIREMENTACCOUNT
            - INDIVIDUALRETIREMENTACCOUNTREGULAR
            - INDIVIDUALRETIREMENTACCOUNTROLLOVER
            - NONQUALIFIED
            - PENSIONPLAN
            - SALARYREDUCTIONSIMPLIFIEDEMPLOYEEPENSION
            - SIMPLIFIEDEMPLOYEEPENSIONINDIVIDUALRETIREMENTACCOUNT
            - INDIVIDUALRETIREMENTACCOUNTSPOUSAL
            - INDIVIDUALRETIREMENTACCOUNTTRANSFER
            - CASHBALANCEPLANDEFINEDCONTRIBUTIONS
            - CASHBALANCEPLANDEFINEDBENEFIT
            - SOLODEFINEDBENEFIT
            - Q403B
            - Q401GFORMERLY403G
            - Q412IPLAN
            - INDIVIDUALRETIREMENTACCOUNTSIMPLE
            - ROTHINDIVIDUALRETIREMENTACCOUNT
            - ROTH401K
            - ROTH403B
            - EDUCATIONALINDIVIDUALRETIREMENTACCOUNT
            - PROFITSHARINGPLAN
            - MONEYPURCHASEPLAN
            - WELFAREBENEFITPLAN419PLAN
            - LONGTERMCARE7702B
            - NOUNITEDSTATESTAXATIONUSEDFOROFFSHOREPRODUCTS
            - Q401A
            - TEXASOPTIONALRETIREMENTPROGRAM
            - TARGETBENEFITPLAN
            - Q403BTRANSFERSONLY
            - ROTH457
            - CUSTODIALINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALROTHINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALROLLOVERINDIVIDUALRETIREMENTACCOUNT
            - CONVERTEDROTHINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALINHERITEDINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALINHERITEDROTHINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALSPOUSEINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALINDIVIDUALRETIREMENTACCOUNTSIMPLIFIEDEMPLOYEEPENSION
            - QUALIFIED
            - UNIFORMGIFTSORTRANSFERSTOMINORACT
            - CONVERTEDINDIVIDUALRETIREMENTACCOUNT
            - CORPORATEPENSION
            - GROUPTAXSHELTEREDANNUITY
            - CORPORATEDEFERREDCOMPENSATION404
            - QN457B
            - CONVERTED
            - SPOUSAL
            - CUSTODIAL
        custodial:
          type: string
          description: Flag indicating whether an application is associated with custodian
            or not.
          example: YES
          enum:
            - YES
            - NO
        commissionOption:
          type: string
          description: Commission option value provided by Zinnia for the applicable
            product. This value is used to determine agent commissions.
        brokerageIdentificationNumber:
          type: string
          description: Client account identifier used by the distributor.
        suitabilityAppIndicator:
          type: string
          example: YES
          description: Indicator that a suitability review is required or has been
            performed.
          enum:
            - YES
            - NO
        attachment:
          type: array
          items:
            $ref: "#/components/schemas/Attachment"
    Illustrations:
      type: object
      additionalProperties: false
      properties:
        quoteId:
          type: string
          description: Unique identifier assigned to a quote for tracking and reference
            purposes.
        solicitationState:
          type: string
          description: State in which the product solicitation occurred.
        solicitationDate:
          type: string
          format: date
          description: Date on which the product was solicited or offered to the customer
        quoteStartDate:
          type: string
          format: date
          description: Date on which the quoted rates or terms become effective
        quoteEndDate:
          type: string
          format: date
          description: Date on which the quoted rates or terms ends
    Policy:
      type: object
      additionalProperties: false
      required:
        - planCode
        - initialPurchase
        - fundDetails
        - issueState
      properties:
        policyNumber:
          type: string
          description: Unique policy number that will be assigned to the policy issued
            from this application.
        planCode:
          type: string
          description: Provided by Zinnia
        productCusip:
          type: string
          description: CUSIP number used to uniquely identify the insurance product.
        productType:
          type: string
          description: Type of insurance product
          enum:
            - INDEXEDUNIVERSALLIFE
            - UNIVERSALLIFE
            - TERM
            - ANNUITY
        policyStatus:
          type: string
          description: Status of the policy
          enum:
            - APPLIEDFOR
            - APPROVED
            - SUBMITTEDTOUNDERWRITING
            - PENDING
            - DECLINED
            - QUOTED
            - RISKNOTACCEPTABLE
            - NOTTAKEN
            - PENDINGISSUED
            - ISSUED
            - CLOSED
            - CANCELLED
            - EXPIRED
            - CONVERSION
        policyEffectiveDate:
          type: string
          format: date
          description: Date from which the policy is effective  (with pattern “yyyy-mm-dd”)
        issueState:
          type: string
          description: Abbreviated names for states
        issueCountry:
          type: string
          description: Policy Issue Country (Only US)
        initialPurchase:
          type: object
          required:
            - grossAmount
            - netAmount
          properties:
            grossAmount:
              type: number
              format: double
            netAmount:
              type: number
              format: double
            payment:
              type: array
              items:
                $ref: "#/components/schemas/PaymentV3"
        feature:
          type: array
          items:
            $ref: "#/components/schemas/FeatureV3"
        fundDetails:
          type: array
          items:
            $ref: "#/components/schemas/FundDetail"
    Party:
      anyOf:
        - $ref: "#/components/schemas/Insured"
        - $ref: "#/components/schemas/Annuitant"
        - $ref: "#/components/schemas/Owner"
        - $ref: "#/components/schemas/Beneficiary"
        - $ref: "#/components/schemas/Payor"
        - $ref: "#/components/schemas/Payee"
        - $ref: "#/components/schemas/AgentV3"
        - $ref: "#/components/schemas/Trustee"
        - $ref: "#/components/schemas/Grantor"
        - $ref: "#/components/schemas/AuthorizedSignatory"
        - $ref: "#/components/schemas/CoverageInsured"
        - $ref: "#/components/schemas/ThirdPartyDesignee"
        - $ref: "#/components/schemas/OtherInterestedParty"
        - $ref: "#/components/schemas/Participant"
        - $ref: "#/components/schemas/UniformGiftsToMinorsAct"
        - $ref: "#/components/schemas/LegalGuardian"
        - $ref: "#/components/schemas/CorrespondenceEntity"
        - $ref: "#/components/schemas/PlanSponsor"
        - $ref: "#/components/schemas/Decedent"
        - $ref: "#/components/schemas/PowerOfAttorney"
        - $ref: "#/components/schemas/Assignee"
        - $ref: "#/components/schemas/ExchangeCompany"
      description: All the party role should be explicitly send in the party object.
    Attachment:
      type: object
      additionalProperties: false
      properties:
        signatureMethod:
          type: string
          description: Method used to capture the customer’s signature (e.g., electronic,
            wet)
          enum:
            - NONE
            - VOICE
            - SIGNATUREPAD
            - WETSIGNATURESCANNED
            - BIOMETRIC
            - CLICKTHROUGH
        documentControlNumber:
          type: string
          description: documentControlNumber is an NSCC data point, Will be derived by
            Zinnia.
        totalAttachmentCount:
          type: string
          description: Total Attachment Count expected in Attachment payload
    PaymentV3:
      type: object
      additionalProperties: false
      required:
        - paymentId
        - netAmount
        - grossAmount
        - method
        - currentAlloc
      properties:
        paymentId:
          type: string
          description: Unique id for the payment made
          format: Integer
        referenceNumber:
          type: string
          description: Reference Numbe for the payment made
        netAmount:
          type: string
          description: Premium received (Net Amount)
          format: double
          example: "238500.50"
        grossAmount:
          type: string
          description: Premium received (Gross Amount)
          format: double
          example: "238500.50"
        method:
          type: string
          description: Method through which the payment is made
          enum:
            - CREDITCARD
            - DEBITCARD
            - CHECK
            - ACH
            - DIGITALPAYMENT
            - WIRE
            - DTCC
            - EXCHANGE
            - PAYROLLDEDUCTION
        internalExchIndicator:
          type: string
          description: DTCC defined Indicator that states whether an exchange type
            application is internal of external.
          enum:
            - YES
            - NO
        withdrawalIndicator:
          type: string
          description: Premium received withdrawal indicator
          enum:
            - FULL
            - PARTIAL
        partialWithdrawType:
          type: string
          description: If Withdrawal indicator is input then Partial Withdrawal Type
            become mandatory
          enum:
            - SPECIFIEDAMOUNTWITHDRAWAL
            - PERCENTOFCONTRACTWITHDRAWAL
            - PERCENTOFCONTRACTPREMIUMWITHDRAWAL
            - PERCENTOFFUNDWITHDRAWAL
            - RIDERFREEAMOUNTWITHDRAWAL
            - SURRENDERFREEAMOUNTWITHDRAWALPENALTYFREEWITHDRAWAL
            - INTERESTONLYWITHDRAWAL
            - REQUIREDMINIMUMDISTRIBUTIONWITHDRAWAL
            - SUBSTANTIALLYEQUALPAYMENTS
            - INTERESTONLYSURRENDERFREEAMOUNTWITHDRAWAL
            - REQUIREMENTMINIMUMDISTRIBUTIONCALCULATED
            - REQUIREMENTMINIMUMDISTRIBUTIONSPECIFIEDAMOUNT
        surrenderingDateInstruction:
          type: string
          description: If Withdrawal indicator is input then Partial Withdrawal Type
            become mandatory
          enum:
            - UPONRECEIPT
            - SPECIFICDATE
        frequency:
          type: string
          description: Frequency of premium payments
          enum:
            - DAILY
            - EVERYTWOWEEKS
            - MONTHLY
            - SEMIANNUAL
            - QUARTERLY
            - ANNUAL
            - SINGLEPAYMENT
        paymentDate:
          type: string
          format: date
          description: Date when the payment is made (with pattern “yyyy-mm-dd”)
        draftDate:
          type: string
          format: date
          description: Date when the payment draft is created (with pattern “yyyy-mm-dd”)
        externalTransactionId:
          type: string
          description: Transaction ID from external system
        externalArrangementId:
          type: string
          description: Arrangement ID from external system
        automaticPayment:
          type: boolean
          description: Whhether this payment is automatic - TRUE/FALSE
        premType:
          type: string
          description: DTCC-defined code identifying the type of premium payment.
          enum:
            - DIRECTROLLOVER
            - INDIRECTROLLOVER
            - CONTRIBUTION
            - FULL1035EXCHANGE
            - PARTIAL1035EXCHANGE
            - QUALIFIEDTRANSFER
            - NONQUALIFIEDTRANSFEROFASSETS
            - EMPLOYEECONTRIBUTION
            - EMPLOYERCONTRIBUTION
        currentAlloc:
          type: string
          description: Indicates whether Funds to be considered for Future Allocations or
            not
          enum:
            - YES
            - NO
        waivePremium:
          type: string
          description: Indicator specifying whether the premium is waived.
        distributorId:
          type: string
          description: This is same as Tracking ID.If there are multiple payments, first
            payment distributorId will be the TrackingID. This unique system
            generated number is assigned by the B/D system and sent with each
            premium to the NSCC, to send to the Insurance Company. This number
            is assigned by the broker dealer, by which the premium can be
            located. Required for clearing house and detail level transactions.
            Broker/dealer would expect this back for chargebacks, reversals,
            etc. Can be returned on the "FAR" and the "COM" by the insurance
            carrier to identify the transaction processed.
        party:
          type: array
          description: Associated PartyIds for given payment
          items:
            type: string
            description: Party ID associated with this payment.
            format: uuid
        taxInfo:
          $ref: "#/components/schemas/TaxInfoV3"
        policyHistory:
          $ref: "#/components/schemas/PolicyHistory"
        bankInformation:
          $ref: "#/components/schemas/BankInformationV3"
    FeatureV3:
      type: object
      additionalProperties: false
      required:
        - featureCode
      properties:
        featureCode:
          type: string
          description: Code used to uniquely identify the feature.
        featureName:
          type: string
          description: Name of the feature.
        featureStartDate:
          type: string
          description: Effective start date of the feature.
          format: date
        featureProcessDay:
          type: string
          description: Day of the month on which the feature is processed, when applicable.
          enum:
            - FIRST
            - SECOND
            - THIRD
            - FOURTH
            - FIFTH
            - SIXTH
            - SEVENTH
            - EIGHTH
            - NINTH
            - TENTH
            - ELEVENTH
            - TWELFTH
            - THIRTEENTH
            - FOURTEENTH
            - FIFTEENTH
            - SIXTEENTH
            - SEVENTEENTH
            - EIGHTEENTH
            - NINETEENTH
            - TWENTIETH
            - TWENTYFIRST
            - TWENTYSECOND
            - TWENTYTHIRD
            - TWENTYFOURTH
            - TWENTYFIFTH
            - TWENTYSIXTH
            - TWENTYSEVENTH
            - TWENTYEIGHTH
            - TWENTYNINTH
            - THIRTIETH
            - THIRTYFIRST
        featureDuration:
          type: string
          description: Duration value for the feature based on the specified duration type.
        featureDurationType:
          type: string
          description: Unit of measure used to interpret the feature duration.
          enum:
            - DAYS
            - MONTHS
            - YEARS
            - QUARTERS
            - SEMIANNUALS
            - WEEKS
            - BIWEEKLY
            - SEMIMONTHLY
            - MAXIMUM
        featureFrequency:
          type: string
          description: Frequency at which the feature is applied or processed.
          enum:
            - WEEKLY
            - EVERYTWOWEEKS
            - SEMIMONTHLY
            - MONTHLY
            - BIMONTHLY
            - ANNUAL
            - DAILY
            - SINGLE
            - QUARTERLY
            - SEMIANNUAL
        featureValue:
          type: string
          description: Feature value configured for the contract (amount, percentage, or
            prorated value).
          format: double
          example: "238500.50"
        featureValueType:
          type: string
          description: Type of value represented by the feature value.
          enum:
            - AMOUNT
            - PERCENTAGE
            - WITHDRAWALUNTILBASIS
            - PRORATA
        taxWithholdingIndicator:
          type: string
          description: Indicator specifying whether tax withholding applies to this feature.
          enum:
            - YES
            - NO
        taxFilingStatus:
          type: string
          description: Tax filing status used for withholding determination, when
            applicable.
          enum:
            - SINGLE
            - MARRIED
            - MARRIEDBUTWITHHOLDATHIGHERSINGLERATE
            - MARRIEDFILINGJOINTLY
            - MARRIEDFILINGSEPARATELY
            - HEADOFHOUSEHOLD
            - WIDOWED
            - DOMESTICPARTNER
            - DIVORCED
        withholding:
          $ref: "#/components/schemas/WithholdingV3"
        fund:
          type: array
          description: Fund transfer instructions associated with the feature.
          items:
            $ref: "#/components/schemas/FundTransfer"
        payment:
          type: array
          description: Payment instructions associated with the feature.
          items:
            $ref: "#/components/schemas/FeaturePayment"
        payouts:
          $ref: "#/components/schemas/PayoutV3"
    FundDetail:
      type: object
      additionalProperties: false
      required:
        - fundCode
        - allocationType
        - allocationTypeValue
      properties:
        fundType:
          type: string
          description: Type of fund associated with the product.
          enum:
            - FIXED
            - INDEXED
            - VARIABLE
        fundCode:
          type: string
          description: Code used to uniquely identify the fund. Zinnia will provide
            specific Fund code for individual funds per Product. Duplicate Fund
            codes will be rejected
        fundName:
          type: string
          description: Name of the fund.
        allocationType:
          type: string
          description: Method used to allocate contributions or values to the fund.
          enum:
            - AMOUNT
            - PERCENTAGE
            - PRORATA
            - EARNINGSONLY
            - MODIFIEDEARNINGSONLY
            - MAX
            - FREEWITHDRAWALAMOUNT
            - WITHDRAWALUNTILBASIS
        allocationTypeValue:
          type: string
          description: The numeric value or qualifier associated with the selected
            allocationType.This value represents how the allocation is
            applied—for example, a fixed dollar amount, a percentage, or a
            rule-specific limit—depending on the allocationType chosen.
    Insured:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
        - address
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - INSURED
            - JOINTINSURED
          description: Type of party role
          example: INSURED
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationInsured"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        employment:
          $ref: "#/components/schemas/Employment"
        consentProvider:
          type: object
          description: Optional consent provider information
          properties:
            indicator:
              type: boolean
              description: Consent indicator
              example: true
            state:
              $ref: "#/components/schemas/State"
            submissionType:
              type: string
              enum:
                - ELECTRONIC
                - PAPER
              description: Method of consent submission
              example: ELECTRONIC
        marketingOptIn:
          type: boolean
          description: Marketing opt-in preference
          example: true
        agreeToTerms:
          type: boolean
          description: Agreement to terms and conditions
          example: true
        signatures:
          type: array
          items:
            $ref: "#/components/schemas/SignatureV3"
          description: Required list of signatures for the policy submission
          minItems: 1
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Annuitant:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
        - address
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - ANNUITANT
            - JOINTANNUITANT
            - CONTINGENTANNUITANT
          description: Type of party role
          example: ANNUITANT
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationInsured"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        employment:
          $ref: "#/components/schemas/Employment"
        consentProvider:
          type: object
          description: Optional consent provider information
          properties:
            indicator:
              type: boolean
              description: Consent indicator
              example: true
            state:
              $ref: "#/components/schemas/State"
            submissionType:
              type: string
              enum:
                - ELECTRONIC
                - PAPER
              description: Method of consent submission
              example: ELECTRONIC
        marketingOptIn:
          type: boolean
          description: Marketing opt-in preference
          example: true
        agreeToTerms:
          type: boolean
          description: Agreement to terms and conditions
          example: true
        signatures:
          type: array
          items:
            $ref: "#/components/schemas/SignatureV3"
          description: Required list of signatures for the policy submission
          minItems: 1
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Owner:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
        - address
        - partyCommunication
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - OWNER
            - JOINTOWNER
            - CONTINGENTOWNER
          description: Type of party role
          example: OWNER
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/PersonalInformationOwner"
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
          example: REGULARMAIL
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Beneficiary:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
        - partyPercentage
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - PRIMARYBENEFICIARY
            - CONTINGENTBENEFICIARY
          description: Type of party role
          example: PRIMARYBENEFICIARY
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
            - $ref: "#/components/schemas/PersonalInformationPrimary"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        beneDistribOption:
          type: string
          description: Beneficiary distribution option applicable to the party.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Payor:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - PAYOR
          description: Type of party role
          example: PAYOR
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationPayor"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        employment:
          $ref: "#/components/schemas/Employment"
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Payee:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - PAYEE
          description: Type of party role
          example: PAYEE
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationPayee"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    AgentV3:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
        - commissionPercentage
        - servicingAgent
        - partyPercentage
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 34ae59ba-daa5-42ca-a8b4-4cd008eac5c5
        partyRole:
          type: string
          enum:
            - PRIMARYWRITINGAGENT
            - PRIMARYSERVICINGAGENT
            - ADDITIONALSERVICINGAGENT
            - ADDITIONALWRITINGAGENT
            - ADDITIONALWRITINGGAGENT
            - AGENT
            - CARRIER
          example: PRIMARYWRITINGAGENT
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
          example: INDIVIDUAL
        partyPercentage:
          type: number
          minimum: 0
          maximum: 100
          example: 50
        agentExternalId:
          type: string
          example: A12345
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/PersonalInformationAgent"
            - $ref: "#/components/schemas/OrganizationDetails"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Trustee:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
        - parentPartyId
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        parentPartyId:
          type: string
          description: Unique identifier for the parent party associated with. For eg it
            can be owner party Id if owner type is Trust
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - TRUSTEE
            - BENEFICIARYTRUSTEE
          description: Type of party role
          example: TRUSTEE
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationTrustee"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        signature:
          type: array
          items:
            $ref: "#/components/schemas/SignatureV3"
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        trustDate:
          type: string
          description: Date on which the trust was established, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Grantor:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
        - parentPartyId
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        parentPartyId:
          type: string
          description: Unique identifier for the parent party associated with. For eg it
            can be owner party Id if owner type is Trust
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - GRANTOR
          description: Type of party role
          example: GRANTOR
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationGrantor"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        signature:
          type: array
          items:
            $ref: "#/components/schemas/SignatureV3"
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    AuthorizedSignatory:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - AUTHORIZEDSIGNATORY
          description: Type of party role
          example: AUTHORIZEDSIGNATORY
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationAuthorizedSigner"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        signature:
          type: array
          items:
            $ref: "#/components/schemas/SignatureV3"
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    CoverageInsured:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        parentPartyId:
          type: string
          description: Unique identifier for the parent party associated with mentioned
            party
        partyRole:
          type: string
          enum:
            - COVERAGEINSURED
            - COVERAGEJOINTINSURED
          description: Type of party role
          example: COVERAGEINSURED
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationCoverageInsured"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        employment:
          $ref: "#/components/schemas/Employment"
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    ThirdPartyDesignee:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - THIRDPARTYDESIGNEE
            - THIRDPARTYADMINISTRATOR
          description: Type of party role
          example: THIRDPARTYDESIGNEE
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
            - $ref: "#/components/schemas/PersonalInformationThirdParty"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/Address"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/Email"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    OtherInterestedParty:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - OTHERINTERESTEDPARTY
          description: Type of party role
          example: OTHERINTERESTEDPARTY
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
            - $ref: "#/components/schemas/PersonalInformationOtherInterestedParty"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/Address"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/Email"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Participant:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - PARTICIPANT
            - SUCCESSORPARTICIPANT
            - DESIGNATEDPARTICIPANT
            - INDIRECTPARTICIPANT
            - COPARTICIPANT
            - CONTINGENTINDIRECTPARTICIPANT
          description: Type of party role
          example: PARTICIPANT
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/PersonalInformationPrimary"
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    UniformGiftsToMinorsAct:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - UNIFORMGIFTSTOMINORSACT
          description: Type of party role
          example: UNIFORMGIFTSTOMINORSACT
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationPrimary"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    LegalGuardian:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - LEGALGUARDIAN
          description: Type of party role
          example: LEGALGUARDIAN
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationPrimary"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    CorrespondenceEntity:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - CORRESPONDENCEENTITY
          description: Type of party role
          example: CORRESPONDENCEENTITY
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/PersonalInformationPrimary"
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    PlanSponsor:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - PLANSPONSOR
          description: Type of party role
          example: PLANSPONSOR
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/PersonalInformationPrimary"
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Decedent:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - DECEDENT
            - SECONDARYDECEDENT
          description: Type of party role
          example: DECEDENT
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationPrimary"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    PowerOfAttorney:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - POWEROFATTORNEY
          description: Type of party role
          example: POWEROFATTORNEY
        partyType:
          type: string
          enum:
            - INDIVIDUAL
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationPrimary"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    Assignee:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - ASSIGNEE
          description: Type of party role
          example: ASSIGNEE
        partyType:
          type: string
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
          description: Type of party
          example: INDIVIDUAL
        relationship:
          $ref: "#/components/schemas/Relationship"
        personalInformation:
          oneOf:
            - $ref: "#/components/schemas/PersonalInformationPrimary"
            - $ref: "#/components/schemas/TrustDetails"
            - $ref: "#/components/schemas/OrganizationDetails"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    ExchangeCompany:
      type: object
      required:
        - partyType
        - partyRole
        - personalInformation
      properties:
        partyId:
          type: string
          description: Unique identifier for the party
          format: uuid
          example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
        partyRole:
          type: string
          enum:
            - EXCHANGECOMPANY
          description: Type of party role
          example: EXCHANGECOMPANY
        partyType:
          type: string
          enum:
            - ORGANIZATION
          description: Type of party
          example: ORGANIZATION
        personalInformation:
          $ref: "#/components/schemas/PersonalInformationPrimary"
        partyCommunication:
          type: string
          enum:
            - REGULARMAIL
            - EMAIL
            - PHONE
        identifiers:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/PassportIdentifier"
              - $ref: "#/components/schemas/StateIdIdentifier"
              - $ref: "#/components/schemas/DriversLicenseIdentifier"
              - $ref: "#/components/schemas/SsnIdentifier"
              - $ref: "#/components/schemas/ItinIdentifier"
              - $ref: "#/components/schemas/EinIdentifier"
              - $ref: "#/components/schemas/AlienRegistrationIdentifier"
              - $ref: "#/components/schemas/ExternalPartyIdentifier"
          description: Array of identifiers for this party
        address:
          type: object
          properties:
            preferredAddressId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            addresses:
              type: array
              items:
                $ref: "#/components/schemas/AddressV3"
              description: List of addresses associated with this party
              example: []
        phoneNumber:
          type: object
          properties:
            preferredPhoneId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            phoneNumbers:
              type: array
              items:
                $ref: "#/components/schemas/PhoneNumber"
              description: List of phone numbers associated with this party
              example: []
        email:
          type: object
          properties:
            preferredEmailId:
              type: string
              format: uuid
              example: 2ad51ecf-9923-437f-a6f0-70968e464cdb
            emails:
              type: array
              items:
                $ref: "#/components/schemas/EmailV3"
              description: List of emails associated with this party
              example: []
        revocabilityCode:
          type: string
          description: Code indicating whether the party designation is revocable or
            irrevocable.
        decedentDob:
          type: string
          description: Date of birth of the decedent, if applicable.
          format: date
        authType:
          type: string
          description: Type of authorization granted to the party.
          enum:
            - ASSETALLOCATION
            - ALL
            - DOLLARCOSTAVERAGING
            - DISTRIBUTION
            - NAMEADDRESSCHANGES
            - FUNDTRANSFER
            - WITHDRAWALS
            - NONE
        authMode:
          type: string
          enum:
            - ALL
            - FAX
            - INTERNET
            - MAIL
            - PHONE
            - VOICERESPONSE
            - NONE
          description: Mode by which authorization was provided, such as electronic or
            written.
    TaxInfoV3:
      type: object
      additionalProperties: false
      properties:
        currentContribAmount:
          type: number
          description: Amount of the current-year contribution for tax reporting purposes.
          format: double
          example: 238500.5
        priorContribAmount:
          type: number
          description: Amount of prior-year contributions included in the payment.
          format: double
          example: 238500.5
        taxYear:
          type: string
          description: Tax year to which the contribution applies.
        totalBasis:
          type: number
          description: Total cost basis associated with the payment for tax calculation.
        pretefraBasis:
          type: number
          description: Cost basis attributable to contributions made before TEFRA rules.
        posttefraBasis:
          type: number
          description: Cost basis attributable to contributions made after TEFRA rules.
        post88Amount:
          type: number
          description: Contribution amount made after the 1988 tax law changes.
          format: double
          example: 238500.5
    PolicyHistory:
      type: object
      additionalProperties: false
      required:
        - amount
        - carrier
        - previousPolicyNumber
        - exchangeType
        - addressDetail
      properties:
        previousPolicyNumber:
          type: string
          description: Previous policy number in case of Exchange/Replace
        emailId:
          type: string
          description: Company email address
          example: abc@gmail.com
        carrier:
          type: string
          description: Name of the carrier.
        priorCarrierProcessLocation:
          type: string
          description: Processing location used by the prior carrier for the exchanged
            policy.
        useExistingPolicyFunds:
          type: boolean
          description: Indicates whethe existing policy funds can be used or not.
        amount:
          type: number
          description: Premium amount received for Exhange/Replace application.
          format: double
          example: 238500.5
        status:
          type: string
          description: Policy status
          enum:
            - ACTIVE
            - LAPSED
            - TERMINATED
        replacementCoverageAmount:
          type: number
          description: Represents the total amount from the existing policy being replaced.
          format: double
          example: 238500.5
        issueDate:
          type: string
          description: The official date on which the policy is issued and becomes
            effective.
          format: date
        productType:
          type: string
          description: Indicates the category of the insurance product associated with the
            policy
          enum:
            - MUTUALFUND
            - CERTIFICATEOFDEPOSIT
            - BROKERAGE
            - OTHER
            - LIFE
            - ANNUITY
        productSubType:
          type: string
          description: Subtype of the product involved in an exchange or replacement
            transaction.
          enum:
            - DISABILITY
            - FIXEDINDEXANNUITY
            - FIXEDANNUITYPRODUCTS
            - FIXEDIMMEDIATEANNUITY
            - FIXEDUNIVERSALLIFEINSURANCE
            - FIXEDWHOLELIFEINSURANCE
            - INDEXLIFE
            - INDEXVARIABLEANNUITY
            - LONGTERMCARE
            - MARKETVALUEADJUSTMENT
            - MONEYMARKETPRODUCTS
            - OFFSHOREINVESTMENTPRODUCTS
            - PENSIONPLAN
            - REGISTEREDINDEXANNUITY
            - RETIREMENTPLAN
            - TERMLIFE
            - VARIABLEANNUITYPRODUCTS
            - VARIABLEIMMEDIATEANNUITY
            - VARIABLEUNIVERSALLIFEINSURANCE
            - VARIABLEWHOLELIFEINSURANCE
            - DEFERREDINCOMEANNUITY
            - CONTINGENTDEFERREDANNUITY
        exchangeType:
          type: string
          description: Specifies the type of policy exchange or replacement transaction
            being performed.
          enum:
            - EXTERNAL1035
            - INTERNAL1035
            - EXTERNALDIRECTTRANSFER
            - INTERNALDIRECTTRANSFER
            - EXTERNALROLLOVERQUALIFIED
            - INTERNALROLLOVERQUALIFIED
            - EXTERNALROTHROLLOVER
            - INTERNALROTHROLLOVER
            - EXTERNALROTHDIRECTTRANSFER
            - INTERNALROTHDIRECTTRANSFER
            - BENEFITPROCEEDS
            - CASHCONTRIBUTIONS
            - EXTERNAL1035PARTIAL
            - INTERNAL1035PARTIAL
            - EXTERNALDIRECTTRANSFERREPLACEMENT
            - INTERNALDIRECTTRANSFERREPLACEMENT
            - CLIENTINITIATEDTRANSFER
            - BIRTHORADOPTIONREPAYMENT
        taxId:
          type: string
          description: Tax identification number of the prior carrier or contract owner.
          format: AAA-GG-SSSS
        originalCostBasis:
          type: string
          description: Original cost basis of the policy being exchanged or replaced.
        applyRateLock:
          type: string
          description: Indicator specifying whether a rate lock applies to the exchange or
            replacement.
        priorEstTransValue:
          type: number
          description: Estimated transfer value from the prior policy at the time of
            exchange.
        addressDetail:
          $ref: "#/components/schemas/AddressDetail"
        qualificationType:
          type: string
          description: Indicates the tax qualification status of the policy or account.
          enum:
            - Q401K
            - SOLO401K
            - HEALTHREIMBURSEMENT501C9
            - Q457B
            - HR10KEOGH
            - INHERITEDINDIVIDUALRETIREMENTACCOUNT
            - NONQUALIFIEDSTRETCH
            - INHERITEDROTHINDIVIDUALRETIREMENTACCOUNT
            - INDIVIDUALRETIREMENTACCOUNTREGULAR
            - INDIVIDUALRETIREMENTACCOUNTROLLOVER
            - NONQUALIFIED
            - PENSIONPLAN
            - SALARYREDUCTIONSIMPLIFIEDEMPLOYEEPENSION
            - SIMPLIFIEDEMPLOYEEPENSIONINDIVIDUALRETIREMENTACCOUNT
            - INDIVIDUALRETIREMENTACCOUNTSPOUSAL
            - INDIVIDUALRETIREMENTACCOUNTTRANSFER
            - CASHBALANCEPLANDEFINEDCONTRIBUTIONS
            - CASHBALANCEPLANDEFINEDBENEFIT
            - SOLODEFINEDBENEFIT
            - Q403B
            - Q401GFORMERLY403G
            - Q412IPLAN
            - INDIVIDUALRETIREMENTACCOUNTSIMPLE
            - ROTHINDIVIDUALRETIREMENTACCOUNT
            - ROTH401K
            - ROTH403B
            - EDUCATIONALINDIVIDUALRETIREMENTACCOUNT
            - PROFITSHARINGPLAN
            - MONEYPURCHASEPLAN
            - WELFAREBENEFITPLAN419PLAN
            - LONGTERMCARE7702B
            - NOUNITEDSTATESTAXATIONUSEDFOROFFSHOREPRODUCTS
            - Q401A
            - TEXASOPTIONALRETIREMENTPROGRAM
            - TARGETBENEFITPLAN
            - Q403BTRANSFERSONLY
            - ROTH457
            - CUSTODIALINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALROTHINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALROLLOVERINDIVIDUALRETIREMENTACCOUNT
            - CONVERTEDROTHINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALINHERITEDINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALINHERITEDROTHINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALSPOUSEINDIVIDUALRETIREMENTACCOUNT
            - CUSTODIALINDIVIDUALRETIREMENTACCOUNTSIMPLIFIEDEMPLOYEEPENSION
            - QUALIFIED
            - UNIFORMGIFTSORTRANSFERSTOMINORACT
            - CONVERTEDINDIVIDUALRETIREMENTACCOUNT
            - CORPORATEPENSION
            - GROUPTAXSHELTEREDANNUITY
            - CORPORATEDEFERREDCOMPENSATION404
            - QN457B
            - CONVERTED
            - SPOUSAL
            - CUSTODIAL
        mecIndicator:
          type: string
          description: Indicates whether the policy is classified as a Modified Endowment
            Contract (MEC) or not Default = False
          enum:
            - YES
            - NO
        internalExcInd:
          type: string
          description: Yes/No indicator that identifies whether the exchange is an
            internal exchange within the same carrier.
          enum:
            - YES
            - NO
        exchangeDate:
          type: string
          description: Date on which the old policy is replaced by the new one.
          format: date
    BankInformationV3:
      type: object
      additionalProperties: false
      properties:
        bankId:
          type: string
          description: Unique identifier for the bank associated with the account.
        nameOnAccount:
          type: string
          description: Name of the account holder as it appears on the bank account.
        accountStatus:
          type: string
          description: Current status of the bank account.
        accountNumber:
          type: string
          description: Bank account number used for transactions.
        routingNumber:
          type: string
          description: Bank routing number used to identify the financial institution.
        accountType:
          type: string
          description: Type of bank account, such as checking or savings.
          enum:
            - CHECKING
            - MONEYMARKETACCOUNT
            - BROKERAGEACCOUNT
            - CREDITCARD
            - DEBITCARD
            - DIGITALPAYMENT
            - MUTUALFUND
            - SAVINGS
            - CERTIFICATEOFDEPOSIT
        ibaNumber:
          type: string
          description: International Bank Account (IBA) number associated with the account.
        abaNumber:
          type: string
          description: American Bankers Association (ABA) number used to identify the bank.
        bankName:
          type: string
          description: Name of the bank branch associated with the account.
        address:
          $ref: "#/components/schemas/BankAddress"
    WithholdingV3:
      type: object
      additionalProperties: false
      properties:
        withAmount:
          type: number
          description: Withholding amount or percentage value, based on the specified
            withholding amount type.
          format: double
          example: 238500.5
        withAmountDesc:
          type: string
          description: Descriptor indicating how the withholding amount was derived or
            selected.
          enum:
            - INCOMEFROMJOBORPENSIONSTEP2BIII
            - EXTRASTEP4C
            - DEDUCTIONSSTEP4B
            - OTHERINCOMENOTJOBORPENSIONSTEP4
            - DEPENDENTSANDOTHERCREDITSSTEP3TOTAL
            - DEFAULT
            - NOWITHHOLDING
            - SELECTED
            - LOOKUPINTAXINGTABLES
        withAmountType:
          type: string
          description: Type of withholding value being provided.
          enum:
            - AMOUNT
            - PERCENTAGE
            - PRORATA
            - EARNINGSONLY
            - MODIFIEDEARNINGSONLY
            - MAX
            - FREEWITHDRAWALAMOUNT
            - WITHDRAWALUNTILBASIS
        withAuthority:
          type: string
          description: Tax authority to which withholding applies.
          enum:
            - STATE
            - FEDERAL
            - LOCAL
            - NRA
            - BACKUP
    FundTransfer:
      type: object
      additionalProperties: false
      properties:
        srcFundCode:
          type: string
          description: Source fund code from which the amount or percentage will be
            transferred.
        srcFundAllocAmt:
          type: number
          description: Amount allocated from the source fund for transfer, when applicable.
          format: double
          example: 238500.5
        srcFundAllocPercent:
          type: number
          description: Percentage allocated from the source fund for transfer, when
            applicable.
        srcTargetFundCode:
          type: string
          description: Target fund code to which the amount or percentage will be
            transferred.
        srcTargetFundAllocAmt:
          type: number
          description: Amount allocated to the target fund, when applicable.
          format: double
          example: 238500.5
        srcTargetFundAllocPercent:
          type: number
          description: Percentage allocated to the target fund, when applicable.
    FeaturePayment:
      type: object
      additionalProperties: false
      properties:
        amountType:
          type: string
          description: Type of amount specified for the feature payment.
          enum:
            - AMOUNT
            - PERCENTAGE
            - PRORATA
            - EARNINGSONLY
            - MODIFIEDEARNINGSONLY
            - MAX
            - FREEWITHDRAWALAMOUNT
            - WITHDRAWALUNTILBASIS
        amount:
          type: number
          description: Payment amount or percentage value, based on the specified amount
            type.
          format: double
          example: 238500.5
        method:
          type: string
          description: Method by which the payment will be made.
          enum:
            - CREDITCARD
            - CHECK
            - ACH
            - DIGITALPAYMENT
            - WIRE
            - DTCC
        grossNetInd:
          type: string
          description: Indicator specifying whether the payment amount is gross or net of
            applicable deductions.
          enum:
            - NET
            - GROSS
        accountType:
          type: string
          description: Type of account used for the payment.
          enum:
            - CHECKING
            - MONEYMARKETACCOUNT
            - BROKERAGEACCOUNT
            - CREDITCARD
            - DEBITCARD
            - DIGITALPAYMENT
            - MUTUALFUND
            - SAVINGS
            - CERTIFICATEOFDEPOSIT
        abaNumber:
          type: string
          description: American Bankers Association (ABA) routing number for the bank
            account.
        bankName:
          type: string
          description: Name of the financial institution associated with the payment
            account.
        accountNumber:
          type: string
          description: Bank or payment account number used to process the payment.
        payeeContractEntRelationPtr:
          type: string
          description: Reference identifying the payee’s relationship to the contract or
            entity.
    PayoutV3:
      type: object
      additionalProperties: false
      required:
        - payoutOption
      properties:
        payoutOption:
          type: string
          description: Payout option selected for annuity distributions.
          enum:
            - PERIODCERTAIN
            - LIFEONLY
            - LIFEWITHPERIODCERTAIN
            - LIFEWITHINSTALLMENTREFUND
            - LIFEWITHCASHREFUND
            - LESSOROFPERIODCERTAINORLIFE
            - LIFEWITHRETURNOFPREMIUM
            - AMOUNTCERTAIN
            - JOINTLIFEONLY
            - JOINTANDSURVIVOR
        livesType:
          type: string
          description: Indicates whether the payout is based on a single life or joint
            lives.
        primarySurvivorAdjType:
          type: string
          description: Type of adjustment applied to payments upon the primary annuitant’s
            death.
        primarySurvivorAdjPct:
          type: string
          description: Percentage of the original payment payable to the survivor after
            the primary annuitant’s death.
        jointSurvivorAdjType:
          type: string
          description: Type of adjustment applied to payments for a joint survivor.
        jointSurvivorAdjPct:
          type: string
          description: Percentage of the original payment payable to the joint survivor.
        annuityFrequencyCode:
          type: string
          description: Frequency at which annuity payments are made.
          enum:
            - EVERYTWOWEEKS
            - MONTHLY
            - BIMONTHLY
            - ANNUAL
            - SINGLEPAYMENT
            - QUARTERLY
            - SEMIANNUAL
        certainPeriodQualifier:
          type: string
          description: Qualifier indicating the unit of measure for the certain period
            (e.g., years or months).
          enum:
            - ANNUAL
            - BIMONTHLY
            - EVERYTWOWEEKS
            - SINGLEPAYMENT
            - MONTHLY
            - SEMIANNUAL
            - QUARTERLY
        certainPeriod:
          type: string
          description: Length of the guaranteed certain period associated with the payout
            option.
        payoutStartDate:
          type: string
          description: Date on which annuity payout payments begin.
          format: date
        fixedPaymentAmount:
          type: string
          description: Fixed payment amount payable for each annuity distribution.
          format: double
          example: "238500.50"
    PersonalInformationInsured:
      type: object
      required:
        - firstName
        - lastName
        - dateOfBirth
        - birthSex
        - birthCountry
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PassportIdentifier:
      allOf:
        - $ref: "#/components/schemas/GovernmentIssuedIdentifier"
        - type: object
          required:
            - countryOfIssue
          properties:
            countryOfIssue:
              $ref: "#/components/schemas/CountryV3"
    StateIdIdentifier:
      allOf:
        - $ref: "#/components/schemas/GovernmentIssuedIdentifier"
        - type: object
          required:
            - jurisdiction
          properties:
            jurisdiction:
              $ref: "#/components/schemas/State"
    DriversLicenseIdentifier:
      allOf:
        - $ref: "#/components/schemas/GovernmentIssuedIdentifier"
        - type: object
          required:
            - jurisdiction
            - class
          properties:
            jurisdiction:
              $ref: "#/components/schemas/State"
            restrictions:
              type: array
              items:
                type: string
              description: List of license restrictions
    SsnIdentifier:
      allOf:
        - $ref: "#/components/schemas/Identifier"
        - type: object
          properties:
            lastFourOnly:
              type: boolean
              description: Indicates if only the last four digits are provided
              example: true
    ItinIdentifier:
      allOf:
        - $ref: "#/components/schemas/Identifier"
        - type: object
          properties:
            issueYear:
              type: string
              pattern: ^\d{4}$
              description: Year when the ITIN was issued
              example: "2015"
    EinIdentifier:
      allOf:
        - $ref: "#/components/schemas/Identifier"
        - type: object
          properties:
            issueYear:
              type: string
              pattern: ^\d{4}$
              description: Year when the EIN was issued
              example: "2015"
    AlienRegistrationIdentifier:
      allOf:
        - $ref: "#/components/schemas/GovernmentIssuedIdentifier"
        - type: object
          required:
            - countryOfOrigin
            - category
          properties:
            countryOfOrigin:
              $ref: "#/components/schemas/CountryV3"
            category:
              type: string
              description: Immigration category or classification
              example: H-1B
    ExternalPartyIdentifier:
      allOf:
        - $ref: "#/components/schemas/ExternalIdentifier"
    AddressV3:
      type: object
      additionalProperties: false
      required:
        - addressType
        - addressLine1
      properties:
        addressId:
          type: string
          description: Unique identifier for the address record.
          format: uuid
        addressType:
          type: string
          description: Type or classification of the address.
          enum:
            - RESIDENCE
            - BUSINESS
            - POBOX
            - SEASONAL
            - SECONDARY
            - MAILING
            - ANNUALSTATEMENTSMAILINGADDRESS
            - FOREIGNMILITARY
            - POLICYMAILINGADDRESS
        addressLine1:
          type: string
          description: Address Line 1
        addressLine2:
          type: string
          description: Address Line 2
        addressLine3:
          type: string
          description: Address Line 3
        city:
          type: string
          description: City associated with the address.
        state:
          type: string
          description: State or province associated with the address.
        zipCode:
          type: string
          description: Postal ZIP code for the address.
        zipCodeExt:
          type: string
          description: ZIP+4 extension for the address, if applicable.
        country:
          type: string
          description: Country associated with the address.
        foreignAddressInd:
          type: string
          description: Indicator specifying whether the address is a foreign (non-U.S.)
            address.
    PhoneNumber:
      type: object
      additionalProperties: false
      required:
        - phoneId
        - type
        - areaCode
        - dialNumber
      properties:
        phoneId:
          type: string
          description: Unique identifier for the phone number record.
          format: uuid
        type:
          type: string
          description: Type or classification of the phone number.
          enum:
            - BEEPERNUMBER
            - MOBILE
            - FACSIMILE
            - HOME
            - TELEPHONE
            - WORKPHONENUMBER
            - BUSINESS
            - FAX
            - UNKNOWN
            - CLAIMCENTER
            - CUSTOMERSERVICE
            - CORPORATEOFFICE
        countryCode:
          type: string
          description: Country dialing code for the phone number.
        areaCode:
          type: string
          description: Area code associated with the phone number.
        dialNumber:
          type: string
          description: Primary phone number excluding country and area codes.
        extension:
          type: string
          description: Phone extension, if applicable.
        bestTime:
          type: string
          description: Preferred time to contact using this phone number.
        timezone:
          type: string
          description: Time zone associated with the phone number location.
        zip:
          type: string
          description: ZIP code associated with the phone number.
        zipSuffix:
          type: string
          description: ZIP+4 suffix associated with the phone number, if applicable.
    EmailV3:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: Unique identifier for the email record.
          format: uuid
        type:
          type: string
          description: Classification of the email address.
          enum:
            - PERSONAL
            - BUSINESS
            - CUSTOMERSERVICE
        emailAddress:
          type: string
          description: Email address associated with the contact.
    Employment:
      type: object
      required:
        - employed
        - status
      properties:
        employed:
          type: boolean
          default: true
        status:
          type: string
          enum:
            - FULL_TIME
            - PART_TIME
            - SELF_EMPLOYED
            - UNEMPLOYED
            - RETIRED
            - DISABLED
            - LAID_OFF
            - LEAVE_DUE_TO_CHILDBIRTH
            - LEAVE_DUE_TO_MILITARY_SERVICE
            - LEAVE_OF_ABSENCE
            - RESIGNED
            - SHORT_TERM_DISABILITY
            - TERMINATED
            - UNKNOWN
            - OTHER
          example: FULL_TIME
        occupation:
          type: string
          example: Engineer
        householdIncome:
          type: number
          format: double
          minimum: 0
          example: 250000
        netAnnualIncome:
          type: number
          format: double
          minimum: 0
          example: 250000
    State:
      type: string
      example: CA
      enum:
        - AL
        - AK
        - AZ
        - AR
        - AS
        - AA
        - AE
        - AP
        - CA
        - CO
        - CT
        - DC
        - DE
        - FL
        - GA
        - GU
        - HI
        - ID
        - IL
        - IN
        - IA
        - KS
        - KY
        - LA
        - ME
        - MD
        - MA
        - MI
        - MN
        - MS
        - MO
        - MT
        - MP
        - NE
        - NV
        - NH
        - NJ
        - NM
        - NY
        - NC
        - ND
        - OH
        - OK
        - OR
        - PA
        - PR
        - RI
        - SC
        - SD
        - TN
        - TX
        - UT
        - UM
        - VT
        - VA
        - VI
        - WA
        - WV
        - WI
        - WY
      description: Abbreviated names for states
    SignatureV3:
      required:
        - state
        - date
      type: object
      properties:
        date:
          type: string
          description: Sign Date
          example: 2021-01-12
        city:
          type: string
          description: City name
          example: Quincy
        state:
          $ref: "#/components/schemas/State"
    Relationship:
      type: object
      properties:
        type:
          type: string
          enum:
            - TRUSTEE
            - TRUSTEEOFMINOR
            - TRUSTEEOFINCOMPETENT
            - POWEROFATTORNEY
            - CONTROLLINGPERSONOFENTITY
            - BROTHER
            - CHILD
            - DAUGHTER
            - DOMESTICPARTNER
            - EXECUTORS
            - FATHER
            - FIANCE
            - GRANDCHILD
            - GRANDPARENT
            - LIFEPARTNER
            - MOTHER
            - PARENT
            - SIBLING
            - SISTER
            - SON
            - SPOUSE
            - STEPFATHER
            - STEPMOTHER
            - STEPPARENT
            - SELF
            - LEGALGUARDIAN
            - BUSINESS
            - BUSINESSASSOCIATE
            - PARTNER
            - EMPLOYER
            - FORMERSPOUSE
            - OWNER
            - STEPCHILD
            - OTHER
          example: SPOUSE
        percentage:
          type: integer
          minimum: 0
          maximum: 100
          example: 50
    PersonalInformationOwner:
      type: object
      required:
        - firstName
        - lastName
        - dateOfBirth
        - birthSex
        - birthCountry
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    TrustDetails:
      type: object
      required:
        - trustName
        - trustDate
        - trustType
        - authorizedSigner
      properties:
        trustName:
          type: string
          description: Name of the trust
          example: Sunshine Family Trust
        trustType:
          type: string
          enum:
            - TESTAMENTARYTRUST
            - INTERVIVOSTRUST
            - INDIVIDUALTRUST
            - CORPORATETRUST
            - GRANTORTRUST
          description: Type of trust
          example: INDIVIDUALTRUST
        trustDate:
          type: string
          format: date
          description: Original date when the trust was established
          example: 2015-08-15
        amendedTrustDate:
          type: string
          format: date
          description: Date of last amendment to the trust
          example: 2021-04-10
        governingStateOfTrust:
          $ref: "#/components/schemas/State"
    OrganizationDetails:
      type: object
      required:
        - organizationName
        - entityType
      properties:
        organizationName:
          type: string
          description: Legal name of the organization
          example: Northwest Financial Group LLC
        organizationDBAName:
          type: string
          description: Doing Business As (DBA) name of the organization
          example: NWF Group
        organizationShortName:
          type: string
          description: Short or abbreviated name of the organization
          example: NWF
        organizationCode:
          type: string
          description: Unique code identifying the organization
          example: ORG-00123
        entityType:
          type: string
          description: Legal entity type of the organization
          enum:
            - SOLEPROPRIETORSHIP
            - GENERALPARTNERSHIP
            - LIMITEDPARTNERSHIP
            - CCORPORATION
            - SCORPORATION
            - LIMITEDLIABILITYCOMPANY
            - CHARITABLEORGANIZATION
            - ESTATE
            - TRUST
            - CORPORATION
            - UNKNOWN
          example: LIMITEDLIABILITYCOMPANY
    PersonalInformationPrimary:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationPayor:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationPayee:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationAgent:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationTrustee:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationGrantor:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationAuthorizedSigner:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationCoverageInsured:
      type: object
      required:
        - firstName
        - lastName
        - dateOfBirth
        - birthSex
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    PersonalInformationThirdParty:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    Address:
      type: object
      required:
        - addressType
        - addressLine1
        - city
        - state
        - zip
        - country
      properties:
        addressType:
          type: string
          required:
            - addressType
          description: Address Type of the Company
          enum:
            - RES
            - BUS
            - SECONDARY
            - POBOX
            - SEASONAL
            - MAILING
          example: BUS
        addressLine1:
          type: string
          description: Address Line 1
          example: 100 ABC Street
        addressLine2:
          type: string
          description: Address Line 2
          example: Suite 200
        addressLine3:
          type: string
          description: Address Line 3
          example: Topeka, KS 66601
        city:
          type: string
          description: City Name
          example: Topeka
        state:
          type: string
          enum:
            - AA
            - AE
            - AK
            - AL
            - AP
            - AR
            - AZ
            - CA
            - CO
            - CT
            - DC
            - DE
            - FL
            - GA
            - HI
            - IA
            - ID
            - IL
            - IN
            - KS
            - KY
            - LA
            - MA
            - MD
            - ME
            - MI
            - MN
            - MO
            - MS
            - MT
            - NC
            - ND
            - NE
            - NH
            - NJ
            - NM
            - NV
            - NY
            - OH
            - OK
            - OR
            - PA
            - RI
            - SC
            - SD
            - TN
            - TX
            - UT
            - VA
            - VT
            - WA
            - WI
            - WV
            - WY
          description: State code
          example: KS
        zip:
          type: string
          format: 5 digits
          description: ZIP code
          example: "66601"
        zipSuffix:
          type: string
          format: 4 digits
          description: ZIP code suffix
          example: "0148"
        country:
          type: string
          enum:
            - AD
            - AE
            - AF
            - AG
            - AI
            - AL
            - AM
            - AN
            - AO
            - AQ
            - AR
            - AS
            - AT
            - AU
            - AW
            - AX
            - AZ
            - BA
            - BB
            - BD
            - BE
            - BF
            - BG
            - BH
            - BI
            - BJ
            - BL
            - BM
            - BN
            - BO
            - BQ
            - BR
            - BS
            - BT
            - BV
            - BW
            - BY
            - BZ
            - CA
            - CC
            - CD
            - CF
            - CG
            - CH
            - CI
            - CK
            - CL
            - CM
            - CN
            - CO
            - CR
            - CU
            - CV
            - CW
            - CX
            - CY
            - CZ
            - DE
            - DJ
            - DK
            - DM
            - DO
            - DZ
            - EC
            - EE
            - EG
            - EH
            - ER
            - ES
            - ET
            - FI
            - FJ
            - FK
            - FM
            - FO
            - FR
            - GA
            - GB
            - GD
            - GE
            - GF
            - GG
            - GH
            - GI
            - GL
            - GM
            - GN
            - GP
            - GQ
            - GR
            - GS
            - GT
            - GU
            - GW
            - GY
            - HK
            - HM
            - HN
            - HR
            - HT
            - HU
            - ID
            - IE
            - IL
            - IM
            - IN
            - IO
            - IQ
            - IR
            - IS
            - IT
            - JE
            - JM
            - JO
            - JP
            - KE
            - KG
            - KH
            - KI
            - KM
            - KN
            - KP
            - KR
            - KW
            - KY
            - KZ
            - LA
            - LB
            - LC
            - LI
            - LK
            - LR
            - LS
            - LT
            - LU
            - LV
            - LY
            - MA
            - MC
            - MD
            - ME
            - MF
            - MG
            - MH
            - MK
            - ML
            - MM
            - MN
            - MO
            - MP
            - MQ
            - MR
            - MS
            - MT
            - MU
            - MV
            - MW
            - MX
            - MY
            - MZ
            - NA
            - NC
            - NE
            - NF
            - NG
            - NI
            - NL
            - NO
            - NP
            - NR
            - NU
            - NZ
            - OM
            - PA
            - PE
            - PF
            - PG
            - PH
            - PK
            - PL
            - PM
            - PN
            - PR
            - PS
            - PT
            - PW
            - PY
            - QA
            - RE
            - RO
            - RS
            - RU
            - RW
            - SA
            - SB
            - SC
            - SD
            - SE
            - SG
            - SH
            - SI
            - SJ
            - SK
            - SL
            - SM
            - SN
            - SO
            - SR
            - SS
            - ST
            - SV
            - SX
            - SY
            - SZ
            - TC
            - TD
            - TF
            - TG
            - TH
            - TJ
            - TK
            - TL
            - TM
            - TN
            - TO
            - TR
            - TT
            - TV
            - TW
            - TZ
            - UA
            - UG
            - UM
            - US
            - UY
            - UZ
            - VA
            - VC
            - VE
            - VG
            - VI
            - VN
            - VU
            - WF
            - WS
            - XK
            - YE
            - YT
            - ZA
            - ZM
            - ZW
          description: Country codes
          example: US
    Email:
      type: object
      properties:
        emailId:
          type: string
          format: email
          description: Email address of associated party
          example: abc@zinnia.com
        emailType:
          type: string
          enum:
            - BUSINESS
            - PERSONAL
          description: This field captures the type of email address like business or
            personal email.
    PersonalInformationOtherInterestedParty:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          type: string
          example: John
        middleName:
          type: string
          example: M
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          maxLength: 10
          description: Suffix for given party if Applicable
          example: SR
        prefix:
          type: string
          enum:
            - MR
            - MS
            - MISS
            - DR.
            - MRS.
          description: Prefix for given party if Applicable
          example: MR
        dateOfBirth:
          type: string
          format: date
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
          example: 1990-01-01
          description: Date (with pattern "yyyy-mm-dd")
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - UNKNOWN
          example: MALE
        birthSex:
          type: string
          enum:
            - MALE
            - FEMALE
            - UNISEX
          example: MALE
        birthState:
          $ref: "#/components/schemas/BirthState"
        birthCountry:
          $ref: "#/components/schemas/CountryV3"
        citizenCountry:
          $ref: "#/components/schemas/CountryV3"
    AddressDetail:
      type: object
      additionalProperties: false
      required:
        - addressType
        - addressLine1
      properties:
        addressType:
          type: string
          description: Type of address
          enum:
            - RESIDENCE
            - BUSINESS
            - POBOX
            - SEASONAL
            - SECONDARY
            - MAILING
        addressLine1:
          type: string
          description: Address Line 1
        addressLine2:
          type: string
          description: Address Line 2
        addressLine3:
          type: string
          description: Address Line 3
        city:
          type: string
          description: City of residence for the prior carrier or policy owner.
        state:
          type: string
          description: state of residence for the prior carrier or policy owner.
        zipCode:
          type: string
          description: ZIP code (5 digits)
        country:
          type: string
          description: Two letter ISO Country Code
    BankAddress:
      type: object
      additionalProperties: false
      properties:
        addressType:
          type: string
          description: Bank Address Type
          enum:
            - RESIDENCE
            - BUSINESS
            - POBOX
            - SEASONAL
            - SECONDARY
            - MAILING
        addressLine1:
          type: string
          description: Bank Address Line 1
        addressLine2:
          type: string
          description: Bank Address Line 2
        addressLine3:
          type: string
          description: Bank Address Line 3
        city:
          type: string
          description: State in which the bank is located.
        state:
          type: string
          description: State in which the bank is located.
        zipCode:
          type: string
          description: Zip code (5 Digit)
        zipCodeExt:
          type: string
          description: Zip extension (4 Digit)
        country:
          type: string
          description: Country in which the bank is located.
    CountryV3:
      type: string
      example: US
      description: ISO Country Code
        https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
      enum:
        - US
        - AF
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BQ
        - BA
        - BW
        - BV
        - BR
        - IO
        - BN
        - BG
        - BF
        - BI
        - CV
        - KH
        - CM
        - CA
        - KY
        - CF
        - TD
        - CL
        - CN
        - CX
        - CC
        - CO
        - KM
        - CD
        - CG
        - CK
        - CR
        - HR
        - CU
        - CW
        - CY
        - CZ
        - CI
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - SZ
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HK
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MO
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - NO
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - MK
        - RO
        - RU
        - RW
        - RE
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SX
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - UM
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VG
        - VI
        - WF
        - XK
        - EH
        - YE
        - ZM
        - ZW
        - AX
    GovernmentIssuedIdentifier:
      allOf:
        - $ref: "#/components/schemas/Identifier"
        - type: object
          properties:
            issueDate:
              type: string
              format: date
              pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
              example: 2015-08-15
              description: Date (with pattern "yyyy-mm-dd")
            expirationDate:
              type: string
              format: date
              pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
              example: 2025-08-15
              description: Date (with pattern "yyyy-mm-dd")
            status:
              $ref: "#/components/schemas/IdentifierStatus"
    Identifier:
      type: object
      required:
        - type
        - value
      properties:
        type:
          $ref: "#/components/schemas/IdentifierType"
        value:
          type: string
          description: Value of the identifier
          example: "123456789"
        description:
          type: string
          description: Additional description or notes about this identifier
          example: Passport number
        source:
          type: string
          description: Source system or organization that issued this identifier
          example: State of California
    ExternalIdentifier:
      type: object
      required:
        - type
        - key
        - value
      properties:
        type:
          $ref: "#/components/schemas/IdentifierType"
        key:
          type: string
          example: ecn
          description: name of the identifier document
        value:
          type: string
          description: Value of the identifier
          example: "123456789"
        description:
          type: string
          description: Additional description or notes about this identifier
          example: ecn number
        source:
          type: string
          description: Source system or organization that issued this identifier
          example: State of California
    BirthState:
      type: string
      example: CA
      enum:
        - AL
        - AK
        - AZ
        - AR
        - CA
        - CO
        - CT
        - DC
        - DE
        - FL
        - GA
        - HI
        - ID
        - IL
        - IN
        - IA
        - KS
        - KY
        - LA
        - ME
        - MD
        - MA
        - MI
        - MN
        - MS
        - MO
        - MT
        - NE
        - NV
        - NH
        - NJ
        - NM
        - NY
        - NC
        - ND
        - OH
        - OK
        - OR
        - PA
        - RI
        - SC
        - SD
        - TN
        - TX
        - UT
        - VT
        - VA
        - WA
        - WV
        - WI
        - WY
        - AN
        - XK
      description: Only applicable for US born party
    IdentifierStatus:
      type: string
      enum:
        - ACTIVE
        - EXPIRED
        - SUSPENDED
        - REVOKED
        - PENDING
      description: Status of the identifier document
      example: ACTIVE
    IdentifierType:
      type: string
      enum:
        - PASSPORT
        - STATEPHOTOID
        - DRIVERLICENSENUMBER
        - SSN
        - TIN
        - EIN
        - EXTERNAL
        - OTHER
      description: Type of identifier document
  securitySchemes:
    Auth0:
      type: openIdConnect
      openIdConnectUrl: https://login.dev.zinnia.com/.well-known/openid-configuration
      x-kong-security-openid-connect:
        config:
          run_on_preflight: true
          scopes_claim:
            - https://dev.api.zinnia.io/permissions
          audience_claim:
            - aud
          audience_required:
            - https://dev.api.zinnia.io
          client_id:
            - client_id
          auth_methods:
            - bearer
        enabled: true
        protocols:
          - grpc
          - grpcs
          - http
          - https
```
