---
title: "Check equity order impact"
method: POST
path: "/trade/impact"
tags: ["Trading"]
---

# Check equity order impact

`POST /trade/impact`

Simulates an order and its impact on the account. This endpoint does not place the order with the brokerage. If successful, it returns a `Trade` object and the ID of the object can be used to place the order with the brokerage using the [place checked order endpoint](/reference/Trading/Trading_placeOrder). Please note that the `Trade` object returned expires after 5 minutes. Any order placed using an expired `Trade` will be rejected.

## Query parameters

- `userId` string, required — SnapTrade User ID. This is chosen by the API partner and can be any string that is a) unique to the user, and b) immutable for the user. It is recommended to NOT use email addresses for this property because they are usually not immutable.
- `userSecret` string, required — SnapTrade User Secret. This is a randomly generated string and should be stored securely. If compromised, please rotate it via the [rotate user secret endpoint](/reference/Authentication/Authentication_resetSnapTradeUserSecret).

## Request body

- ManualTradeForm — Inputs for placing an order with the brokerage.
  - `account_id` string, uuid, required — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
  - `action` 'BUY' | 'SELL', required — The action describes the intent or side of a trade. This is either `BUY` or `SELL`.
  - `universal_symbol_id` string, uuid, required — Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
  - `order_type` 'Limit' | 'Market' | 'StopLimit' | 'Stop', required — The type of order to place. - For `Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.
  - `time_in_force` 'FOK' | 'Day' | 'GTC' | 'IOC', required — The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - `Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.
  - `price` number, nullable — The limit price for `Limit` and `StopLimit` orders.
  - `stop` number, nullable — The price at which a stop order is triggered for `Stop` and `StopLimit` orders.
  - `units` number — Number of shares for the order. This can be a decimal for fractional orders. Must be `null` if `notional_value` is provided.
  - `notional_value` union — Total notional amount for the order. Must be `null` if `units` is provided. Can only work with `Market` for `order_type` and `Day` for `time_in_force`. This is only available for certain brokerages. Please check the [integrations doc](https://support.snaptrade.com/brokerages-table?v=e7bbcbf9f272441593f93decde660687) for more information.
    - string
    - number

## Response `200`

OK

- ManualTradeAndImpact
  - `trade` ManualTrade — Contains the details of a submitted order.
    - `id` string, uuid — Unique identifier for the submitted order through SnapTrade.
    - `account` string, uuid — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
    - `order_type` 'Limit' | 'Market' | 'StopLimit' | 'Stop' — The type of order to place. - For `Limit` and `StopLimit` orders, the `price` field is required. - For `Stop` and `StopLimit` orders, the `stop` field is required.
    - `time_in_force` 'FOK' | 'Day' | 'GTC' | 'IOC' — The Time in Force type for the order. This field indicates how long the order will remain active before it is executed or expires. Here are the supported values: - `Day` - Day. The order is valid only for the trading day on which it is placed. - `GTC` - Good Til Canceled. The order is valid until it is executed or canceled. - `FOK` - Fill Or Kill. The order must be executed in its entirety immediately or be canceled completely. - `IOC` - Immediate Or Cancel. The order must be executed immediately. Any portion of the order that cannot be filled immediately will be canceled.
    - `symbol` ManualTradeSymbol — Information about the security for the order.
      - `universal_symbol_id` string, uuid — Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.
      - `currency` Currency — Describes a currency object.
        - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
        - `code` string — The ISO-4217 currency code for the currency.
        - `name` string — A human-friendly name of the currency.
      - `local_id` string — This field is deprecated and should not be used.
      - `description` string, nullable — This field is deprecated and should not be used.
      - `symbol` string — This field is deprecated and should not be used.
      - `brokerage_symbol_id` string, uuid — A unique ID for the security within SnapTrade, scoped to the brokerage account that the security belongs to. This is a legacy field and should not be used. Do not rely on this being a stable ID as it can change.
    - `action` 'BUY' | 'SELL' — The action describes the intent or side of a trade. This is either `BUY` or `SELL`.
    - `units` number — Number of shares for the order. This can be a decimal for fractional orders. Must be `null` if `notional_value` is provided.
    - `price` number, nullable — Trade Price if limit or stop limit order
  - `trade_impacts` ManualTradeImpact[] — List of impacts of the trade on the account. The list always contains one value at the moment.
    - `account` string, uuid — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
    - `currency` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
    - `remaining_cash` number, nullable — Estimated amount of cash remaining in the account after the trade.
    - `estimated_commission` number, nullable — Estimated commission for the trade.
    - `forex_fees` number, nullable — Estimated foreign transaction fees for the trade.
  - `combined_remaining_balance` ManualTradeBalance — Estimated remaining balance of the account after the trade is executed.
    - `account` AccountSimple — A single account at a brokerage.
      - `id` string, uuid — Unique identifier for the connected brokerage account. This is the UUID used to reference the account in SnapTrade.
      - `name` string — A display name for the account. Either assigned by the user or by the brokerage itself. For certain brokerages, SnapTrade appends the brokerage name to the account name for clarity.
      - `number` string — The account number assigned by the brokerage. For some brokerages, this field may be masked for security reasons.
      - `institution_account_id` string, nullable — A stable and unique account identifier provided by the institution. Will be set to null if not provided. When present, can be used to check if a user has connected the same brokerage account across multiple connections.
      - `sync_status` AccountSyncStatus — Contains status update for the account sync process between SnapTrade and the brokerage.
        - `transactions` TransactionsStatus — Status of account transaction sync. SnapTrade syncs transactions from the brokerage under the following conditions: 1. Initial connection - SnapTrade syncs all transactions from the brokerage account as far back as the brokerage allows. Check [our integrations doc](https://support.snaptrade.com/brokerages-table?v=6fab8012ade6441fa0c6d9af9c55ce3a) for details on how far back we sync for each brokerage. 2. Daily sync - Once a day SnapTrade syncs new transactions from the brokerage. 3. Manual sync - You can trigger an incremental sync of transactions with the [transactions sync](/reference/Experimental%20endpoints/Connections_syncBrokerageAuthorizationTransactions) endpoint.
          - `initial_sync_completed` boolean — Indicates if the initial sync of transactions has been completed. For accounts with a large number of transactions, the initial sync may take a while to complete.
          - `last_successful_sync` string, date, nullable — Date in YYYY-MM-DD format or null
          - `first_transaction_date` string, date, nullable — Date in YYYY-MM-DD format or null
        - `holdings` HoldingsStatus — Status of account holdings sync. SnapTrade syncs holdings from the brokerage under the following conditions: 1. Initial connection - SnapTrade syncs all holdings (positions, balances, recent orders, and transactions) immediately after the connection is established. 2. Daily sync - Once a day SnapTrade refreshes all holdings from the brokerage. 3. Manual sync - You can trigger a refresh of holdings with the [manual refresh](/reference/Connections/Connections_refreshBrokerageAuthorization) endpoint.
          - `initial_sync_completed` boolean — Indicates if the initial sync of holdings has been completed. For accounts with a large number of positions/orders/transactions, the initial sync may take a while to complete.
          - `last_successful_sync` string, date-time, nullable — Date in ISO 8601 format or null (YYYY-MM-DD HH:MM:SS.mmmmmmTZ)
          - `holdings_unavailable` boolean — Indicates that the brokerage does not expose this account's holdings to SnapTrade, so the empty positions and balances reported for it do not mean the account is empty. This is set for accounts served by a separate brokerage system that we cannot read, such as Vanguard employer-sponsored retirement plans. When this is `true`, prefer the account's total value over the sum of its positions and cash, and note that `initial_sync_completed` and `last_successful_sync` may still reflect an earlier sync.
    - `currency` Currency — Describes a currency object.
      - `id` string, uuid — Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade.
      - `code` string — The ISO-4217 currency code for the currency.
      - `name` string — A human-friendly name of the currency.
    - `cash` number, nullable — Estimated amount of cash remaining in the account after the trade. At the moment this is the same as `remaining_cash` under `trade_impacts`.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `500` — Unexpected Error

---

[API](https://skmtc.net/passiv/apis/snaptrade.md) · [All operations](https://skmtc.net/passiv/apis/snaptrade/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/passiv/snaptrade/revisions/993e058b557e/schema)
