---
title: "SystematicProgram"
url: "https://developers.zinnia.com/apis/policy-service-0-1-0/versions/8306e031-b41c-452a-a7ed-d73d65602086/schemas/SystematicProgram"
---

> Full API specification: https://developers.zinnia.com/apis/policy-service-0-1-0/versions/8306e031-b41c-452a-a7ed-d73d65602086.md

# SystematicProgram

## OpenAPI definition

```yaml
openapi: 3.0.0
info:
  title: Policy Service
  version: 0.0.21
servers:
  - url: https://qa.api.zinnia.io
components:
  schemas:
    ArrangementType:
      type: string
      enum:
        - PAYMENT
        - WITHDRAWAL
        - LOANREPAYMENT
        - REQUIREDMINIMUMDISTRIBUTION
        - PAYOUT
        - RIDERCLAIMWITHDRAWAL
    AllocationOption:
      type: string
      enum:
        - PRORATA
        - DOLLAR
        - SPECIFYPERCENTAGE
        - SPECIFIEDFUNDS
        - SPECIFIEDSEGMENTS
        - DEFAULT
        - PECKINGORDER
        - EARNINGSONLY
        - SPECIFICFUNDPERCENTAGE
        - FIXEDONLY
        - VARIABLEONLY
        - CURRENTHOLDINGS
    Reason:
      type: string
      enum:
        - PREMIUM
        - LOANREPAYMENT
        - FREEWITHDRAWALAMOUNT
        - WITHDRAWAL
        - ANNUITYPAYOUT
        - REQUIREDMINIMUMDISTRIBUTION
    DisbursementType:
      type: string
      enum:
        - GROSS
        - NET
        - NETNET
    Status:
      type: string
      enum:
        - ACTIVE
        - TERMINATED
        - PENDING
        - SUSPENDED
    PaymentForm:
      type: string
      enum:
        - DTCC
        - CREDITCARD
        - ACH
        - CHECK
        - WIRE
        - EXCHANGE
        - PREMIUMLOAN
    Frequency:
      type: string
      enum:
        - DAILY
        - EVERYTWOWEEKS
        - MONTHLY
        - SEMIANNUAL
        - QUARTERLY
        - ANNUAL
        - SINGLEPAYMENT
    AmountType:
      type: string
      enum:
        - AMOUNT
        - PERCENTAGE
        - MAX
        - FREEWITHDRAWALAMOUNT
        - WITHDRAWALUNTILBASIS
        - EARNINGSONLY
        - PRORATA
        - PERCENT
        - MODIFIEDEARNINGSONLY
        - SUNINCOMEMAXIMIZERONLYLBRMAXIMUM
        - SUNINCOMEMAXIMIZERNETONETIMEACCESS
        - NONSUNINCOMEMAXIMIZERLBRSWDMAXIMUM
        - SUNINCOMEMAXIMIZERGROSSONETIMEACCESS
        - YEARTODATEFIXEDEARNINGS
        - EARNINGSLIQUIDITYFIRST
        - EARNINGSLIQUIDITYLAST
        - GUARANTEEDWITHDRAWALBENEFIT
        - FIXEDMODIFIEDEARNINGS
        - ACCUMULATEDEARNINGS
        - LIFEEXPECTANCY
        - DEFAULT
    Party:
      type: object
      properties:
        partyRole:
          type: string
          enum:
            - PAYOR
            - PAYEE
          description: Note -Use systematicProgram.parties.partyRole field instead of
            systematicProgram.party.partyRole
          example: PAYOR
        partyId:
          type: string
          description: Note -Use systematicProgram.parties.partyId field instead of
            systematicProgram.party.partyId
          example: Party_PI_1
        percentage:
          type: number
          description: Note -Use systematicProgram.parties.percentage field instead of
            systematicProgram.party.percentage
          example: 10
          format: double
        bankId:
          type: string
          description: Note -Use systematicProgram.parties.bankId field instead of
            systematicProgram.party.bankId
          example: Bank_1
        paymentForm:
          $ref: "#/components/schemas/PaymentForm"
    SystematicProgramParties:
      type: object
      properties:
        partyRole:
          type: string
          enum:
            - PAYOR
            - PAYEE
          description: Role the program is tied to ( for example for money-in ,I could be
            owner or payor & for money-out it could be payee or beneficiary)
          example: PAYOR
        partyId:
          type: string
          description: Role ID of the party
          example: Party_PI_1
        percentage:
          type: number
          example: 10
          format: double
          description: The party percentage for this program
        bankId:
          type: string
          description: Bank Account Tied to the Party
          example: Bank_1
        addressId:
          type: string
          description: Address Tied to the Party ID. In case of payment method Check ,
            this field is required
          example: "1"
        paymentForm:
          $ref: "#/components/schemas/PaymentForm"
        forBenefitOfOrForFurtherCredit:
          type: string
          description: FBO - For Benefit Of FFC - For Further Credit(to notate a second
            beneficiary or to designate a person or organization when funds are
            disbursed out)
          example: TBD
        forBenefitOfOrForFurtherCreditIndicator:
          type: boolean
          example: true
          description: Indicates whether the outgoing funds are being requested for the
            benefit of or for further credit to another person or organization.
    SystematicFundAllocation:
      type: object
      properties:
        allocationOption:
          $ref: "#/components/schemas/AllocationOption"
        amountType:
          $ref: "#/components/schemas/AmountType"
    FundDistribution:
      type: object
      properties:
        fundId:
          type: string
          description: A unique identifier assigned to a specific fund account within the
            investment structure
          example: FundAccount1
        fundName:
          type: string
          description: The official business name of the specific fund account within the
            investment structure
          example: Fund1
        totalFundValue:
          type: number
          description: The total value of the specific fund account within the investment
            structure.The total fund value of the a specific fund, considering
            any earnings, withdrawals, or adjustments due to transaction
          format: double
          example: 100
        requestedAmount:
          type: number
          description: The specific amount or percentage requested for withdrawal,
            transfer, or reallocation from the selected fund.This amount will be
            utilized when allocation option is selected as specified funds
          format: double
          example: 100
        fundDistributionSegments:
          type: array
          items:
            $ref: "#/components/schemas/FundDistributionSegment"
    FundDistributionSegment:
      type: object
      properties:
        segmentId:
          type: string
          description: A unique identifier assigned to a particular segment for a specific
            fund account within the investment structure
          example: segment1
        currentAmount:
          type: number
          description: The current value of the particular segment for a specific fund
            account within the investment structure. The current amount of the
            segment, considering any earnings, withdrawals, or adjustments due
            to transaction
          format: double
          example: 1000
        requestedAmount:
          type: number
          format: double
          example: 100
          description: The specific amount or percentage requested for withdrawal,
            transfer, or reallocation from the particular segment selected for a
            fund.This amount will be utilized when allocation option is selected
            as specified segments
    SystematicProgram:
      type: object
      properties:
        arrangementType:
          $ref: "#/components/schemas/ArrangementType"
        arrangementId:
          type: string
          description: The unique payment number for payments by the party
          example: Arr_1
        allocationOptionType:
          $ref: "#/components/schemas/AllocationOption"
        reason:
          $ref: "#/components/schemas/Reason"
        numberOfOccurrence:
          type: number
          description: Specifies how many times the SSW  special program will run. This
            number will decrease each time the SSW  runs. If there is no
            specific duration, this field will remain at 0 and will not
            automatically end the SSW special program
          example: 12
          format: int32
        disbursementType:
          $ref: "#/components/schemas/DisbursementType"
        status:
          $ref: "#/components/schemas/Status"
        paymentForm:
          $ref: "#/components/schemas/PaymentForm"
        frequency:
          $ref: "#/components/schemas/Frequency"
        requestedDate:
          type: string
          example: 2023-01-01
          description: The date on which the request for the systematic program was
            submitted
          format: date
        startDate:
          type: string
          example: 2023-01-01
          description: The date when the systematic program begins executing payments or
            transfers (entered by user)
          format: date
        endDate:
          type: string
          example: 2023-01-01
          description: The date Special Program ends (Entered by user or determined by LPS
            based on Account Value)
          format: date
        previousProgramDate:
          type: string
          example: 2023-01-01
          description: The last date on which a systematic transaction was processed
          format: date
        optedNextProgramDate:
          type: string
          example: 2023-01-01
          format: date
          description: A user-selected or modified next payment date, different from the
            scheduled one
        nextProgramDate:
          type: string
          example: 2023-01-01
          description: The date on which the next payment is scheduled
          format: date
        amountType:
          $ref: "#/components/schemas/AmountType"
        amount:
          type: number
          example: 600
          format: double
          description: A specified value - predetermined fixed amount or percentage used
            for financial transactions within a systematic program
        party:
          description: Note -Use systematicProgram.parties field instead of
            systematicProgram.party
          type: array
          items:
            $ref: "#/components/schemas/Party"
        parties:
          type: array
          items:
            $ref: "#/components/schemas/SystematicProgramParties"
        externalArrangementId:
          type: string
          description: The unique ID sent by carriers to identify the special
            programs.Carrier-side identifier for the systematic program
          example: arrangementid123
        fundAllocation:
          $ref: "#/components/schemas/SystematicFundAllocation"
        fundDistributions:
          type: array
          items:
            $ref: "#/components/schemas/FundDistribution"
      required:
        - externalArrangementId
```
