Fintary AMS - Policies API

Policy management endpoints

Business capability
Policy Administration Management BC-2140

Operations 24

PATCH /api/ams/policies/{strId}/case-manager Update policy case manager
GET /api/ams/policies/{strId}/commission Get policy commission info (receivables, payouts by role, statement totals)
GET /api/ams/policies/{strId}/customers List customers associated with a policy
DELETE /api/ams/policies/{strId}/documents/{documentStrId} Delete policy document
GET /api/ams/policies/{strId}/documents/{documentStrId}/download Short-lived signed download URL for a policy document
POST /api/ams/policies/{strId}/documents/finalize Finalize a policy document upload (phase 2 of two)
GET /api/ams/policies/{strId}/documents List policy documents (Document Repository Service)
POST /api/ams/policies/{strId}/documents Start a policy document upload (phase 1 of two)
GET /api/ams/policies/{strId} Policy detail
PATCH /api/ams/policies/{strId} Update policy
DELETE /api/ams/policies/{strId} Delete policy
PATCH /api/ams/policies/{strId}/status Change policy status
PATCH /api/ams/policies/{strId}/tasks/{taskId} Update policy task
DELETE /api/ams/policies/{strId}/tasks/{taskId} Delete policy task
GET /api/ams/policies/{strId}/tasks List policy tasks
POST /api/ams/policies/{strId}/tasks Create policy task
GET /api/ams/policies/{strId}/team Get policy team
PATCH /api/ams/policies/{strId}/team Update policy team
PATCH /api/ams/policies/bulk-update Bulk update policies
POST /api/ams/policies/filter-options Get filter option values for the policy list
GET /api/ams/policies/filters Get policy list filter metadata
POST /api/ams/policies Create a policy
POST /api/ams/policies/list List policies with basic info
GET /api/ams/policies/summary Policy summary grouped by status

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fintary-ams-policies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fintary-ams-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fintary AMS API documentation AMS - Policies API
  version: '1.0'
  description: Policy management endpoints
servers:
- url: https://api.fintary.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- BearerAuth: []
tags:
- name: AMS - Policies
  description: Policy management endpoints
