## Close Position `PositionClosePositionResponse v1().positions().closePosition(PositionClosePositionParamsparams, RequestOptionsrequestOptions = RequestOptions.none())` **delete** `/v1/accounts/{account_id}/positions/{instrument_id}` Delete a position within an account for an instrument. Retrieves orders generated to close the position. ### Parameters - `PositionClosePositionParams params` - `long accountId` - `Optional instrumentId` OEMS instrument UUID - `Optional cancelOrders` Whether to cancel existing open orders for the position before submitting closing orders. ### Returns - `class PositionClosePositionResponse:` - `List data` - `String id` Engine-assigned unique identifier for this order (UUID). - `long accountId` Account placing the order - `String clientOrderId` Client-provided identifier echoed back (FIX tag 11). - `LocalDateTime createdAt` Timestamp when order was created (UTC) - `String filledQuantity` Cumulative filled quantity - `String instrumentId` OEMS instrument UUID for the traded instrument. - `SecurityType instrumentType` Type of security - `COMMON_STOCK("COMMON_STOCK")` - `PREFERRED_STOCK("PREFERRED_STOCK")` - `OPTION("OPTION")` - `CASH("CASH")` - `OTHER("OTHER")` - `String leavesQuantity` Remaining unfilled quantity - `OrderType orderType` Type of order (MARKET, LIMIT, etc.) - `MARKET("MARKET")` - `LIMIT("LIMIT")` - `STOP("STOP")` - `STOP_LIMIT("STOP_LIMIT")` - `TRAILING_STOP("TRAILING_STOP")` - `TRAILING_STOP_LIMIT("TRAILING_STOP_LIMIT")` - `OTHER("OTHER")` - `String quantity` Total order quantity - `Side side` Side of the order (BUY, SELL, SELL_SHORT) - `BUY("BUY")` - `SELL("SELL")` - `SELL_SHORT("SELL_SHORT")` - `OTHER("OTHER")` - `OrderStatus status` Current status of the order - `PENDING_NEW("PENDING_NEW")` - `NEW("NEW")` - `PARTIALLY_FILLED("PARTIALLY_FILLED")` - `FILLED("FILLED")` - `CANCELED("CANCELED")` - `REJECTED("REJECTED")` - `EXPIRED("EXPIRED")` - `PENDING_CANCEL("PENDING_CANCEL")` - `PENDING_REPLACE("PENDING_REPLACE")` - `REPLACED("REPLACED")` - `DONE_FOR_DAY("DONE_FOR_DAY")` - `STOPPED("STOPPED")` - `SUSPENDED("SUSPENDED")` - `CALCULATED("CALCULATED")` - `OTHER("OTHER")` - `String symbol` Trading symbol - `TimeInForce timeInForce` Time in force instruction - `DAY("DAY")` - `GOOD_TILL_CANCEL("GOOD_TILL_CANCEL")` - `IMMEDIATE_OR_CANCEL("IMMEDIATE_OR_CANCEL")` - `FILL_OR_KILL("FILL_OR_KILL")` - `GOOD_TILL_DATE("GOOD_TILL_DATE")` - `AT_THE_OPENING("AT_THE_OPENING")` - `AT_THE_CLOSE("AT_THE_CLOSE")` - `GOOD_TILL_CROSSING("GOOD_TILL_CROSSING")` - `GOOD_THROUGH_CROSSING("GOOD_THROUGH_CROSSING")` - `AT_CROSSING("AT_CROSSING")` - `OTHER("OTHER")` - `LocalDateTime updatedAt` Timestamp of the most recent update (UTC) - `String venue` MIC code of the venue where the order is routed - `Optional averageFillPrice` Average fill price across all executions - `Optional> details` Contains execution, rejection or cancellation details, if any - `Optional expiresAt` Timestamp when the order will expire (UTC). Present when time_in_force is GOOD_TILL_DATE. - `Optional extendedHours` Whether the order is eligible for extended-hours trading. - `Optional limitOffset` Limit offset for trailing stop-limit orders (signed) - `Optional limitPrice` Limit price (for LIMIT and STOP_LIMIT orders) - `Optional queueState` Parent order queue state, present when the order is awaiting release or released. - `AWAITING_RELEASE("AWAITING_RELEASE")` - `RELEASED("RELEASED")` - `Optional releasesAt` Scheduled release time for orders awaiting release. - `Optional stopPrice` Stop price (for STOP and STOP_LIMIT orders) - `Optional trailingLimitPx` Current trailing limit price computed by the trailing strategy - `Optional trailingOffset` Trailing offset amount for trailing orders - `Optional trailingOffsetType` Trailing offset type for trailing orders - `PRICE("PRICE")` - `BPS("BPS")` - `Optional trailingStopPx` Current trailing stop price computed by the trailing strategy - `Optional trailingWatermarkPx` Trailing watermark price for trailing orders - `Optional trailingWatermarkTs` Trailing watermark timestamp for trailing orders - `Optional underlyingInstrumentId` OEMS instrument ID of the option's underlying instrument. Populated only for OPTIONS orders; `null` for non-options and for options whose underlier cannot be resolved from the instrument cache. ### Example ```java package com.clear_street.api.example; import com.clear_street.api.client.ClearStreetClient; import com.clear_street.api.client.okhttp.ClearStreetOkHttpClient; import com.clear_street.api.models.v1.positions.PositionClosePositionParams; import com.clear_street.api.models.v1.positions.PositionClosePositionResponse; public final class Main { private Main() {} public static void main(String[] args) { ClearStreetClient client = ClearStreetOkHttpClient.builder() .fromEnv() .apiKey("My API Key") .build(); PositionClosePositionParams params = PositionClosePositionParams.builder() .accountId(0L) .instrumentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build(); PositionClosePositionResponse response = client.v1().positions().closePosition(params); } } ``` #### Response ```json { "data": [ { "account_id": 19816, "average_fill_price": null, "created_at": "2025-10-03T14:01:15.000000000Z", "filled_quantity": "0", "id": "019c0b56-2119-7482-a80f-5a2a316524d9", "instrument_id": "c3c4c5c6-d3d4-e3e4-f3f4-f5f6f7f8f9fa", "instrument_type": "COMMON_STOCK", "leaves_quantity": "25", "limit_price": null, "order_type": "MARKET", "quantity": "25", "side": "SELL", "status": "PENDING_NEW", "stop_price": null, "symbol": "GOOG", "time_in_force": "DAY", "updated_at": "2025-10-03T14:01:15.000000000Z", "venue": "XNMS" } ], "error": null, "metadata": { "request_id": "3f4a5b6c-7d8e-9f0a-1b2c-3d4e5f6a7b8c" } } ```