{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/moment/main/json-schema/moment-cash-raise-schema.json",
  "title": "CashRaise",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/moment-account-management-extended-api-openapi.yml#/components/schemas/CashRaise",
  "type": "object",
  "properties": {
    "annotation": {
      "description": "Optional annotation or note about the cash raise request.",
      "type": [
        "string",
        "null"
      ]
    },
    "cancel_reason": {
      "description": "The machine-set reason a canceled raise was canceled. Null on a user/manual cancel and on non-canceled raises.\n* superseded_by_edit: replaced by an instance regenerated after a schedule edit.\n* detached_to_one_off: replaced by the standalone one-off created by a \"this one\" edit.\n* reconciled_orphan: canceled by reconciliation as an un-activated instance off its schedule's cadence.\n* schedule_deleted: canceled because its owning schedule was deleted.\n* claimed_by_predecessor: a placeholder held by a schedule created by a \"this and future\" edit, for an occurrence whose raise still belongs to the schedule it replaced. Never funds.",
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "superseded_by_edit",
        "detached_to_one_off",
        "reconciled_orphan",
        "schedule_deleted",
        "claimed_by_predecessor"
      ]
    },
    "completed_at": {
      "description": "The time at which the cash was withdrawn or the cash raise was canceled.",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "completed_by": {
      "description": "The user who marked the cash raise as complete or canceled.",
      "type": [
        "string",
        "null"
      ]
    },
    "activated_at": {
      "description": "The date and time at which the cash raise's activation executed and its reservation was created. Null until then.",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "created_at": {
      "description": "The date and time when the cash raise was created.",
      "type": "string",
      "format": "date-time"
    },
    "created_by": {
      "description": "The advisor who created the cash raise request.",
      "type": "string"
    },
    "effective_at": {
      "description": "The planned or actual activation date of the cash raise. Null when un-activated with no planned date.",
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "id": {
      "description": "The unique identifier of the cash raise.",
      "type": "string"
    },
    "liquidation_request": {
      "description": "When true, the cash raise liquidates all available cash in the account rather than raising a fixed requested amount.",
      "type": "boolean"
    },
    "occurrence_date": {
      "description": "The nominal cadence date of a schedule-generated raise, set together with schedule_id. Null on one-offs.",
      "type": [
        "string",
        "null"
      ],
      "format": "date"
    },
    "raised_amount": {
      "description": "The amount of cash that has been withdrawn. This will be zero until the cash raise is complete.",
      "$ref": "#/$defs/Decimal"
    },
    "request_type": {
      "description": "How the raise was created.\n* ONE_TIME: a manual one-off raise.\n* RECURRING: an instance generated by a recurring schedule.\n* LIQUIDATION: a raise that liquidates all available cash (liquidation_request is true).",
      "type": "string",
      "enum": [
        "ONE_TIME",
        "RECURRING",
        "LIQUIDATION"
      ]
    },
    "requested_amount": {
      "description": "The amount of cash requested to be raised. 0 for liquidation raises (liquidation_request is true) — a liquidation has no fixed target.",
      "$ref": "#/$defs/Decimal"
    },
    "schedule_id": {
      "description": "The recurring schedule that generated this raise. Null on a manual one-off.",
      "type": [
        "string",
        "null"
      ]
    },
    "settled_cash": {
      "description": "The amount of cash that is currently reserved for the cash raise. For complete and canceled cash raises, this will be zero.",
      "$ref": "#/$defs/Decimal"
    },
    "status": {
      "description": "The current status of the cash raise.\n* pending: The cash raise is active and in progress.\n* ready_to_withdraw: The entire requested amount of cash is available for withdrawal in the account.\n* cash_withdrawn: The cash has been withdrawn from the account.\n* past_due: The cash raise is still pending (not enough cash is available yet) and its target date is in the past. A raise with enough cash available is reported as ready_to_withdraw even after its target date has passed.\n* canceled: The cash raise has been canceled.\n* pending_activation: The cash raise has not been activated yet, so no cash has been reserved or moved for it. Sleeve-scoped (DoD) accounts only.\n* not_ready: The cash raise is activated but its cash is not available yet — either the account has a funding violation, or earlier-due raises still claim the available cash. Sleeve-scoped (DoD) accounts only.\n* future: The cash raise has a planned activation date in the future and has not been activated. Sleeve-scoped (DoD) accounts only.",
      "type": "string",
      "enum": [
        "pending",
        "ready_to_withdraw",
        "cash_withdrawn",
        "past_due",
        "canceled",
        "pending_activation",
        "not_ready",
        "future"
      ]
    },
    "target_date": {
      "description": "The target date by which the cash should be raised.",
      "type": "string",
      "format": "date"
    },
    "unsettled_cash": {
      "description": "The amount of unsettled cash in the account. For complete and canceled cash raises, this will be zero.",
      "$ref": "#/$defs/Decimal"
    },
    "updated_at": {
      "description": "The date and time when the cash raise was last updated.",
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "requested_amount",
    "settled_cash",
    "unsettled_cash",
    "raised_amount",
    "status",
    "target_date",
    "created_at",
    "updated_at",
    "created_by",
    "liquidation_request",
    "request_type"
  ],
  "$defs": {
    "Decimal": {
      "type": "number",
      "format": "double",
      "title": "Decimal",
      "x-go-type": "decimal.Decimal",
      "x-go-type-import": {
        "path": "github.com/shopspring/decimal",
        "name": "decimal"
      }
    }
  }
}