Liquidity.io

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

  1. Client submits order via POST /v1/orders
  2. 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)
  3. Order is persisted with status PENDING

Match

Public equities and crypto:

  • Crypto orders route through fortress.api to 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:

  1. BitGo executes the trade via Prime
  2. BitGo sends a TRANSFER webhook to fortress.api
  3. fortress.api updates the order status and records the trade via saveCryptoTransaction
  4. Trades are saved to the unified trades table 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 CategoryaccreditationTypeBuyer Must BeVerification
Public stocksnullAny investorNone
Fixed incomenullAny investorNone
CommoditiesnullAny investorNone
ForexnullAny investorNone
CryptonullAny investorNone
Private (Reg D 506c)506cVerified accreditedSimplici third-party
Private (Reg D 506b)506bSelf-certified accreditedSimplici self-cert
Pre-IPO506c or 506bAccredited (per asset)Simplici
Retail privatenullAny investorNone

Accreditation Flow

  1. User initiates KYC through Simplici
  2. For 506b: user self-certifies accredited status
  3. For 506c: Simplici performs third-party income/asset verification
  4. accreditationStatus is set to completed on success
  5. Every order creation checks the buyer's accreditation status against the asset's accreditationType
  6. 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

On this page