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

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

# IriPolicySystematicPrograms

## OpenAPI definition

```yaml
openapi: 3.0.0
info:
  title: Policy Service
  version: 0.0.21
servers:
  - url: https://uat.api.zinnia.io
components:
  schemas:
    IriSystematicProgram:
      type: object
      properties:
        arrangementType:
          $ref: "#/components/schemas/IriArrangementType"
        allocationOptionType:
          $ref: "#/components/schemas/IriAllocationOptionType"
        paymentForm:
          $ref: "#/components/schemas/IriSystematicPaymentForm"
        frequency:
          $ref: "#/components/schemas/IriFrequency"
        startDate:
          type: string
          description: The date when the systematic program begins executing payments or
            transfers (entered by user).
          example: 2025-01-01
          format: date
        endDate:
          type: string
          description: The date the special program ends (entered by user or determined by
            LPS based on account value).
          example: 2030-12-31
          format: date
        previousProgramDate:
          type: string
          description: The last date on which a systematic transaction was processed.
          example: 2025-07-01
          format: date
        optedNextProgramDate:
          type: string
          description: A user-selected or modified next payment date, different from the
            scheduled one.
          example: 2025-08-15
          format: date
        nextProgramDate:
          type: string
          description: The date on which the next payment is scheduled.
          example: 2025-08-01
          format: date
        amountType:
          $ref: "#/components/schemas/IriSystematicAmountType"
        requestedAmount:
          type: number
          description: Required when amountType is 'AMOUNT'. Mutually exclusive with
            requestedPercentage.
          example: 500
          minimum: 0
          maximum: 9999999999.99
        requestedPercentage:
          type: number
          description: Required when amountType is 'PERCENTAGE'. Mutually exclusive with
            requestedAmount.
          example: 10
          minimum: 0
          maximum: 100
        externalArrangementId:
          type: string
          description: Carrier-side identifier for the systematic program.
          example: arrangementid123
          maxLength: 100
        numOfModalOccurrences:
          type: integer
          description: Number of modal occurrences for the program.
          example: 12
          minimum: 0
          maximum: 9999999999
        modalAmt:
          type: number
          description: Legacy DD abbreviation retained; represents modal amount.
          example: 500
          minimum: 0
          maximum: 9999999999.99
        modalPct:
          type: number
          description: Legacy DD abbreviation retained; represents modal percentage.
          example: 10
          minimum: 0
          maximum: 100
        sourceTransferAmtType:
          $ref: "#/components/schemas/IriTransferAmountType"
        destTransferAmtType:
          $ref: "#/components/schemas/IriTransferAmountType"
        arrSource:
          $ref: "#/components/schemas/IriArrangementSource"
        taxWithholdingInstructions:
          description: Tax withholding instructions associated with the systematic program.
          type: array
          items:
            $ref: "#/components/schemas/IriPartyTaxWithholdingInstruction"
        arrSubType:
          type: string
          description: Legacy DD abbreviation retained; represents arrangement subtype.
          example: SYSTEMATICWITHDRAWAL
          pattern: ^[A-Za-z0-9_ -]{1,100}$
          maxLength: 100
        dayOfMonth:
          type: string
          description: Day of month for the scheduled arrangement.
          example: "15"
          pattern: ^(?:[1-9]|[12][0-9]|3[01])$
        productCode:
          type: string
          description: Product code associated with the arrangement.
          example: FIAPRM01
          pattern: ^[A-Za-z0-9._-]{1,50}$
        parties:
          description: Parties associated with the systematic program.
          type: array
          items:
            $ref: "#/components/schemas/IriSystematicProgramParty"
      required:
        - arrangementType
        - allocationOptionType
        - paymentForm
        - frequency
        - startDate
        - endDate
        - nextProgramDate
        - amountType
        - externalArrangementId
        - numOfModalOccurrences
        - sourceTransferAmtType
        - destTransferAmtType
        - arrSource
        - arrSubType
    IriArrangementType:
      type: string
      description: Type of systematic arrangement.
      enum:
        - PAYMENT
        - WITHDRAWAL
        - LOANREPAYMENT
        - REQUIREDMINIMUMDISTRIBUTION
        - PAYOUT
    IriAllocationOptionType:
      type: string
      description: How the program allocates against the policy funds.
      enum:
        - PRORATA
        - DOLLAR
        - SPECIFYPERCENTAGE
        - SPECIFIEDFUNDS
        - SPECIFIEDSEGMENTS
        - DEFAULT
        - PECKINGORDER
        - EARNINGSONLY
    IriSystematicPaymentForm:
      type: string
      description: Recurring systematic-program payment form. `EFT` is valid here;
        `EXCHANGE` is intentionally excluded because exchange handling is
        party-specific rather than a recurring disbursement mode.
      enum:
        - DTCC
        - EFT
        - ACH
        - CHECK
        - WIRE
    IriFrequency:
      type: string
      description: How often the systematic program runs.
      enum:
        - DAILY
        - EVERYTWOWEEKS
        - MONTHLY
        - SEMIANNUAL
        - QUARTERLY
        - ANNUAL
        - SINGLEPAYMENT
    IriSystematicAmountType:
      type: string
      description: How the scheduled amount is defined for the program.
      enum:
        - AMOUNT
        - PERCENTAGE
        - MAX
        - FREEWITHDRAWALAMOUNT
        - WITHDRAWALUNTILBASIS
        - EARNINGSONLY
        - MODIFIEDEARNINGSONLY
    IriTransferAmountType:
      type: string
      description: How the destination transfer amount is defined.
      enum:
        - AMOUNT
        - PERCENTAGE
        - PRO_RATA
        - SPECIFIED_FUNDS
        - ALL_FUNDS
        - OTHER
    IriArrangementSource:
      type: string
      description: Legacy DD abbreviation retained; represents arrangement source.
      enum:
        - TransferAmt
        - TransferPct
    IriPartyTaxWithholdingInstruction:
      type: object
      properties:
        party:
          description: Impacted party details for withholding.
          allOf:
            - $ref: "#/components/schemas/IriPartyTaxWithholdingParty"
        taxWithholdingType:
          $ref: "#/components/schemas/IriTaxWithholdingType"
        taxRateToUse:
          $ref: "#/components/schemas/IriTaxRateToUse"
        filingStatus:
          $ref: "#/components/schemas/IriFilingStatus"
        dollar:
          type: number
          description: Fixed dollar amount to withhold. Mutually exclusive with percentage.
          example: 125
          minimum: 0
          maximum: 9999999999.99
        percentage:
          type: number
          description: Percentage rate to withhold. Mutually exclusive with dollar.
          example: 10
          minimum: 0
          maximum: 100
        exemptions:
          type: number
          description: Requested exemptions value.
          example: 0
          minimum: 0
          maximum: 99
        taxJurisdiction:
          type: string
          description: Jurisdiction for tax purposes. Required by the IRI schema when
            taxWithholdingType is STATE.
          example: NC
          maxLength: 50
      required:
        - taxWithholdingType
        - taxRateToUse
    IriSystematicProgramParty:
      type: object
      properties:
        partyRole:
          $ref: "#/components/schemas/IriSystematicPartyRole"
        taxId:
          type: string
          description: Tax identification number for the party.
          example: "123456789"
          minLength: 9
          maxLength: 9
          pattern: ^[0-9]{9}$
        percentage:
          type: number
          description: The party percentage for this program.
          example: 100
          minimum: 0
          maximum: 100
        bankId:
          type: string
          description: Bank account tied to the party.
          example: Bank_1
          maxLength: 100
        addressId:
          type: string
          description: Address tied to the party. Required by the IRI schema when the
            payment method is CHECK.
          example: ADDR001
          maxLength: 100
        paymentForm:
          $ref: "#/components/schemas/IriPartyPaymentForm"
      required:
        - partyRole
        - taxId
        - percentage
        - bankId
        - paymentForm
    IriPartyTaxWithholdingParty:
      type: object
      properties:
        type:
          $ref: "#/components/schemas/IriPartyType"
        firstName:
          type: string
          description: First name of the individual party.
          example: John
          minLength: 1
          maxLength: 100
        middleName:
          type: string
          description: Middle name of the individual party.
          example: Q
          minLength: 1
          maxLength: 100
        lastName:
          type: string
          description: Last name of the individual party.
          example: Public
          minLength: 1
          maxLength: 100
        name:
          type: string
          description: Entity name of the party.
          example: Public Family Trust
          minLength: 1
          maxLength: 100
        taxId:
          type: string
          description: Tax identification number for the party.
          example: "123456789"
          minLength: 9
          maxLength: 9
          pattern: ^[0-9]{9}$
      required:
        - type
        - taxId
    IriTaxWithholdingType:
      type: string
      description: Type of tax withholding.
      enum:
        - FEDERAL
        - STATE
        - NRA
        - BACKUP
    IriTaxRateToUse:
      type: string
      description: Selected tax rate source.
      enum:
        - NOWITHHOLDINGELECTED
        - USEVALUESENTERED
        - NOWITHHOLDINGALLOWED
        - USEDEFAULTTABLE
    IriFilingStatus:
      type: string
      description: Tax filing status. Usually populated when default withholding
        tables are used.
      enum:
        - SINGLE
        - DOMESTICPARTNERSHIP
        - DEFAULT
        - MARRIED
        - HEADOFHOUSEHOLD
        - WIDOWED
        - DIVORCED
    IriSystematicPartyRole:
      type: string
      description: Role of the party within the systematic program. Uses PascalCase
        values to align with the PartyRole filter vocabulary.
      enum:
        - Payor
        - Payee
    IriPartyPaymentForm:
      type: string
      description: Party-level payment form for the systematic program.
      enum:
        - DTCC
        - ACH
        - CHECK
        - WIRE
        - EXCHANGE
    IriPartyType:
      type: string
      description: Type of party.
      enum:
        - individual
        - entity
    IriPolicySystematicPrograms:
      type: object
      properties:
        startIndex:
          type: number
          description: Used for pagination to indicate where the returned page starts
            within the full result set.
          example: 0
          minimum: 0
        itemsCount:
          type: number
          description: Number of records included in the current response page.
          example: 1
          minimum: 0
        totalItemsCount:
          type: number
          description: Total number of records available that match the request criteria,
            independent of pagination.
          example: 1
          minimum: 0
        systematicPrograms:
          description: Systematic programs associated with the policy.
          type: array
          items:
            $ref: "#/components/schemas/IriSystematicProgram"
      required:
        - startIndex
        - itemsCount
        - totalItemsCount
        - systematicPrograms
```
