Extended hours trading

DriveWealth supports extended hours trading for U.S. equities, enabling your customers to place trades during the pre-market (4:00 AM – 9:30 AM ET) and post-market (4:00 PM – 8:00 PM ET) sessions. This guide outlines how to configure user accounts, disclosures, and order attributes to support trading outside regular market hours.

🚧

Reach out to your Drivewealth Relationship Management to enable Extended Hours.

Step 1 : Accept Extended Hours Agreement

For fully disclosed partners, users must accept the Extended Hours Trading Agreement before they can place trades in the extended session.

Include extendedHoursAgreement set to true within the DISCLOSURES object while Creating a User

POST /back-office/users
{
  "userType": "INDIVIDUAL_TRADER",
  "documents": [
    {
      "type": "BASIC_INFO",
      "data": {
        "firstName": "Justin",
        "lastName": "Smith",
        "country": "USA",
        "emailAddress": "[email protected]",
        "language": "en_US",
        "phone": "18004612680"
      }
    },
....
..
...
   {  
      "type": "DISCLOSURES",  
      "data": {  
        "extendedHoursAgreement": true       <-- extended hours flag
      }  
    } 
  ]
}

For existing users, use the Update User endpoint with the extendedHoursAgreement set to true to enable.

PATCH /back-office/users/{userID}  
{  
  "documents": [  
    {  
      "type": "DISCLOSURES",  
      "data": {  
        "extendedHoursAgreement": true  
      }  
    }  
  ]  
}

Step 2 : Enabling Brokerage Account for Extended Hours

Include extendedHoursEnrolledas true as part of the Create Account request

POST /back-office/accounts
{
  "accountType": "LIVE",
  "accountManagementType": "SELF",
  "tradingType": "CASH",
  "userID": "cc07f91b-7ee1-4868-b8fc-823c70a1b932",
  "extendedHoursEnrolled": true                     <-- extended hours flag
}

For existing accounts, use the Update Account endpoint to enroll the account for Extended Hours Trading.

PATCH /back-office/accounts/{accountID}  
{
"extendedHoursEnrolled": true      <-- false if you want to opt out
}

Note: Both Steps 1 & 2 are required in order to place Extended Hours trades.

Step 3: Verifying Instrument Eligibility (Notional Trading)

DriveWealth supports notional (fractional dollar-based) trading during extended hours for a limited subset of ~1,000 eligible symbols.

To verify if a ticker is enabled for Notional Extended Hours trading, use the List Instruments endpoint and check for the enableExtendedHoursNotionalStatus field.

Possible values:

  • ACTIVE — Buy and sell notional orders allowed in extended hours

  • CLOSE_ONLY — Only sell notional orders allowed

  • INACTIVE — Notional trading not allowed in extended hours

    Note: Whole-share orders are eligible across all symbols — this restriction applies only to notional orders.

Market Order Collaring (Fractional only)
To allow for market orders to be accepted in the pre and post markets, DriveWealth takes incoming market orders and send them through as limit orders. These orders are considered "collared" and follow the structure below:

  • Buy order: Limit price = NBBO ask price +2.5%
  • Sell order: Limit price = NBBO bid price -2.5%

Example: we submit a buy order (99 by 100). We stamp it at 101.5 but it executes at 100 as long as the price stays. If the price changes in the time it takes us to get the order in, it will execute with the + 2.5%.

Order Type Support Matrix

Order TypeOrder ModeExtended Hours EligibleSymbol Eligiblity
MARKETWhole Share (quantity)Yes~ 1,000 eligible symbols only
MARKETNotional (amountCash)Yes~ 1,000 eligible symbols only
LIMITWhole Share (quantity)YesAll symbols
LIMITNotional (amountCash)Not supportedN/

Step 4: Submitting an Extended Hours Order

When placing an order to be executed in the pre- or post-market session, you must include extendedHours as true and timeInForce as GTX

{
  "accountID": "abc123",
  "symbol": "AAPL",
  "side": "BUY",
  "orderType": "MARKET",
  "amountCash": 100.00,
  "timeInForce": "GTX",
  "extendedHours": true
}
{  
  "accountID": "abc123",  
  "symbol": "MSFT",  
  "side": "buy",  
  "orderType": "MARKET",  
  "quantity": 2,  
  "timeInForce": "GTX",  
  "extendedHours": true  
}
{  
  "accountID": "abc123",  
  "symbol": "GOOGL",  
  "side": "buy",  
  "orderType": "LIMIT",  
  "quantity": 1,  
  "limitPrice": 2800.00,  
  "timeInForce": "GTX",  
  "extendedHours": true  
}

🚧

Things To Remember

  • extendedHours must be set to true per order — it does not persist at the account level.
  • Ensure customers are informed about the risks of extended hours trading, such as lower liquidity, higher volatility, and potential for partial fills.

Common Errors during Extended Hours

Error CodeError ResponseError Description
O005ORDER_INVALID_ORDER_TYPEInvalid order type.
O006ORDER_INVALID_ORDER_SIDEInvalid order side.
O010ORDER_INVALID_STOP_REQUESTIncomplete stop order. One or more parameters may be missing or invalid.
O011ORDER_INVALID_LIMIT_REQUESTIncomplete limit order. One or more parameters may be missing or invalid.
O012ORDER_INVALID_MARKET_REQUESTInvalid market order. One or more parameters may be missing or invalid.
O015ORDER_EITHER_QTY_OR_CASHInvalid order. Enter one from amount OR order quantity.
O016ORDER_INVALID_ORDER_METHODInvalid order method.
O017ORDER_INVALID_MIT_REQUESTIncomplete marketIfTouched order. One or more parameters may be missing or invalid.
O018ORDER_INVALID_TIF_REQUESTInvalid Time In Force. One or more parameters may be missing or invalid.
O019ORDER_INVALID_EXPIRATION_REQUESTInvalid order expiration. One or more parameters may be missing or invalid.
O050ORDER_NOT_FOUNDRequested order resource was not found.
O098ORDER_ACCOUNT_ERROROrders can only be placed on open accounts.
O099ORDER_ERRORThere was an error processing your order.
O123ORDER_EXPIREDThe order has expired.

For a list of all errors refer to: API Error Reference