Trading
Order types, order flow, and accreditation requirements per asset type
Order Types
Market Orders
Execute immediately at the best available price. Used for public equities, crypto, and retail private securities where real-time pricing is available.
{
"assetId": "AAPL",
"side": "BUY",
"orderType": "market",
"quantity": 10
}Limit Orders
Execute only at the specified price or better. The order stays open until filled, cancelled, or expired.
{
"assetId": "AAPL",
"side": "BUY",
"orderType": "limit",
"quantity": 10,
"limitPrice": 245.00
}Pre-IPO Orders
Interest-based orders for pre-IPO securities. These are non-binding indications of interest that convert to firm orders upon listing.
{
"assetId": "SPACEX-PRE",
"side": "BUY",
"orderType": "market",
"quantity": 5,
"isPreIPO": true
}Pre-IPO orders are processed through src/services/pre-ipo-orders/service.ts and are subject to the same accreditation gates as standard orders.
Order Flow
Create
- Client submits order via
POST /v1/orders - Backend validates:
- Authentication (IAM token + tenant JWT)
- Asset exists and is tradeable
- Accreditation check (if asset requires it)
- RegCF investment limit check (if applicable)
- Portfolio ownership (for SELL orders)
- Resale restriction check (for restricted lots)
- Order is persisted with status
PENDING
Match
Public equities and crypto:
- Crypto orders route through
fortress.apito BitGo Prime for execution - Public equities route through the broker (16-venue smart order routing)
- The matching engine (Go, Redis) handles traditional order book matching for internal orders
Private securities:
- Orders are matched internally on the ATS
- Matching follows FIFO priority within price levels
- Settlement requires both parties to meet accreditation requirements
Settle
Crypto settlement:
- BitGo executes the trade via Prime
- BitGo sends a
TRANSFERwebhook tofortress.api fortress.apiupdates the order status and records the trade viasaveCryptoTransaction- Trades are saved to the unified
tradestable for reporting
Equities settlement:
- T+1 settlement for public equities (via clearing broker)
- Immediate settlement for internal ATS matches on private securities
Pre-IPO settlement:
- Converted to firm orders upon listing event
- Subject to lockup periods defined by the issuer
Accreditation Requirements
| Asset Category | accreditationType | Buyer Must Be | Verification |
|---|---|---|---|
| Public stocks | null | Any investor | None |
| Fixed income | null | Any investor | None |
| Commodities | null | Any investor | None |
| Forex | null | Any investor | None |
| Crypto | null | Any investor | None |
| Private (Reg D 506c) | 506c | Verified accredited | Simplici third-party |
| Private (Reg D 506b) | 506b | Self-certified accredited | Simplici self-cert |
| Pre-IPO | 506c or 506b | Accredited (per asset) | Simplici |
| Retail private | null | Any investor | None |
Accreditation Flow
- User initiates KYC through Simplici
- For 506b: user self-certifies accredited status
- For 506c: Simplici performs third-party income/asset verification
accreditationStatusis set tocompletedon success- Every order creation checks the buyer's accreditation status against the asset's
accreditationType - If the check fails, the order is rejected with a
400 Bad Request
Restricted Resale
When selling securities subject to a 12-month hold:
- Lots are tracked FIFO with
restriction_end_date - If the lot is still restricted, the sell order is flagged as
isRestrictedOrder=true - Restricted sell orders require the buyer to be an accredited investor (exemption under Reg D/CF)
- Unrestricted lots can be sold to any investor