---
title: "TransactionSubtype"
url: "https://developers.zinnia.com/apis/policy-transactions-1-0-2/versions/d0006570-ab9d-464e-814f-d120ba425e84/schemas/TransactionSubtype"
---

> Full API specification: https://developers.zinnia.com/apis/policy-transactions-1-0-2/versions/d0006570-ab9d-464e-814f-d120ba425e84.md

# TransactionSubtype

Complete transaction subtype with all arrangement and fund details, enriched with VI 21209 real-time amounts

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: Zinnia Policy Transactions API.
  version: 1.0.8
servers:
  - url: https://dev.api.zinnia.io
    description: DEV Environment
  - url: https://qa.api.zinnia.io
    description: QA Environment
components:
  schemas:
    CodeDisplayName:
      type: object
      description: Generic code/displayName object
      properties:
        code:
          type: string
          description: Code value
          example: WD
        displayName:
          type: string
          description: Display name
          example: Withdrawal
    EffectiveDateDuration:
      type: object
      description: Effective date duration with min/max values in days
      properties:
        minDays:
          type: integer
          description: Minimum duration in days
          example: 1
        maxDays:
          type: integer
          description: Maximum duration in days
          example: 365
    TransactionSubtype:
      type: object
      description: Complete transaction subtype with all arrangement and fund details,
        enriched with VI 21209 real-time amounts
      properties:
        transactionSubtype:
          type: string
          description: Transaction subtype name
          example: Partial Withdrawal
        transactionSubtypeCode:
          type: string
          description: Transaction subtype code
          example: PARTIAL_WD
        amount:
          type: number
          format: double
          nullable: true
          description: >
            Amount associated with this transaction subtype from VI 21209
            response.

            Maps transaction subtypes to their corresponding VI amounts:

            - INTEREST_ONLY → interestOnlyAmount

            - RMD → rmdAmount

            - RIDER_FREE → riderFreeAmount

            - FREE_AVAILABLE → freeAvailableAmount
            (surrenderValueWithoutMarketValueAdjustment)

            - SURRENDER_FREE_ATD → surrenderFreeAmountATD (freeWithdrawalAmount)

            - SURRENDER/PARTIAL → surrenderValue

            Null if VI data is not available or amount is zero.
          example: 5000
        minTransactionAmt:
          type: string
          description: Minimum transaction amount
          example: "100.00"
        maxTransactionAmt:
          type: string
          description: Maximum transaction amount
          example: "50000.00"
        minPercentage:
          type: string
          description: Minimum percentage allowed
          example: "1"
        maxPercentage:
          type: string
          description: Maximum percentage allowed
          example: "100"
        minRemainingBalanceAmt:
          type: string
          description: Minimum remaining balance amount after transaction
          example: "500.00"
        minContractAmt:
          type: number
          description: Minimum contract amount
          example: 1000
        fundDisbursementType:
          type: array
          description: Fund disbursement types (Pro Rata, Specific Fund, etc.)
          items:
            $ref: "#/components/schemas/CodeDisplayName"
          example:
            - code: PRO_RATA
              displayName: Pro Rata
            - code: SPECIFIC_FUND
              displayName: Specific Fund
        sourceTransferAmtType:
          type: array
          description: Source transfer amount types (Dollar Amount, Percentage, Units)
          items:
            $ref: "#/components/schemas/CodeDisplayName"
          example:
            - code: DOLLAR
              displayName: Dollar Amount
            - code: PERCENT
              displayName: Percentage
            - code: UNITS
              displayName: Units
        amountQualifier:
          type: array
          description: Amount qualifiers (Gross, Net)
          items:
            $ref: "#/components/schemas/CodeDisplayName"
          example:
            - code: GROSS
              displayName: Gross
            - code: NET
              displayName: Net
        paymentMode:
          $ref: "#/components/schemas/CodeDisplayName"
        paymentMethod:
          type: array
          description: Available payment methods for this subtype
          items:
            $ref: "#/components/schemas/CodeDisplayName"
          example:
            - code: CHECK
              displayName: Check
            - code: EFT
              displayName: Electronic Funds Transfer
            - code: WIRE
              displayName: Wire Transfer
        taxRateBasedOn:
          $ref: "#/components/schemas/CodeDisplayName"
        taxWithholdingCollect:
          $ref: "#/components/schemas/CodeDisplayName"
        taxWithholdingPlace:
          $ref: "#/components/schemas/CodeDisplayName"
        withholdStateIfFederalInd:
          $ref: "#/components/schemas/CodeDisplayName"
        taxJurisdiction:
          $ref: "#/components/schemas/CodeDisplayName"
        taxMinPercentage:
          type: string
          description: Minimum tax withholding percentage
          example: "0"
        taxMaxPercentage:
          type: string
          description: Maximum tax withholding percentage
          example: "100"
        taxTransferAmtType:
          type: string
          description: Tax transfer amount type
          example: PERCENT
        availableCalendarDate:
          type: string
          description: Available calendar date
          example: 2024-01-01
        minDuration:
          type: number
          description: Minimum duration value
          example: 1
        minDurationQualifier:
          $ref: "#/components/schemas/CodeDisplayName"
        maxDuration:
          type: number
          description: Maximum duration value
          example: 365
        maxDurationQualifier:
          $ref: "#/components/schemas/CodeDisplayName"
        effectiveDateDuration:
          $ref: "#/components/schemas/EffectiveDateDuration"
        jurisdictionEffectiveDate:
          type: string
          description: Jurisdiction effective date
          example: 2024-01-01
        saleEffectiveDate:
          type: string
          description: Sale effective date
          example: 2024-01-01
        saleExpirationDate:
          type: string
          description: Sale expiration date
          example: 2025-12-31
        featureCode:
          type: string
          description: Feature code
          example: PARTIAL_WD_001
        featureMaxNumInstances:
          type: number
          description: Maximum number of feature instances
          example: 12
        featureProductCode:
          $ref: "#/components/schemas/CodeDisplayName"
        featureProductInfo:
          type: array
          description: Feature product information
          items:
            type: object
        maxNumSourceInvestProd:
          type: number
          description: Maximum number of source investment products
          example: 10
        minNumSourceInvestments:
          type: number
          description: Minimum number of source investments
          example: 1
        actionTypeAllowed:
          type: array
          description: Allowed action types
          items:
            $ref: "#/components/schemas/CodeDisplayName"
        jurisdiction:
          $ref: "#/components/schemas/CodeDisplayName"
        arrangementType:
          $ref: "#/components/schemas/CodeDisplayName"
        arrangementSubType:
          $ref: "#/components/schemas/CodeDisplayName"
```
