{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/argyle9a25/json-schema/argyle9a25-client-verification-create-request-schema.json",
  "title": "ClientVerificationCreateRequest",
  "description": "Request body for ordering a verification.\n\n- `user` and `report` are required for all requests.\n- `employments` is required for document verifications only.\n- `report.configuration` is used for banking verifications only.\n- `loan` and `billing` apply to regular payroll and mortgage verification workflows.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/argyle9a25-verifications-api-openapi.yml#/components/schemas/ClientVerificationCreateRequest",
  "type": "object",
  "properties": {
    "user": {
      "type": "string",
      "format": "uuid",
      "description": "User ID for the verification."
    },
    "employments": {
      "type": "array",
      "description": "List of employments for the user.\n\nRequired for document verifications only. Not used for payroll or banking verifications.",
      "items": {
        "$ref": "#/$defs/ClientVerificationEmploymentRequest"
      }
    },
    "report": {
      "$ref": "#/$defs/ClientVerificationCreateReportRequest"
    },
    "loan": {
      "$ref": "#/$defs/ClientVerificationLoanCreateRequest"
    },
    "billing": {
      "$ref": "#/$defs/ClientVerificationBilling"
    },
    "configuration": {
      "$ref": "#/$defs/ClientVerificationCreateConfiguration"
    }
  },
  "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."
        }
      }
    },
    "ClientVerificationCreateConfiguration": {
      "type": "object",
      "properties": {
        "notified_recipients": {
          "type": [
            "array",
            "null"
          ],
          "description": "Email addresses you want to receive notifications about the verification's progress. Must be a valid email address.\n\nIf omitted, no client notifications are sent.\n",
          "items": {
            "type": "string",
            "format": "email"
          }
        }
      }
    },
    "ClientVerificationCreateReportRequest": {
      "type": "object",
      "description": "Report request configuration.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "voie",
            "voe",
            "voie-government",
            "voa",
            "voi",
            "voai",
            "voe-transactions",
            "doc-voi-mortgage"
          ],
          "description": "The type of report to generate.\n\nPayroll:\n- `voie` - Verification of Income and Employment.\n- `voe` - Verification of Employment.\n- `voie-government` - Government income verification.\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."
        },
        "self_certification": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "For `voie-government` reports, controls whether the applicant reviews and confirms income details in Link.\n\nSet to `true` to enable applicant self-certification, or `false` to skip applicant certification. Defaults to `true` when omitted for `voie-government` reports. Requests that include this field for other report types return a `400` error.\n"
        },
        "configuration": {
          "allOf": [
            {
              "$ref": "#/$defs/ClientVerificationReportConfiguration"
            },
            {
              "description": "Optional banking report configurations."
            }
          ]
        }
      },
      "required": [
        "type"
      ]
    },
    "ClientVerificationEmployment": {
      "type": "object",
      "description": "Employment details for the user.",
      "properties": {
        "employer": {
          "type": "string",
          "description": "Name of the employer."
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "previous"
          ],
          "description": "User's current employment status at this employer."
        },
        "hire_date": {
          "type": "string",
          "format": "date",
          "description": "Employment start date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."
        },
        "termination_date": {
          "type": [
            "string",
            "null"
          ],
          "format": "date",
          "description": "Employment end date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. `null` when employment `status` is `active`."
        }
      }
    },
    "ClientVerificationEmploymentRequest": {
      "allOf": [
        {
          "$ref": "#/$defs/ClientVerificationEmployment"
        },
        {
          "type": "object",
          "required": [
            "employer",
            "status",
            "hire_date"
          ]
        }
      ]
    },
    "ClientVerificationLoanCreateRequest": {
      "allOf": [
        {
          "$ref": "#/$defs/ClientVerificationLoanMetadata"
        },
        {
          "type": "object",
          "properties": {
            "division": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                "wholesale",
                "retail"
              ],
              "default": "retail",
              "description": "Loan division. Defaults to `retail` when omitted or `null`. Cannot be changed after the verification is ordered."
            }
          }
        }
      ]
    },
    "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."
        }
      }
    },
    "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"
          }
        }
      }
    }
  }
}