---
title: "PUT /v4/user/accounts/{server}/{accountId}/execution/orders/{id}"
method: PUT
path: "/v4/user/accounts/{server}/{accountId}/execution/orders/{id}"
tags: ["Trading (v4)"]
---

# PUT /v4/user/accounts/{server}/{accountId}/execution/orders/{id}

`PUT /v4/user/accounts/{server}/{accountId}/execution/orders/{id}`

## Request

- Base URL: `https://trading-api.oanda.com` (the document declares no server; this is the origin it was published from)
- URL: `https://trading-api.oanda.com/v4/user/accounts/{server}/{accountId}/execution/orders/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/oanda/apis/up-gateway-v1/docs/v4/user/accounts/:server/:accountId/execution/orders/:id/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `server` 'oanda' | 'oanda-demo' | 'otms' | 'v20' | 'v20-demo' | 'oj' | 'oj-demo' | 'opt' | 'ftmo-1', required
- `accountId` string, required
- `id` string, required

## Request body

- object
  - `instrument` string, required
  - `price` number
  - `orderType` 'MARKET' | 'MARKET_IF_TOUCHED' | 'STOP' | 'LIMIT', required
  - `direction` 'LONG' | 'SHORT', required
  - `expiryTime` number: UTC timestamp in milliseconds
  - `expiryType` 'GTC' | 'SPECIFIED' | 'DAY' | 'SPECIFIED_DAY': - `GTC`: Good 'Til Canceled. The order remains active until canceled. Default value. - `DAY`: The order is active for the current trading day only. - `SPECIFIED`: The order expires at the time specified in `expiryTime`. The `expiryTime` field is required for this type. - `SPECIFIED_DAY`: The order expires at the specified day or the nearest trading time, as given in `expiryTime`. The `expiryTime` field is required for this type.
  - `stopLoss` number
  - `stopLossType` 'NORMAL' | 'GUARANTEED': Avaliable only for v20-* based accounts
  - `takeProfit` number
  - `trailingStop` number: Trailing Stop distance value
  - `priceBound` number: Avaliable only for v20-* based accounts
  - `quantity` number
  - `fillType` 'FOK' | 'IOC' | 'RETURN': For v20-* based accounts FOK and IOC is used for MARKET orders, for STOP/LIMIT order only RETURN.
  - `modifyType` 'EDIT' | 'CLOSE_AND_CREATE'
  - `trackingData` object
    - `instrumentCategory` string
    - `instrumentCategoryCountry` string
    - `isCFD` boolean

## Response `200`

OK

- object
  - `data` object, required
    - `id` string, required
    - `transactionId` string, required
  - `metadata` object, required
    - `transactionId` string, required
    - `engineExecutionEndTime` number, required: UTC timestamp in milliseconds when the engine finished executing the order
    - `engineExecutionStartTime` number, required: UTC timestamp in milliseconds when the engine started executing the order
    - `apiExecutionStartTime` number, required: UTC timestamp in milliseconds when the API started executing the order
    - `apiExecutionEndTime` number, required: UTC timestamp in milliseconds when the API finished executing the order
    - `engineExecutionTime` number, required: UTC timestamp in milliseconds when the engine executed the order
    - `orderType` 'MARKET' | 'MARKET_IF_TOUCHED' | 'STOP' | 'LIMIT'
    - `instrument` string
    - `server` 'oanda' | 'oanda-demo' | 'otms' | 'v20' | 'v20-demo' | 'oj' | 'oj-demo' | 'opt' | 'ftmo-1', required
    - `event` 'SubmittedOrder' | 'ModifyOrder' | 'CancelOrder' | 'ClosePosition' | 'CloseNetPosition' | 'ReducePosition' | 'ReduceNetPosition' | 'PushToFavourites' | 'RemoveFromFavourites' | 'SaveChartLayout' | 'CreateChartLayout' | 'CloseOrder' | 'ReduceOrder', required
    - `direction` 'LONG' | 'SHORT'
    - `orderId` string, required
    - `accountId` string, required
    - `takeProfit` number
    - `stopLoss` number
    - `price` number, required
    - `expiryDate` number: UTC timestamp in milliseconds
    - `size` number

## Other responses

- `400`: FAIL

---

[API](https://skmtc.dev/oanda/apis/up-gateway-v1.md) - [All operations](https://skmtc.dev/oanda/apis/up-gateway-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/oanda/apis/up-gateway-v1/revisions/395d645513bf?raw)
