{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/internal_account_create_request",
  "title": "internal_account_create_request",
  "type": "object",
  "properties": {
    "connection_id": {
      "type": "string",
      "description": "The identifier of the financial institution the account belongs to."
    },
    "name": {
      "type": "string",
      "description": "The nickname of the account."
    },
    "party_name": {
      "type": "string",
      "description": "The legal name of the entity which owns the account."
    },
    "party_address": {
      "type": "object",
      "description": "The address associated with the owner or null.",
      "properties": {
        "line1": {
          "type": "string"
        },
        "line2": {
          "type": "string"
        },
        "locality": {
          "type": "string",
          "description": "Locality or City."
        },
        "region": {
          "type": "string",
          "description": "Region or State."
        },
        "postal_code": {
          "type": "string",
          "description": "The postal code of the address."
        },
        "country": {
          "type": "string",
          "description": "Country code conforms to [ISO 3166-1 alpha-2]"
        }
      },
      "required": [
        "line1",
        "locality",
        "region",
        "postal_code",
        "country"
      ]
    },
    "currency": {
      "type": "string",
      "enum": [
        "USD",
        "CAD",
        "USDC",
        "USDG",
        "PYUSD"
      ],
      "example": "USD",
      "description": "The currency of the internal account. Supports \"USD\" and \"CAD\" for fiat, and \"USDC\", \"USDG\", and \"PYUSD\" for stablecoin accounts."
    },
    "account_type": {
      "type": "string",
      "enum": [
        "base_wallet",
        "cash",
        "checking",
        "crypto_wallet",
        "ethereum_wallet",
        "general_ledger",
        "loan",
        "non_resident",
        "other",
        "overdraft",
        "polygon_wallet",
        "savings",
        "solana_wallet"
      ],
      "example": "checking",
      "description": "The account type, used to provision the appropriate account at the financial institution."
    },
    "account_capabilities": {
      "type": "array",
      "description": "An array of AccountCapability objects that list the originating abilities of the internal account and any relevant information for them.",
      "items": {
        "$ref": "#/components/schemas/account_capability"
      }
    },
    "vendor_attributes": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "example": {
        "key": "value",
        "foo": "bar",
        "modern": "treasury"
      },
      "description": "A hash of vendor specific attributes that will be used when creating the account at the vendor specified by the given connection."
    },
    "parent_account_id": {
      "type": "string",
      "description": "The parent internal account of this new account."
    },
    "counterparty_id": {
      "type": "string",
      "description": "The Counterparty associated to this account."
    },
    "legal_entity_id": {
      "type": "string",
      "description": "The LegalEntity associated to this account."
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Additional data represented as key-value pairs. Both the key and value must be strings."
    },
    "external_id": {
      "type": "string",
      "nullable": true,
      "description": "An optional user-defined 180 character unique identifier."
    }
  },
  "required": [
    "connection_id",
    "name",
    "party_name",
    "currency"
  ]
}