{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/monerium/main/json-schema/monerium-personal-form-schema.json",
  "title": "PersonalForm",
  "description": "Personal form capturing occupation, profession, fund origins, and financial information for risk assessment.",
  "x-generated": "2026-10-27",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/monerium-openapi.yml#/components/schemas/PersonalForm",
  "type": "object",
  "properties": {
    "occupation": {
      "description": "The occupation code representing the individual's current employment status.",
      "type": "string",
      "enum": [
        "OCCUPATION_STUDENT",
        "OCCUPATION_EMPLOYED",
        "OCCUPATION_SELF_EMPLOYED",
        "OCCUPATION_UNEMPLOYED",
        "OCCUPATION_RETIRED"
      ]
    },
    "profession": {
      "description": "The profession code representing the individual's professional field.",
      "type": "string",
      "enum": [
        "PROFESSION_ACCOUNTANCY",
        "PROFESSION_ADMINISTRATIVE",
        "PROFESSION_AGRICULTURE",
        "PROFESSION_ARTS_ENTERTAINMENT_MEDIA",
        "PROFESSION_BROKER_DEALER",
        "PROFESSION_CATERING_HOSPITALITY_TOURISM",
        "PROFESSION_CHARITY",
        "PROFESSION_CONSTRUCTION_REAL_ESTATE",
        "PROFESSION_DEALER_HIGH_VALUE_GOODS",
        "PROFESSION_DEALER_PRECIOUS_METALS",
        "PROFESSION_EDUCATION",
        "PROFESSION_EMERGENCY_SERVICES",
        "PROFESSION_EXTRACTIVE_INDUSTRY",
        "PROFESSION_FINANCIAL_SERVICES_BANKING",
        "PROFESSION_FINANCIAL_SERVICES_INSURANCE",
        "PROFESSION_FINANCIAL_SERVICES_OTHER",
        "PROFESSION_FINANCIAL_SERVICES_PRIVATE_BANKING",
        "PROFESSION_GAMBLING",
        "PROFESSION_GOVERNMENT",
        "PROFESSION_HEALTH_CARE",
        "PROFESSION_INFORMATION_TECHNOLOGY",
        "PROFESSION_LEGAL",
        "PROFESSION_MANUFACTURING",
        "PROFESSION_MARKETING",
        "PROFESSION_MILITARY",
        "PROFESSION_MONEY_SERVICE_BUSINESS",
        "PROFESSION_PENSIONER",
        "PROFESSION_PUBLIC_PROCUREMENT",
        "PROFESSION_RETAIL_SALES"
      ]
    },
    "fundOrigin": {
      "description": "The code representing the origins of the individual's funds.",
      "type": "string",
      "enum": [
        "FUND_ORIGIN_SALARY",
        "FUND_ORIGIN_DIVIDENDS",
        "FUND_ORIGIN_INHERITANCE",
        "FUND_ORIGIN_SAVINGS",
        "FUND_ORIGIN_INVESTMENT",
        "FUND_ORIGIN_GIFT",
        "FUND_ORIGIN_MINING",
        "FUND_ORIGIN_REAL_ESTATE",
        "FUND_ORIGIN_LOAN"
      ]
    },
    "annualIncome": {
      "description": "The code representing the individual's annual income range.",
      "type": "string",
      "enum": [
        "ANNUAL_INCOME_UNDER_10K",
        "ANNUAL_INCOME_FROM_10K_TO_50K",
        "ANNUAL_INCOME_FROM_50K_TO_150K",
        "ANNUAL_INCOME_FROM_150K_TO_300K",
        "ANNUAL_INCOME_MORE_THAN_300K"
      ]
    },
    "monthlyTurnover": {
      "description": "The code representing the individual's monthly turnover range.",
      "type": "string",
      "enum": [
        "TURNOVER_UNDER_10K",
        "TURNOVER_10K_TO_50K",
        "TURNOVER_50K_TO_150K",
        "TURNOVER_150K_TO_500K",
        "TURNOVER_MORE_THAN_500K"
      ]
    },
    "monthlyTransactionCount": {
      "description": "The code representing the number of transactions the individual makes each month.",
      "type": "string",
      "enum": [
        "TRANSACTION_COUNT_UNDER_5",
        "TRANSACTION_COUNT_5_TO_50",
        "TRANSACTION_COUNT_50_TO_100",
        "TRANSACTION_COUNT_100_TO_200",
        "TRANSACTION_COUNT_MORE_THAN_200"
      ]
    },
    "activities": {
      "description": "List of codes representing the individual's financial activities.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "ACTIVITY_COMMERCE_SELLING",
          "ACTIVITY_COMMERCE_BUYING",
          "ACTIVITY_INVESTING_CRYPTO",
          "ACTIVITY_OTHER"
        ]
      }
    },
    "activityOther": {
      "description": "A description of the other activity if the code `ACTIVITY_OTHER` is chosen.",
      "type": "string"
    },
    "publicFunction": {
      "description": "Indicates whether the individual holds a politically exposed person (PEP) status.",
      "type": "boolean"
    },
    "fundOwner": {
      "description": "Indicates whether the individual is the owner of the funds.",
      "type": "boolean"
    },
    "usCitizen": {
      "description": "Indicates whether the individual is a United States citizen.",
      "type": "boolean"
    },
    "usTaxPerson": {
      "description": "Indicates whether the individual is subject to US tax obligations (e.g. holds a US tax identification number or is a US resident for tax purposes).",
      "type": "boolean"
    },
    "tin": {
      "description": "Tax Identification Number (TIN) assigned by the individual's tax authority. Format varies by country (e.g. SSN in the US, NI number in the UK).",
      "type": "string"
    },
    "taxResidenceCountry": {
      "description": "Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) for the tax residency.",
      "$ref": "#/$defs/CountryCode"
    }
  },
  "required": [
    "occupation",
    "profession",
    "fundOrigin",
    "annualIncome",
    "monthlyTurnover",
    "monthlyTransactionCount",
    "activities",
    "publicFunction",
    "fundOwner",
    "usCitizen",
    "usTaxPerson",
    "tin",
    "taxResidenceCountry"
  ],
  "$defs": {
    "CountryCode": {
      "description": "Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
      "type": "string",
      "maxLength": 2,
      "minLength": 2
    }
  }
}