{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/alpaca/json-schema/alpaca-transfer-status-event-schema.json",
  "title": "TransferStatusEvent",
  "description": "Represents a change in a Transfer's status, sent over the events streaming api.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/alpaca-events-api-openapi.yml#/components/schemas/TransferStatusEvent",
  "type": "object",
  "properties": {
    "account_id": {
      "type": "string",
      "minLength": 1,
      "description": "Account UUID",
      "format": "uuid"
    },
    "at": {
      "type": "string",
      "minLength": 1,
      "description": "Timedate of when the transfer status changed",
      "format": "date-time"
    },
    "event_id": {
      "type": "integer",
      "description": "Monotonically increasing 64bit integer"
    },
    "status_from": {
      "$ref": "#/$defs/TransferStatus"
    },
    "status_to": {
      "$ref": "#/$defs/TransferStatus"
    },
    "transfer_id": {
      "type": "string",
      "minLength": 1,
      "description": "Transfer UUID",
      "format": "uuid"
    }
  },
  "required": [
    "account_id",
    "at",
    "event_id",
    "status_from",
    "status_to",
    "transfer_id"
  ],
  "$defs": {
    "TransferStatus": {
      "type": "string",
      "enum": [
        "QUEUED",
        "APPROVAL_PENDING",
        "PENDING",
        "SENT_TO_CLEARING",
        "REJECTED",
        "CANCELED",
        "APPROVED",
        "COMPLETE",
        "RETURNED"
      ],
      "description": "- **QUEUED**\nTransfer is in queue to be processed.\n- **APPROVAL_PENDING**\nTransfer is pending approval.\n- **PENDING**\nTransfer is pending processing.\n- **SENT_TO_CLEARING**\nTransfer is being processed by the clearing firm.\n- **REJECTED**\nTransfer is rejected.\n- **CANCELED**\nClient initiated transfer cancellation.\n- **APPROVED**\nTransfer is approved.\n- **COMPLETE**\nTransfer is completed.\n- **RETURNED**\nThe bank issued an ACH return for the transfer.\n"
    }
  }
}