# Obtener todos los eventos por posición

`GET /positions/{positionId}/history`

Qué ocurrió con una posición, las más recientes primero: aumentos, cierres parciales y totales, liquidación, cierre forzoso, cambios de margen.

- Los pagos de financiación quedan fuera de este feed.
- Un cierre forzoso lleva consigo el evento de mercado que tiene detrás, que es donde reside el motivo del mismo.

<a id="authorization"></a>

## Autorización

bearer: http · bearer (obligatorio). Clave de API personal, con el prefijo `usk_`.

<a id="parameters"></a>

## Parámetros

- path: positionId (string · uuid; obligatorio). Identificador de posición. Su cuenta debe pertenecer al llamador.

Tipo: string · uuid

format: uuid

<a id="example-curl"></a>

## Ejemplo · cURL

```bash
curl --request GET 'https://api.upscale.trade/positions/{positionId}/history' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'
```

<a id="example-javascript"></a>

## Ejemplo · JavaScript

```javascript
const response = await fetch("https://api.upscale.trade/positions/{positionId}/history", {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
});
console.log(response.status, await response.text());
```

<a id="example-python"></a>

## Ejemplo · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.upscale.trade/positions/{positionId}/history",
    headers={"Accept":"application/json","Authorization":"Bearer YOUR_API_KEY"},
    timeout=30,
)
print(response.status_code, response.text)
```

<a id="response-401"></a>

## Respuesta 401

**401**  — No autorizado

<a id="response-403"></a>

## Respuesta 403

**403**  — La cuenta pertenece a otro usuario (`account_access_denied`), o la solicitud se autentica con una clave de API mientras `api_trading` está deshabilitado en la cuenta (`api_trading_not_enabled`).

<a id="response-404"></a>

## Respuesta 404

**404**  — No existe ninguna posición con este identificador.

<a id="response-429"></a>

## Respuesta 429

**429**  — Se superó el límite de velocidad de la clave de API (`api_key_rate_limit_exceeded`). `Retry-After` indica cuándo volver; el cuerpo incluye el bucket (`read` / `write`), la ventana que se activó, su límite y `retryAt`.

<a id="response-default-positioneventresponse"></a>

## Respuesta default · PositionEventResponse

**default** application/json — Respuesta

Tipo: object[]

[]Esquema: PositionEventResponse

[]Tipo: object

[]Campos obligatorios: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, rawPnlInEvent, profitAdjustmentApplied, holdingTimeMs, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe, scalpingCoefficient, closeReason, order

[]Tipos de campos obligatorios: idx (string[]; obligatorio), txId (string[]; obligatorio), version (number; obligatorio), openedAt (string · date-time; obligatorio), lastUpdatedAt (string · date-time; obligatorio), closedAt (string · date-time · nullable; obligatorio), type (string · enum; obligatorio), status (string · enum; obligatorio), market (string · uuid; obligatorio), trader (string · uuid; obligatorio), size (string · int32; obligatorio), notional (string · int32; obligatorio), fraction (string · int32; obligatorio), margin (string · int32; obligatorio), pnl (string · int32 · nullable; obligatorio), funding (string · int32 · nullable; obligatorio), rolloverFee (string · int32; obligatorio), settlementOraclePrice (string · int32; obligatorio), fee (string · int32; obligatorio), feeRate (string · int32; obligatorio), exchangedQuote (string · int32; obligatorio), exchangedBase (string · int32; obligatorio), direction (string · enum; obligatorio), eventName (string · enum; obligatorio), pnlInEvent (string · int32; obligatorio), rawPnlInEvent (string · int32; obligatorio), profitAdjustmentApplied (boolean; obligatorio), holdingTimeMs (string[]; obligatorio), feeInEvent (string · int32; obligatorio), fundingInEvent (string · int32; obligatorio), rolloverFeeInEvent (string · int32; obligatorio), executionFeeRate (string · int32; obligatorio), executionFeeInEvent (string · int32; obligatorio), executionFee (string · int32; obligatorio), timestamp (string · date-time; obligatorio), isOnchain (boolean; obligatorio), roe (string · int32; obligatorio), scalpingCoefficient (string · int32; obligatorio), closeReason (string[]; obligatorio), order (object · nullable; obligatorio)

- []idx (string[]; obligatorio)

[]idx ejemplo: [
  "string"
]

[]idx.Tipo: string[]

[]idx.Identificador de la posición. Mismo valor que `txId`.

[]idx.[]Tipo: string

- []txId (string[]; obligatorio)

[]txId ejemplo: [
  "string"
]

[]txId.Tipo: string[]

[]txId.Identificador de la posición. Se mantiene por compatibilidad hacia atrás, siempre igual a `idx`.

[]txId.[]Tipo: string

- []version (number; obligatorio)

[]version ejemplo: 0

[]version.Tipo: number

[]version.Revisión de la posición: incrementada por cada evento que se le aplica.

- []openedAt (string · date-time; obligatorio)

[]openedAt ejemplo: 2026-05-01T12:30:00.000Z

[]openedAt.Tipo: string · date-time

[]openedAt.Cuándo se abrió la posición.

[]openedAt.format: date-time

- []lastUpdatedAt (string · date-time; obligatorio)

[]lastUpdatedAt ejemplo: 2026-05-01T12:30:00.000Z

[]lastUpdatedAt.Tipo: string · date-time

[]lastUpdatedAt.Cuándo se aplicó el último evento a la posición.

[]lastUpdatedAt.format: date-time

- []closedAt (string · date-time · nullable; obligatorio)

[]closedAt ejemplo: 2026-05-01T12:30:00.000Z

[]closedAt.Tipo: string · date-time · nullable

[]closedAt.Cuándo se cerró la posición; null mientras sigue abierta.

[]closedAt.format: date-time

- []type (string · enum; obligatorio)

[]type ejemplo: long

[]type.Tipo: string · enum

[]type.Dirección de la posición. Mismo valor que `direction`.

[]type.Valores permitidos: ["long","short"]

- []status (string · enum; obligatorio)

[]status ejemplo: opened

[]status.Tipo: string · enum

[]status.Si la posición sigue abierta, fue cerrada por el trader o fue liquidada.

[]status.Valores permitidos: ["opened","closed","liquidated"]

- []market (string · uuid; obligatorio)

[]market ejemplo: 00000000-0000-4000-8000-000000000000

[]market.Tipo: string · uuid

[]market.Mercado en el que se mantiene la posición.

[]market.format: uuid

[]market.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- []trader (string · uuid; obligatorio)

[]trader ejemplo: 00000000-0000-4000-8000-000000000000

[]trader.Tipo: string · uuid

[]trader.Cuenta del trader a la que pertenece la posición.

[]trader.format: uuid

[]trader.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- []size (string · int32; obligatorio)

[]size ejemplo: 1000000000

[]size.Tipo: string · int32

[]size.Tamaño de la posición en unidades del activo base, fp9 sin procesar.

[]size.format: int32

[]size.pattern: ^(?:-?[1-9][0-9]*|0)$

- []notional (string · int32; obligatorio)

[]notional ejemplo: 1000000000

[]notional.Tipo: string · int32

[]notional.Nocional abierto de la posición en moneda de cotización, fp9 sin procesar — tamaño al precio de entrada.

[]notional.format: int32

[]notional.pattern: ^(?:-?[1-9][0-9]*|0)$

- []fraction (string · int32; obligatorio)

[]fraction ejemplo: 1000000000

[]fraction.Tipo: string · int32

[]fraction.Siempre `0`. Se mantiene por compatibilidad hacia atrás.

[]fraction.format: int32

[]fraction.pattern: ^(?:-?[1-9][0-9]*|0)$

- []margin (string · int32; obligatorio)

[]margin ejemplo: 1000000000

[]margin.Tipo: string · int32

[]margin.Margen que actualmente respalda la posición, fp9 sin procesar. Cambia con pnl, financiación y cambios manuales de margen.

[]margin.format: int32

[]margin.pattern: ^(?:-?[1-9][0-9]*|0)$

- []pnl (string · int32 · nullable; obligatorio)

[]pnl ejemplo: 1000000000

[]pnl.Tipo: string · int32 · nullable

[]pnl.Pnl realizado acumulado a lo largo de cada evento de la posición, fp9 sin procesar.

[]pnl.format: int32

[]pnl.pattern: ^(?:-?[1-9][0-9]*|0)$

- []funding (string · int32 · nullable; obligatorio)

[]funding ejemplo: 1000000000

[]funding.Tipo: string · int32 · nullable

[]funding.Financiación pagada (negativa) o recibida (positiva) durante la vida de la posición, fp9 en bruto.

[]funding.format: int32

[]funding.pattern: ^(?:-?[1-9][0-9]*|0)$

- []rolloverFee (string · int32; obligatorio)

[]rolloverFee ejemplo: 1000000000

[]rolloverFee.Tipo: string · int32

[]rolloverFee.Siempre `0`. Se mantiene por compatibilidad hacia atrás.

[]rolloverFee.format: int32

[]rolloverFee.pattern: ^(?:-?[1-9][0-9]*|0)$

- []settlementOraclePrice (string · int32; obligatorio)

[]settlementOraclePrice ejemplo: 1000000000

[]settlementOraclePrice.Tipo: string · int32

[]settlementOraclePrice.Siempre `1000000000` (1.0). Se mantiene por compatibilidad con versiones anteriores.

[]settlementOraclePrice.format: int32

[]settlementOraclePrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []fee (string · int32; obligatorio)

[]fee ejemplo: 1000000000

[]fee.Tipo: string · int32

[]fee.Comisiones de trading cobradas durante la vida de la posición, fp9 en bruto.

[]fee.format: int32

[]fee.pattern: ^(?:-?[1-9][0-9]*|0)$

- []feeRate (string · int32; obligatorio)

[]feeRate ejemplo: 1000000000

[]feeRate.Tipo: string · int32

[]feeRate.Tasa de comisión aplicada a la posición, fp9 fracción en bruto (`1000000` = 0.1%).

[]feeRate.format: int32

[]feeRate.pattern: ^(?:-?[1-9][0-9]*|0)$

- []exchangedQuote (string · int32; obligatorio)

[]exchangedQuote ejemplo: 1000000000

[]exchangedQuote.Tipo: string · int32

[]exchangedQuote.Importe de cotización intercambiado por el evento más reciente, fp9 en bruto.

[]exchangedQuote.format: int32

[]exchangedQuote.pattern: ^(?:-?[1-9][0-9]*|0)$

- []exchangedBase (string · int32; obligatorio)

[]exchangedBase ejemplo: 1000000000

[]exchangedBase.Tipo: string · int32

[]exchangedBase.Importe base intercambiado por el evento más reciente, fp9 en bruto.

[]exchangedBase.format: int32

[]exchangedBase.pattern: ^(?:-?[1-9][0-9]*|0)$

- []direction (string · enum; obligatorio)

[]direction ejemplo: long

[]direction.Tipo: string · enum

[]direction.Dirección de la posición.

[]direction.Valores permitidos: ["long","short"]

- []eventName (string · enum; obligatorio)

[]eventName ejemplo: addMargin

[]eventName.Tipo: string · enum

[]eventName.Tipo del evento más reciente aplicado a la posición.

[]eventName.Valores permitidos: ["addMargin","removeMargin","closePosition","increasePosition","liquidate","forceClose","payFunding"]

- []pnlInEvent (string · int32; obligatorio)

[]pnlInEvent ejemplo: 1000000000

[]pnlInEvent.Tipo: string · int32

[]pnlInEvent.Pnl realizado del evento más reciente, fp9 en bruto.

[]pnlInEvent.format: int32

[]pnlInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$

- []rawPnlInEvent (string · int32; obligatorio)

[]rawPnlInEvent ejemplo: 1000000000

[]rawPnlInEvent.Tipo: string · int32

[]rawPnlInEvent.Pnl realizado del evento más reciente antes del ajuste de 60 segundos, fp9 en bruto. Difiere de `pnlInEvent` solo cuando se activó el ajuste.

[]rawPnlInEvent.format: int32

[]rawPnlInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$

- []profitAdjustmentApplied (boolean; obligatorio)

[]profitAdjustmentApplied ejemplo: true

[]profitAdjustmentApplied.Tipo: boolean

[]profitAdjustmentApplied.Si el ajuste de 60 segundos limitó la ganancia del evento más reciente — dentro de un minuto de una apertura o un aumento de la posición, el pnl de la posición no puede crecer por encima de lo que era en ese momento.

- []holdingTimeMs (string[]; obligatorio)

[]holdingTimeMs ejemplo: [
  "string"
]

[]holdingTimeMs.Tipo: string[]

[]holdingTimeMs.Cuánto tiempo se mantuvo la posición antes del cierre más reciente, en milisegundos, contado desde la apertura o el último incremento. Nulo en eventos que no son cierres.

[]holdingTimeMs.[]Tipo: string

- []feeInEvent (string · int32; obligatorio)

[]feeInEvent ejemplo: 1000000000

[]feeInEvent.Tipo: string · int32

[]feeInEvent.Comisión cobrada por el evento más reciente, fp9 en bruto.

[]feeInEvent.format: int32

[]feeInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$

- []fundingInEvent (string · int32; obligatorio)

[]fundingInEvent ejemplo: 1000000000

[]fundingInEvent.Tipo: string · int32

[]fundingInEvent.Financiación liquidada por el evento más reciente, fp9 en bruto.

[]fundingInEvent.format: int32

[]fundingInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$

- []rolloverFeeInEvent (string · int32; obligatorio)

[]rolloverFeeInEvent ejemplo: 1000000000

[]rolloverFeeInEvent.Tipo: string · int32

[]rolloverFeeInEvent.Siempre `0`. Se mantiene por compatibilidad hacia atrás.

[]rolloverFeeInEvent.format: int32

[]rolloverFeeInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$

- []executionFeeRate (string · int32; obligatorio)

[]executionFeeRate ejemplo: 1000000000

[]executionFeeRate.Tipo: string · int32

[]executionFeeRate.Siempre `0`. Se mantiene por compatibilidad hacia atrás.

[]executionFeeRate.format: int32

[]executionFeeRate.pattern: ^(?:-?[1-9][0-9]*|0)$

- []executionFeeInEvent (string · int32; obligatorio)

[]executionFeeInEvent ejemplo: 1000000000

[]executionFeeInEvent.Tipo: string · int32

[]executionFeeInEvent.Siempre `0`. Se mantiene por compatibilidad hacia atrás.

[]executionFeeInEvent.format: int32

[]executionFeeInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$

- []executionFee (string · int32; obligatorio)

[]executionFee ejemplo: 1000000000

[]executionFee.Tipo: string · int32

[]executionFee.Siempre `0`. Se mantiene por compatibilidad hacia atrás.

[]executionFee.format: int32

[]executionFee.pattern: ^(?:-?[1-9][0-9]*|0)$

- []timestamp (string · date-time; obligatorio)

[]timestamp ejemplo: 2026-05-01T12:30:00.000Z

[]timestamp.Tipo: string · date-time

[]timestamp.Marca de tiempo del evento más reciente. Mismo valor que `lastUpdatedAt`.

[]timestamp.format: date-time

- []isOnchain (boolean; obligatorio)

[]isOnchain ejemplo: true

[]isOnchain.Tipo: boolean

[]isOnchain.Siempre `true`. Se mantiene por compatibilidad con versiones anteriores.

- []roe (string · int32; obligatorio)

[]roe ejemplo: 1000000000

[]roe.Tipo: string · int32

[]roe.Rentabilidad sobre el capital de la posición — pnl realizado sobre el margen aportado, fp9 fracción sin procesar.

[]roe.format: int32

[]roe.pattern: ^(?:-?[1-9][0-9]*|0)$

- []scalpingCoefficient (string · int32; obligatorio)

[]scalpingCoefficient ejemplo: 1000000000

[]scalpingCoefficient.Tipo: string · int32

[]scalpingCoefficient.Multiplicador dinámico de spread que se aplicó a la posición, fp9 sin procesar (`1000000000` = 1.0). Por encima de 1 cuando la operación quedó dentro de la ventana de scalping del mercado.

[]scalpingCoefficient.format: int32

[]scalpingCoefficient.pattern: ^(?:-?[1-9][0-9]*|0)$

- []closeReason (string[]; obligatorio)

[]closeReason ejemplo: [
  "string"
]

[]closeReason.Tipo: string[]

[]closeReason.Por qué la plataforma cerró la posición (por ejemplo, `weekly_session_risk_close`). Nulo para las posiciones cerradas por el trader y para las abiertas.

[]closeReason.[]Tipo: string

- []order (object · nullable; obligatorio)

[]order ejemplo: {
  "id": "00000000-0000-4000-8000-000000000000",
  "txId": "string",
  "trader": "00000000-0000-4000-8000-000000000000",
  "market": "00000000-0000-4000-8000-000000000000",
  "status": "active",
  "type": "market",
  "direction": "long",
  "triggerPrice": "1000000000",
  "requestedTriggerPrice": "1000000000",
  "stopPrice": "1000000000",
  "limitPrice": "1000000000",
  "stopTriggerPrice": "1000000000",
  "takeTriggerPrice": "1000000000",
  "trailingStopActivationPrice": "1000000000",
  "trailingStopOffset": "1000000000",
  "trailingStopOffsetPercent": "1000000000",
  "leverage": "1000000000",
  "index": "string",
  "positionId": "string",
  "parentOrderId": "string",
  "expiration": "2026-05-01T12:30:00.000Z",
  "amount": "1000000000",
  "indexPrice": "1000000000",
  "settlementOraclePrice": "1000000000",
  "createdAt": "2026-05-01T12:30:00.000Z",
  "error": "string",
  "realizedPnl": "1000000000",
  "rawRealizedPnl": "1000000000",
  "profitAdjustmentApplied": true,
  "executedAfterPause": true,
  "sizeMode": "quote",
  "baseSize": "1000000000",
  "reservedAmount": "1000000000",
  "errorCode": "string",
  "reason": "force_close"
}

[]order.Tipo: object · nullable

[]order.Campos obligatorios: id, txId, trader, market, status, type, direction, triggerPrice, requestedTriggerPrice, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, trailingStopActivationPrice, trailingStopOffset, trailingStopOffsetPercent, leverage, index, positionId, parentOrderId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error, realizedPnl, rawRealizedPnl, profitAdjustmentApplied, executedAfterPause, sizeMode, baseSize, reservedAmount, errorCode, reason

[]order.Tipos de campos obligatorios: id (string · uuid; obligatorio), txId (string; obligatorio), trader (string · uuid; obligatorio), market (string · uuid; obligatorio), status (string · enum; obligatorio), type (string · enum; obligatorio), direction (string · enum; obligatorio), triggerPrice (string · int32; obligatorio), requestedTriggerPrice (string · int32 · nullable; obligatorio), stopPrice (string · int32; obligatorio), limitPrice (string · int32; obligatorio), stopTriggerPrice (string · int32; obligatorio), takeTriggerPrice (string · int32; obligatorio), trailingStopActivationPrice (string · int32; obligatorio), trailingStopOffset (string · int32; obligatorio), trailingStopOffsetPercent (string · int32; obligatorio), leverage (string · int32 · nullable; obligatorio), index (string; obligatorio), positionId (string · nullable; obligatorio), parentOrderId (string · nullable; obligatorio), expiration (string · date-time · nullable; obligatorio), amount (string · int32; obligatorio), indexPrice (string · int32 · nullable; obligatorio), settlementOraclePrice (string · int32; obligatorio), createdAt (string · date-time; obligatorio), error (string · nullable; obligatorio), realizedPnl (string · int32 · nullable; obligatorio), rawRealizedPnl (string · int32 · nullable; obligatorio), profitAdjustmentApplied (boolean; obligatorio), executedAfterPause (boolean; obligatorio), sizeMode (string · enum; obligatorio), baseSize (string · int32 · nullable; obligatorio), reservedAmount (string · int32 · nullable; obligatorio), errorCode (string · nullable; obligatorio), reason (string · enum · nullable; obligatorio)

[]order.Orden que produjo este evento; null para eventos que la plataforma generó por sí misma, como financiación o un cierre forzoso.

- []order.id (string · uuid; obligatorio)

[]order.id ejemplo: 00000000-0000-4000-8000-000000000000

[]order.id.Tipo: string · uuid

[]order.id.Identificador de la orden.

[]order.id.format: uuid

[]order.id.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- []order.txId (string; obligatorio)

[]order.txId ejemplo: string

[]order.txId.Tipo: string

[]order.txId.Identificador de la orden. Se conserva por compatibilidad con versiones anteriores, siempre igual a `id`.

- []order.trader (string · uuid; obligatorio)

[]order.trader ejemplo: 00000000-0000-4000-8000-000000000000

[]order.trader.Tipo: string · uuid

[]order.trader.Cuenta del trader a la que pertenece la orden.

[]order.trader.format: uuid

[]order.trader.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- []order.market (string · uuid; obligatorio)

[]order.market ejemplo: 00000000-0000-4000-8000-000000000000

[]order.market.Tipo: string · uuid

[]order.market.Mercado en el que se coloca la orden.

[]order.market.format: uuid

[]order.market.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

- []order.status (string · enum; obligatorio)

[]order.status ejemplo: active

[]order.status.Tipo: string · enum

[]order.status.Estado del ciclo de vida: `active` mientras espera, `executed` una vez ejecutada, `canceled` cuando es cancelada por el trader o la plataforma, `canceled_by_update` cuando es reemplazada por una edición, `canceled_by_position` cuando la posición a la que estaba vinculada desapareció, `canceled_by_error` cuando falló la ejecución — consulta `errorCode`.

[]order.status.Valores permitidos: ["active","canceled","canceled_by_update","canceled_by_error","canceled_by_position","executed"]

- []order.type (string · enum; obligatorio)

[]order.type ejemplo: market

[]order.type.Tipo: string · enum

[]order.type.Tipo de orden. `liquidation` marca una orden que el propio motor generó.

[]order.type.Valores permitidos: ["market","limit","stop","trailing_stop","take","stop_limit","stop_market","liquidation"]

- []order.direction (string · enum; obligatorio)

[]order.direction ejemplo: long

[]order.direction.Tipo: string · enum

[]order.direction.Dirección de la orden.

[]order.direction.Valores permitidos: ["long","short"]

- []order.triggerPrice (string · int32; obligatorio)

[]order.triggerPrice ejemplo: 1000000000

[]order.triggerPrice.Tipo: string · int32

[]order.triggerPrice.Precio al que se dispara la orden, fp9 en bruto. `0` cuando la orden no lleva disparador.

[]order.triggerPrice.format: int32

[]order.triggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.requestedTriggerPrice (string · int32 · nullable; obligatorio)

[]order.requestedTriggerPrice ejemplo: 1000000000

[]order.requestedTriggerPrice.Tipo: string · int32 · nullable

[]order.requestedTriggerPrice.Precio de activación tal como se solicitó, antes de que el motor lo desplazara hasta la distancia mínima de stop, fp9 en bruto. Nulo cuando el precio solicitado se mantuvo tal cual.

[]order.requestedTriggerPrice.format: int32

[]order.requestedTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.stopPrice (string · int32; obligatorio)

[]order.stopPrice ejemplo: 1000000000

[]order.stopPrice.Tipo: string · int32

[]order.stopPrice.Precio de activación de una orden `stop_market` / `stop_limit`, fp9 en bruto; `0` para cualquier otro tipo.

[]order.stopPrice.format: int32

[]order.stopPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.limitPrice (string · int32; obligatorio)

[]order.limitPrice ejemplo: 1000000000

[]order.limitPrice.Tipo: string · int32

[]order.limitPrice.Precio al que se coloca la orden una vez activada, fp9 en bruto: el precio stop-limit, recurriendo al precio de activación como alternativa.

[]order.limitPrice.format: int32

[]order.limitPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.stopTriggerPrice (string · int32; obligatorio)

[]order.stopTriggerPrice ejemplo: 1000000000

[]order.stopTriggerPrice.Tipo: string · int32

[]order.stopTriggerPrice.Stop-loss asociado a la orden, fp9 en bruto. `0` cuando no hay ninguno asociado.

[]order.stopTriggerPrice.format: int32

[]order.stopTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.takeTriggerPrice (string · int32; obligatorio)

[]order.takeTriggerPrice ejemplo: 1000000000

[]order.takeTriggerPrice.Tipo: string · int32

[]order.takeTriggerPrice.Take-profit asociado a la orden, fp9 en bruto. `0` cuando no hay ninguno asociado.

[]order.takeTriggerPrice.format: int32

[]order.takeTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.trailingStopActivationPrice (string · int32; obligatorio)

[]order.trailingStopActivationPrice ejemplo: 1000000000

[]order.trailingStopActivationPrice.Tipo: string · int32

[]order.trailingStopActivationPrice.Precio al que un stop móvil comienza a hacer seguimiento, fp9 sin procesar. `0` cuando hace seguimiento desde la creación.

[]order.trailingStopActivationPrice.format: int32

[]order.trailingStopActivationPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.trailingStopOffset (string · int32; obligatorio)

[]order.trailingStopOffset ejemplo: 1000000000

[]order.trailingStopOffset.Tipo: string · int32

[]order.trailingStopOffset.Distancia de seguimiento como un importe absoluto de cotización, fp9 sin procesar. `0` cuando la distancia se establece como porcentaje.

[]order.trailingStopOffset.format: int32

[]order.trailingStopOffset.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.trailingStopOffsetPercent (string · int32; obligatorio)

[]order.trailingStopOffsetPercent ejemplo: 1000000000

[]order.trailingStopOffsetPercent.Tipo: string · int32

[]order.trailingStopOffsetPercent.Distancia de seguimiento como una fracción del precio, fp9 sin procesar. `0` cuando la distancia es absoluta.

[]order.trailingStopOffsetPercent.format: int32

[]order.trailingStopOffsetPercent.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.leverage (string · int32 · nullable; obligatorio)

[]order.leverage ejemplo: 1000000000

[]order.leverage.Tipo: string · int32 · nullable

[]order.leverage.Apalancamiento de la orden, fp9 en bruto. Nulo en órdenes de cierre, que heredan el apalancamiento de la posición.

[]order.leverage.format: int32

[]order.leverage.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.index (string; obligatorio)

[]order.index ejemplo: string

[]order.index.Tipo: string

[]order.index.Identificador de la orden. Se conserva por compatibilidad con versiones anteriores, siempre igual a `id`.

- []order.positionId (string · nullable; obligatorio)

[]order.positionId ejemplo: string

[]order.positionId.Tipo: string · nullable

[]order.positionId.Posición a la que está asociada una orden de cierre. Nulo para órdenes que abren o aumentan una posición.

- []order.parentOrderId (string · nullable; obligatorio)

[]order.parentOrderId ejemplo: string

[]order.parentOrderId.Tipo: string · nullable

[]order.parentOrderId.Orden de la que se generó esta: un stop o un take creado a partir de `stopTriggerPrice` / `takeTriggerPrice`, o la orden limit en la que se convirtió un `stop_limit`. Nulo cuando la orden se envió directamente.

- []order.expiration (string · date-time · nullable; obligatorio)

[]order.expiration ejemplo: 2026-05-01T12:30:00.000Z

[]order.expiration.Tipo: string · date-time · nullable

[]order.expiration.Siempre nulo. Se mantiene por compatibilidad con versiones anteriores: las órdenes no expiran por sí solas.

[]order.expiration.format: date-time

- []order.amount (string · int32; obligatorio)

[]order.amount ejemplo: 1000000000

[]order.amount.Tipo: string · int32

[]order.amount.Tamaño de la orden, fp9 en bruto, en la unidad que usa su clase: en una orden de incremento, un importe de cotización — la reserva mientras espera, y lo que realmente gastó una vez ejecutada; en una orden de cierre (`stop`, `take`, `trailing_stop`), el tamaño del activo base que cierra, tal como se solicitó al crearla.

[]order.amount.format: int32

[]order.amount.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.indexPrice (string · int32 · nullable; obligatorio)

[]order.indexPrice ejemplo: 1000000000

[]order.indexPrice.Tipo: string · int32 · nullable

[]order.indexPrice.Precio índice al que se ejecutó la orden, fp9 en bruto. Nulo mientras la orden no se haya ejecutado.

[]order.indexPrice.format: int32

[]order.indexPrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.settlementOraclePrice (string · int32; obligatorio)

[]order.settlementOraclePrice ejemplo: 1000000000

[]order.settlementOraclePrice.Tipo: string · int32

[]order.settlementOraclePrice.Siempre `1000000000` (1.0). Se mantiene por compatibilidad con versiones anteriores.

[]order.settlementOraclePrice.format: int32

[]order.settlementOraclePrice.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.createdAt (string · date-time; obligatorio)

[]order.createdAt ejemplo: 2026-05-01T12:30:00.000Z

[]order.createdAt.Tipo: string · date-time

[]order.createdAt.Cuándo se aceptó la orden.

[]order.createdAt.format: date-time

- []order.error (string · nullable; obligatorio)

[]order.error ejemplo: string

[]order.error.Tipo: string · nullable

[]order.error.Siempre null. Se mantiene por compatibilidad hacia atrás — utilice `errorCode`.

- []order.realizedPnl (string · int32 · nullable; obligatorio)

[]order.realizedPnl ejemplo: 1000000000

[]order.realizedPnl.Tipo: string · int32 · nullable

[]order.realizedPnl.Pnl realizado por esta orden, fp9 en bruto. Se establece solo en una orden de cierre ejecutada; null mientras está pendiente y en órdenes que abren o aumentan una posición.

[]order.realizedPnl.format: int32

[]order.realizedPnl.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.rawRealizedPnl (string · int32 · nullable; obligatorio)

[]order.rawRealizedPnl ejemplo: 1000000000

[]order.rawRealizedPnl.Tipo: string · int32 · nullable

[]order.rawRealizedPnl.Pnl realizado antes del ajuste de 60 segundos, fp9 en bruto. Difiere de `realizedPnl` solo cuando se activó el ajuste.

[]order.rawRealizedPnl.format: int32

[]order.rawRealizedPnl.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.profitAdjustmentApplied (boolean; obligatorio)

[]order.profitAdjustmentApplied ejemplo: true

[]order.profitAdjustmentApplied.Tipo: boolean

[]order.profitAdjustmentApplied.Si el ajuste de 60 segundos limitó la ganancia de esta orden — dentro de un minuto de una apertura o un aumento, el pnl de la posición no puede crecer por encima de lo que era en ese momento.

- []order.executedAfterPause (boolean; obligatorio)

[]order.executedAfterPause ejemplo: true

[]order.executedAfterPause.Tipo: boolean

[]order.executedAfterPause.Indica si la orden se ejecutó después de una pausa del mercado. No lo establece el motor actual — siempre `false`.

- []order.sizeMode (string · enum; obligatorio)

[]order.sizeMode ejemplo: quote

[]order.sizeMode.Tipo: string · enum

[]order.sizeMode.Cómo se expresó el tamaño al crearse: `quote` dimensiona la orden por `amount`, `base` la dimensiona por `baseSize`.

[]order.sizeMode.Valores permitidos: ["quote","base"]

- []order.baseSize (string · int32 · nullable; obligatorio)

[]order.baseSize ejemplo: 1000000000

[]order.baseSize.Tipo: string · int32 · nullable

[]order.baseSize.Tamaño de la orden en unidades del activo base, fp9 en bruto. Nulo para órdenes dimensionadas por `quote`.

[]order.baseSize.format: int32

[]order.baseSize.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.reservedAmount (string · int32 · nullable; obligatorio)

[]order.reservedAmount ejemplo: 1000000000

[]order.reservedAmount.Tipo: string · int32 · nullable

[]order.reservedAmount.Importe de quote reservado cuando se creó la orden con sizeMode=base, fp9 en bruto. Se mantiene en la reserva original después de la ejecución, mientras que `amount` se reescribe a lo que se gastó. Nulo para órdenes dimensionadas por `quote`, donde `amount` es la reserva.

[]order.reservedAmount.format: int32

[]order.reservedAmount.pattern: ^(?:-?[1-9][0-9]*|0)$

- []order.errorCode (string · nullable; obligatorio)

[]order.errorCode ejemplo: string

[]order.errorCode.Tipo: string · nullable

[]order.errorCode.Por qué falló la ejecución, establecido junto con el estado `canceled_by_error` — por ejemplo `insufficient_reserve_at_execution`, `order_below_min_notional`, `order_exceeds_market_depth` o `slippage_tolerance`. Nulo en caso contrario.

- []order.reason (string · enum · nullable; obligatorio)

[]order.reason ejemplo: force_close

[]order.reason.Tipo: string · enum · nullable

[]order.reason.Por qué la plataforma canceló la orden por sí misma, por ejemplo `force_close` o `weekly_session_risk_close`. Nulo para cancelaciones impulsadas por el trader.

[]order.reason.Valores permitidos: ["force_close","stop_accounts_fail","stop_accounts_freeze","stop_accounts_promote","stop_accounts_manual","weekly_session_risk_close",null]

Ejemplo



```json
[
  {
    "idx": [
      "string"
    ],
    "txId": [
      "string"
    ],
    "version": 0,
    "openedAt": "2026-05-01T12:30:00.000Z",
    "lastUpdatedAt": "2026-05-01T12:30:00.000Z",
    "closedAt": "2026-05-01T12:30:00.000Z",
    "type": "long",
    "status": "opened",
    "market": "00000000-0000-4000-8000-000000000000",
    "trader": "00000000-0000-4000-8000-000000000000",
    "size": "1000000000",
    "notional": "1000000000",
    "fraction": "1000000000",
    "margin": "1000000000",
    "pnl": "1000000000",
    "funding": "1000000000",
    "rolloverFee": "1000000000",
    "settlementOraclePrice": "1000000000",
    "fee": "1000000000",
    "feeRate": "1000000000",
    "exchangedQuote": "1000000000",
    "exchangedBase": "1000000000",
    "direction": "long",
    "eventName": "addMargin",
    "pnlInEvent": "1000000000",
    "rawPnlInEvent": "1000000000",
    "profitAdjustmentApplied": true,
    "holdingTimeMs": [
      "string"
    ],
    "feeInEvent": "1000000000",
    "fundingInEvent": "1000000000",
    "rolloverFeeInEvent": "1000000000",
    "executionFeeRate": "1000000000",
    "executionFeeInEvent": "1000000000",
    "executionFee": "1000000000",
    "timestamp": "2026-05-01T12:30:00.000Z",
    "isOnchain": true,
    "roe": "1000000000",
    "scalpingCoefficient": "1000000000",
    "closeReason": [
      "string"
    ],
    "order": {
      "id": "00000000-0000-4000-8000-000000000000",
      "txId": "string",
      "trader": "00000000-0000-4000-8000-000000000000",
      "market": "00000000-0000-4000-8000-000000000000",
      "status": "active",
      "type": "market",
      "direction": "long",
      "triggerPrice": "1000000000",
      "requestedTriggerPrice": "1000000000",
      "stopPrice": "1000000000",
      "limitPrice": "1000000000",
      "stopTriggerPrice": "1000000000",
      "takeTriggerPrice": "1000000000",
      "trailingStopActivationPrice": "1000000000",
      "trailingStopOffset": "1000000000",
      "trailingStopOffsetPercent": "1000000000",
      "leverage": "1000000000",
      "index": "string",
      "positionId": "string",
      "parentOrderId": "string",
      "expiration": "2026-05-01T12:30:00.000Z",
      "amount": "1000000000",
      "indexPrice": "1000000000",
      "settlementOraclePrice": "1000000000",
      "createdAt": "2026-05-01T12:30:00.000Z",
      "error": "string",
      "realizedPnl": "1000000000",
      "rawRealizedPnl": "1000000000",
      "profitAdjustmentApplied": true,
      "executedAfterPause": true,
      "sizeMode": "quote",
      "baseSize": "1000000000",
      "reservedAmount": "1000000000",
      "errorCode": "string",
      "reason": "force_close"
    }
  }
]
```