Skip to main content
This guide walks through the wealth management lifecycle: account creation, investor profiling, risk assessment, financial planning, portfolio construction, and automated investing. By the end, you’ll have a managed portfolio running in the sandbox.
Prerequisites: API credentials from the sandbox environment. Familiarity with the self-directed quick start (account creation and funding are the same).
API_KEY="YOUR_API_KEY"
API_SECRET="YOUR_API_SECRET"
BASE_URL="https://test-service.bluumfinance.com/v1"
AUTH=$(echo -n "$API_KEY:$API_SECRET" | base64)

Step 1 — Create an investment account

Create an individual account (rather than trading) for wealth management:
curl -X POST "$BASE_URL/accounts" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "account_type": "individual",
    "management_type": "advised",
    "contact": {
      "email_address": "alex.chen@example.com",
      "phone_number": "+14155559876",
      "street_address": ["789 Elm Street"],
      "city": "Austin",
      "state": "TX",
      "postal_code": "78701",
      "country": "US"
    },
    "identity": {
      "first_name": "Alex",
      "last_name": "Chen",
      "date_of_birth": "1985-03-22",
      "tax_id": "123-45-6789",
      "tax_id_type": "SSN",
      "country_of_citizenship": "US",
      "country_of_birth": "US",
      "country_of_tax_residence": "US",
      "funding_source": ["employment_income", "investments"]
    },
    "disclosures": {
      "is_control_person": false,
      "is_affiliated_exchange_or_finra": false,
      "is_politically_exposed": false,
      "immediate_family_exposed": false
    },
    "agreements": [
      {
        "agreement": "account_agreement",
        "agreed": true,
        "signed_at": "2025-06-15T10:30:00Z",
        "ip_address": "203.0.113.42"
      },
      {
        "agreement": "customer_agreement",
        "agreed": true,
        "signed_at": "2025-06-15T10:30:00Z",
        "ip_address": "203.0.113.42"
      }
    ]
  }'
Store the account ID:
ACCOUNT_ID="3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b"
Complete KYC (Step 2 of the self-directed quick start) and bank linking (Step 3) before continuing. Fund the account with at least $10,000 for a meaningful portfolio.

Step 2 — Build the investor profile

The investor profile captures the user’s full financial picture. This data drives risk assessment, financial planning, and portfolio construction.
curl -X PUT "$BASE_URL/wealth/accounts/$ACCOUNT_ID/profile" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "demographics": {
      "marital_status": "married",
      "number_of_dependents": 2
    },
    "employment": {
      "status": "employed",
      "employer": "Acme Corp",
      "occupation": "Software Engineer",
      "annual_income": "185000.00",
      "income_stability": "stable"
    },
    "tax": {
      "filing_status": "married_filing_jointly",
      "federal_tax_bracket": "24",
      "state_tax_rate": "0"
    },
    "investment_preferences": {
      "investment_experience": "intermediate",
      "investment_horizon": "long_term",
      "liquidity_needs": "low",
      "esg_preference": true
    },
    "cash_flow": {
      "monthly_expenses": "8500.00",
      "monthly_savings": "3500.00",
      "emergency_fund_months": 6
    }
  }'
The profile is modular — you can update individual sections as you collect data from your UI. See Investor Profile for all available sections (demographics, employment, tax, insurance, estate planning, partner details).

Step 3 — Run a risk assessment

Submit the risk questionnaire to determine the investor’s risk tolerance. This score drives portfolio allocation.
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/risk-assessments" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "questionnaire_id": "default-risk-v1",
    "responses": [
      { "question_id": "investment_goal", "answer_id": "growth" },
      { "question_id": "time_horizon", "answer_id": "20_years" },
      { "question_id": "risk_tolerance", "answer_id": "moderate" },
      { "question_id": "reaction_to_loss", "answer_id": "hold_and_wait" },
      { "question_id": "income_needs", "answer_id": "none" },
      { "question_id": "investment_knowledge", "answer_id": "intermediate" }
    ]
  }'
{
  "id": "ra_f1e2d3c4b5a69870",
  "account_id": "3d0b0e65-35d3-4dcd-8df7-10286ebb4b4b",
  "risk_score": 65,
  "risk_category": "moderate_growth",
  "recommended_equity_allocation": 70,
  "recommended_fixed_income_allocation": 25,
  "recommended_alternatives_allocation": 5,
  "created_at": "2025-06-15T11:00:00Z"
}
View the current assessment and summary:
# Current assessment
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/risk-assessments/current" \
  -H "Authorization: Basic $AUTH"

# Summary across all assessments
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/risk-assessments/summary" \
  -H "Authorization: Basic $AUTH"
See Risk Assessment for the full questionnaire structure and scoring model.

