{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/alpaca/json-schema/alpaca-account-extended-schema.json",
  "title": "AccountExtended",
  "description": "Represents an account with all data available. If your api response is missing some of these fields, there is a good chance you are using a route that returns `Account` instances instead of these.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/alpaca-us-broker-api-openapi.yml#/components/schemas/AccountExtended",
  "properties": {
    "account_name": {
      "type": "string"
    },
    "account_number": {
      "type": [
        "string",
        "null"
      ]
    },
    "account_sub_type": {
      "$ref": "#/$defs/AccountSubType"
    },
    "account_type": {
      "$ref": "#/$defs/AccountType"
    },
    "agreements": {
      "items": {
        "$ref": "#/$defs/Agreement"
      },
      "type": "array"
    },
    "allow_instant_ach": {
      "description": "Determines whether the account is enabled for Instant ACH by the partner.",
      "type": "boolean"
    },
    "beneficiaries": {
      "items": {
        "$ref": "#/$defs/Beneficiary"
      },
      "type": "array"
    },
    "cash_interest": {
      "$ref": "#/$defs/AccountCashInterestResponse"
    },
    "contact": {
      "$ref": "#/$defs/Contact"
    },
    "created_at": {
      "format": "date-time",
      "type": "string"
    },
    "crypto_status": {
      "$ref": "#/$defs/AccountStatus"
    },
    "currency": {
      "$ref": "#/$defs/Currency"
    },
    "custodial_account_type": {
      "$ref": "#/$defs/CustodialAccountType"
    },
    "disclosures": {
      "$ref": "#/$defs/Disclosures"
    },
    "documents": {
      "description": "The documents associated with the primary owner of the account",
      "items": {
        "$ref": "#/$defs/OwnerDocument"
      },
      "type": "array"
    },
    "drip": {
      "$ref": "#/$defs/AccountDRIPResponse"
    },
    "enabled_assets": {
      "items": {
        "$ref": "#/$defs/EnabledAssetClass"
      },
      "type": "array"
    },
    "fpsl": {
      "$ref": "#/$defs/AccountFPSLResponse"
    },
    "id": {
      "format": "uuid",
      "type": "string"
    },
    "identity": {
      "$ref": "#/$defs/Identity"
    },
    "instant_ach_blocked": {
      "description": "Indicates whether the account is blocked for Instant ACH by Alpaca. Defaults to false when the partner creates the account. If the partner has set allow_instant_ach to true but instant_ach_blocked is true, then the account is blocked for Instant ACH irrespective of the fact that the partner has it enabled.",
      "type": "boolean"
    },
    "investment_objective": {
      "description": "The user's investment objective. This field should be used instead of the deprecated `investment_objective` under identity.\n",
      "enum": [
        "generate_income",
        "preserve_wealth",
        "market_speculation",
        "growth",
        "balance_preserve_wealth_with_growth"
      ],
      "type": "string"
    },
    "investment_time_horizon": {
      "description": "The expected period of time the user plan to invest to achieve his/her financial goal(s). This field should be used instead of the deprecated `investment_time_horizon` under identity.\n",
      "enum": [
        "less_than_1_year",
        "1_to_2_years",
        "3_to_5_years",
        "6_to_10_years",
        "more_than_10_years"
      ],
      "type": "string"
    },
    "kyc_results": {
      "$ref": "#/$defs/KYCResults"
    },
    "last_equity": {
      "format": "decimal",
      "type": "string"
    },
    "liquidity_needs": {
      "description": "The user's ability to quickly and easily convert to cash all or a portion of the investments in this account without experiencing significant loss in value. This field should be used instead of the deprecated `liquidity_needs` under identity.\n",
      "enum": [
        "very_important",
        "important",
        "somewhat_important",
        "does_not_matter"
      ],
      "type": "string"
    },
    "minor_identity": {
      "$ref": "#/$defs/CustodialAccountMinorIdentity"
    },
    "primary_account_holder_id": {
      "description": "UUID of the account's primary holder when available; otherwise `null`.",
      "format": "uuid",
      "type": [
        "string",
        "null"
      ]
    },
    "risk_tolerance": {
      "description": "The user's investment risk tolerance. This field should be used instead of the deprecated `risk_tolerance` under identity.\n",
      "enum": [
        "conservative",
        "moderate",
        "significant_risk"
      ],
      "type": "string"
    },
    "status": {
      "$ref": "#/$defs/AccountStatus"
    },
    "trading_configurations": {
      "$ref": "#/$defs/AccountConfigurations"
    },
    "trusted_contact": {
      "$ref": "#/$defs/TrustedContact"
    },
    "usd": {
      "description": "values in USD. This is returned for LCT (non-USD) accounts only.",
      "properties": {
        "last_equity": {
          "format": "decimal",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "required": [
    "id",
    "account_number",
    "status",
    "currency",
    "last_equity",
    "created_at",
    "account_type"
  ],
  "type": "object",
  "$defs": {
    "AccountCashInterestProgram": {
      "properties": {
        "apr_tier_name": {
          "description": "The unique name of the APR tier for a specific program",
          "type": "string"
        },
        "status": {
          "description": "The status of the account within a cash interest program. One of:\n- **ACTIVE**\nThe account is enrolled and eligible for idle cash to be swept at the end of day (EOD).\n- **INACTIVE**\nThe account is not enrolled due to it either not being eligible (e.g. the updated Alpaca Customer Agreement has not been signed), an APR tier needs to be assigned, or they have been unenrolled.\n- **PENDING_CHANGE**\nAn enrollment, APR Tier change, or unenrollment is in progress\n",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AccountCashInterestResponse": {
      "description": "The configuration and status of the account's USD cash interest program\n",
      "properties": {
        "USD": {
          "$ref": "#/$defs/AccountCashInterestProgram"
        }
      },
      "type": "object"
    },
    "AccountConfigurations": {
      "description": "Represents additional configuration settings for an account",
      "properties": {
        "disable_overnight_trading": {
          "description": "If true, overnight trading is disabled.",
          "type": "boolean"
        },
        "fractional_trading": {
          "description": "If true, account is able to participate in fractional trading",
          "type": "boolean"
        },
        "max_margin_multiplier": {
          "description": "Can be \"1\" or \"2\"",
          "type": "string"
        },
        "max_options_trading_level": {
          "description": "The desired maximum options trading level. 0=disabled, 1=Covered Call/Cash-Secured Put, 2=Long Call/Put, 3=Spreads/Straddles.",
          "enum": [
            0,
            1,
            2,
            3
          ],
          "type": "integer"
        },
        "no_shorting": {
          "description": "If true, account becomes long-only mode.",
          "type": "boolean"
        },
        "ptp_no_exception_entry": {
          "description": "If set to true then Alpaca will accept orders for PTP symbols with no exception. Default is false.",
          "type": "boolean"
        },
        "suspend_trade": {
          "description": "If true, new orders are blocked.",
          "type": "boolean"
        },
        "trade_confirm_email": {
          "description": "all or none. If none, emails for order fills are not sent.",
          "enum": [
            "all",
            "none"
          ],
          "type": "string"
        }
      },
      "title": "AccountConfigurations",
      "type": "object"
    },
    "AccountDRIPResponse": {
      "description": "This feature is available in sandbox for beta partners only.\n\nThe account's dividend reinvestment (DRIP) setting.\nThis field is returned only when DRIP was turned on for the account at least once.\n",
      "properties": {
        "equities_dividend_reinvestments": {
          "description": "If true, Alpaca reinvests eligible cash dividends on US equities in the same security.",
          "type": "boolean"
        }
      },
      "required": [
        "equities_dividend_reinvestments"
      ],
      "type": "object"
    },
    "AccountFPSLItem": {
      "properties": {
        "status": {
          "description": "The status of the account for this FPSL market. One of:\n- **ACTIVE**\nThe account is successfully enrolled for FPSL for this market.\n- **INACTIVE**\nThe account is not enrolled for FPSL for this market due to it either not being eligible, an FPSL tier has not been assigned, or it has been unenrolled.\n",
          "type": "string"
        },
        "tier_id": {
          "description": "The id of the FPSL tier for this market",
          "format": "uuid",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AccountFPSLResponse": {
      "description": "The account's Fully Paid Securities Lending (FPSL) configuration.\nThis is only returned for accounts that have FPSL enabled.\n",
      "properties": {
        "US": {
          "$ref": "#/$defs/AccountFPSLItem"
        }
      },
      "type": "object"
    },
    "AccountStatus": {
      "description": "Designates the current status of this account\n\nPossible Values:\n- **INACTIVE**\nAccount not set to trade given asset.\n- **PAPER_ONLY**\nThe account is limited to paper trading.\n- **ONBOARDING**\nAn application is expected for this user, but has not been submitted yet.\n- **SUBMITTED**\nThe application has been submitted and is being processed.\n- **SUBMISSION_FAILED**\nUsed to display if failure on submission\n- **ACTION_REQUIRED**\nThe application requires manual action.\n- **ACCOUNT_UPDATED**\nUsed to display when Account has been modified by user\n- **APPROVAL_PENDING**\nInitial value. The application approval process is in progress.\n- **APPROVED**\nThe account application has been approved, and waiting to be ACTIVE\n- **REJECTED**\nThe account application is rejected for some reason\n- **ACTIVE**\nThe account is fully active. Trading and funding are processed under this status.\n- **ACCOUNT_CLOSED**\nThe account is closed.\n",
      "enum": [
        "INACTIVE",
        "PAPER_ONLY",
        "ONBOARDING",
        "SUBMITTED",
        "SUBMISSION_FAILED",
        "ACTION_REQUIRED",
        "ACCOUNT_UPDATED",
        "APPROVAL_PENDING",
        "APPROVED",
        "REJECTED",
        "ACTIVE",
        "ACCOUNT_CLOSED"
      ],
      "type": "string"
    },
    "AccountSubType": {
      "description": "IRA Account only\n\nPossible values are:\n\n- traditional\n- roth",
      "enum": [
        "traditional",
        "roth"
      ],
      "title": "AccountSubType",
      "type": "string"
    },
    "AccountType": {
      "description": "The account type returned for the account.",
      "enum": [
        "trading",
        "custodial",
        "donor_advised",
        "ira",
        "trust",
        "omnibus_non_disclosed",
        "omnibus_sub",
        "hsa",
        "joint"
      ],
      "title": "AccountType",
      "type": "string"
    },
    "Agreement": {
      "properties": {
        "agreement": {
          "$ref": "#/$defs/AgreementType"
        },
        "ip_address": {
          "description": "The ip_address the signed agreements were sent from by the user.",
          "format": "ipv4",
          "type": "string"
        },
        "revision": {
          "description": "The agreement revision.\nThe format is XX.YYYY.MM where XX is an incrementing revision number, YYYY is the year and MM is the month.\nIf the revision is not specified in a POST or PATCH request, the active revision will be used, which will align with the [Alpaca Documents Library](https://alpaca.markets/disclosures).\n",
          "type": "string"
        },
        "signed_at": {
          "description": "The timestamp the agreement was signed.",
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "agreement",
        "signed_at",
        "ip_address"
      ],
      "type": "object"
    },
    "AgreementType": {
      "description": "- margin_agreement: Alpaca Margin Agreement\n- account_agreement: Alpaca Account Agreement\n- customer_agreement: Alpaca Customer Agreement\n- crypto_agreement: Alpaca Crypto agreement\n- options_agreement: Alpaca Option agreement\n- custodial_customer_agreement: Alpaca Custodial Customer agreement\n",
      "enum": [
        "margin_agreement",
        "account_agreement",
        "customer_agreement",
        "crypto_agreement",
        "options_agreement"
      ],
      "title": "AgreementType",
      "type": "string"
    },
    "Beneficiary": {
      "description": "Beneficiary of an IRA account. The same shape is used on account create, account update, and account responses.\n",
      "properties": {
        "date_of_birth": {
          "description": "Date of birth in YYYY-MM-DD format. It cannot be in the future.",
          "format": "date",
          "type": "string"
        },
        "family_name": {
          "description": "Beneficiary family name.",
          "minLength": 1,
          "type": "string"
        },
        "given_name": {
          "description": "Beneficiary given name.",
          "minLength": 1,
          "type": "string"
        },
        "middle_name": {
          "description": "Beneficiary middle name. Omit this field or send null when the beneficiary has no middle name. An empty string is rejected. Account responses always include the field and use null when it is unset.\n",
          "minLength": 1,
          "type": [
            "string",
            "null"
          ]
        },
        "relationship": {
          "description": "Relationship of the beneficiary to the account holder.",
          "enum": [
            "spouse",
            "other"
          ],
          "type": "string"
        },
        "share_pct": {
          "description": "Share of the account allocated to this beneficiary, as a decimal string. The value must be greater than 0 and at most 100, with at most two decimal places.\n",
          "format": "decimal",
          "type": "string"
        },
        "tax_id": {
          "description": "Beneficiary tax identifier. Create and update requests require a USA SSN. Account responses always return the masked value `xxx-xx-xxxx`.\n",
          "minLength": 1,
          "type": "string"
        },
        "tax_id_type": {
          "description": "Tax identifier type.",
          "enum": [
            "USA_SSN"
          ],
          "type": "string"
        },
        "type": {
          "description": "Whether this beneficiary is primary or contingent. An account with beneficiaries needs at least one primary beneficiary. The `share_pct` values of all primary beneficiaries must add up to 100, and the `share_pct` values of all contingent beneficiaries, if any, must also add up to 100.\n",
          "enum": [
            "primary",
            "contingent"
          ],
          "type": "string"
        }
      },
      "required": [
        "given_name",
        "family_name",
        "date_of_birth",
        "tax_id",
        "tax_id_type",
        "relationship",
        "type",
        "share_pct"
      ],
      "type": "object"
    },
    "Contact": {
      "description": "Contact is the model for the account owner contact information.\n",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "description": "country code in ISO 3166-1 alpha-3 format, representing the country the person/entity resides in.",
          "type": "string"
        },
        "email_address": {
          "format": "email",
          "type": "string"
        },
        "phone_number": {
          "description": "Phone number should include the country code, format: \"+15555555555\"",
          "type": [
            "string",
            "null"
          ]
        },
        "postal_code": {
          "type": "string"
        },
        "state": {
          "description": "Required if the country or country_of_tax_residence (in the identity model below) is 'USA'.",
          "type": "string"
        },
        "street_address": {
          "description": "The user's street address. If multiple lines in address, pass in as additional array elements. Maximum of 3 objects in array",
          "items": {
            "$ref": "#/$defs/StreetAddress"
          },
          "type": "array"
        },
        "unit": {
          "description": "The specific apartment number if applicable",
          "type": "string"
        }
      },
      "required": [
        "email_address",
        "street_address",
        "city"
      ],
      "type": "object"
    },
    "Currency": {
      "description": "\"USD\" // US Dollar\n\"JPY\" // Japanese Yen\n\"EUR\" // Euro\n\"CAD\" // Canadian Dollar\n\"GBP\" // British Pound Sterling\n\"CHF\" // Swiss Franc\n\"TRY\" // Turkish Lira\n\"AUD\" // Australian Dollar\n\"CZK\" // Czech Koruna\n\"SEK\" // Swedish Krona\n\"DKK\" // Danish Krone\n\"SGD\" // Singapore Dollar\n\"HKD\" // Hong Kong Dollar\n\"HUF\" // Hungarian Forint\n\"NZD\" // New Zealand Dollar\n\"NOK\" // Norwegian Krone\n\"PLN\" // Poland Złoty",
      "title": "Currency",
      "type": "string"
    },
    "CustodialAccountMinorIdentity": {
      "description": "Represents Identity information for a minor that an account of type \"custodial\" is for",
      "properties": {
        "country_of_birth": {
          "type": "string"
        },
        "country_of_citizenship": {
          "type": "string"
        },
        "country_of_tax_residence": {
          "type": "string"
        },
        "date_of_birth": {
          "format": "date",
          "type": "string"
        },
        "email": {
          "format": "email",
          "type": "string"
        },
        "family_name": {
          "type": "string"
        },
        "given_name": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "tax_id": {
          "type": "string"
        },
        "tax_id_type": {
          "$ref": "#/$defs/TaxIdType"
        }
      },
      "required": [
        "given_name",
        "family_name",
        "date_of_birth",
        "tax_id_type",
        "country_of_tax_residence",
        "state",
        "email"
      ],
      "type": "object"
    },
    "CustodialAccountType": {
      "description": "Represents the type of custodial account based on the state where the beneficiary resides.\nThis value is returned only when the `country_of_tax_residence` is `USA`. For other countries, this property is not included in the response.\n\n**Possible Return Values**\n\n`CustodianTypeUTMA` - Indicates that the custodial account is governed by the Uniform Transfers to Minors Act.\n`CustodianTypeUGMA` - Indicates that the custodial account is governed by the Uniform Gifts to Minors Act.",
      "title": "CustodialAccountType",
      "type": "string"
    },
    "DisclosureContextAnnotation": {
      "properties": {
        "company_city": {
          "description": "Required for FINRA affiliations and controlled firms.",
          "type": "string"
        },
        "company_compliance_email": {
          "description": "Required for FINRA affiliations and controlled firms.",
          "type": "string"
        },
        "company_country": {
          "description": "Required for FINRA affiliations and controlled firms.",
          "type": "string"
        },
        "company_name": {
          "description": "Required for FINRA affiliations and controlled firms.",
          "type": "string"
        },
        "company_state": {
          "description": "Required if and only if `company_country` is `USA`.",
          "type": "string"
        },
        "company_street_address": {
          "description": "Required for FINRA affiliations and controlled firms.",
          "type": "string"
        },
        "context_type": {
          "description": "Specifies the type of disclosure annotation. Valid types are FINRA affiliations, for users affiliated with or employed by a FINRA member firm, a Stock Exchange Member, FINRA, Registered Investment Advisor, or a Municipal Securities Broker/Dealer; Company control relationships, for senior executives, and 10% or greater shareholders, of a publicly traded company; and immediate family members of politically exposed individuals.",
          "enum": [
            "CONTROLLED_FIRM",
            "IMMEDIATE_FAMILY_EXPOSED",
            "AFFILIATE_FIRM"
          ],
          "type": "string"
        },
        "family_name": {
          "description": "Required for immediate family members of politically exposed persons.",
          "type": "string"
        },
        "given_name": {
          "description": "Required for immediate family members of politically exposed persons.",
          "type": "string"
        }
      },
      "required": [
        "context_type"
      ],
      "title": "DisclosureContextAnnotation",
      "type": "object"
    },
    "Disclosures": {
      "description": "Disclosures fields denote if the account owner falls under\neach category defined by FINRA rule. The client has to ask\nquestions for the end user and the values should reflect\ntheir answers.\nIf one of the answers is true (yes), the account goes into\nACTION_REQUIRED status.\n",
      "properties": {
        "context": {
          "description": "Array of annotations describing the rationale for marking `is_control_person`, `is_affiliated_exchange_or_finra`, and/or `immediate_family_exposed` as true",
          "items": {
            "$ref": "#/$defs/DisclosureContextAnnotation"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "employer_address": {
          "description": "The employer's address if the user is employed.",
          "type": "string"
        },
        "employer_name": {
          "description": "The name of the employer if the user is employed.",
          "type": "string"
        },
        "employment_position": {
          "description": "The user's position if they are employed.",
          "type": "string"
        },
        "employment_sector": {
          "description": "The industry sector of employment.\nIf the `employment_status` is `unemployed` or `student`, set this property to `not_employed`.\nIf the `employment_status` is `retired`, set this to `self_employed`.\n",
          "enum": [
            "agriculture",
            "business_management",
            "computers_and_it",
            "construction",
            "education",
            "finance",
            "government",
            "healthcare",
            "hospitality",
            "manufacturing",
            "marketing",
            "media",
            "other",
            "science",
            "self_employed",
            "transportation",
            "not_employed"
          ],
          "type": "string"
        },
        "employment_status": {
          "description": "One of the following: `employed`, `unemployed`, `retired`, or `student`.",
          "enum": [
            "unemployed",
            "employed",
            "student",
            "retired"
          ],
          "type": "string"
        },
        "immediate_family_exposed": {
          "description": "If your user's immediate family member (sibling, husband/wife, child, parent) is either politically exposed or holds a control position.",
          "type": "boolean"
        },
        "is_affiliated_exchange_or_finra": {
          "description": "Whether user is affiliated with any exchanges or FINRA.",
          "type": "boolean"
        },
        "is_control_person": {
          "description": "Whether user holds a controlling position in a publicly traded company, member of the board of directors or has policy making abilities in a publicly traded company.",
          "type": "boolean"
        },
        "is_politically_exposed": {
          "description": "Whether the user is politically exposed.",
          "type": "boolean"
        }
      },
      "required": [
        "is_control_person",
        "is_affiliated_exchange_or_finra",
        "is_politically_exposed",
        "immediate_family_exposed"
      ],
      "type": "object"
    },
    "EnabledAssetClass": {
      "description": "An asset class that can be enabled on a brokerage account, i.e. a value that may appear in an account's `enabled_assets`. This differs from `AssetClass` (which also covers order and asset metadata) by excluding `ipo`, which is not an enable-able asset.",
      "enum": [
        "us_equity",
        "us_option",
        "crypto"
      ],
      "type": "string"
    },
    "Identity": {
      "description": "Identity is the model to provide account owner's identity information.\n",
      "properties": {
        "annual_income_max": {
          "description": "The upper bound of the user's annual income.",
          "format": "decimal",
          "type": "string"
        },
        "annual_income_min": {
          "description": "The lower bound of the user's annual income.",
          "format": "decimal",
          "type": "string"
        },
        "country_of_birth": {
          "description": "[ISO 3166-1 alpha-3](https://www.iso.org/iso-3166-country-codes.html).\n",
          "type": "string"
        },
        "country_of_citizenship": {
          "description": "[ISO 3166-1 alpha-3](https://www.iso.org/iso-3166-country-codes.html).\n",
          "type": "string"
        },
        "country_of_tax_residence": {
          "description": "[ISO 3166-1 alpha-3](https://www.iso.org/iso-3166-country-codes.html).\n",
          "type": "string"
        },
        "date_of_birth": {
          "description": "The date of birth in \"YYYY-MM-DD\" format.",
          "format": "date",
          "type": "string"
        },
        "date_of_departure_from_usa": {
          "description": "Required if `visa_type` = B1 or B2",
          "format": "date",
          "type": "string"
        },
        "family_name": {
          "description": "The last name (surname) of the user.",
          "type": "string"
        },
        "funding_source": {
          "description": "Can be one or more of the following: `employment_income`, `investments`, `inheritance`, `business_income`, `savings`, `family`.",
          "items": {
            "enum": [
              "employment_income",
              "investments",
              "inheritance",
              "business_income",
              "savings",
              "family"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "given_name": {
          "description": "The first/given name of the user.",
          "type": "string"
        },
        "investment_experience_with_options": {
          "description": "The user's level of expertise and familiarity with investing in Options.\n",
          "enum": [
            "none",
            "1_to_5_years",
            "over_5_years"
          ],
          "type": "string"
        },
        "investment_experience_with_stocks": {
          "description": "The user's level of expertise and familiarity with investing in US Equities.\n",
          "enum": [
            "none",
            "1_to_5_years",
            "over_5_years"
          ],
          "type": "string"
        },
        "investment_objective": {
          "deprecated": true,
          "description": "The user's investment objective. This field is deprecated. Please use the top level `investment_objective` field.\n",
          "enum": [
            "generate_income",
            "preserve_wealth",
            "market_speculation",
            "growth",
            "balance_preserve_wealth_with_growth"
          ],
          "type": "string"
        },
        "investment_time_horizon": {
          "deprecated": true,
          "description": "The expected period of time the user plan to invest to achieve his/her financial goal(s). This field is deprecated. Please use the top level `investment_time_horizon` field.\n",
          "enum": [
            "less_than_1_year",
            "1_to_2_years",
            "3_to_5_years",
            "6_to_10_years",
            "more_than_10_years"
          ],
          "type": "string"
        },
        "liquid_net_worth_max": {
          "description": "The upper bound of the user's liquid net worth.",
          "format": "decimal",
          "type": "string"
        },
        "liquid_net_worth_min": {
          "description": "The lower bound of the user's liquid net worth.",
          "format": "decimal",
          "type": "string"
        },
        "liquidity_needs": {
          "deprecated": true,
          "description": "The user's ability to quickly and easily convert all or part of their investments in this account to cash without significant loss in value. This field is deprecated. Please use the top level `liquidity_needs` field.\n",
          "enum": [
            "very_important",
            "important",
            "somewhat_important",
            "does_not_matter"
          ],
          "type": "string"
        },
        "marital_status": {
          "description": "The marital status of the user.\n",
          "enum": [
            "SINGLE",
            "MARRIED",
            "DIVORCED",
            "WIDOWED"
          ],
          "type": "string"
        },
        "middle_name": {
          "description": "The middle name of the user.",
          "type": "string"
        },
        "number_of_dependents": {
          "description": "The number of dependents the user has.\n",
          "type": "integer"
        },
        "permanent_resident": {
          "description": "Only used to collect permanent residence status in the USA.",
          "type": "boolean"
        },
        "risk_tolerance": {
          "deprecated": true,
          "description": "The user's investment risk tolerance. This field is deprecated. Please use the top level `risk_tolerance` field.\n",
          "enum": [
            "conservative",
            "moderate",
            "significant_risk"
          ],
          "type": "string"
        },
        "tax_id": {
          "description": "If this is provided, `tax_id_type` is required.",
          "type": "string"
        },
        "tax_id_type": {
          "description": "Required on write when `tax_id` is set. May be `null` on read when unset or for sparse identity on OmniSub / omnibus-non-disclosed accounts.",
          "oneOf": [
            {
              "$ref": "#/$defs/TaxIdType"
            },
            {
              "type": "null"
            }
          ]
        },
        "total_net_worth_max": {
          "description": "The upper bound of the user's total net worth.",
          "format": "decimal",
          "type": "string"
        },
        "total_net_worth_min": {
          "description": "The lower bound of the user's total net worth.",
          "format": "decimal",
          "type": "string"
        },
        "visa_expiration_date": {
          "description": "Required if `visa_type` is set.",
          "format": "date",
          "type": "string"
        },
        "visa_type": {
          "description": "Only used to collect visa types for users residing in the USA.",
          "type": "string"
        }
      },
      "required": [
        "given_name",
        "family_name",
        "date_of_birth",
        "country_of_tax_residence",
        "funding_source"
      ],
      "type": "object"
    },
    "KYCResultType": {
      "description": "A KYC reason identifier used as a property name in `KYCResultTypeSet`. The set is extensible, so integrations must tolerate and preserve unrecognized values.",
      "title": "KYCResultType",
      "type": "string"
    },
    "KYCResultTypeSet": {
      "additionalProperties": {
        "maxProperties": 0,
        "type": "object"
      },
      "description": "A nullable set of KYC reason identifiers represented as property names with empty object values. See `KYCResults` for documented identifiers and interpretation guidance.",
      "propertyNames": {
        "$ref": "#/$defs/KYCResultType"
      },
      "title": "KYCResultTypeSet",
      "type": [
        "object",
        "null"
      ]
    },
    "KYCResults": {
      "description": "Holds information about the result of KYC.\n\n`accept`, `indeterminate`, and `reject` are nullable sets represented as objects. Each property name is a KYC reason identifier, and every property value is always an empty object (`{}`) carrying no nested data. For example:\n\n```json\n{\n  \"IDENTITY_VERIFICATION\": {},\n  \"WATCHLIST_HIT\": {}\n}\n```\n\nInterpret each reason together with its enclosing result category and `additional_information`.\n\nDocumented reason identifiers:\n- `IDENTITY_VERIFICATION`: A government-issued identity document is required to verify the account owner's identity.\n- `TAX_IDENTIFICATION`: A tax identification document is required to verify the account owner's tax identification number.\n- `ADDRESS_VERIFICATION`: Additional documentation, such as a government-issued ID or statement, may be required to verify the account owner's residential address.\n- `DATE_OF_BIRTH`: A government-issued identity document is required to verify the account owner's date of birth.\n- `SELFIE_VERIFICATION`: A live selfie of the account owner is required to verify identity.\n- `PEP`: The account owner disclosed politically exposed person status, and additional information may be required.\n- `FAMILY_MEMBER_PEP`: The account owner disclosed that an immediate family member is politically exposed, and additional information may be required.\n- `CONTROL_PERSON`: Additional company information may be required because the account owner disclosed a control position.\n- `AFFILIATED`: Additional firm information may be required because the account owner disclosed an affiliation with FINRA or an exchange.\n- `VISA_TYPE_OTHER`: The account owner's visa type and expiration date may be required because the submitted visa type was \"other.\"\n- `W8BEN_CORRECTION`: A new W-8BEN with corrected identifying information is required.\n- `COUNTRY_NOT_SUPPORTED`: The account owner's country of tax residence or legal residence is not supported for this account.\n- `WATCHLIST_HIT`: Watchlist screening returned a result that requires further review; no action is needed from the account owner unless separately requested.\n- `OTHER`: See `additional_information` for a custom message describing what is required from the account owner.\n- `OTHER_PARTNER`: See `additional_information` for a custom message intended for the Broker API partner.\n- `CITIZENSHIP_COUNTRY_NOT_SUPPORTED`: The account owner's country of citizenship is not supported for this account.\n- `DIFFERING_COUNTRY`: A submitted identity document was issued by a country different from the account owner's country of tax residence.\n- `WL_PEP_SCREENING`: Watchlist screening returned a result related to possible political exposure.\n- `WL_LEGAL_REGULATORY_WARNING`: Watchlist screening returned a legal or regulatory warning result.\n- `UNDER_MINIMUM_AGE`: The account owner does not meet the minimum age requirement for this account.\n- `PEP_FOREIGN`: The account owner disclosed foreign politically exposed person status, and additional information may be required.\n- `FAMILY_MEMBER_PEP_FOREIGN`: The account owner disclosed that an immediate family member has foreign politically exposed person status, and additional information may be required.\n- `DISCRETIONARY`: The account is designated for discretionary trading by a registered investment adviser and requires review.\n- `HIO`: Additional information and a declaration form may be required because the account owner disclosed being the head of an international organization.\n- `INTERNAL_CHECK`: A non-specific account-opening check contributed to the KYC outcome; no more specific reason is available.\n- `compromised_document`: The identity document check indicated that the document may be compromised.\n- `data_comparison`: Data extracted from the identity document did not pass comparison checks and requires review.\n- `image_integrity`: A document or selfie image did not pass image-integrity checks and requires review.\n\nThe set of reason identifiers is extensible, so integrations must tolerate and preserve unrecognized values.\n",
      "properties": {
        "accept": {
          "$ref": "#/$defs/KYCResultTypeSet"
        },
        "additional_information": {
          "description": "Used to display a custom message.",
          "type": "string"
        },
        "indeterminate": {
          "$ref": "#/$defs/KYCResultTypeSet"
        },
        "reject": {
          "$ref": "#/$defs/KYCResultTypeSet"
        },
        "summary": {
          "description": "Either `pass` or `fail`. Used to indicate if KYC has completed and passed or not. This field is used for internal purposes only.",
          "type": "string"
        }
      },
      "type": [
        "object",
        "null"
      ]
    },
    "OwnerDocument": {
      "description": "A document associated with an owner of the account",
      "properties": {
        "created_at": {
          "format": "date-time",
          "type": "string"
        },
        "document_sub_type": {
          "description": "The sub-type of the document. This is a free-form property.",
          "type": "string"
        },
        "document_type": {
          "$ref": "#/$defs/OwnerDocumentType"
        },
        "id": {
          "format": "uuid",
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "document_type",
        "created_at"
      ],
      "type": "object"
    },
    "OwnerDocumentType": {
      "description": "The type of the owner document",
      "enum": [
        "account_approval_letter",
        "address_verification",
        "cip_result",
        "company_formation",
        "date_of_birth_verification",
        "entity_operating_document",
        "entity_registration",
        "hio_declaration_form",
        "identity_verification",
        "limited_trading_authorization",
        "pep_declaration_form",
        "tax_id_verification",
        "w8ben",
        "w9"
      ],
      "type": "string"
    },
    "StreetAddress": {
      "type": "string"
    },
    "TaxIdType": {
      "description": "An Enum of the various kinds of Tax ID formats Alpaca supports.\n\nPossible Values are:\n\n\n- **USA_SSN**\nUSA Social Security Number\n\n- **USA_ITIN**\nUSA Individual Taxpayer Identification Number\n\n- **ARG_AR_CUIT**\nArgentina CUIT\n\n- **AUS_TFN**\nAustralian Tax File Number\n\n- **AUS_ABN**\nAustralian Business Number\n\n- **BOL_NIT**\nBolivia NIT\n\n- **BRA_CPF**\nBrazil CPF\n\n- **CHL_RUT**\nChile RUT\n\n- **COL_NIT**\nColombia NIT\n\n- **CRI_NITE**\nCosta Rica NITE\n\n- **DEU_TAX_ID**\nGermany Tax ID (Identifikationsnummer)\n\n- **DOM_RNC**\nDominican Republic RNC\n\n- **ECU_RUC**\nEcuador RUC\n\n- **FRA_SPI**\nFrance SPI (Reference Tax Number)\n\n- **GBR_UTR**\nUK UTR (Unique Taxpayer Reference)\n\n- **GBR_NINO**\nUK NINO (National Insurance Number)\n\n- **GTM_NIT**\nGuatemala NIT\n\n- **HND_RTN**\nHonduras RTN\n\n- **HUN_TIN**\nHungary TIN Number\n\n- **IDN_KTP**\nIndonesia KTP\n\n- **IND_PAN**\nIndia PAN Number\n\n- **ISR_TAX_ID**\nIsrael Tax ID (Teudat Zehut)\n\n- **ITA_TAX_ID**\nItaly Tax ID (Codice Fiscale)\n\n- **JPN_TAX_ID**\nJapan Tax ID (Kojin Bango)\n\n- **MEX_RFC**\nMexico RFC\n\n- **NIC_RUC**\nNicaragua RUC\n\n- **NLD_TIN**\nNetherlands TIN Number\n\n- **PAN_RUC**\nPanama RUC\n\n- **PER_RUC**\nPeru RUC\n\n- **PRY_RUC**\nParaguay RUC\n\n- **SGP_NRIC**\nSingapore NRIC\n\n- **SGP_FIN**\nSingapore FIN\n\n- **SGP_ASGD**\nSingapore ASGD\n\n- **SGP_ITR**\nSingapore ITR\n\n- **SLV_NIT**\nEl Salvador NIT\n\n- **SWE_TAX_ID**\nSweden Tax ID (Personnummer)\n\n- **URY_RUT**\nUruguay RUT\n\n- **VEN_RIF**\nVenezuela RIF\n\n- **NATIONAL_ID**\nNational ID number, if a tax ID number is not available\n\n- **PASSPORT**\nPassport number, if a tax ID number is not available\n\n- **PERMANENT_RESIDENT**\nPermanent resident number, if a tax ID number is not available\n\n- **DRIVER_LICENSE**\nDriver's license number, if a tax ID number is not available\n\n- **OTHER_GOV_ID**\nOther government issued identifier, if a tax ID number is not available\n\n- **NOT_SPECIFIED**\nOther Tax IDs",
      "enum": [
        "USA_SSN",
        "USA_ITIN",
        "ARG_AG_CUIT",
        "AUS_TFN",
        "AUS_ABN",
        "BOL_NIT",
        "BRA_CPF",
        "CHL_RUT",
        "COL_NIT",
        "CRI_NITE",
        "DEU_TAX_ID",
        "DOM_RNC",
        "ECU_RUC",
        "FRA_SPI",
        "GBR_UTR",
        "GBR_NINO",
        "GTM_NIT",
        "HND_RTN",
        "HUN_TIN",
        "IDN_KTP",
        "IND_PAN",
        "ISR_TAX_ID",
        "ITA_TAX_ID",
        "JPN_TAX_ID",
        "MEX_RFC",
        "NIC_RUC",
        "NLD_TIN",
        "PAN_RUC",
        "PER_RUC",
        "PRY_RUC",
        "SGP_NRIC",
        "SGP_FIN",
        "SGP_ASGD",
        "SGP_ITR",
        "SLV_NIT",
        "SWE_TAX_ID",
        "URY_RUT",
        "VEN_RIF",
        "NATIONAL_ID",
        "PASSPORT",
        "PERMANENT_RESIDENT",
        "DRIVER_LICENSE",
        "OTHER_GOV_ID",
        "NOT_SPECIFIED"
      ],
      "title": "TaxIdType",
      "type": "string"
    },
    "TrustedContact": {
      "anyOf": [
        {
          "required": [
            "email_address"
          ]
        },
        {
          "required": [
            "phone_number"
          ]
        },
        {
          "required": [
            "street_address"
          ]
        }
      ],
      "dependentRequired": {
        "street_address": [
          "city",
          "state",
          "postal_code",
          "country"
        ]
      },
      "description": "This model input is optional. However, the client should make a reasonable effort to obtain the trusted contact information. See [FINRA Notice 17-11](https://www.finra.org/sites/default/files/Regulatory-Notice-17-11.pdf) for more details.\n\nAt least one of the following is required:\n- `email_address`\n- `phone_number`\n- `street_address`\n",
      "properties": {
        "city": {
          "description": "Required if `street_address` is set.",
          "type": "string"
        },
        "country": {
          "description": "The country in [ISO 3166-1 alpha-3](https://www.iso.org/iso-3166-country-codes.html) format. Required if `street_address` is set.",
          "type": "string"
        },
        "email_address": {
          "description": "At least one of `email_address`, `phone_number`, or `street_address` is required.",
          "format": "email",
          "type": "string"
        },
        "family_name": {
          "type": "string"
        },
        "given_name": {
          "type": "string"
        },
        "phone_number": {
          "description": "At least one of `email_address`, `phone_number`, or `street_address` is required.",
          "type": "string"
        },
        "postal_code": {
          "description": "Required if `street_address` is set.",
          "type": "string"
        },
        "state": {
          "description": "Required if `street_address` is set.",
          "type": "string"
        },
        "street_address": {
          "description": "At least one of `email_address`, `phone_number`, or `street_address` is required.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "given_name",
        "family_name"
      ],
      "type": "object"
    }
  }
}