Alpaca Sign-Off

Live Test Results

Backend verification — April 14, 2026

Live Backend Test Report

Tested 2026-04-14 against api.dev.satschel.com (devnet) and Alpaca Sandbox (broker-api.sandbox.alpaca.markets).

Service Health

ServiceURLStatus
API Gatewayapi.dev.satschel.com✅ 200
Exchangeexchange.dev.satschel.com✅ 200
ID/Onboardingid.dev.satschel.com✅ 200
SuperAdminsuperadmin.dev.satschel.com✅ 200
IAMiam.dev.satschel.com✅ 200
EquityTableequitytable.dev.satschel.com✅ 200
ATS Podats-0 (internal)✅ Running
BD Podbd-0 (internal)✅ Running
TA Podta-0 (internal)✅ Running

1. Asset Retrieval

Stocks (US Equities)

GET /v1/ats/assets?include=stocks&limit=3
→ 12,675 assets with live prices
  EQH  us_equity  $39.22  tradable=true
  CLS  us_equity  $384.56 tradable=true
  SEZL us_equity  $67.97  tradable=true

✅ PASS — status, tradable, fractionable, fractional_eh_enabled all present.

Crypto

GET /v1/ats/assets?include=crypto&limit=3
→ 54 assets with live prices
  BTC  crypto  $75,260
  ETH  crypto  $2,323
  SOL  crypto  $195.50

✅ PASS — min_order_size, price_increment, min_trade_increment from Alpaca.

Fixed Income

GET /v1/ats/fixed-income/corporates → []
GET /v1/ats/fixed-income/treasuries → []

⚠️ Alpaca sandbox has 0 FI assets. Production-only. Backend code ready.


2. Order Execution

Equity Buy (AAPL market)

POST Alpaca /v1/trading/accounts/{id}/orders
  {symbol: "AAPL", qty: "1", side: "buy", type: "market", time_in_force: "day"}
→ id=6f00f166 status=accepted

✅ PASS

Crypto Buy (ETH limit)

POST Alpaca /v1/trading/accounts/{id}/orders
  {symbol: "ETH/USD", qty: "0.01", side: "buy", type: "limit", time_in_force: "gtc", limit_price: "2000"}
→ id=5c2e638d status=pending_new

✅ PASS — TIF=gtc enforced for crypto.

Crypto Buy (BTC limit)

POST Alpaca /v1/trading/accounts/{id}/orders
  {symbol: "BTC/USD", qty: "0.001", side: "buy", type: "limit", time_in_force: "gtc", limit_price: "70000"}
→ id=d80750a6 status=pending_new

✅ PASS


3. Positions

GET Alpaca /v1/trading/accounts/{id}/positions
→ 10 positions
  AAPL     qty=3     avg_entry=$258.04  mkt_value=$776.10
  AMZN     qty=2     avg_entry=$249.46  mkt_value=$497.40
  BRK.B    qty=0.5   avg_entry=$477.86  mkt_value=$238.77
  BTCUSD   qty=0.065 avg_entry=$74,420  mkt_value=$4,821.50
  ETHUSD   qty=0.06  avg_entry=$2,323   mkt_value=$138.95

✅ PASS — 9dp quantity display, P&L calculation.


4. Account Cash & Equity

GET Alpaca /v1/trading/accounts/{id}/account
  Cash: $349,407.69
  Buying Power: $348,507.69
  Portfolio Value: $360,996.54
  Equity: $360,996.54
  Status: ACCOUNT_UPDATED

✅ PASS


5. Statements

GET Alpaca /v1/accounts/{id}/documents
→ 1 document
  type=account_application date=2026-04-13

✅ PASS — Trade confirmations will appear after T+1 settlement.


6. Order Management

ActionEndpointStatus
Place buyPOST /v1/ats/orders
Place sellPOST /v1/ats/orders
Cancel orderDELETE /orders/{id}
Update orderPATCH /orders/{id}
List ordersGET /v1/ats/orders
Close positionDELETE /positions/{sym}

7. Backend Infrastructure

FeatureStatusDetails
Overnight asset syncCron at 23:47 UTC (7:47 PM ET)
Statement email cron8th of each month, BCC Alpaca archive
Pre-trade risk (15c3-5)All orders gated
TIF validationcrypto=gtc/ioc, FI=day, overnight=day
Crypto agreement PATCH/v1/ats/accounts/agreement
Gateway JWT authX-User-Id trust + JWKS validation
Order normalizationAccepts camelCase + snake_case + int
Settlement processor30s cron with retry
Reconciliation9 AM ET daily, 12:30 ET deadline check
Corporate actions13 Alpaca CA types synced
SSE realtime eventsPer-user channels, 30s heartbeat

8. BD Onboarding Pipeline

Step 1: POST /v1/bd/onboarding             → Create application
Step 2: POST /v1/bd/onboarding/{id}/identity → SSN + DOB + address
Step 3: POST /v1/bd/onboarding/{id}/documents → Photo ID upload
Step 4: POST /v1/bd/onboarding/{id}/screen   → AML/SDN screening
Step 5: POST /v1/bd/onboarding/{id}/submit   → Submit for approval
         ↓ On approval:
         → Create Alpaca sub-account (no PII sent)
         → Request MPC wallet
         → Create TA stakeholder
         → Create ATS portfolio

✅ PASS — Full pipeline with Alpaca provisioning.


9. Architecture Compliance

RuleStatus
ATS has no PII✅ Trades via MPC, identity from gateway headers only
BD keeps PII (SSN, address, name, age)✅ Stored in BD collections
TA is blockchain record keeper✅ Stakeholder rows linked to chain
Alpaca never sees individual PII (Omnisub)✅ Sub-accounts created without PII
OnyxPlus for biometrics only✅ Attestation stored in OnyxPlus S3
Under $5k: SSN + address + name + age only✅ BD minimal KYC
Over $5k: Full photo ID via OnyxPlus✅ Document upload + liveness

On this page