Step 4 — Create goals

Define the investor’s financial objectives. Goals anchor the financial plan.
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/goals" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Retirement",
    "type": "retirement",
    "target_amount": "2000000.00",
    "target_date": "2050-01-01",
    "priority": "high",
    "current_savings": "150000.00",
    "monthly_contribution": "2000.00"
  }'
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/goals" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "College Fund - Emma",
    "type": "education",
    "target_amount": "250000.00",
    "target_date": "2040-09-01",
    "priority": "medium",
    "current_savings": "25000.00",
    "monthly_contribution": "500.00"
  }'

Step 5 — Generate a financial plan

The financial plan maps the investor’s goals, risk profile, and financial situation into an actionable strategy:
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/financial-plan" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "include_goals": true,
    "include_tax_optimization": true,
    "planning_horizon_years": 25
  }'
View the plan summary:
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/financial-plan/summary" \
  -H "Authorization: Basic $AUTH"

Step 6 — Create an Investment Policy Statement

The IPS formalizes the investment strategy based on the financial plan and risk assessment:
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/investment-policy" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "risk_profile": {
      "risk_tolerance": "moderate",
      "risk_score": 5,
      "volatility_tolerance": "medium"
    },
    "time_horizon": {
      "years": 20,
      "category": "long_term"
    },
    "investment_objectives": {
      "primary": "capital_appreciation",
      "secondary": ["income_generation"],
      "target_annual_return": "7.00"
    },
    "target_allocation": {
      "equities": { "target_percent": "50.00", "min_percent": "40.00", "max_percent": "60.00" },
      "fixed_income": { "target_percent": "25.00", "min_percent": "20.00", "max_percent": "30.00" },
      "alternatives": { "target_percent": "5.00", "min_percent": "0.00", "max_percent": "10.00" }
    },
    "constraints": {
      "liquidity_requirements": { "minimum_cash_percent": "5.00", "emergency_fund_months": 6 },
      "tax_considerations": { "tax_loss_harvesting": true, "tax_bracket": "24", "prefer_tax_advantaged": true },
      "rebalancing_policy": { "frequency": "quarterly", "threshold_percent": "5.00", "tax_aware": true }
    }
  }'
Validate the IPS before proceeding:
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/investment-policy/validate" \
  -H "Authorization: Basic $AUTH"

Step 7 — Create a managed portfolio

Create a portfolio governed by the IPS:
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/portfolios" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Alex Growth Portfolio",
    "initial_investment": "10000.00"
  }'
PORTFOLIO_ID="pf_a1b2c3d4e5f6g7h8"
View portfolio details:
# Summary
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/portfolios/$PORTFOLIO_ID/summary" \
  -H "Authorization: Basic $AUTH"

# Holdings
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/portfolios/$PORTFOLIO_ID/holdings" \
  -H "Authorization: Basic $AUTH"

# Performance
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/portfolios/$PORTFOLIO_ID/performance" \
  -H "Authorization: Basic $AUTH"

Step 8 — Set up auto-invest

Configure recurring investments into the portfolio:
curl -X POST "$BASE_URL/wealth/accounts/$ACCOUNT_ID/auto-invest" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "portfolio_id": "'"$PORTFOLIO_ID"'",
    "amount": "2000.00",
    "frequency": "monthly",
    "day_of_month": 1,
    "funding_source": "wallet"
  }'
Enable dividend reinvestment (DRIP):
curl -X PUT "$BASE_URL/wealth/accounts/$ACCOUNT_ID/portfolios/$PORTFOLIO_ID/drip" \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{ "enabled": true }'

Step 9 — Monitor with insights

Check portfolio insights and recommendations:
# Insights (alerts, opportunities)
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/insights" \
  -H "Authorization: Basic $AUTH"

# Recommendations
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/recommendations" \
  -H "Authorization: Basic $AUTH"

# Tax optimization opportunities
curl -X GET "$BASE_URL/wealth/accounts/$ACCOUNT_ID/tax-optimization" \
  -H "Authorization: Basic $AUTH"

Summary

StepEndpointWhat it does
1POST /accountsCreate an individual account
2PUT /wealth/accounts/{id}/profileBuild comprehensive investor profile
3POST /wealth/accounts/{id}/risk-assessmentsDetermine risk tolerance and allocation
4POST /wealth/accounts/{id}/goalsDefine financial objectives
5POST /wealth/accounts/{id}/financial-planGenerate an investment strategy
6POST /wealth/accounts/{id}/investment-policyFormalize the IPS
7POST /wealth/accounts/{id}/portfoliosCreate a managed portfolio
8POST /wealth/accounts/{id}/auto-investSet up recurring investments
9GET /wealth/accounts/{id}/insightsMonitor and optimize

Next steps