> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bluumfinance.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Place Orders

> Buy and sell by quantity or notional, track fills, and cancel.

With the wallet funded, place trades. Buy by share quantity or by dollar amount (notional, for fractional shares), then track the order to a fill.

You need the `INVESTOR_ID` and a `completed` deposit from [Fund the wallet](/get-started/journey/fund-wallet).

<Frame>
  <img src="https://mintcdn.com/bluumfinance/L5Dm3BN-WAZqlyQf/images/diagrams/order-lifecycle.svg?fit=max&auto=format&n=L5Dm3BN-WAZqlyQf&q=85&s=5958fbe8a0f2f4541072fdcc9f03b8a3" alt="Order lifecycle" width="1200" height="360" data-path="images/diagrams/order-lifecycle.svg" />
</Frame>

## Buy by quantity

Buy 10 shares of AAPL at market.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "$BASE_URL/investors/$INVESTOR_ID/orders" \
    -H "Authorization: Basic $AUTH" \
    -H "Content-Type: application/json" \
    -d '{
      "symbol": "AAPL",
      "side": "buy",
      "type": "market",
      "time_in_force": "day",
      "quantity": "10"
    }'
  ```

  ```javascript Node.js theme={null}
  const res = await fetch(`${BASE_URL}/investors/${INVESTOR_ID}/orders`, {
    method: "POST",
    headers: { Authorization: `Basic ${auth}`, "Content-Type": "application/json" },
    body: JSON.stringify({
      symbol: "AAPL",
      side: "buy",
      type: "market",
      time_in_force: "day",
      quantity: "10",
    }),
  });

  const order = await res.json();
  console.log(order.id, order.status); // ord_..., pending
  ```

  ```python Python theme={null}
  res = requests.post(
      f"{BASE_URL}/investors/{INVESTOR_ID}/orders",
      headers={"Authorization": f"Basic {auth}", "Content-Type": "application/json"},
      json={
          "symbol": "AAPL",
          "side": "buy",
          "type": "market",
          "time_in_force": "day",
          "quantity": "10",
      },
  )

  order = res.json()
  ```
</CodeGroup>

## Buy by notional (fractional shares)

Invest exactly \$1,000 of GOOGL — Bluum computes the fractional quantity. `notional` is `market`-only.

```bash theme={null}
curl -X POST "$BASE_URL/investors/$INVESTOR_ID/orders" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "GOOGL",
    "side": "buy",
    "type": "market",
    "time_in_force": "day",
    "notional": "1000.00"
  }'
```

<Note>
  Provide either `quantity` or `notional`, not both. Sell orders require `quantity`. Use `quantity` for `limit`, `stop`, `stop_limit`, and `trailing_stop` types.
</Note>

## Response

```json theme={null}
{
  "id": "ord_x9y8z7a6b5c4d3e2",
  "object": "order",
  "symbol": "AAPL",
  "side": "buy",
  "type": "market",
  "time_in_force": "day",
  "quantity": "10",
  "status": "pending",
  "filled_quantity": "0",
  "remaining_quantity": "10",
  "average_price": "0.00",
  "submitted_at": "2026-07-01T14:30:00Z"
}
```

Store the order ID:

```bash theme={null}
ORDER_ID="ord_x9y8z7a6b5c4d3e2"
```

Order status progresses `pending` → `filled` (or `partial`, `cancelled`, `failed`). On a fill, `filled_quantity`, `average_price`, and `filled_at` populate; a rejection sets `failure_reason`.

## Get order status

```bash theme={null}
curl -X GET "$BASE_URL/investors/$INVESTOR_ID/orders/$ORDER_ID" \
  -H "Authorization: Basic $AUTH"
```

## Cancel an open order

Cancel an order that has not fully filled:

```bash theme={null}
curl -X POST "$BASE_URL/investors/$INVESTOR_ID/orders/$ORDER_ID/cancel" \
  -H "Authorization: Basic $AUTH"
```

<Tip>
  In sandbox, market orders fill almost instantly, so there's a narrow window to cancel. Use a `limit` order priced away from the market to test cancellation.
</Tip>

For limit, stop, trailing-stop orders, time-in-force, and pre-trade estimates, see [Trading](/concepts/trading) and the [API reference](/api-reference).

<Tip>
  Next → [Track positions](/get-started/journey/track-positions).
</Tip>
