{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/alpaca/json-schema/alpaca-account-status-event-schema.json",
  "title": "AccountStatusEvent",
  "description": "Represents a change in an Account's status, sent over the events streaming api.\n\nFor partners who utilize Alpaca’s KYC service for opening brokerage accounts an additional `kyc_results` object is represented in the account status update events.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/alpaca-accounts-api-openapi.yml#/components/schemas/AccountStatusEvent",
  "type": "object",
  "properties": {
    "account_id": {
      "type": "string",
      "minLength": 1
    },
    "account_number": {
      "type": "string",
      "minLength": 1
    },
    "status_from": {
      "$ref": "#/$defs/AccountStatus"
    },
    "status_to": {
      "$ref": "#/$defs/AccountStatus"
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "description": "Optional"
    },
    "at": {
      "type": "string",
      "minLength": 1,
      "description": "Timestamp of event"
    },
    "kyc_result": {
      "$ref": "#/$defs/KYCResult"
    },
    "event_id": {
      "type": "integer",
      "description": "monotonically increasing 64bit integer"
    }
  },
  "required": [
    "account_id",
    "account_number",
    "status_from",
    "status_to",
    "reason",
    "at",
    "event_id"
  ],
  "$defs": {
    "AccountStatus": {
      "type": "string",
      "enum": [
        "ONBOARDING",
        "SUBMITTED",
        "RESUBMITTED",
        "SUBMISSION_FAILED",
        "ACTION_REQUIRED",
        "EDITED",
        "ACCOUNT_UPDATED",
        "APPROVAL_PENDING",
        "REAPPROVAL_PENDING",
        "SIGNED_UP",
        "KYC_SUBMITTED",
        "LIMITED",
        "AML_REVIEW",
        "APPROVED",
        "REJECTED",
        "ACTIVE",
        "DISABLED",
        "DISABLE_PENDING",
        "ACCOUNT_CLOSED",
        "PAPER_ONLY"
      ],
      "description": "Designates the current status of this account\n\nPossible Values:\n- **ONBOARDING**\nAn application is expected for this user, but has not been submitted yet.\n- **SUBMITTED**\nThe application has been submitted and in process.\n- **RESUBMITTED**\nResubmitted is used to display when request has been re-submitted to Apex after account update\n- **SUBMISSION_FAILED**\nUsed to display if failure on submission\n- **ACTION_REQUIRED**\nThe application requires manual action.\n- **EDITED**\nApplication was edited (e.g. to match info from uploaded docs). This is a transient status.\n- **ACCOUNT_UPDATED**\nUsed to display when Account has been modified by user\n- **APPROVAL_PENDING**\nInitial value. The application approval process is in process.\n- **REAPPROVAL_PENDING**\nThis is a transient status used to display once apex approves a re-submission\n- **SIGNED_UP**\nUsers who were directed to and competed the [first stage](https://app.alpaca.markets/signup) of v2 registration\n- **KYC_SUBMITTED**\nUsers that have had their KYC submitted to the routed KYC Provider\n- **LIMITED**\nLimited Users that pass KYC but are missing financial_information and employment_details\n- **AML_REVIEW**\nUsers that pass KYC but from a restricted/high risk country and need manual AML approval\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- **DISABLED**\nThe account is disabled after ACTIVE status.\n- **DISABLE_PENDING**\nDisablePending is used for accounts which requested to be disabled, but have not been processed yet.\n- **ACCOUNT_CLOSED**\nThe account is closed.\n- **PAPER_ONLY**\nUsed to display when only paper trading is allowed for this account\n"
    },
    "KYCResult": {
      "type": "object",
      "description": "Hold information about the result of KYC. Please see the documentation [here](https://alpaca.markets/docs/api-references/broker-api/events/#kyc-results) for more indepth details",
      "properties": {
        "reject": {
          "type": "object"
        },
        "accept": {
          "type": "object"
        },
        "indeterminate": {
          "type": "object"
        },
        "addidional_information": {
          "type": "string"
        }
      }
    }
  }
}