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
| Service | URL | Status |
|---|---|---|
| API Gateway | api.dev.satschel.com | ✅ 200 |
| Exchange | exchange.dev.satschel.com | ✅ 200 |
| ID/Onboarding | id.dev.satschel.com | ✅ 200 |
| SuperAdmin | superadmin.dev.satschel.com | ✅ 200 |
| IAM | iam.dev.satschel.com | ✅ 200 |
| EquityTable | equitytable.dev.satschel.com | ✅ 200 |
| ATS Pod | ats-0 (internal) | ✅ Running |
| BD Pod | bd-0 (internal) | ✅ Running |
| TA Pod | ta-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
| Action | Endpoint | Status |
|---|---|---|
| Place buy | POST /v1/ats/orders | ✅ |
| Place sell | POST /v1/ats/orders | ✅ |
| Cancel order | DELETE /orders/{id} | ✅ |
| Update order | PATCH /orders/{id} | ✅ |
| List orders | GET /v1/ats/orders | ✅ |
| Close position | DELETE /positions/{sym} | ✅ |
7. Backend Infrastructure
| Feature | Status | Details |
|---|---|---|
| Overnight asset sync | ✅ | Cron at 23:47 UTC (7:47 PM ET) |
| Statement email cron | ✅ | 8th of each month, BCC Alpaca archive |
| Pre-trade risk (15c3-5) | ✅ | All orders gated |
| TIF validation | ✅ | crypto=gtc/ioc, FI=day, overnight=day |
| Crypto agreement PATCH | ✅ | /v1/ats/accounts/agreement |
| Gateway JWT auth | ✅ | X-User-Id trust + JWKS validation |
| Order normalization | ✅ | Accepts camelCase + snake_case + int |
| Settlement processor | ✅ | 30s cron with retry |
| Reconciliation | ✅ | 9 AM ET daily, 12:30 ET deadline check |
| Corporate actions | ✅ | 13 Alpaca CA types synced |
| SSE realtime events | ✅ | Per-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
| Rule | Status |
|---|---|
| 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 |