---
title: "Illustration Request for IUL - Inforce As-Is"
url: "https://developers.zinnia.com/apis/illustration-generation/versions/b5521ffd-2c63-4ce0-b9a7-104a837fecb0/schemas/Illustration-Inputs-IUL-Inforce-As-Is"
---

> Full API specification: https://developers.zinnia.com/apis/illustration-generation/versions/b5521ffd-2c63-4ce0-b9a7-104a837fecb0.md

# Illustration Request for IUL - Inforce As-Is

Illustration Request for Indexed Universal Life product - Inforce as-is scenario

## OpenAPI definition

```yaml
openapi: 3.0.1
info:
  title: Illustration Generation
  version: 3.5.8
servers:
  - url: https://uat.api.zinnia.io
    description: UAT
components:
  schemas:
    Illustration-Inputs-Base:
      title: Illustration Request
      description: Fundamental Illustration request schema. See the schema for a
        specific product
      properties:
        calculationType:
          type: string
          description: Type of calculation. Only SINGLE_ILLUSTRATION triggers a PDF to be
            generated.
          example: QUICK_QUOTE
          enum:
            - QUICK_QUOTE
            - SINGLE_ILLUSTRATION
            - AGGREGATE_ILLUSTRATION
            - COMPOSITE_ILLUSTRATION
            - POLICY_PAGE_PROJECTION
            - INITIAL_QUOTE
        source:
          type: string
          description: Source of the request
          example: ZINNIA
        illustrationRequestDate:
          $ref: "#/components/schemas/Date-Field"
        reports:
          type: object
          properties:
            internalRateOfReturnOn:
              type: boolean
              description: Internal rate of return
              example: true
            annualChargesOn:
              type: boolean
              description: Annual charges
              example: true
            annualChargesYears:
              type: number
              description: Annual charges years
              format: integer
              example: 10
            monthlyChargesOn:
              type: boolean
              description: Monthly charges
              example: true
            monthlyChargesYears:
              type: number
              format: integer
              description: Monthly charges years
              example: 10
            marketingPagesOn:
              type: boolean
              description: Whether to produce marketing pages
              example: true
            costDetailsReportOn:
              type: boolean
              description: Whether to produce the cost details report
              example: true
            inputSummaryOn:
              type: boolean
              description: Whether to produce the input summary
              example: true
      required:
        - calculationType
        - illustrationRequestDate
    Illustration-Inputs-Inforce-Base:
      title: Base Inforce Illustration Request
      description: Common properties for inforce illustration scenarios
      type: object
      properties:
        policyDetail:
          $ref: "#/components/schemas/Policy-State"
        policyDetailDate:
          $ref: "#/components/schemas/Date-Field"
      required:
        - policyDetail
        - policyDetailDate
    Illustration-Input-Party:
      title: Illustration Input Party
      description: A party supplied on an illustration request, either the Insured or
        a non-insured party
      anyOf:
        - $ref: "#/components/schemas/Non-Insured-Party"
        - $ref: "#/components/schemas/Insured"
    Date-Field:
      type: string
      format: date
      pattern: ([0-9]{4})-([0-9]{2})-([0-9]{2})
      description: Date (with pattern "yyyy-mm-dd")
      example: 2025-05-13
    Policy-State:
      title: Policy State
      description: Represents the state of a policy at an instant in time. Describes
        the payload Zahara transmits when requesting calculations for a single
        transaction.
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        accountValue:
          $ref: "#/components/schemas/Account-Value"
        testValue:
          $ref: "#/components/schemas/Basic-Collection"
        deathBenefit:
          $ref: "#/components/schemas/Basic-Collection"
        coverageValue:
          $ref: "#/components/schemas/Basic-Collection"
        coverages:
          $ref: "#/components/schemas/Coverage-Collection"
        parties:
          $ref: "#/components/schemas/Parties"
        features:
          $ref: "#/components/schemas/Features"
        fundAllocations:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
        funds:
          $ref: "#/components/schemas/Fund-Collection"
        matchSegment:
          $ref: "#/components/schemas/Basic-Collection"
        loanSegments:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
        arrangements:
          $ref: "#/components/schemas/Arrangements"
      required:
        - attributes
        - accountValue
        - testValue
        - deathBenefit
        - coverageValue
        - coverages
        - parties
        - features
        - fundAllocations
        - funds
        - matchSegment
        - loanSegments
        - arrangements
    Non-Insured-Party:
      title: Non-Insured Party
      description: |
        Represents a party with a roleCode other than `INSURED`
      type: object
      allOf:
        - $ref: "#/components/schemas/Party-Base"
      properties:
        roleCode:
          $ref: "#/components/schemas/Party-Role"
      required:
        - roleCode
    Insured:
      title: Insured Party
      description: |
        Represents a party with roleCode: `Insured`
      type: object
      allOf:
        - $ref: "#/components/schemas/Party-Base"
      properties:
        roleCode:
          type: string
          enum:
            - INSURED
          example: INSURED
      required:
        - lastName
        - gender
        - roleCode
    Attribute-Collection:
      title: Attribute Collection
      description: A collection of uniquely named variables, must be camel-cased.
      type: object
      properties:
        ^[a-z][a-zA-Z0-9]+:
          $ref: "#/components/schemas/Variable-Value"
    Account-Value:
      title: Account-Value
      description: A description of the monetary value of an investment contract
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        policyMetrics:
          $ref: "#/components/schemas/Basic-Collection"
        loan:
          $ref: "#/components/schemas/Basic-Collection"
        withdrawal:
          $ref: "#/components/schemas/Basic-Collection"
      required:
        - attributes
        - policyMetrics
        - loan
        - withdrawal
    Basic-Collection:
      title: Basic Collection
      description: A simple object that only contains a collection of unique
        attributes and no further structure.
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
      required:
        - attributes
    Coverage-Collection:
      title: Coverage-Collection (v3)
      description: A collection of benefits
      type: array
      items:
        $ref: "#/components/schemas/Coverage"
    Parties:
      title: Parties
      description: An unkeyed collection of unique Party objects
      type: array
      items:
        $ref: "#/components/schemas/Party"
      uniqueItems: true
    Features:
      title: Features
      description: Well-known geatures associated with a policy
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        lapseAssessment:
          $ref: "#/components/schemas/Basic-Collection"
        lapseProtection:
          $ref: "#/components/schemas/Basic-Collection"
        reinstatement:
          $ref: "#/components/schemas/Basic-Collection"
      required:
        - attributes
        - lapseAssessment
        - lapseProtection
        - reinstatement
    Multiple-Basic-Collections:
      title: Multiple-Basic-Collections
      type: array
      items:
        $ref: "#/components/schemas/Basic-Collection"
    Fund-Collection:
      title: Fund-Collection
      description: An unkeyed collection of funds
      type: array
      items:
        $ref: "#/components/schemas/Fund"
    Arrangements:
      title: Arrangements
      description: An unkeyed collection of arrangement objects
      type: array
      items:
        $ref: "#/components/schemas/Arrangement"
    Party-Base:
      title: Party
      type: object
      description: Fundamental party object - see schema for specific role
      required:
        - partyId
        - partyTypeCode
      discriminator:
        propertyName: roleCode
      properties:
        partyId:
          type: string
          format: uuid
          description: Party id
          example: 95f5ece9-e40b-450b-ad39-daa217894e69
        partyTypeCode:
          example: INDIVIDUAL
          type: string
          description: Party type
          enum:
            - INDIVIDUAL
            - ORGANIZATION
            - TRUST
        gender:
          type: string
          description: Gender
          example: MALE
          enum:
            - MALE
            - FEMALE
            - UNISEX
            - OTHER
        dateOfBirth:
          type: string
          format: date
          pattern: ([0-9]{4})-([0-9]{2})-([0-9]{2})
          description: Date (with pattern "yyyy-mm-dd")
          example: 1990-05-13
        firstName:
          type: string
          description: First Name
          example: John
        middleName:
          type: string
          description: Middle Name or Initial
          example: Frederick
        lastName:
          type: string
          description: Last name
          example: Doe
        suffix:
          type: string
          description: Name Suffix
          example: Jr.
        address:
          type: object
          description: Address
          properties:
            addressLine1:
              type: string
              description: Address line 1
              example: 123 Charter Oak
            addressLine2:
              type: string
              description: Address line 2
              example: Suite 456
            city:
              type: string
              description: Address city
              example: Manchester
            state:
              type: string
              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
              description: US state code.https://en.wikipedia.org/wiki/ISO_3166-2:US
              example: CT
            zipCode:
              type: string
              description: Zip Code. Max char allowed is 9.
              maxLength: 9
              example: "123456"
        email:
          type: string
          format: email
          description: Email
          example: person@example.com
        phoneType:
          type: string
          description: Phone type
          example: HOME
          enum:
            - MOBILE
            - HOME
            - BUSINESS
            - CLAIMCENTER
            - CUSTOMERSERVICE
            - CORPORATEOFFICE
            - FAX
            - UNKNOWN
            - OTHER
        phone:
          type: string
          description: Phone
          example: "1238675309"
        identification:
          type: object
          description: Identification
          properties:
            identificationType:
              type: string
              description: Identification type
              example: PASSPORT
              enum:
                - PASSPORT
                - STATEPHOTOID
                - DRIVERLICENSENUMBER
                - SSN
                - TIN
                - OTHER
                - EXTERNAL
            identificationKey:
              type: string
              description: Identification key
              example: ECN
            identificationDescription:
              type: string
              description: Identification description
              example: ECN
            identificationValue:
              type: string
              description: Identification value
              example: ECN
    Party-Role:
      title: Party Role
      example: OWNER
      type: string
      description: The role of a given party
      enum:
        - OWNER
        - PRIMARYBENEFICIARY
        - CONTINGENTBENEFICIARY
        - INSURED
        - PAYOR
        - PAYEE
        - AGENT
        - PRIMARYWRITINGAGENT
        - PRIMARYSERVICINGAGENT
        - ADDITIONALSERVICINGAGENT
        - ADDITIONALWRITINGAGENT
        - THIRDPARTYDESIGNEE
        - JOINTOWNER
        - COVERAGEINSURED
        - ASSIGNEE
        - ANNUITANT
        - EXCHANGECOMPANY
        - JOINTANNUITANT
        - GRANTOR
        - TRUSTEE
        - POWEROFATTORNEY
        - AUTHORIZEDSIGNATORY
        - OTHERINTERESTEDPARTY
        - CONTINGENTOWNER
    Variable-Value:
      title: Variable Value
      description: the value of a variable, may be constant or time-dependent
      oneOf:
        - type: string
        - $ref: "#/components/schemas/Schedule"
    Coverage:
      title: Coverage (v3)
      description: A benefit conferred to a group of one or more participants
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        participants:
          $ref: "#/components/schemas/Participant-Collection"
        fees:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
      required:
        - attributes
        - participants
        - fees
    Party:
      title: Party
      description: A unique entity
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        person:
          $ref: "#/components/schemas/Basic-Collection"
        organization:
          $ref: "#/components/schemas/Basic-Collection"
        trust:
          $ref: "#/components/schemas/Basic-Collection"
      required:
        - attributes
        - person
        - organization
        - trust
    Fund:
      title: Fund
      description: A source of money
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        segments:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
      required:
        - attributes
        - segments
    Arrangement:
      title: Arrangement
      description: Describes an arbitrary agreement
      type: object
      properties:
        arrangementSources:
          type: array
          items:
            $ref: "#/components/schemas/Arrangement-Source"
        type:
          $ref: "#/components/schemas/Arrangement-Type"
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        requestedAmount:
          $ref: "#/components/schemas/Variable-Value"
        deathClaim:
          $ref: "#/components/schemas/Basic-Collection"
        fees:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
        loanSegments:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
        matchSegment:
          $ref: "#/components/schemas/Active-Segment"
        payments:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
        taxWithholdings:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
    Schedule:
      title: Schedule
      description: Represents a value that changes with time. The value is assumed to
        change annually and be tied to a duration unless otherwise specified via
        the Frequency and Basis properties
      type: object
      properties:
        frequency:
          description: Indicates the interval between values for each entry. Any entry
            other than Annual results in multiple activities within a year.
          type: string
          enum:
            - ANNUAL
            - SEMI_ANNUAL
            - QUARTERLY
            - MONTHLY
            - BIWEEKLY
            - WEEKLY
            - DAILY
        basis:
          description: Specifies how to interpret the from and through properties for each
            entry.
          type: string
          enum:
            - AGE
            - DURATION
        sequence:
          description: Collection of entries describing the changes in value over time
          type: array
          items:
            $ref: "#/components/schemas/Scheduled-Entry"
          minItems: 1
      required:
        - sequence
    Participant-Collection:
      title: Participant-Collection
      description: An unkeyed collection of unique participant objects
      type: array
      items:
        $ref: "#/components/schemas/Participant"
      uniqueItems: true
    Arrangement-Source:
      title: Arrangement-Source
      type: object
      description: A source of funding for an arrangement
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        segments:
          type: array
          items:
            $ref: "#/components/schemas/Active-Segment"
      required:
        - attributes
        - segments
    Arrangement-Type:
      title: Arrangement Type
      description: Enumeration of allowable arrangement types
      type: string
      enum:
        - LOAN
        - WITHDRAWAL
        - PAYMENT
        - CONVERSION_ACTIVATION
    Active-Segment:
      title: Active-Segment
      type: object
      description: A segment of a source of money that has some form of financial activity
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        financialActivity:
          $ref: "#/components/schemas/Financial-Activity"
      required:
        - attributes
    Scheduled-Entry:
      title: Scheduled Entry
      description: Represents a limited time period for which a value is constant.
      type: object
      properties:
        from:
          description: starting point for the value, inclusive
          type: integer
          minimum: 1
        through:
          description: ending point for the value, inclusive
          type: integer
          minimum: 1
        value:
          type: string
      required:
        - from
        - through
        - value
    Participant:
      title: Participant (v3)
      description: An entity with a stake in a policy
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
        flatExtra:
          $ref: "#/components/schemas/Multiple-Basic-Collections"
      required:
        - attributes
        - flatExtra
    Financial-Activity:
      title: Financial Activity
      type: object
      properties:
        attributes:
          $ref: "#/components/schemas/Attribute-Collection"
      required:
        - attributes
    Illustration-Inputs-IUL-Inforce-As-Is:
      title: Illustration Request for IUL - Inforce As-Is
      description: Illustration Request for Indexed Universal Life product - Inforce
        as-is scenario
      allOf:
        - $ref: "#/components/schemas/Illustration-Inputs-Base"
        - $ref: "#/components/schemas/Illustration-Inputs-Inforce-Base"
        - type: object
          properties:
            parties:
              type: array
              description: Optional. Used to supply agent / primary writing agent (and agent
                organization) details
              items:
                $ref: "#/components/schemas/Illustration-Input-Party"
```
