Environment
Language
This issue occurs on the dashboard, so this isn’t using programmatic access, though the issue occurs there too.
Alpaca SDK Version
N/A
Other Environment Details
Just on the alpaca dashboard
Problem
Summary
Newly created paper trading accounts are being created in a non-tradable state. The account appears funded and shows options approval, but order placement fails from both the Alpaca dashboard and the API.
On the dashboard, placing an order fails with:
POST https://app.alpaca.markets/internal/paper_accounts/00db29f6-0d98-4221-b0d9-9f442c789a4a/orders
422 Unprocessable Entity
Through the API, the account returns:
status: APPROVED
crypto_status: PAPER_ONLY
options_approved_level: 3
options_trading_level: 3
trading_blocked: false
account_blocked: false
trade_suspended_by_user: false
But order placement fails with:
{"code":40010001,"message":"account is not allowed to trade"}
Crypto orders fail with:
{"code":40010001,"message":"crypto orders not allowed for account"}
This seems to affect newly created paper accounts. An older paper account on the same Alpaca login shows status: ACTIVE and was able to place trades previously.
Affected paper accounts include:
id: 00db29f6-0d98-4221-b0d9-9f442c789a4a
account_number: PA3UJM9YL2F7
status: APPROVED
Other newly created paper accounts also showed APPROVED instead of ACTIVE and had the same order rejection.
Paper or Live Tradng?
Paper
Example Code
import requests
BASE_URL = “https://paper-api.alpaca.markets/v2”
headers = {
“APCA-API-KEY-ID”: “YOUR_PAPER_KEY”,
“APCA-API-SECRET-KEY”: “YOUR_PAPER_SECRET”,
“Content-Type”: “application/json”,
}
account = requests.get(f"{BASE_URL}/account", headers=headers)
print(account.status_code, account.json())
order = requests.post(
f"{BASE_URL}/orders",
headers=headers,
json={
“symbol”: “SPY”,
“qty”: “1”,
“side”: “buy”,
“type”: “market”,
“time_in_force”: “day”,
},
)
print(order.status_code, order.text)