Skip to content
Start Trading

Cancel Position Instruction

client.V1.Positions.CancelPositionInstruction(ctx, instructionID, body) (*V1PositionCancelPositionInstructionResponse, error)
DELETE/v1/accounts/{account_id}/positions/instructions/{instruction_id}

Cancel an outstanding position instruction by its server-assigned id. Returns the updated instruction with status CANCEL_REQUESTED. The terminal CANCELLED or CANCEL_FAILED state arrives asynchronously and is observable via subsequent GETs.

ParametersExpand Collapse
instructionID string
body V1PositionCancelPositionInstructionParams
AccountID param.Field[int64]

Account identifier

formatint64
ReturnsExpand Collapse
type V1PositionCancelPositionInstructionResponse struct{…}

A position instruction and its current lifecycle state.

ID string

Server-assigned id. Used as the path parameter on cancel.

formatuuid
AccountID int64

Account the instruction belongs to.

formatint64
ClientInstructionID string

Caller-supplied idempotency key echoed from the submit request; the server-assigned fallback when none was supplied.

InstructionType PositionInstructionType

The action this instruction requests.

One of the following:
const PositionInstructionTypeExercise PositionInstructionType = "EXERCISE"
const PositionInstructionTypeDoNotExercise PositionInstructionType = "DO_NOT_EXERCISE"
const PositionInstructionTypeContraryExercise PositionInstructionType = "CONTRARY_EXERCISE"
InstrumentID string

Identifier of the options contract this instruction acts on.

formatuuid
Quantity string

Number of contracts included in the instruction.

Current lifecycle status.

One of the following:
const PositionInstructionStatusSent PositionInstructionStatus = "SENT"
const PositionInstructionStatusAccepted PositionInstructionStatus = "ACCEPTED"
const PositionInstructionStatusRejected PositionInstructionStatus = "REJECTED"
const PositionInstructionStatusCancelRequested PositionInstructionStatus = "CANCEL_REQUESTED"
const PositionInstructionStatusCancelled PositionInstructionStatus = "CANCELLED"
const PositionInstructionStatusCancelFailed PositionInstructionStatus = "CANCEL_FAILED"
const PositionInstructionStatusUnknown PositionInstructionStatus = "UNKNOWN"
Symbol string

Options symbol (OSI) for display.

AcceptedQuantity stringOptional

Number of contracts accepted by the clearing venue. Populated once the instruction reaches ACCEPTED. When a null/undefined value is observed, it indicates that there is no available data.

CreatedAt TimeOptional

When the instruction was first accepted by the service. When a null/undefined value is observed, it indicates that there is no available data.

formatdate-time

Machine-readable counterpart to rejection_reason: a stable reason code, human-readable description, and params, present on every rejected row — on submit, cancel, get, and list alike. Branch on rejection.reason and read rejection.description instead of the top-level rejection_reason. When a null/undefined value is observed, it indicates it does not apply.

Description string

Human-readable explanation of the rejection. Duplicates the top-level rejection_reason; prefer this field.

Domain string

Namespacing domain of the reason code — com.clearstreet.oems.exercise for reasons OEMS validates, com.clearstreet.oems.clearing for clearing-owned reasons.

Metadata map[string, string]

Reason-specific parameters as a string→string map. Which keys are present depends on reason:

  • INSUFFICIENT_POSITION → available, requested
  • DNE_NOT_ON_EXPIRY / CEA_NOT_ON_EXPIRY → expiry, business_date
  • EXERCISE_PAST_CUTOFF → cutoff_time
  • DUPLICATE_INSTRUCTION → existing_id

Empty for reasons that carry no parameters. New keys may be added over time, so treat unknown keys leniently.

Reason string

Stable, machine-readable reason code, e.g. DNE_NOT_ON_EXPIRY, INSUFFICIENT_POSITION, OPTIONS_LEVEL_EXCEEDED, EXERCISE_PAST_CUTOFF.

RejectionReason stringOptional

Human-readable explanation populated on any non-success terminal status — REJECTED or CANCEL_FAILED. On a 207 Multi-Status batch submit the top-level error field summarizes the batch; per-row detail continues to live here. When a null/undefined value is observed, it indicates it does not apply.

UnderlyingInstrumentID stringOptional

Identifier of the underlying instrument, when available. When a null/undefined value is observed, it indicates it does not apply.

formatuuid
UpdatedAt TimeOptional

When the instruction’s lifecycle state last changed. When a null/undefined value is observed, it indicates that there is no available data.

formatdate-time

Cancel Position Instruction

package main

import (
  "context"
  "fmt"

  "github.com/clear-street/clear-street-go"
  "github.com/clear-street/clear-street-go/option"
)

func main() {
  client := clearstreet.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.V1.Positions.CancelPositionInstruction(
    context.TODO(),
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    clearstreet.V1PositionCancelPositionInstructionParams{
      AccountID: 0,
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}
{
  "data": {
    "accepted_quantity": null,
    "account_id": 122503,
    "client_instruction_id": "ui-20260424-001",
    "created_at": "2026-04-24T14:30:00Z",
    "id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e09",
    "instruction_type": "EXERCISE",
    "instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
    "quantity": "1",
    "rejection_reason": null,
    "status": "CANCEL_REQUESTED",
    "symbol": "AAPL  280121C00195000",
    "updated_at": "2026-04-24T14:35:00Z"
  },
  "error": null,
  "metadata": {
    "request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd08"
  }
}
Returns Examples
{
  "data": {
    "accepted_quantity": null,
    "account_id": 122503,
    "client_instruction_id": "ui-20260424-001",
    "created_at": "2026-04-24T14:30:00Z",
    "id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e09",
    "instruction_type": "EXERCISE",
    "instrument_id": "0195f6d0-a1b2-7c3d-8e4f-5a6b7c8d9e01",
    "quantity": "1",
    "rejection_reason": null,
    "status": "CANCEL_REQUESTED",
    "symbol": "AAPL  280121C00195000",
    "updated_at": "2026-04-24T14:35:00Z"
  },
  "error": null,
  "metadata": {
    "request_id": "0a5c9ebf-a9a7-4f2d-9c7e-f2b5f0b1bd08"
  }
}