Skip to main content

API Reference

The Kora Wealth Management API is organized around REST. It accepts JSON request bodies, returns JSON responses, and uses standard HTTP status codes.

Base URL

https://api.korastratum.com/wealth-management/api/v1

Authentication

All endpoints require two headers:

Authorization: Bearer <your-api-key>
X-Tenant-ID: <your-tenant-id>

See Authentication for details on API key formats and environments.

Endpoints

Portfolios

MethodEndpointDescription
POST/portfoliosCreate a new portfolio
GET/portfoliosList portfolios with filtering
GET/portfolios/{id}Retrieve a portfolio by ID
PUT/portfolios/{id}Update portfolio settings
DELETE/portfolios/{id}Close a portfolio
GET/portfolios/{id}/holdingsList current holdings
GET/portfolios/{id}/performanceGet performance metrics
POST/portfolios/{id}/rebalanceGenerate or execute rebalancing
GET/portfolios/{id}/allocationGet current vs target allocation

Trades

MethodEndpointDescription
POST/portfolios/{id}/tradesRecord a new trade
GET/portfolios/{id}/tradesList trades for a portfolio
GET/trades/{id}Retrieve a trade by ID
PUT/trades/{id}Update trade details
POST/trades/{id}/settleMark a trade as settled

Custody

MethodEndpointDescription
GET/custody/positionsList all custody positions
GET/custody/positions/{id}Retrieve a position by ID
POST/custody/corporate-actionsRecord a corporate action
GET/custody/corporate-actionsList corporate actions
POST/custody/settlementsProcess a settlement
GET/custody/settlementsList settlements

Investment Funds

MethodEndpointDescription
POST/fundsCreate a new fund
GET/fundsList funds
GET/funds/{id}Retrieve a fund by ID
PUT/funds/{id}Update fund details
POST/funds/{id}/subscriptionsProcess a subscription
POST/funds/{id}/redemptionsProcess a redemption
GET/funds/{id}/nav-historyGet NAV history
POST/funds/{id}/nav/calculateCalculate current NAV

Financial Planning

MethodEndpointDescription
POST/plansCreate a financial plan
GET/plansList financial plans
GET/plans/{id}Retrieve a plan by ID
PUT/plans/{id}Update plan parameters
POST/plans/{id}/goalsAdd a goal to a plan
GET/plans/{id}/projectionsGet plan projections
POST/plans/{id}/scenariosRun scenario analysis

Retirement

MethodEndpointDescription
POST/retirement/accountsCreate a retirement account
GET/retirement/accountsList retirement accounts
GET/retirement/accounts/{id}Retrieve a retirement account
POST/retirement/accounts/{id}/contributionsRecord a contribution
GET/retirement/accounts/{id}/projectionsGet retirement projections

Health

MethodEndpointDescription
GET/healthHealth check (no auth required)
GET/readyReadiness check (no auth required)

Response format

Successful responses return the resource directly or in a paginated wrapper:

{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Growth Portfolio",
"total_value": 250000.00,
"currency": "USD",
"risk_profile": "MODERATE_AGGRESSIVE"
}

Paginated list responses:

{
"data": [...],
"next_cursor": "eyJpZCI6Ii4uLiJ9"
}

Error responses follow a consistent structure:

{
"error": "Bad Request",
"message": "customer_id is required",
"status": 400
}