{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/argyle9a25/json-schema/argyle9a25-client-verification-refresh-request-schema.json",
  "title": "ClientVerificationRefreshRequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/argyle9a25-verifications-api-openapi.yml#/components/schemas/ClientVerificationRefreshRequest",
  "type": "object",
  "properties": {
    "user": {
      "type": "string",
      "format": "uuid",
      "description": "User ID for the verification refresh."
    },
    "report": {
      "$ref": "#/$defs/ClientVerificationRefreshReportRequest"
    },
    "loan": {
      "$ref": "#/$defs/ClientVerificationLoanMetadata"
    },
    "billing": {
      "$ref": "#/$defs/ClientVerificationBilling"
    }
  },
  "required": [
    "user",
    "report"
  ],
  "$defs": {
    "ClientReportCustomField": {
      "type": "object",
      "description": "Custom field returned in report JSON as a pass-through value.",
      "properties": {
        "label": {
          "type": "string",
          "description": "Custom field name."
        },
        "value": {
          "type": "string",
          "description": "Custom field value."
        },
        "shown": {
          "type": "boolean",
          "description": "Show custom field on report PDF."
        }
      }
    },
    "ClientVerificationBilling": {
      "type": "object",
      "description": "Optional billing details for regular payroll and mortgage verification workflows.",
      "properties": {
        "cost_center": {
          "type": "string",
          "description": "Cost center identifier."
        }
      }
    },
    "ClientVerificationLoanMetadata": {
      "type": "object",
      "description": "Optional loan details for regular payroll and mortgage verification workflows.",
      "properties": {
        "number": {
          "type": "string",
          "description": "Loan number or identifier."
        },
        "borrower_id": {
          "type": "string",
          "description": "Borrower identifier."
        },
        "application_id": {
          "type": "string",
          "description": "Application identifier."
        },
        "officer_email": {
          "type": "string",
          "description": "Email of the loan officer requesting the verification."
        }
      }
    },
    "ClientVerificationRefreshReportRequest": {
      "type": "object",
      "description": "Report request configuration for refresh requests.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "voie",
            "voe",
            "voa",
            "voi",
            "voai",
            "voe-transactions",
            "doc-voi-mortgage"
          ],
          "description": "Payroll, banking, or Doc VOI report type to generate.\n\nPayroll:\n- `voie` - Verification of Income and Employment.\n- `voe` - Verification of Employment.\n\nBanking:\n- `voa` - Banking verification of assets.\n- `voi` - Banking verification of income.\n- `voai` - Banking verification of income and assets.\n- `voe-transactions` - Banking verification of employment.\n\nDocuments:\n- `doc-voi-mortgage` - Mortgage document-based verification of income, integrated with Freddie Mac's AIM Check."
        },
        "configuration": {
          "allOf": [
            {
              "$ref": "#/$defs/ClientVerificationReportConfiguration"
            },
            {
              "description": "Optional banking report configurations."
            }
          ]
        }
      },
      "required": [
        "type"
      ]
    },
    "ClientVerificationReportConfiguration": {
      "type": "object",
      "description": "Optional banking report configurations.",
      "properties": {
        "bank_accounts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of [bank account](/api-reference/bank-accounts) IDs to be included in the report."
        },
        "from_date": {
          "type": "string",
          "format": "date-time",
          "description": "Restrict report to data from on or after this datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)).\n\n- `VOAI` reports - controls the length of asset history\n- `VOA` reports - controls the length of asset history\n- `VOI` reports - controls the length of income history\n"
        },
        "income_from_date": {
          "type": "string",
          "format": "date-time",
          "description": "Restrict report to data from on or after this datetime ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)).\n\n- `VOAI` reports - controls the length of income history\n- Does not apply to `VOA` or `VOI` reports.\n"
        },
        "income_stream_confidence_minimum": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100,
          "description": "Limit income streams used in the report to those above this confidence value (`0-100` accepted).\n\nOnly available for `VOI` and `VOAI` report types.\n"
        },
        "report_custom_fields": {
          "type": "array",
          "maxItems": 5,
          "description": "Include up to `5` custom objects in the report metadata. Often used for identifying information.",
          "items": {
            "$ref": "#/$defs/ClientReportCustomField"
          }
        }
      }
    }
  }
}