Skip to navigation

Liquidate Position

View as Markdown

Cancel working orders for a contract and flatten its position.

Available to: All authenticated users

Environments: Demo, Live

Rate Limit: No endpoint-specific limit

Cancels the working orders for a specific contractId on the given accountId and closes (flattens) the resulting position with a market order. This is a request, not a guarantee — it can fail for reasons ranging from exchange rejection to misconfiguration. When the request is rejected, the response carries a failureReason and failureText.

Set isAutomated to true when this is triggered by code or an automated process, and false only when a human triggers it directly.

Common Failure Scenarios

  • The trading session is closed or the market has no quote (SessionClosed, NoQuote).
  • The market lacks the liquidity to close the position (NotEnoughLiquidity).
  • The user isn’t permitted to trade this account or contract (Unauthorized).

Error Messages

failureReasonTrigger
SessionClosedThe trading session is closed.
NotEnoughLiquidityThe market can’t absorb the closing order.
UnauthorizedThe user isn’t permitted to trade this account or contract.

See the failureReason enum in the response schema for the complete list of values.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects an object.
accountIdlongRequired
contractIdlongRequired
adminbooleanRequired
customTag50stringOptional<=64 characters

Operator ID for the order. Send it only if NinjaTrader configured an allow-list of operator IDs for your user. In that case it’s required on every order and must exactly match one approved value. If no allow-list is configured, omit it: a supplied value is denied. Organizations using passthrough also omit it, and NinjaTrader fills it in. Up to 64 characters. See Operator ID (customTag50) and Passthrough.

isAutomatedbooleanOptional

Response

PlaceOrderResult
failureReasonenumOptional
AccountClosed, AdvancedTrailingStopUnsupported, AnotherCommandPending, BackMonthProhibited, ExecutionProviderNotConfigured, ExecutionProviderUnavailable, HomeStateRestricted, InvalidContract, InvalidPrice, KeyInformationDocumentRequired, LiquidationOnly, LiquidationOnlyBeforeExpiration, MaxOrderQtyIsNotSpecified, MaxOrderQtyLimitReached, MaxPosLimitMisconfigured, MaxPosLimitReached, MaxTotalPosLimitReached, MinTradeDurationNotElapsed, MultipleAccountPlanRequired, NoQuote, NotEnoughLiquidity, OtherExecutionRelated, ParentRejected, RiskCheckTimeout, SSFNFAComplianceRequired, SSFNFAComplianceRequiredJointOnly, SSFRiskDisclosureAcknowledgmentRequired, SessionClosed, Success, TooLate, TradingLocked, TrailingStopNonOrderQtyModify, Unauthorized, UnknownReason, Unsupported
failureTextstringOptional<=8192 characters
orderIdlongOptional