paths:
  /api/ams/policies/{strId}/case-manager:
    patch:
      summary: Update policy case manager
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsUpdatePolicyCaseManagerSchema'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyCaseManagerUpdateResponseSchema'
  /api/ams/policies/{strId}/commission:
    get:
      summary: Get policy commission info (receivables, payouts by role, statement totals)
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyCommissionDetailSchema'
        '404':
          description: Not found
  /api/ams/policies/{strId}/customers:
    get:
      summary: List customers associated with a policy
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyCustomerListItemSchema'
        '404':
          description: Not found
  /api/ams/policies/{strId}/documents/{documentStrId}:
    delete:
      summary: Delete policy document
      description: 'Removes the document from the Document Repository Service. Metadata is immutable in DRS, so there is no update route -- name and expiry are captured at upload.

        '
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      - name: documentStrId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: boolean
                    example: true
        '404':
          description: Not found
  /api/ams/policies/{strId}/documents/{documentStrId}/download:
    get:
      summary: Short-lived signed download URL for a policy document
      description: 'Returns a short-lived signed URL issued by the Document Repository Service. The document is resolved through its policy, so one belonging to another policy or account cannot be fetched.

        '
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      - name: documentStrId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Signed download URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      url:
                        type: string
                      expiresAt:
                        type:
                        - string
                        - 'null'
                        format: date-time
        '404':
          description: Not found
  /api/ams/policies/{strId}/documents/finalize:
    post:
      summary: Finalize a policy document upload (phase 2 of two)
      description: 'Flips the Document Repository Service document to ACTIVE once the client has uploaded the bytes to the signed URL. Until this call lands the document is not returned by the list endpoint.

        '
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsFinalizePolicyDocumentSchema'
      responses:
        '200':
          description: Finalized
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyDocumentDetailSchema'
        '404':
          description: Not found
  /api/ams/policies/{strId}/documents:
    get:
      summary: List policy documents (Document Repository Service)
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyDocumentDetailSchema'
        '404':
          description: Not found
    post:
      summary: Start a policy document upload (phase 1 of two)
      description: 'Mints a short-lived signed PUT URL from the Document Repository Service. The client uploads the bytes straight to storage, then calls the finalize endpoint. The document is stamped with `metadata.policyId`.

        '
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsCreatePolicyDocumentSchema'
      responses:
        '201':
          description: Upload ticket created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyDocumentUploadTicketSchema'
        '404':
          description: Not found
  /api/ams/policies/{strId}:
    get:
      summary: Policy detail
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyDetailResponseSchema'
        '404':
          description: Not found
    patch:
      summary: Update policy
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsUpdatePolicySchema'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyDetailResponseSchema'
        '404':
          description: Not found
    delete:
      summary: Delete policy
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: boolean
                    example: true
        '404':
          description: Not found
  /api/ams/policies/{strId}/status:
    patch:
      summary: Change policy status
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsUpdatePolicyStatusSchema'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyDetailResponseSchema'
        '404':
          description: Not found
  /api/ams/policies/{strId}/tasks/{taskId}:
    patch:
      summary: Update policy task
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsUpdatePolicyTaskSchema'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyTaskDetailSchema'
        '404':
          description: Not found
    delete:
      summary: Delete policy task
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      - name: taskId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: boolean
                    example: true
        '404':
          description: Not found
  /api/ams/policies/{strId}/tasks:
    get:
      summary: List policy tasks
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyTaskDetailSchema'
        '404':
          description: Not found
    post:
      summary: Create policy task
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsCreatePolicyTaskSchema'
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyTaskDetailSchema'
        '404':
          description: Not found
  /api/ams/policies/{strId}/team:
    get:
      summary: Get policy team
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyTeamMemberDetailSchema'
        '404':
          description: Not found
    patch:
      summary: Update policy team
      tags:
      - AMS - Policies
      parameters:
      - name: strId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsUpdatePolicyTeamSchema'
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PolicyTeamMemberDetailSchema'
        '404':
          description: Not found
  /api/ams/policies/bulk-update:
    patch:
      summary: Bulk update policies
      tags:
      - AMS - Policies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsBulkUpdatePoliciesBodySchema'
      responses:
        '200':
          description: Bulk update results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AmsBulkUpdateResponseSchema'
  /api/ams/policies/filter-options:
    post:
      summary: Get filter option values for the policy list
      tags:
      - AMS - Policies
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsPolicyFilterOptionsQuerySchema'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyFilterOptionsResponseSchema'
  /api/ams/policies/filters:
    get:
      summary: Get policy list filter metadata
      tags:
      - AMS - Policies
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AmsPolicyFilterMetadataSchema'
  /api/ams/policies:
    post:
      summary: Create a policy
      tags:
      - AMS - Policies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsCreatePolicySchema'
      responses:
        '200':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicyDetailResponseSchema'
  /api/ams/policies/list:
    post:
      summary: List policies with basic info
      tags:
      - AMS - Policies
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmsPolicyListQuerySchema'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyListResponseSchema'
  /api/ams/policies/summary:
    get:
      summary: Policy summary grouped by status
      tags:
      - AMS - Policies
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PolicySummaryResponseSchema'
components:
  schemas:
    AmsFilterNodeSchema:
      anyOf:
      - $ref: '#/components/schemas/AmsFilterConditionSchema'
      - type: object
        properties:
          and:
            type: array
            items:
              $ref: '#/components/schemas/AmsFilterNodeSchema'
            minItems: 1
        required:
        - and
      - type: object
        properties:
          or:
            type: array
            items:
              $ref: '#/components/schemas/AmsFilterNodeSchema'
            minItems: 1
        required:
        - or
      - type: object
        properties:
          not:
            $ref: '#/components/schemas/AmsFilterNodeSchema'
        required:
        - not
    PolicyTeamMemberDetailSchema:
      type: object
      properties:
        strId:
          type: string
        contactStrId:
          type: string
        role:
          type: string
        roleLabel:
          type:
          - string
          - 'null'
        isPrimary:
          type: boolean
        agentSplit:
          type:
          - number
          - 'null'
        contact:
          $ref: '#/components/schemas/PolicyTeamMemberContactSchema'
      required:
      - strId
      - contactStrId
      - role
      - roleLabel
      - isPrimary
      - agentSplit
      - contact
    PolicyCommissionPayoutByRoleSchema:
      type: object
      properties:
        role:
          type: string
        roleLabel:
          type:
          - string
          - 'null'
        amount:
          type: string
      required:
      - role
      - roleLabel
      - amount
    PolicyListItemSchema:
      type: object
      properties:
        strId:
          type: string
        policyId:
          type:
          - string
          - 'null'
        policyStatus:
          type:
          - string
          - 'null'
        caseStatus:
          type:
          - string
          - 'null'
        customerName:
          type:
          - string
          - 'null'
        customerType:
          type:
          - string
          - 'null'
        productName:
          type:
          - string
          - 'null'
        productType:
          type:
          - string
          - 'null'
        productSubType:
          type:
          - string
          - 'null'
        productOptionName:
          type:
          - string
          - 'null'
        writingCarrierName:
          type:
          - string
          - 'null'
        effectiveDate:
          type:
          - string
          - 'null'
        expirationDate:
          type:
          - string
          - 'null'
        signedDate:
          type:
          - string
          - 'null'
        policyDate:
          type:
          - string
          - 'null'
        cancellationDate:
          type:
          - string
          - 'null'
        reinstatementDate:
          type:
          - string
          - 'null'
        firstPaymentDate:
          type:
          - string
          - 'null'
        firstProcessedDate:
          type:
          - string
          - 'null'
        premiumAmount:
          type:
          - string
          - 'null'
        commissionableAmount:
          type:
          - string
          - 'null'
        excessAmount:
          type:
          - string
          - 'null'
        commissionsExpected:
          type:
          - string
          - 'null'
        customerPaidPremiumAmount:
          type:
          - string
          - 'null'
        splitPercentage:
          type:
          - string
          - 'null'
        paymentMode:
          type:
          - string
          - 'null'
        policyTermMonths:
          type:
          - integer
          - 'null'
        geoState:
          type:
          - string
          - 'null'
        notes:
          type:
          - string
          - 'null'
        dba:
          type:
          - string
          - 'null'
        internalId:
          type:
          - string
          - 'null'
        transactionType:
          type:
          - string
          - 'null'
        accountType:
          type:
          - string
          - 'null'
        groupId:
          type:
          - string
          - 'null'
        groupName:
          type:
          - string
          - 'null'
        aggregationId:
          type:
          - string
          - 'null'
        aggregationPrimary:
          type:
          - boolean
          - 'null'
        type:
          type:
          - string
          - 'null'
        tags:
          type: array
          items:
            type: string
        documentId:
          type:
          - string
          - 'null'
        processingStatus:
          type:
          - string
          - 'null'
        commissionProfileId:
          type:
          - string
          - 'null'
        syncId:
          type:
          - string
          - 'null'
        applicationDate:
          type:
          - string
          - 'null'
        issueDate:
          type:
          - string
          - 'null'
        issueAge:
          type:
          - integer
          - 'null'
        agentName:
          type:
          - string
          - 'null'
        createdAt:
          type: string
        updatedAt:
          type:
          - string
          - 'null'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/AmsCustomFieldValueSchema'
        receivables:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              party:
                type: string
              compensationType:
                type:
                - string
                - 'null'
              rate:
                type:
                - string
                - 'null'
              amount:
                type:
                - string
                - 'null'
              contactId:
                type:
                - string
                - 'null'
              contactName:
                type:
                - string
                - 'null'
              date:
                type:
                - string
                - 'null'
            required:
            - id
            - party
      required:
      - strId
      - policyId
      - policyStatus
      - caseStatus
      - customerName
      - customerType
      - productName
      - productType
      - productSubType
      - productOptionName
      - writingCarrierName
      - effectiveDate
      - expirationDate
      - signedDate
      - policyDate
      - cancellationDate
      - reinstatementDate
      - firstPaymentDate
      - firstProcessedDate
      - premiumAmount
      - commissionableAmount
      - excessAmount
      - commissionsExpected
      - customerPaidPremiumAmount
      - splitPercentage
      - paymentMode
      - policyTermMonths
      - geoState
      - notes
      - dba
      - internalId
      - transactionType
      - accountType
      - groupId
      - groupName
      - aggregationId
      - aggregationPrimary
      - type
      - tags
      - documentId
      - processingStatus
      - commissionProfileId
      - syncId
      - applicationDate
      - issueDate
      - issueAge
      - agentName
      - createdAt
      - updatedAt
      - customFields
      - receivables
    AmsFilterConditionSchema:
      type: object
      properties:
        field:
          type: string
          minLength: 1
        op:
          type: string
          enum:
          - eq
          - ne
          - in
          - gt
          - gte
          - lt
          - lte
          - contains
          - starts_with
          - ends_with
          - exists
          - is_empty
          - is_not_empty
        value:
          $ref: '#/components/schemas/AmsFilterValueSchema'
      required:
      - field
      - op
    AmsCustomFieldValueInputSchema:
      type: object
      properties:
        fieldDefinitionId:
          type: string
          minLength: 1
        valueText:
          type:
          - string
          - 'null'
        valueNumber:
          type:
          - number
          - 'null'
        valueBoolean:
          type:
          - boolean
          - 'null'
        valueDate:
          type:
          - string
          - 'null'
        valueJson:
          type:
          - string
          - 'null'
      required:
      - fieldDefinitionId
    AmsPolicyFilterOptionsQuerySchema:
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/AmsFilterNodeSchema'
        search:
          type: string
        fields:
          type: array
          items:
            type: string
          default: []
        optionSearch:
          type: object
          additionalProperties:
            type: string
          default: {}
        optionLimit:
          type: integer
          minimum: 1
          maximum: 500
          default: 100
      required:
      - fields
      - optionSearch
      - optionLimit
    PolicySummaryResponseSchema:
      type: object
      properties:
        total:
          type: integer
        byStatus:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
              label:
                type: string
              count:
                type: integer
            required:
            - status
            - label
            - count
      required:
      - total
      - byStatus
    AmsFinalizePolicyDocumentSchema:
      type: object
      properties:
        documentStrId:
          type: string
          minLength: 1
        fileSize:
          type: integer
          minimum: 0
        fileHash:
          type: string
      required:
      - documentStrId
    PolicyDocumentUploadTicketSchema:
      type: object
      properties:
        documentStrId:
          type: string
        signedPutUrl:
          type: string
        mimeType:
          type: string
      required:
      - documentStrId
      - signedPutUrl
      - mimeType
    PolicyCommissionDetailSchema:
      type: object
      properties:
        receivables:
          type: array
          items:
            $ref: '#/components/schemas/PolicyCommissionReceivableLineSchema'
        totalReceivedToDate:
          type: string
        payoutsByRole:
          type: array
          items:
            $ref: '#/components/schemas/PolicyCommissionPayoutByRoleSchema'
        statementCount:
          type: integer
        totalPaidOut:
          type: string
        netProfit:
          type: string
        marginPercentRate:
          type:
          - string
          - 'null'
      required:
      - receivables
      - totalReceivedToDate
      - payoutsByRole
      - statementCount
      - totalPaidOut
      - netProfit
      - marginPercentRate
    PolicyFilterOptionFieldSchema:
      type: object
      properties:
        field:
          type: string
        values:
          type: array
          items:
            $ref: '#/components/schemas/PolicyFilterOptionValueSchema'
        totalOptions:
          type: integer
      required:
      - field
      - values
      - totalOptions
    PolicyFilterOptionValueSchema:
      type: object
      properties:
        value:
          type: string
        label:
          type: string
        count:
          type: integer
      required:
      - value
      - label
      - count
    AmsPolicyTeamMemberSchema:
      type: object
      properties:
        contactStrId:
          type: string
          minLength: 1
        role:
          type: string
          minLength: 1
        roleLabel:
          type: string
        isPrimary:
          type: boolean
          default: false
        agentSplit:
          type:
          - number
          - 'null'
      required:
      - contactStrId
      - role
      - isPrimary
    PolicyListResponseSchema:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PolicyListItemSchema'
        pagination:
          $ref: '#/components/schemas/AmsPaginationSchema'
      required:
      - data
      - pagination
    AmsUpdatePolicyStatusSchema:
      type: object
      properties:
        status:
          type: string
          minLength: 1
      required:
      - status
    AmsPolicyDocumentStatusSchema:
      type: string
      enum:
      - pending
      - ready
    AmsPolicyFilterMetadataSchema:
      type: object
      properties:
        fields:
          type: array
          items:
            $ref: '#/components/schemas/AmsFilterFieldSchema'
      required:
      - fields
    AmsFilterValueSchema:
      anyOf:
      - anyOf:
        - type: string
        - type: number
        - type: boolean
        - type: 'null'
      - type: array
        items:
          anyOf:
          - type: string
          - type: number
          - type: boolean
        minItems: 1
    PolicyTeamMemberContactSchema:
      type: object
      properties:
        strId:
          type:
          - string
          - 'null'
        firstName:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
        email:
          type:
          - string
          - 'null'
        phone:
          type:
          - string
          - 'null'
        agentCode:
          type:
          - string
          - 'null'
        companyName:
          type:
          - string
          - 'null'
      required:
      - strId
      - firstName
      - lastName
      - name
      - email
      - phone
      - agentCode
      - companyName
    PolicyCustomerListItemSchema:
      type: object
      properties:
        strId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        companyName:
          type: string
        email:
          type: string
        phone:
          type: string
        type:
          type:
          - string
          - 'null'
        status:
          type: string
      required:
      - strId
      - type
    PolicyFilterOptionsResponseSchema:
      type: object
      properties:
        fields:
          type: array
          items:
            $ref: '#/components/schemas/PolicyFilterOptionFieldSchema'
        dateRanges:
          type: object
          additionalProperties:
            type: object
            properties:
              min:
                type: string
              max:
                type: string
        totalPolicies:
          type: integer
      required:
      - fields
      - dateRanges
      - totalPolicies
    AmsBulkUpdatePoliciesBodySchema:
      type: object
      properties:
        strIds:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
        data:
          $ref: '#/components/schemas/AmsBulkUpdatePolicyDataSchema'
      required:
      - strIds
      - data
    PolicyCaseManagerUpdateResponseSchema:
      type: object
      properties:
        strId:
          type: string
        caseManagerId:
          type: string
      required:
      - strId
    AmsCreatePolicyDocumentSchema:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        fileName:
          type: string
          minLength: 1
        mimeType:
          type: string
          minLength: 1
        fileSize:
          type: integer
          minimum: 0
        expiryDate:
          type: string
      required:
      - name
      - fileName
      - mimeType
    AmsFilterFieldSchema:
      typ

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fintary/refs/heads/main/openapi/fintary-ams-policies-api-openapi.yml