{ "components": { "schemas": { "AMC": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Summary of the instrument.", "examples": [ "Common stock listed on the Nasdaq Global Select Market." ], "title": "About" }, "asset_class": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AssetClassAllocation" }, "type": "array" }, { "type": "null" } ], "description": "How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.", "title": "Asset Class" }, "dealing_deadline": { "description": "Daily cutoff time for placing orders.", "examples": [ "14:00:00" ], "format": "time", "title": "Dealing Deadline", "type": "string" }, "dealing_deadline_time_and_day": { "description": "Next dealing cutoff shown as time and date.", "examples": [ "14:00 Jul 15, 2026" ], "title": "Dealing Deadline Time And Day", "type": "string" }, "decimal_precision": { "description": "Decimal places used by the trading increment.", "examples": [ 2 ], "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "description": "Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.", "readOnly": true, "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC of the listing venue.", "examples": [ "XNAS" ], "title": "Exchange" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public CDN URL of the instrument's icon.", "examples": [ "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png" ], "title": "Icon Url" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_issue_date": { "description": "Date the instrument was first issued.", "examples": [ "2024-09-16" ], "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "amc", "description": "Instrument type.", "title": "Instrument Type", "type": "string" }, "is_passed_dealing_deadline": { "description": "Whether today's dealing cutoff has passed.", "title": "Is Passed Dealing Deadline", "type": "boolean" }, "isin": { "description": "International Securities Identification Number.", "examples": [ "US5949181045" ], "title": "Isin", "type": "string" }, "issuer": { "description": "Name of the issuer.", "examples": [ "UBS AG" ], "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code of the issuer.", "examples": [ "US" ], "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Issuer credit rating.", "examples": [ "A+" ], "title": "Issuer Credit Rating", "type": "string" }, "minimum_initial_cash_investment": { "description": "Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.", "readOnly": true, "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.", "readOnly": true, "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "Display name of the instrument.", "examples": [ "Apple Inc." ], "title": "Name", "type": "string" }, "portfolio_manager": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Name of the portfolio manager.", "examples": [ "UBS Asset Management" ], "title": "Portfolio Manager" }, "price_type": { "$ref": "#/components/schemas/PriceType", "description": "Price quotation type." }, "pro_traders_only": { "description": "Whether the instrument is restricted to professional investors.", "title": "Pro Traders Only", "type": "boolean" }, "provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Provider of the instrument.", "examples": [ "UBS" ], "title": "Provider" }, "required_cash_increment": { "description": "Deprecated: no longer enforced, always zero.", "readOnly": true, "title": "Required Cash Increment", "type": "integer" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Risk profile.", "examples": [ "Balanced" ], "title": "Risk Profile" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "Availability stage of the instrument." }, "share_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Share class.", "examples": [ "Class A USD" ], "title": "Share Class" }, "strategy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Investment strategy.", "examples": [ "Global Macro" ], "title": "Strategy" }, "symbol": { "description": "Market identifier, such as an ISIN or currency pair.", "examples": [ "US5949181045" ], "title": "Symbol", "type": "string" }, "target_client_categories": { "description": "MiFID II client categories this instrument is intended for.", "items": { "$ref": "#/components/schemas/ClientCategory" }, "title": "Target Client Categories", "type": "array" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Ticker symbol of the security.", "examples": [ "AAPL" ], "title": "Ticker" }, "trading_configuration": { "$ref": "#/components/schemas/TradingConfiguration", "description": "How orders may be sized and the minimums they must meet, by side. Cash amounts are in the trading currency." }, "trading_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency used to trade the instrument.", "examples": [ "USD" ] }, "trading_increment": { "description": "Smallest quantity increment accepted for orders.", "examples": [ "0.00010000" ], "title": "Trading Increment", "type": "string" }, "trading_status": { "$ref": "#/components/schemas/InstrumentTradingStatus", "description": "Current trading status." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "trading_configuration", "decimal_precision", "pro_traders_only", "price_type", "target_client_categories", "isin", "issuer", "issuer_country", "trading_currency", "initial_issue_date", "issuer_credit_rating", "dealing_deadline", "dealing_deadline_time_and_day", "is_passed_dealing_deadline", "strategy", "risk_profile", "portfolio_manager", "share_class", "provider", "minimum_trading_quantity", "minimum_initial_cash_investment", "required_cash_increment", "enforce_trading_rules" ], "title": "AMC", "type": "object" }, "Account": { "properties": { "bank_payment_reference": { "description": "Reference used to identify bank payments for the account.", "title": "Bank Payment Reference", "type": "string" }, "base_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency used for account valuation." }, "can_deposit": { "description": "Whether deposits are currently allowed.", "title": "Can Deposit", "type": "boolean" }, "can_place_buy_order": { "description": "Whether buy orders are currently allowed.", "title": "Can Place Buy Order", "type": "boolean" }, "can_place_sell_order": { "description": "Whether sell orders are currently allowed.", "title": "Can Place Sell Order", "type": "boolean" }, "can_withdraw": { "description": "Whether withdrawals are currently allowed.", "title": "Can Withdraw", "type": "boolean" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "funding_currencies": { "description": "Currencies accepted for account funding.", "items": { "$ref": "#/components/schemas/Currency" }, "title": "Funding Currencies", "type": "array" }, "has_deposited": { "description": "Whether the account has completed a deposit.", "title": "Has Deposited", "type": "boolean" }, "has_placed_buy_order": { "description": "Whether the account has placed a buy order.", "title": "Has Placed Buy Order", "type": "boolean" }, "has_placed_sell_order": { "description": "Whether the account has placed a sell order.", "title": "Has Placed Sell Order", "type": "boolean" }, "has_withdrawn": { "description": "Whether the account has completed a withdrawal.", "title": "Has Withdrawn", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_primary_owner_mifid_pro": { "description": "Whether the primary owner is classified as a MiFID professional.", "title": "Is Primary Owner Mifid Pro", "type": "boolean" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "name": { "description": "Display name of the account.", "title": "Name", "type": "string" }, "reference": { "description": "Customer-visible account reference.", "title": "Reference", "type": "string" }, "status": { "$ref": "#/components/schemas/AccountStatus", "description": "Current account status." } }, "required": [ "created_at", "modified_at", "id", "reference", "status", "name", "bank_payment_reference", "base_currency", "funding_currencies", "can_deposit", "can_withdraw", "can_place_buy_order", "can_place_sell_order", "has_deposited", "has_withdrawn", "has_placed_buy_order", "has_placed_sell_order", "is_primary_owner_mifid_pro" ], "title": "Account", "type": "object" }, "AccountCashEarnings": { "properties": { "attribution": { "$ref": "#/components/schemas/CashEarningsAttribution", "description": "Breakdown of the cash earnings. Cash only gains or loses value through exchange rates, so this holds a single currency component." }, "gross": { "description": "How much uninvested foreign-currency cash gained or lost from exchange-rate movements.", "title": "Gross", "type": "string" } }, "required": [ "gross", "attribution" ], "title": "AccountCashEarnings", "type": "object" }, "AccountEarningsV2": { "properties": { "account": { "description": "ID of the account the earnings were computed for.", "title": "Account", "type": "string" }, "cash": { "$ref": "#/components/schemas/AccountCashEarnings", "description": "What uninvested foreign-currency cash gained or lost from exchange-rate movements." }, "currency": { "$ref": "#/components/schemas/Currency", "description": "Reporting currency of the earnings amounts." }, "fees": { "description": "Fees deducted from gross earnings.", "title": "Fees", "type": "string" }, "gross": { "description": "Everything the account earned before fees: today's value minus the net money paid in, with fees added back. Also equals the positions' gross plus the cash gross.", "title": "Gross", "type": "string" }, "money_in": { "description": "The money put into the account over the period: its value at the start of the period plus every deposit during it, each converted at the exchange rate of its own day. Withdrawals are not subtracted. Over the account's whole life, this is the total deposited.", "title": "Money In", "type": "string" }, "net": { "description": "Everything the account earned after fees: gross minus fees.", "title": "Net", "type": "string" }, "period_end": { "description": "End date and time of the earnings period.", "examples": [ "2026-03-31T23:59:59Z" ], "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "description": "Start date and time of the earnings period.", "examples": [ "2026-01-01T00:00:00Z" ], "format": "date-time", "title": "Period Start", "type": "string" }, "position_earnings": { "description": "Each of the account's positions' earnings over the same period, as `GET /positions/{id}/earnings` returns them. Only present when requested with `include_positions`.", "items": { "$ref": "#/components/schemas/PositionEarningsV2" }, "title": "Position Earnings", "type": "array", "x-remove-null-from-type-union": true }, "positions": { "$ref": "#/components/schemas/AccountPositionsEarnings", "description": "What the account's positions earned, with a breakdown of where it came from." }, "simple_return": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The simple return as a decimal: `net` divided by `money_in`. `null` when nothing was put in.", "examples": [ "0.0307" ], "title": "Simple Return" }, "simple_return_annualised": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "`simple_return` annualised over the period: (1 + `simple_return`) ^ (365 / days) - 1. `null` when the period is shorter than a year, which is never annualised, or when `simple_return` is.", "examples": [ "0.0127" ], "title": "Simple Return Annualised" } }, "required": [ "account", "currency", "period_start", "period_end", "gross", "fees", "net", "money_in", "simple_return", "simple_return_annualised", "positions", "cash" ], "title": "AccountEarningsV2", "type": "object" }, "AccountHistoryResolution": { "enum": [ "day" ], "properties": {}, "title": "AccountHistoryResolution", "type": "string" }, "AccountOwnership": { "properties": { "account": { "$ref": "#/components/schemas/Account", "description": "Account owned by the customer." }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "customer": { "description": "Customer that owns the account.", "discriminator": { "mapping": { "business": "#/components/schemas/BusinessCustomer", "individual": "#/components/schemas/IndividualCustomer", "joint": "#/components/schemas/JointCustomer" }, "propertyName": "customer_type" }, "oneOf": [ { "$ref": "#/components/schemas/IndividualCustomer" }, { "$ref": "#/components/schemas/JointCustomer" }, { "$ref": "#/components/schemas/BusinessCustomer" } ], "title": "Customer" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_primary": { "description": "Whether this is the customer's primary account ownership.", "title": "Is Primary", "type": "boolean" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "is_primary", "customer", "account" ], "title": "AccountOwnership", "type": "object" }, "AccountPositionsEarnings": { "properties": { "attribution": { "$ref": "#/components/schemas/EarningsAttribution", "description": "Breakdown of the positions' earnings into how much came from the investments themselves and how much from exchange-rate movements." }, "gross": { "description": "Total the positions earned before fees, in the account's currency. Equals the investment effect plus the currency effect.", "title": "Gross", "type": "string" } }, "required": [ "gross", "attribution" ], "title": "AccountPositionsEarnings", "type": "object" }, "AccountReturnsV2": { "properties": { "account": { "description": "ID of the account the returns were computed for.", "title": "Account", "type": "string" }, "flags": { "description": "Signals explaining clamps, missing data, or uncomputable rates.", "items": { "$ref": "#/components/schemas/ReturnsFlag" }, "title": "Flags", "type": "array" }, "mwrr": { "$ref": "#/components/schemas/RatePair", "description": "Money-weighted return figures; fields are `null` when uncomputable." }, "period": { "$ref": "#/components/schemas/Period", "description": "Requested period the returns were computed over." }, "period_end": { "description": "Resolved end of the period (the `asof` time of the computation).", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "description": "Resolved start of the period, inclusive. Clamped to the scope's inception when the requested period starts earlier.", "examples": [ "2026-01-01T00:00:00Z" ], "format": "date-time", "title": "Period Start", "type": "string" }, "twrr": { "$ref": "#/components/schemas/RatePair", "description": "Time-weighted return figures; fields are `null` when uncomputable." } }, "required": [ "period", "period_start", "period_end", "mwrr", "twrr", "flags", "account" ], "title": "AccountReturnsV2", "type": "object" }, "AccountStatus": { "enum": [ "active", "suspended", "closing", "closed" ], "properties": {}, "title": "AccountStatus", "type": "string" }, "Address": { "properties": { "city": { "description": "City or locality.", "title": "City", "type": "string" }, "country_code": { "description": "ISO 3166-1 alpha-2 country code.", "title": "Country Code", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "District or county.", "title": "District County" }, "line1": { "description": "Primary street address line.", "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Additional street address line.", "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Further street address line.", "title": "Line3" }, "postal_code": { "description": "Postal code.", "title": "Postal Code", "type": "string" } }, "required": [ "line1", "line2", "line3", "district_county", "city", "postal_code", "country_code" ], "title": "Address", "type": "object" }, "AmcMarketCashEstimate": { "properties": { "asof": { "description": "Timestamp of the price the estimate is based on.", "format": "date-time", "title": "Asof", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "20.00" ], "title": "Fees", "type": "string" }, "net_cash_amount": { "description": "Cash invested after fees.", "examples": [ "149980.00" ], "title": "Net Cash Amount", "type": "string" }, "price": { "description": "Latest certificate price per unit.", "examples": [ "109.5501" ], "title": "Price", "type": "string" }, "quantity": { "description": "Estimated certificate units the order would acquire.", "examples": [ "1369.05" ], "title": "Quantity", "type": "string" } }, "required": [ "price", "asof", "quantity", "net_cash_amount", "fees", "fee_breakdown" ], "title": "AmcMarketCashEstimate", "type": "object" }, "AmcMarketCashQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "cash_amount": { "description": "Cash the user chose to invest (before fees).", "examples": [ "150000.00" ], "title": "Cash Amount", "type": "string" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/AmcMarketCashEstimate", "description": "Estimated economics at the latest price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quote_type": { "const": "amc_market_cash", "default": "amc_market_cash", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "cash_amount", "estimate" ], "title": "AmcMarketCashQuote", "type": "object" }, "AssetClass": { "enum": [ "equity", "fixed_income", "cash", "alternatives", "uninvested" ], "properties": {}, "title": "AssetClass", "type": "string" }, "AssetClassAllocation": { "description": "One class within an instrument's asset-class composition.", "properties": { "asset_class": { "$ref": "#/components/schemas/AssetClass", "description": "The asset class.", "examples": [ "equity" ] }, "weight": { "description": "Share of the instrument sitting in this class.", "examples": [ "0.48640000" ], "title": "Weight", "type": "string" } }, "required": [ "asset_class", "weight" ], "title": "AssetClassAllocation", "type": "object" }, "AttestationType": { "enum": [ "data_accuracy" ], "properties": {}, "title": "AttestationType", "type": "string" }, "AuthorityStatus": { "enum": [ "active", "revoked" ], "properties": {}, "title": "AuthorityStatus", "type": "string" }, "AuthorityType": { "enum": [ "owner", "joint_owner", "signatory", "power_of_attorney", "trading" ], "properties": {}, "title": "AuthorityType", "type": "string" }, "Bill": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Summary of the instrument.", "examples": [ "Common stock listed on the Nasdaq Global Select Market." ], "title": "About" }, "asset_class": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AssetClassAllocation" }, "type": "array" }, { "type": "null" } ], "description": "How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.", "title": "Asset Class" }, "days_to_maturity": { "description": "Calendar days remaining until maturity.", "examples": [ 182 ], "title": "Days To Maturity", "type": "integer" }, "decimal_precision": { "description": "Decimal places used by the trading increment.", "examples": [ 2 ], "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "description": "Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.", "readOnly": true, "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC of the listing venue.", "examples": [ "XNAS" ], "title": "Exchange" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public CDN URL of the instrument's icon.", "examples": [ "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png" ], "title": "Icon Url" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Date of the first auction.", "examples": [ "2024-12-30" ], "title": "Initial Auction Date" }, "initial_issue_date": { "description": "Date the instrument was first issued.", "examples": [ "2025-01-02" ], "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "bill", "description": "Instrument type.", "title": "Instrument Type", "type": "string" }, "isin": { "description": "International Securities Identification Number.", "examples": [ "US5949181045" ], "title": "Isin", "type": "string" }, "issuer": { "description": "Name of the issuer.", "examples": [ "United States Department of the Treasury" ], "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code of the issuer.", "examples": [ "US" ], "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Issuer credit rating.", "examples": [ "AA+" ], "title": "Issuer Credit Rating", "type": "string" }, "latest_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Date of the latest auction, including tap issues.", "examples": [ "2025-01-27" ], "title": "Latest Auction Date" }, "latest_issue_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Date of the latest issue, including tap issues.", "examples": [ "2025-01-30" ], "title": "Latest Issue Date" }, "maturity_date": { "description": "Date the instrument matures.", "examples": [ "2025-07-03" ], "format": "date", "title": "Maturity Date", "type": "string" }, "minimum_initial_cash_investment": { "description": "Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.", "readOnly": true, "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.", "readOnly": true, "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "Display name of the instrument.", "examples": [ "Apple Inc." ], "title": "Name", "type": "string" }, "price_type": { "$ref": "#/components/schemas/PriceType", "description": "Price quotation type." }, "pro_traders_only": { "description": "Whether the instrument is restricted to professional investors.", "title": "Pro Traders Only", "type": "boolean" }, "required_cash_increment": { "description": "Deprecated: no longer enforced, always zero.", "readOnly": true, "title": "Required Cash Increment", "type": "integer" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "Availability stage of the instrument." }, "supports_automatic_rollover": { "description": "Whether positions can roll over automatically at maturity.", "title": "Supports Automatic Rollover", "type": "boolean" }, "symbol": { "description": "Market identifier, such as an ISIN or currency pair.", "examples": [ "US5949181045" ], "title": "Symbol", "type": "string" }, "target_client_categories": { "description": "MiFID II client categories this instrument is intended for.", "items": { "$ref": "#/components/schemas/ClientCategory" }, "title": "Target Client Categories", "type": "array" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Ticker symbol of the security.", "examples": [ "AAPL" ], "title": "Ticker" }, "trading_configuration": { "$ref": "#/components/schemas/TradingConfiguration", "description": "How orders may be sized and the minimums they must meet, by side. Cash amounts are in the trading currency." }, "trading_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency used to trade the instrument.", "examples": [ "USD" ] }, "trading_increment": { "description": "Smallest quantity increment accepted for orders.", "examples": [ "0.00010000" ], "title": "Trading Increment", "type": "string" }, "trading_status": { "$ref": "#/components/schemas/InstrumentTradingStatus", "description": "Current trading status." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "trading_configuration", "decimal_precision", "pro_traders_only", "price_type", "target_client_categories", "isin", "issuer", "issuer_country", "trading_currency", "initial_issue_date", "maturity_date", "days_to_maturity", "supports_automatic_rollover", "issuer_credit_rating", "initial_auction_date", "latest_auction_date", "latest_issue_date", "minimum_trading_quantity", "minimum_initial_cash_investment", "required_cash_increment", "enforce_trading_rules" ], "title": "Bill", "type": "object" }, "BillMarketCashEstimate": { "properties": { "asof": { "description": "Timestamp of the price the estimate is based on.", "format": "date-time", "title": "Asof", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "1.00" ], "title": "Fees", "type": "string" }, "net_cash_amount": { "description": "Cash invested after fees.", "examples": [ "9999.00" ], "title": "Net Cash Amount", "type": "string" }, "price": { "description": "Latest price per unit.", "examples": [ "99.9281" ], "title": "Price", "type": "string" }, "quantity": { "description": "Estimated units the order would acquire; for fixed income this is the nominal redeemed at par at maturity.", "examples": [ "10000" ], "title": "Quantity", "type": "string" }, "yield": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Annualised yield (yield to maturity for fixed income). Percent, e.g. 2.25 = 2.25%.", "examples": [ "2.25" ], "title": "Yield" } }, "required": [ "price", "asof", "quantity", "net_cash_amount", "fees", "fee_breakdown" ], "title": "BillMarketCashEstimate", "type": "object" }, "BillMarketCashQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "cash_amount": { "description": "Cash the user chose to invest (before fees).", "examples": [ "10000.00" ], "title": "Cash Amount", "type": "string" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/BillMarketCashEstimate", "description": "Estimated economics at the latest price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quote_type": { "const": "bill_market_cash", "default": "bill_market_cash", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "cash_amount", "estimate" ], "title": "BillMarketCashQuote", "type": "object" }, "Bond": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Summary of the instrument.", "examples": [ "Common stock listed on the Nasdaq Global Select Market." ], "title": "About" }, "asset_class": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AssetClassAllocation" }, "type": "array" }, { "type": "null" } ], "description": "How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.", "title": "Asset Class" }, "coupon": { "description": "Annual coupon rate as a percentage. Four decimal places, since coupons are quoted in eighths and sixteenths (2.625, 0.0625).", "examples": [ "2.6250" ], "title": "Coupon", "type": "string" }, "coupon_frequency": { "anyOf": [ { "$ref": "#/components/schemas/BondCouponFrequency" }, { "type": "null" } ], "description": "Frequency of coupon payments." }, "coupon_type": { "$ref": "#/components/schemas/BondCouponType", "description": "Coupon payment type." }, "day_count_convention": { "anyOf": [ { "$ref": "#/components/schemas/DayCountConvention" }, { "type": "null" } ], "description": "Day-count convention used for coupon calculations." }, "days_to_maturity": { "description": "Calendar days remaining until maturity.", "examples": [ 182 ], "title": "Days To Maturity", "type": "integer" }, "decimal_precision": { "description": "Decimal places used by the trading increment.", "examples": [ 2 ], "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "description": "Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.", "readOnly": true, "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC of the listing venue.", "examples": [ "XNAS" ], "title": "Exchange" }, "first_coupon_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Date of the first scheduled coupon payment.", "examples": [ "2025-07-15" ], "title": "First Coupon Date" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public CDN URL of the instrument's icon.", "examples": [ "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png" ], "title": "Icon Url" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Date of the first auction.", "examples": [ "2024-12-30" ], "title": "Initial Auction Date" }, "initial_issue_date": { "description": "Date the instrument was first issued.", "examples": [ "2025-01-02" ], "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "bond", "description": "Instrument type.", "title": "Instrument Type", "type": "string" }, "isin": { "description": "International Securities Identification Number.", "examples": [ "US5949181045" ], "title": "Isin", "type": "string" }, "issuer": { "description": "Name of the issuer.", "examples": [ "United States Department of the Treasury" ], "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code of the issuer.", "examples": [ "US" ], "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Issuer credit rating.", "examples": [ "AA+" ], "title": "Issuer Credit Rating", "type": "string" }, "latest_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Date of the latest auction, including tap issues.", "examples": [ "2025-01-27" ], "title": "Latest Auction Date" }, "latest_issue_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Date of the latest issue, including tap issues.", "examples": [ "2025-01-30" ], "title": "Latest Issue Date" }, "maturity_date": { "description": "Date the instrument matures.", "examples": [ "2025-07-03" ], "format": "date", "title": "Maturity Date", "type": "string" }, "minimum_initial_cash_investment": { "description": "Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.", "readOnly": true, "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.", "readOnly": true, "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "Display name of the instrument.", "examples": [ "Apple Inc." ], "title": "Name", "type": "string" }, "next_coupon_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Next scheduled coupon payment date.", "examples": [ "2026-01-15" ], "title": "Next Coupon Date" }, "par_value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Nominal value per unit used for price quotation.", "examples": [ "100.00" ], "title": "Par Value" }, "price_type": { "$ref": "#/components/schemas/PriceType", "description": "Price quotation type." }, "pro_traders_only": { "description": "Whether the instrument is restricted to professional investors.", "title": "Pro Traders Only", "type": "boolean" }, "required_cash_increment": { "description": "Deprecated: no longer enforced, always zero.", "readOnly": true, "title": "Required Cash Increment", "type": "integer" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "Availability stage of the instrument." }, "supports_automatic_rollover": { "description": "Whether positions can roll over automatically at maturity.", "title": "Supports Automatic Rollover", "type": "boolean" }, "symbol": { "description": "Market identifier, such as an ISIN or currency pair.", "examples": [ "US5949181045" ], "title": "Symbol", "type": "string" }, "target_client_categories": { "description": "MiFID II client categories this instrument is intended for.", "items": { "$ref": "#/components/schemas/ClientCategory" }, "title": "Target Client Categories", "type": "array" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Ticker symbol of the security.", "examples": [ "AAPL" ], "title": "Ticker" }, "trading_configuration": { "$ref": "#/components/schemas/TradingConfiguration", "description": "How orders may be sized and the minimums they must meet, by side. Cash amounts are in the trading currency." }, "trading_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency used to trade the instrument.", "examples": [ "USD" ] }, "trading_increment": { "description": "Smallest quantity increment accepted for orders.", "examples": [ "0.00010000" ], "title": "Trading Increment", "type": "string" }, "trading_status": { "$ref": "#/components/schemas/InstrumentTradingStatus", "description": "Current trading status." }, "upcoming_coupon_amount_per_unit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Next coupon cash amount per unit of face quantity. Eight decimal places: a quarterly 2.625 coupon pays 0.0065625 per unit, which four would round.", "examples": [ "0.02625000" ], "title": "Upcoming Coupon Amount Per Unit" } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "trading_configuration", "decimal_precision", "pro_traders_only", "price_type", "target_client_categories", "isin", "issuer", "issuer_country", "trading_currency", "initial_issue_date", "maturity_date", "days_to_maturity", "supports_automatic_rollover", "issuer_credit_rating", "initial_auction_date", "latest_auction_date", "latest_issue_date", "coupon_type", "coupon_frequency", "coupon", "par_value", "minimum_trading_quantity", "minimum_initial_cash_investment", "required_cash_increment", "enforce_trading_rules" ], "title": "Bond", "type": "object" }, "BondCouponFrequency": { "enum": [ "annual", "semi_annual", "quarterly", "monthly", "biennial" ], "properties": {}, "title": "BondCouponFrequency", "type": "string" }, "BondCouponType": { "enum": [ "fixed_coupon", "floating_coupon", "zero_coupon", "stepped_coupon", "deferred_coupon", "pay_in_kind_coupon", "indexed_coupon", "credit_linked_coupon" ], "properties": {}, "title": "BondCouponType", "type": "string" }, "BondFixedCouponMarketCashEstimate": { "properties": { "accrued_interest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Total accrued interest amount (cash, not a percent of par) included in the purchase cost.", "examples": [ "50.0000" ], "title": "Accrued Interest" }, "annual_income": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Estimated annual coupon income (nominal x coupon rate).", "examples": [ "425.00" ], "title": "Annual Income" }, "asof": { "description": "Timestamp of the price the estimate is based on.", "format": "date-time", "title": "Asof", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "1.00" ], "title": "Fees", "type": "string" }, "net_cash_amount": { "description": "Cash invested after fees.", "examples": [ "9999.00" ], "title": "Net Cash Amount", "type": "string" }, "price": { "description": "Latest price per unit.", "examples": [ "99.9281" ], "title": "Price", "type": "string" }, "quantity": { "description": "Estimated units the order would acquire; for fixed income this is the nominal redeemed at par at maturity.", "examples": [ "10000" ], "title": "Quantity", "type": "string" }, "yield": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Annualised yield (yield to maturity for fixed income). Percent, e.g. 2.25 = 2.25%.", "examples": [ "2.25" ], "title": "Yield" } }, "required": [ "price", "asof", "quantity", "net_cash_amount", "fees", "fee_breakdown" ], "title": "BondFixedCouponMarketCashEstimate", "type": "object" }, "BondFixedCouponMarketCashQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "cash_amount": { "description": "Cash the user chose to invest (before fees).", "examples": [ "10000.00" ], "title": "Cash Amount", "type": "string" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/BondFixedCouponMarketCashEstimate", "description": "Estimated economics at the latest price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quote_type": { "const": "bond_fixed_coupon_market_cash", "default": "bond_fixed_coupon_market_cash", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "cash_amount", "estimate" ], "title": "BondFixedCouponMarketCashQuote", "type": "object" }, "BondZeroCouponMarketCashEstimate": { "properties": { "asof": { "description": "Timestamp of the price the estimate is based on.", "format": "date-time", "title": "Asof", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "1.00" ], "title": "Fees", "type": "string" }, "net_cash_amount": { "description": "Cash invested after fees.", "examples": [ "9999.00" ], "title": "Net Cash Amount", "type": "string" }, "price": { "description": "Latest price per unit.", "examples": [ "99.9281" ], "title": "Price", "type": "string" }, "quantity": { "description": "Estimated units the order would acquire; for fixed income this is the nominal redeemed at par at maturity.", "examples": [ "10000" ], "title": "Quantity", "type": "string" }, "yield": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Annualised yield (yield to maturity for fixed income). Percent, e.g. 2.25 = 2.25%.", "examples": [ "2.25" ], "title": "Yield" } }, "required": [ "price", "asof", "quantity", "net_cash_amount", "fees", "fee_breakdown" ], "title": "BondZeroCouponMarketCashEstimate", "type": "object" }, "BondZeroCouponMarketCashQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "cash_amount": { "description": "Cash the user chose to invest (before fees).", "examples": [ "10000.00" ], "title": "Cash Amount", "type": "string" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/BondZeroCouponMarketCashEstimate", "description": "Estimated economics at the latest price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quote_type": { "const": "bond_zero_coupon_market_cash", "default": "bond_zero_coupon_market_cash", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "cash_amount", "estimate" ], "title": "BondZeroCouponMarketCashQuote", "type": "object" }, "BusinessCustomer": { "properties": { "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Customer's primary address." }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "customer_type": { "const": "business", "description": "Customer classification.", "title": "Customer Type", "type": "string" }, "entity_name": { "description": "Registered business name.", "title": "Entity Name", "type": "string" }, "entity_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legal form of the business.", "title": "Entity Type" }, "full_name": { "description": "Customer's full display name.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lei_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legal Entity Identifier.", "title": "Lei Code" }, "lei_code_expiry_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Expiry date of the Legal Entity Identifier.", "examples": [ "2027-06-30" ], "title": "Lei Code Expiry Date" }, "mifid_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's MiFID classification.", "title": "Mifid Category" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "onboarding": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the customer's onboarding process.", "title": "Onboarding" }, "operating_address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Primary operating address." }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's primary phone number.", "title": "Phone Number" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer-visible reference.", "title": "Reference" }, "referrer_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Referral code associated with the customer.", "title": "Referrer Code" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's assigned risk profile.", "title": "Risk Profile" }, "risk_score": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's risk score.", "examples": [ "42.50" ], "title": "Risk Score" }, "status": { "$ref": "#/components/schemas/CustomerStatus", "description": "Current customer status." } }, "required": [ "created_at", "modified_at", "id", "reference", "status", "full_name", "onboarding", "mifid_category", "address", "phone_number", "risk_profile", "risk_score", "referrer_code", "customer_type", "entity_name", "entity_type", "lei_code", "lei_code_expiry_date", "operating_address" ], "title": "BusinessCustomer", "type": "object" }, "BusinessNatureClaimSpec": { "additionalProperties": false, "description": "Business activity, turnover and risk indicators.", "properties": { "annual_turnover_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "business_activity": { "$ref": "#/components/schemas/ClaimIndustry" }, "business_activity_other": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Business Activity Other" }, "claim_type": { "const": "business_nature", "title": "Claim Type", "type": "string" }, "has_nominee_shareholders": { "title": "Has Nominee Shareholders", "type": "boolean" }, "has_shell_bank_relationships": { "title": "Has Shell Bank Relationships", "type": "boolean" }, "is_regulated": { "title": "Is Regulated", "type": "boolean" }, "issues_bearer_shares": { "title": "Issues Bearer Shares", "type": "boolean" }, "license_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "License Number" } }, "required": [ "claim_type", "business_activity", "annual_turnover_eur", "is_regulated", "issues_bearer_shares", "has_nominee_shareholders", "has_shell_bank_relationships" ], "title": "BusinessNatureClaimSpec", "type": "object" }, "BusinessNaturePersonClaim": { "additionalProperties": false, "properties": { "annual_turnover_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "business_activity": { "$ref": "#/components/schemas/ClaimIndustry" }, "business_activity_other": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Business Activity Other" }, "claim_type": { "const": "business_nature", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "has_nominee_shareholders": { "title": "Has Nominee Shareholders", "type": "boolean" }, "has_shell_bank_relationships": { "title": "Has Shell Bank Relationships", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_regulated": { "title": "Is Regulated", "type": "boolean" }, "issues_bearer_shares": { "title": "Issues Bearer Shares", "type": "boolean" }, "license_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "License Number" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "business_activity", "annual_turnover_eur", "is_regulated", "issues_bearer_shares", "has_nominee_shareholders", "has_shell_bank_relationships", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "BusinessNaturePersonClaim", "type": "object" }, "BusinessNaturePersonClaimSummary": { "additionalProperties": false, "properties": { "annual_turnover_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "business_activity": { "$ref": "#/components/schemas/ClaimIndustry" }, "business_activity_other": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Business Activity Other" }, "claim_type": { "const": "business_nature", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "has_nominee_shareholders": { "title": "Has Nominee Shareholders", "type": "boolean" }, "has_shell_bank_relationships": { "title": "Has Shell Bank Relationships", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_regulated": { "title": "Is Regulated", "type": "boolean" }, "issues_bearer_shares": { "title": "Issues Bearer Shares", "type": "boolean" }, "license_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "License Number" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "business_activity", "annual_turnover_eur", "is_regulated", "issues_bearer_shares", "has_nominee_shareholders", "has_shell_bank_relationships", "id", "created_at", "status" ], "title": "BusinessNaturePersonClaimSummary", "type": "object" }, "BuyTradingConfiguration": { "description": "How a buy may be sized and the minimums it must meet. A null minimum is not\napplied.", "properties": { "min_cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Cash every buy must invest, in the trading currency, excluding fees.", "examples": [ "20000.00000000" ], "title": "Min Cash Amount" }, "min_initial_cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Cash a first buy must invest, on top of `min_cash_amount`. A buy is first when the account holds no position in the instrument.", "examples": [ "100000.00000000" ], "title": "Min Initial Cash Amount" }, "min_initial_quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Units a first buy must buy, on top of `min_quantity`.", "examples": [ "100.00000000" ], "title": "Min Initial Quantity" }, "min_quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Units every buy must buy.", "examples": [ "10.00000000" ], "title": "Min Quantity" }, "modes": { "description": "How a buy may be sized: `cash` (spend an amount) and/or `quantity` (buy a number of units).", "examples": [ [ "cash" ] ], "items": { "$ref": "#/components/schemas/OrderMode" }, "title": "Modes", "type": "array" } }, "required": [ "modes", "min_cash_amount", "min_initial_cash_amount", "min_quantity", "min_initial_quantity" ], "title": "BuyTradingConfiguration", "type": "object" }, "CashBalance": { "properties": { "available_for_trading": { "description": "Cash available for placing buy orders.", "examples": [ "10000.00" ], "title": "Available For Trading", "type": "string" }, "available_for_withdrawal": { "description": "Cash available for withdrawal.", "examples": [ "9750.00" ], "title": "Available For Withdrawal", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "Currency of the cash balance.", "examples": [ "EUR" ] }, "reserved": { "description": "Cash reserved for pending orders or withdrawals.", "examples": [ "250.00" ], "title": "Reserved", "type": "string" }, "total": { "description": "Total cash balance across all settlement states.", "examples": [ "12500.00" ], "title": "Total", "type": "string" } }, "required": [ "currency", "total", "available_for_trading", "available_for_withdrawal", "reserved" ], "title": "CashBalance", "type": "object" }, "CashCurrencyEffect": { "properties": { "total": { "description": "How much exchange-rate movements changed the value of foreign-currency cash while it sat uninvested. Not split into realized and unrealized.", "title": "Total", "type": "string" } }, "required": [ "total" ], "title": "CashCurrencyEffect", "type": "object" }, "CashEarningsAttribution": { "properties": { "currency": { "$ref": "#/components/schemas/CashCurrencyEffect", "description": "Gains or losses from exchange-rate movements on uninvested foreign-currency cash. This is the only way cash earns or loses value." } }, "required": [ "currency" ], "title": "CashEarningsAttribution", "type": "object" }, "CashValuation": { "properties": { "asof": { "description": "The time of the cash valuation.", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Asof", "type": "string" }, "cash_balance": { "$ref": "#/components/schemas/CashBalance", "description": "The valued cash balance." }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency of the cash value." }, "value": { "description": "The cash value.", "examples": [ "25000.00" ], "title": "Value", "type": "string" } }, "required": [ "cash_balance", "value", "currency", "asof" ], "title": "CashValuation", "type": "object" }, "ClaimAssetClass": { "enum": [ "treasury_bills", "bonds", "equities", "etfs", "mutual_funds", "fx", "cfds", "derivatives", "crypto" ], "properties": {}, "title": "ClaimAssetClass", "type": "string" }, "ClaimEducationLevel": { "enum": [ "none", "secondary", "bachelors", "masters", "doctorate", "professional" ], "properties": {}, "title": "ClaimEducationLevel", "type": "string" }, "ClaimEmploymentStatus": { "enum": [ "employed", "self_employed", "retired", "student", "unemployed" ], "properties": {}, "title": "ClaimEmploymentStatus", "type": "string" }, "ClaimIncomeSource": { "enum": [ "salary", "pension", "rental_income", "dividends", "interest" ], "properties": {}, "title": "ClaimIncomeSource", "type": "string" }, "ClaimIndustry": { "enum": [ "accountancy", "admin_secretarial", "agricultural", "arms_trade", "catering_hospitality", "company_services", "consulting", "creative_media", "defence_military", "education", "emergency_services", "energy", "export_import", "financial_services", "gambling", "government_public_sector", "health_medical", "legal", "leisure_entertainment_tourism", "manufacturing", "marketing_pr_advertising", "ngo", "nonprofit_charity", "oil_gas_mining", "pharmaceuticals", "precious_metals_stones", "professional_services", "property_construction_trade", "retail", "social_care_services", "technology", "telecommunications", "transport_logistics", "adult_entertainment", "cannabis_cbd", "cryptocurrencies", "embassy_consulate", "other" ], "properties": {}, "title": "ClaimIndustry", "type": "string" }, "ClaimRegistrationEntityType": { "enum": [ "private_company", "public_company", "listed_company", "investment_firm", "pension_provident_fund", "investment_fund", "insurance_firm", "trust", "partnership", "bank_emi" ], "properties": {}, "title": "ClaimRegistrationEntityType", "type": "string" }, "ClaimStatus": { "enum": [ "pending", "verified" ], "properties": {}, "title": "ClaimStatus", "type": "string" }, "ClaimType": { "enum": [ "identity", "nationalities", "residence", "tax_residencies", "fatca_status", "pep_status", "education_level", "employment", "financial_profile", "investment_experience", "expected_activity", "relationships", "registration", "contact_details", "lei", "registered_address", "operating_address", "business_nature" ], "properties": {}, "title": "ClaimType", "type": "string" }, "ClaimWealthSource": { "enum": [ "savings", "inheritance", "trust_fund", "investments", "borrowings", "real_estate" ], "properties": {}, "title": "ClaimWealthSource", "type": "string" }, "ClientCategory": { "enum": [ "retail", "professional_per_se", "professional_on_request" ], "properties": {}, "title": "ClientCategory", "type": "string" }, "ClientCredentialsForm": { "description": "Form for the `client_credentials` grant type.", "properties": { "client_id": { "description": "OAuth client ID.", "title": "Client Id", "type": "string" }, "client_secret": { "description": "OAuth client secret.", "title": "Client Secret", "type": "string" }, "grant_type": { "const": "client_credentials", "description": "Must be `client_credentials`.", "title": "Grant Type", "type": "string" }, "scope": { "description": "Space-separated list of scopes.", "title": "Scope", "type": "string", "x-remove-null-from-type-union": true } }, "required": [ "client_id", "grant_type", "client_secret" ], "title": "ClientCredentialsForm", "type": "object" }, "ContactDetailsClaimSpec": { "additionalProperties": false, "description": "How to reach the person, or a legal person's point of contact.", "properties": { "claim_type": { "const": "contact_details", "title": "Claim Type", "type": "string" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "phone_number": { "title": "Phone Number", "type": "string" } }, "required": [ "claim_type", "phone_number" ], "title": "ContactDetailsClaimSpec", "type": "object" }, "ContactDetailsPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "contact_details", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "phone_number": { "title": "Phone Number", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "phone_number", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "ContactDetailsPersonClaim", "type": "object" }, "ContactDetailsPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "contact_details", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "phone_number": { "title": "Phone Number", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "phone_number", "id", "created_at", "status" ], "title": "ContactDetailsPersonClaimSummary", "type": "object" }, "ControlType": { "enum": [ "ownership", "voting", "other" ], "properties": {}, "title": "ControlType", "type": "string" }, "CreateDepositRequest": { "properties": { "amount": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" } ], "description": "Positive deposit amount with up to two decimal places.", "examples": [ "100.00" ], "title": "Amount" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "Supported account currency to credit." }, "payment_reference": { "description": "Reference used to match the inbound payment; generated when omitted and unique per funding batch when provided.", "title": "Payment Reference", "type": "string", "x-remove-null-from-type-union": true }, "request_advance": { "default": false, "description": "Request that the deposit amount is credited in advance as unsettled cash, which will settle once the deposit is funded.", "title": "Request Advance", "type": "boolean" } }, "required": [ "amount", "currency" ], "title": "CreateDepositRequest", "type": "object" }, "CreateFileFromSignedUploadRequest": { "properties": { "signed_upload": { "description": "ID of the signed upload to create the file from.", "title": "Signed Upload", "type": "string" } }, "required": [ "signed_upload" ], "title": "CreateFileFromSignedUploadRequest", "type": "object" }, "CreatePersonRequest": { "properties": { "claims": { "description": "Identity and business claims for the person.", "items": { "anyOf": [ { "$ref": "#/components/schemas/IdentityClaimSpec" }, { "$ref": "#/components/schemas/NationalitiesClaimSpec" }, { "$ref": "#/components/schemas/ResidenceClaimSpec" }, { "$ref": "#/components/schemas/TaxResidenciesClaimSpec" }, { "$ref": "#/components/schemas/FatcaStatusClaimSpec" }, { "$ref": "#/components/schemas/PepStatusClaimSpec" }, { "$ref": "#/components/schemas/EducationLevelClaimSpec" }, { "$ref": "#/components/schemas/EmploymentClaimSpec" }, { "$ref": "#/components/schemas/FinancialProfileClaimSpec" }, { "$ref": "#/components/schemas/InvestmentExperienceClaimSpec" }, { "$ref": "#/components/schemas/ExpectedActivityClaimSpec" }, { "$ref": "#/components/schemas/RelationshipsClaimSpec" }, { "$ref": "#/components/schemas/RegistrationClaimSpec" }, { "$ref": "#/components/schemas/ContactDetailsClaimSpec" }, { "$ref": "#/components/schemas/LeiClaimSpec" }, { "$ref": "#/components/schemas/RegisteredAddressClaimSpec" }, { "$ref": "#/components/schemas/OperatingAddressClaimSpec" }, { "$ref": "#/components/schemas/BusinessNatureClaimSpec" } ] }, "minItems": 1, "title": "Claims", "type": "array" }, "person_type": { "$ref": "#/components/schemas/PersonType", "description": "Whether the person is natural or legal." } }, "required": [ "person_type", "claims" ], "title": "CreatePersonRequest", "type": "object" }, "CreateSignedUploadRequest": { "properties": { "content_type": { "description": "Media type of the file.", "examples": [ "application/pdf" ], "title": "Content Type", "type": "string", "x-remove-null-from-type-union": true }, "filename": { "description": "Original name of the file.", "examples": [ "identity-document.pdf" ], "title": "Filename", "type": "string" }, "purpose": { "const": "verification_evidence", "description": "The purpose of the uploaded file.", "title": "Purpose", "type": "string" } }, "required": [ "filename", "purpose" ], "title": "CreateSignedUploadRequest", "type": "object" }, "CreateWebhookRequest": { "properties": { "description": { "description": "Human-readable purpose of the webhook.", "title": "Description", "type": "string", "x-remove-null-from-type-union": true }, "url": { "description": "HTTPS URL that receives webhook deliveries; IP addresses are rejected.", "examples": [ "https://example.com/webhook" ], "title": "Url", "type": "string" } }, "required": [ "url" ], "title": "CreateWebhookRequest", "type": "object" }, "CreateWithdrawalRequest": { "properties": { "amount": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" } ], "description": "Positive withdrawal amount with up to two decimal places.", "examples": [ "100.00" ], "title": "Amount" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "Supported account currency to withdraw without conversion." }, "funding_account": { "description": "ID of the funding account that receives the withdrawal. Must be registered on the parent account.", "title": "Funding Account", "type": "string" } }, "required": [ "amount", "currency", "funding_account" ], "title": "CreateWithdrawalRequest", "type": "object" }, "Currency": { "enum": [ "EUR", "USD", "GBP" ], "properties": {}, "title": "Currency", "type": "string" }, "CurrencyPair": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Summary of the instrument.", "examples": [ "Common stock listed on the Nasdaq Global Select Market." ], "title": "About" }, "asset_class": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AssetClassAllocation" }, "type": "array" }, { "type": "null" } ], "description": "How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.", "title": "Asset Class" }, "base_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency being bought or sold.", "examples": [ "EUR" ] }, "decimal_precision": { "description": "Decimal places used by the trading increment.", "examples": [ 2 ], "title": "Decimal Precision", "type": "integer" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC of the listing venue.", "examples": [ "XNAS" ], "title": "Exchange" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public CDN URL of the instrument's icon.", "examples": [ "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png" ], "title": "Icon Url" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "instrument_type": { "const": "currency_pair", "description": "Instrument type.", "title": "Instrument Type", "type": "string" }, "name": { "description": "Display name of the instrument.", "examples": [ "Apple Inc." ], "title": "Name", "type": "string" }, "price_type": { "$ref": "#/components/schemas/PriceType", "description": "Price quotation type." }, "pro_traders_only": { "description": "Whether the instrument is restricted to professional investors.", "title": "Pro Traders Only", "type": "boolean" }, "quote_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency in which the pair is priced.", "examples": [ "USD" ] }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "Availability stage of the instrument." }, "symbol": { "description": "Market identifier, such as an ISIN or currency pair.", "examples": [ "US5949181045" ], "title": "Symbol", "type": "string" }, "target_client_categories": { "description": "MiFID II client categories this instrument is intended for.", "items": { "$ref": "#/components/schemas/ClientCategory" }, "title": "Target Client Categories", "type": "array" }, "trading_configuration": { "$ref": "#/components/schemas/TradingConfiguration", "description": "How orders may be sized and the minimums they must meet, by side. Cash amounts are in the trading currency." }, "trading_increment": { "description": "Smallest quantity increment accepted for orders.", "examples": [ "0.00010000" ], "title": "Trading Increment", "type": "string" }, "trading_status": { "$ref": "#/components/schemas/InstrumentTradingStatus", "description": "Current trading status." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "trading_configuration", "decimal_precision", "pro_traders_only", "price_type", "target_client_categories", "base_currency", "quote_currency" ], "title": "CurrencyPair", "type": "object" }, "CustomerAuthority": { "properties": { "authority_type": { "$ref": "#/components/schemas/AuthorityType", "description": "Kind of authority granted." }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "customer": { "description": "Customer covered by the authority.", "discriminator": { "mapping": { "business": "#/components/schemas/BusinessCustomer", "individual": "#/components/schemas/IndividualCustomer", "joint": "#/components/schemas/JointCustomer" }, "propertyName": "customer_type" }, "oneOf": [ { "$ref": "#/components/schemas/IndividualCustomer" }, { "$ref": "#/components/schemas/JointCustomer" }, { "$ref": "#/components/schemas/BusinessCustomer" } ], "title": "Customer" }, "granted_at": { "description": "Date and time the authority was granted.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Granted At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "person": { "description": "Person granted the authority.", "discriminator": { "mapping": { "legal": "#/components/schemas/LegalPerson", "natural": "#/components/schemas/NaturalPerson" }, "propertyName": "person_type" }, "oneOf": [ { "$ref": "#/components/schemas/NaturalPerson" }, { "$ref": "#/components/schemas/LegalPerson" } ], "title": "Person" }, "revoked_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the authority was revoked; `null` while the authority is still active.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Revoked At" }, "status": { "$ref": "#/components/schemas/AuthorityStatus", "description": "Current authority status." } }, "required": [ "created_at", "modified_at", "id", "authority_type", "status", "customer", "person", "granted_at", "revoked_at" ], "title": "CustomerAuthority", "type": "object" }, "CustomerStatus": { "enum": [ "active", "suspended", "closing", "closed" ], "properties": {}, "title": "CustomerStatus", "type": "string" }, "CustomerType": { "enum": [ "individual", "joint", "business" ], "properties": {}, "title": "CustomerType", "type": "string" }, "DayCountConvention": { "enum": [ "30_360", "actual_360", "actual_365_fixed", "actual_actual" ], "properties": {}, "title": "DayCountConvention", "type": "string" }, "Deposit": { "properties": { "account": { "description": "The ID of the parent account.", "title": "Account", "type": "string" }, "advanced_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the deposit was advanced as unsettled cash.", "examples": [ "2026-07-14T09:32:00Z" ], "title": "Advanced At" }, "amount": { "description": "The amount of the deposit.", "examples": [ "100.00", "50.12" ], "title": "Amount", "type": "string" }, "completed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the deposit was completed.", "examples": [ "2026-07-14T09:34:12Z" ], "title": "Completed At" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency of the deposit." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "payment_reference": { "description": "The reference used to identify the inbound payment.", "examples": [ "202512161234" ], "title": "Payment Reference", "type": "string" }, "status": { "$ref": "#/components/schemas/DepositStatus", "description": "The status of the deposit." }, "was_advanced": { "description": "Whether the deposit was advanced as unsettled cash.", "title": "Was Advanced", "type": "boolean" } }, "required": [ "created_at", "modified_at", "id", "account", "amount", "currency", "payment_reference", "was_advanced", "status" ], "title": "Deposit", "type": "object" }, "DepositStatus": { "enum": [ "open", "pending", "held", "returning", "completed", "returned", "cancelled" ], "properties": {}, "title": "DepositStatus", "type": "string" }, "Document": { "properties": { "account": { "description": "ID of the account the document belongs to.", "title": "Account", "type": "string" }, "content_type": { "description": "MIME type of the document content.", "title": "Content Type", "type": "string" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "document_type": { "$ref": "#/components/schemas/DocumentType-Output", "description": "Kind of document." }, "file": { "description": "ID of the file containing the document.", "title": "File", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_downloadable": { "description": "Whether the document is available for download.", "title": "Is Downloadable", "type": "boolean" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "period_end": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "End date of the period covered by the document.", "examples": [ "2026-03-31" ], "title": "Period End" }, "period_start": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Start date of the period covered by the document.", "examples": [ "2026-01-01" ], "title": "Period Start" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the object this document evidences; the order an order confirmation confirms. Null for documents covering a period.", "examples": [ "ord_2eF9kQ7pXn" ], "title": "Reference" }, "title": { "description": "Document title.", "title": "Title", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "account", "title", "document_type", "content_type", "file", "period_start", "period_end", "reference", "is_downloadable" ], "title": "Document", "type": "object" }, "DocumentType-Output": { "enum": [ "welcome_letter", "order_confirmation", "fee_statement", "account_statement" ], "properties": {}, "title": "DocumentType", "type": "string" }, "ETF": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Summary of the instrument.", "examples": [ "Common stock listed on the Nasdaq Global Select Market." ], "title": "About" }, "asset_class": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AssetClassAllocation" }, "type": "array" }, { "type": "null" } ], "description": "How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.", "title": "Asset Class" }, "currency_sentence": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Plain-language description of the fund's currency risk.", "examples": [ "The fund is denominated in USD; your return in EUR will vary with the USD/EUR rate." ], "title": "Currency Sentence" }, "decimal_precision": { "description": "Decimal places used by the trading increment.", "examples": [ 2 ], "title": "Decimal Precision", "type": "integer" }, "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Short card headline derived from the legal name with share-class tokens removed.", "examples": [ "iShares Core MSCI World UCITS ETF" ], "title": "Display Name" }, "distribution_frequency": { "anyOf": [ { "$ref": "#/components/schemas/ETFDistributionFrequency" }, { "type": "null" } ], "description": "How often a distributing fund pays out income." }, "distribution_policy": { "anyOf": [ { "$ref": "#/components/schemas/ETFDistributionPolicy" }, { "type": "null" } ], "description": "Whether the fund accumulates or distributes its income." }, "enforce_trading_rules": { "description": "Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.", "readOnly": true, "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC of the listing venue.", "examples": [ "XNAS" ], "title": "Exchange" }, "expense_ratio": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Annual expense ratio as a fraction of assets.", "examples": [ "0.0020" ], "title": "Expense Ratio" }, "fund_base_currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ], "description": "Currency in which the fund's net assets figure is reported.", "examples": [ "USD" ] }, "fund_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Fund category.", "examples": [ "Global Large-Cap Blend Equity" ], "title": "Fund Category" }, "fund_domicile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 domicile country code.", "examples": [ "IE" ], "title": "Fund Domicile" }, "fund_management": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legal company that manages the fund.", "examples": [ "BlackRock Asset Management Ireland Limited" ], "title": "Fund Management" }, "headline": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "One-line \"what do I own\" summary shown on the holding card.", "examples": [ "Global developed-market equities in a single fund." ], "title": "Headline" }, "hedge_currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ], "description": "Currency into which foreign-exchange exposure is hedged.", "examples": [ "EUR" ] }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public CDN URL of the instrument's icon.", "examples": [ "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png" ], "title": "Icon Url" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_issue_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Fund inception date.", "examples": [ "2009-09-25" ], "title": "Initial Issue Date" }, "instrument_type": { "const": "etf", "description": "Instrument type.", "title": "Instrument Type", "type": "string" }, "isin": { "description": "International Securities Identification Number.", "examples": [ "US5949181045" ], "title": "Isin", "type": "string" }, "issuer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Brand-level name of the fund issuer.", "examples": [ "iShares" ], "title": "Issuer" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code of the issuer.", "examples": [ "US" ], "title": "Issuer Country" }, "minimum_initial_cash_investment": { "description": "Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.", "readOnly": true, "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.", "readOnly": true, "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "Display name of the instrument.", "examples": [ "Apple Inc." ], "title": "Name", "type": "string" }, "net_assets": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Total net asset value of the fund.", "examples": [ "84250000000.00" ], "title": "Net Assets" }, "price_type": { "$ref": "#/components/schemas/PriceType", "description": "Price quotation type." }, "pro_traders_only": { "description": "Whether the instrument is restricted to professional investors.", "title": "Pro Traders Only", "type": "boolean" }, "replication_method": { "anyOf": [ { "$ref": "#/components/schemas/ETFReplicationMethod" }, { "type": "null" } ], "description": "How the fund replicates its tracking index." }, "required_cash_increment": { "description": "Deprecated: no longer enforced, always zero.", "readOnly": true, "title": "Required Cash Increment", "type": "integer" }, "rhp_years": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Recommended holding period in years from the PRIIPs KID.", "examples": [ 5 ], "title": "Rhp Years" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "Availability stage of the instrument." }, "sri": { "anyOf": [ { "$ref": "#/components/schemas/SyntheticRiskIndicator" }, { "type": "null" } ], "description": "PRIIPs KID synthetic risk indicator." }, "symbol": { "description": "Market identifier, such as an ISIN or currency pair.", "examples": [ "US5949181045" ], "title": "Symbol", "type": "string" }, "target_client_categories": { "description": "MiFID II client categories this instrument is intended for.", "items": { "$ref": "#/components/schemas/ClientCategory" }, "title": "Target Client Categories", "type": "array" }, "ticker": { "description": "Ticker symbol of the ETF listing.", "examples": [ "IWDA" ], "title": "Ticker", "type": "string" }, "tracking_index": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Index tracked by the fund.", "examples": [ "MSCI World Index" ], "title": "Tracking Index" }, "trading_configuration": { "$ref": "#/components/schemas/TradingConfiguration", "description": "How orders may be sized and the minimums they must meet, by side. Cash amounts are in the trading currency." }, "trading_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency used to trade the instrument.", "examples": [ "USD" ] }, "trading_increment": { "description": "Smallest quantity increment accepted for orders.", "examples": [ "0.00010000" ], "title": "Trading Increment", "type": "string" }, "trading_status": { "$ref": "#/components/schemas/InstrumentTradingStatus", "description": "Current trading status." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "trading_configuration", "decimal_precision", "pro_traders_only", "price_type", "target_client_categories", "isin", "ticker", "issuer", "issuer_country", "trading_currency", "initial_issue_date", "fund_management", "fund_category", "fund_domicile", "tracking_index", "expense_ratio", "replication_method", "distribution_policy", "distribution_frequency", "sri", "hedge_currency", "display_name", "headline", "currency_sentence", "rhp_years", "fund_base_currency", "minimum_trading_quantity", "minimum_initial_cash_investment", "required_cash_increment", "enforce_trading_rules" ], "title": "ETF", "type": "object" }, "ETFDistributionFrequency": { "enum": [ "annual", "semi_annual", "quarterly", "monthly" ], "properties": {}, "title": "ETFDistributionFrequency", "type": "string" }, "ETFDistributionPolicy": { "enum": [ "accumulating", "distributing" ], "properties": {}, "title": "ETFDistributionPolicy", "type": "string" }, "ETFReplicationMethod": { "enum": [ "physical", "sampling", "synthetic" ], "properties": {}, "title": "ETFReplicationMethod", "type": "string" }, "EarningsAttribution": { "properties": { "currency": { "$ref": "#/components/schemas/EarningsEffect", "description": "How much came from exchange-rate movements on the money invested in positions, between the day it was invested and either the day it was sold or today. Zero when everything is in the account's currency." }, "investment": { "$ref": "#/components/schemas/EarningsEffect", "description": "How much came from the investments themselves, that is price changes and income, with the effect of exchange-rate movements stripped out." } }, "required": [ "investment", "currency" ], "title": "EarningsAttribution", "type": "object" }, "EarningsEffect": { "properties": { "realized": { "$ref": "#/components/schemas/RealizedEarningsSplit", "description": "Earnings already locked in: from units sold and income paid out, each converted at the exchange rate of the day it happened." }, "total": { "description": "Realized plus unrealized.", "title": "Total", "type": "string" }, "unrealized": { "$ref": "#/components/schemas/UnrealizedEarningsSplit", "description": "Earnings not yet locked in: from units still held and interest accrued but not yet paid, converted at the current exchange rate." } }, "required": [ "total", "realized", "unrealized" ], "title": "EarningsEffect", "type": "object" }, "EducationLevelClaimSpec": { "additionalProperties": false, "description": "Highest level of education (MiFID II suitability).", "properties": { "claim_type": { "const": "education_level", "title": "Claim Type", "type": "string" }, "education_level": { "$ref": "#/components/schemas/ClaimEducationLevel" } }, "required": [ "claim_type", "education_level" ], "title": "EducationLevelClaimSpec", "type": "object" }, "EducationLevelPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "education_level", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "education_level": { "$ref": "#/components/schemas/ClaimEducationLevel" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "education_level", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "EducationLevelPersonClaim", "type": "object" }, "EducationLevelPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "education_level", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "education_level": { "$ref": "#/components/schemas/ClaimEducationLevel" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "education_level", "id", "created_at", "status" ], "title": "EducationLevelPersonClaimSummary", "type": "object" }, "EmploymentClaimSpec": { "additionalProperties": false, "description": "Employment status and industry (MiFID II suitability).", "properties": { "claim_type": { "const": "employment", "title": "Claim Type", "type": "string" }, "employment_status": { "$ref": "#/components/schemas/ClaimEmploymentStatus" }, "industry": { "anyOf": [ { "$ref": "#/components/schemas/ClaimIndustry" }, { "type": "null" } ] }, "industry_other": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Industry Other" } }, "required": [ "claim_type", "employment_status" ], "title": "EmploymentClaimSpec", "type": "object" }, "EmploymentPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "employment", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "employment_status": { "$ref": "#/components/schemas/ClaimEmploymentStatus" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "industry": { "anyOf": [ { "$ref": "#/components/schemas/ClaimIndustry" }, { "type": "null" } ] }, "industry_other": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Industry Other" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "employment_status", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "EmploymentPersonClaim", "type": "object" }, "EmploymentPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "employment", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "employment_status": { "$ref": "#/components/schemas/ClaimEmploymentStatus" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "industry": { "anyOf": [ { "$ref": "#/components/schemas/ClaimIndustry" }, { "type": "null" } ] }, "industry_other": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Industry Other" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "employment_status", "id", "created_at", "status" ], "title": "EmploymentPersonClaimSummary", "type": "object" }, "Error": { "properties": { "code": { "description": "A machine-readable error code.", "title": "Code", "type": "string" }, "context": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "items": { "type": "string" }, "type": "array" } ] }, "description": "An optional object for adding extra context to the error.", "title": "Context", "type": "object", "x-remove-null-from-type-union": true }, "detail": { "description": "A human-readable description of the error.", "title": "Detail", "type": "string" }, "docs": { "description": "A URL to documentation about this error code.", "title": "Docs", "type": "string", "x-remove-null-from-type-union": true }, "params": { "description": "An optional list of params that failed validation.", "items": { "$ref": "#/components/schemas/InvalidParam" }, "title": "Params", "type": "array", "x-remove-null-from-type-union": true } }, "required": [ "detail", "code" ], "title": "Error", "type": "object" }, "EtfLimitCashEstimate": { "properties": { "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "1.00" ], "title": "Fees", "type": "string" }, "max_cost": { "description": "Worst-case cash the order can consume at the limit.", "examples": [ "9976.00" ], "title": "Max Cost", "type": "string" }, "net_cash_amount": { "description": "Cash invested after fees.", "examples": [ "9999.00" ], "title": "Net Cash Amount", "type": "string" }, "quantity": { "description": "Estimated units affordable at the limit within the budget.", "examples": [ "116" ], "title": "Quantity", "type": "string" } }, "required": [ "quantity", "net_cash_amount", "max_cost", "fees", "fee_breakdown" ], "title": "EtfLimitCashEstimate", "type": "object" }, "EtfLimitCashQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "cash_amount": { "description": "Cash the user chose to invest (before fees).", "examples": [ "10000.00" ], "title": "Cash Amount", "type": "string" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/EtfLimitCashEstimate", "description": "Estimated economics at the limit price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "limit_price": { "description": "Worst-case price per unit the order is bounded by.", "examples": [ "700.0000" ], "title": "Limit Price", "type": "string" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quote_type": { "const": "etf_limit_cash", "default": "etf_limit_cash", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "cash_amount", "limit_price", "estimate" ], "title": "EtfLimitCashQuote", "type": "object" }, "EtfLimitQuantityEstimate": { "properties": { "cost": { "description": "All-in cost at the limit price (notional + fees).", "examples": [ "1207.45" ], "title": "Cost", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "1.00" ], "title": "Fees", "type": "string" }, "max_cost": { "description": "Worst-case cash the order can consume at the limit.", "examples": [ "1207.45" ], "title": "Max Cost", "type": "string" }, "notional": { "description": "Traded value at the limit price (limit x quantity).", "examples": [ "1206.45" ], "title": "Notional", "type": "string" } }, "required": [ "notional", "cost", "max_cost", "fees", "fee_breakdown" ], "title": "EtfLimitQuantityEstimate", "type": "object" }, "EtfLimitQuantityQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/EtfLimitQuantityEstimate", "description": "Estimated economics at the limit price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "limit_price": { "description": "Worst-case price per unit the order is bounded by.", "examples": [ "86.1750" ], "title": "Limit Price", "type": "string" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quantity": { "description": "Units the user chose to buy.", "examples": [ "14" ], "title": "Quantity", "type": "string" }, "quote_type": { "const": "etf_limit_quantity", "default": "etf_limit_quantity", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "quantity", "limit_price", "estimate" ], "title": "EtfLimitQuantityQuote", "type": "object" }, "EtfMarketCashEstimate": { "properties": { "asof": { "description": "Timestamp of the price the estimate is based on.", "format": "date-time", "title": "Asof", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "1.00" ], "title": "Fees", "type": "string" }, "net_cash_amount": { "description": "Cash invested after fees.", "examples": [ "9999.00" ], "title": "Net Cash Amount", "type": "string" }, "price": { "description": "Latest market price per unit.", "examples": [ "703.40" ], "title": "Price", "type": "string" }, "quantity": { "description": "Estimated units the order would acquire.", "examples": [ "14" ], "title": "Quantity", "type": "string" } }, "required": [ "price", "asof", "quantity", "net_cash_amount", "fees", "fee_breakdown" ], "title": "EtfMarketCashEstimate", "type": "object" }, "EtfMarketCashQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "cash_amount": { "description": "Cash the user chose to invest (before fees).", "examples": [ "10000.00" ], "title": "Cash Amount", "type": "string" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/EtfMarketCashEstimate", "description": "Estimated economics at the latest price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quote_type": { "const": "etf_market_cash", "default": "etf_market_cash", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "cash_amount", "estimate" ], "title": "EtfMarketCashQuote", "type": "object" }, "EtfMarketQuantityEstimate": { "properties": { "asof": { "description": "Timestamp of the price the estimate is based on.", "format": "date-time", "title": "Asof", "type": "string" }, "cost": { "description": "Estimated all-in cost (notional + fees).", "examples": [ "1034.04" ], "title": "Cost", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "0.00" ], "title": "Fees", "type": "string" }, "notional": { "description": "Estimated traded value (price x quantity).", "examples": [ "1034.04" ], "title": "Notional", "type": "string" }, "price": { "description": "Latest market price per unit.", "examples": [ "86.17" ], "title": "Price", "type": "string" }, "price_buffer_percentage": { "description": "Fraction added on top of the cost when sizing the cash reservation, to absorb price movement before execution (0.02 = 2%). The gap between `cost` and `reservation.amount` is this buffer.", "examples": [ "0.0200" ], "title": "Price Buffer Percentage", "type": "string" } }, "required": [ "price", "asof", "notional", "cost", "price_buffer_percentage", "fees", "fee_breakdown" ], "title": "EtfMarketQuantityEstimate", "type": "object" }, "EtfMarketQuantityQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/EtfMarketQuantityEstimate", "description": "Estimated economics at the latest price." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quantity": { "description": "Units the user chose to buy.", "examples": [ "12" ], "title": "Quantity", "type": "string" }, "quote_type": { "const": "etf_market_quantity", "default": "etf_market_quantity", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "quantity", "estimate" ], "title": "EtfMarketQuantityQuote", "type": "object" }, "EurAmountBand": { "enum": [ "lt_50k", "50k_100k", "100k_250k", "250k_500k", "500k_1m", "1m_3m", "gt_3m" ], "properties": {}, "title": "EurAmountBand", "type": "string" }, "Event": { "properties": { "created_at": { "description": "Time the event was recorded.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "data": { "additionalProperties": true, "description": "Event-specific payload data.", "title": "Data", "type": "object" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "name": { "description": "Fully qualified event name, such as `customer.created`.", "title": "Name", "type": "string" }, "resource": { "$ref": "#/components/schemas/EventResource", "description": "Resource associated with the event." } }, "required": [ "id", "name", "resource", "data", "created_at" ], "title": "Event", "type": "object" }, "EventResource": { "properties": { "id": { "description": "ID of the resource the event relates to.", "title": "Id", "type": "string" }, "resource_type": { "description": "Canonical resource type.", "title": "Resource Type", "type": "string" } }, "required": [ "id", "resource_type" ], "title": "EventResource", "type": "object" }, "EvidenceType": { "enum": [ "identity_document", "proof_of_address", "selfie", "certificate_of_shareholders", "certificate_of_directors", "certificate_of_good_standing", "financial_statements", "ownership_structure", "proof_of_registered_address", "proof_of_operating_address", "nominee_agreement", "board_resolution" ], "properties": {}, "title": "EvidenceType", "type": "string" }, "ExpectedActivityClaimSpec": { "additionalProperties": false, "description": "How the person expects to use the account.", "properties": { "annual_transactions": { "title": "Annual Transactions", "type": "string" }, "asset_classes": { "items": { "type": "string" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "expected_activity", "title": "Claim Type", "type": "string" }, "funding_currency": { "title": "Funding Currency", "type": "string" }, "investment_amount": { "title": "Investment Amount", "type": "string" } }, "required": [ "claim_type", "funding_currency", "asset_classes", "annual_transactions", "investment_amount" ], "title": "ExpectedActivityClaimSpec", "type": "object" }, "ExpectedActivityPersonClaim": { "additionalProperties": false, "properties": { "annual_transactions": { "title": "Annual Transactions", "type": "string" }, "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "asset_classes": { "items": { "type": "string" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "expected_activity", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "funding_currency": { "title": "Funding Currency", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "investment_amount": { "title": "Investment Amount", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "funding_currency", "asset_classes", "annual_transactions", "investment_amount", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "ExpectedActivityPersonClaim", "type": "object" }, "ExpectedActivityPersonClaimSummary": { "additionalProperties": false, "properties": { "annual_transactions": { "title": "Annual Transactions", "type": "string" }, "asset_classes": { "items": { "type": "string" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "expected_activity", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "funding_currency": { "title": "Funding Currency", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "investment_amount": { "title": "Investment Amount", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "funding_currency", "asset_classes", "annual_transactions", "investment_amount", "id", "created_at", "status" ], "title": "ExpectedActivityPersonClaimSummary", "type": "object" }, "FatcaStatusClaimSpec": { "additionalProperties": false, "description": "Whether the person is a US person under FATCA.", "properties": { "claim_type": { "const": "fatca_status", "title": "Claim Type", "type": "string" }, "is_us_person": { "title": "Is Us Person", "type": "boolean" } }, "required": [ "claim_type", "is_us_person" ], "title": "FatcaStatusClaimSpec", "type": "object" }, "FatcaStatusPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "fatca_status", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_us_person": { "title": "Is Us Person", "type": "boolean" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "is_us_person", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "FatcaStatusPersonClaim", "type": "object" }, "FatcaStatusPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "fatca_status", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_us_person": { "title": "Is Us Person", "type": "boolean" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "is_us_person", "id", "created_at", "status" ], "title": "FatcaStatusPersonClaimSummary", "type": "object" }, "Fee": { "properties": { "alias": { "description": "Stable alias of the fee.", "title": "Alias", "type": "string" }, "chargeable_currencies": { "additionalProperties": { "$ref": "#/components/schemas/FeeChargeableCurrency" }, "description": "Fee amounts by chargeable currency.", "title": "Chargeable Currencies", "type": "object" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Description of the fee.", "title": "Description" }, "display_name": { "description": "Display name of the fee.", "title": "Display Name", "type": "string" }, "fee_type": { "$ref": "#/components/schemas/FeeType", "description": "Type of fee." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "name": { "description": "Internal name of the fee.", "title": "Name", "type": "string" }, "tax_rate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Tax rate applied to the fee.", "examples": [ "0.20" ], "title": "Tax Rate" }, "transaction_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Transaction type to which the fee applies.", "title": "Transaction Type" }, "variants": { "description": "Scoped variants of this fee.", "items": { "$ref": "#/components/schemas/FeeVariant" }, "title": "Variants", "type": "array" } }, "required": [ "created_at", "modified_at", "id", "name", "display_name", "alias", "description", "tax_rate", "fee_type", "transaction_type", "chargeable_currencies", "variants" ], "title": "Fee", "type": "object" }, "FeeCharge": { "properties": { "amount_fee": { "description": "Fee amount before tax.", "examples": [ "10.00" ], "title": "Amount Fee", "type": "string" }, "amount_tax": { "description": "Tax amount charged.", "examples": [ "2.00" ], "title": "Amount Tax", "type": "string" }, "amount_total": { "description": "Total fee and tax amount.", "examples": [ "12.00" ], "title": "Amount Total", "type": "string" }, "collected_amount": { "description": "Cash actually collected for the charge so far.", "examples": [ "8.00" ], "title": "Collected Amount", "type": "string" }, "collected_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the charge was collected.", "examples": [ "2026-02-01T09:30:00Z" ], "title": "Collected At" }, "collections": { "description": "Collection events that paid the charge down, in the order they were recorded. Empty means nothing has been collected.", "items": { "$ref": "#/components/schemas/FeeCollection" }, "title": "Collections", "type": "array" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "Currency of the charge amounts." }, "fee": { "$ref": "#/components/schemas/Fee", "description": "Fee represented by this charge." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_fully_refunded": { "description": "Whether the full charge has been refunded.", "title": "Is Fully Refunded", "type": "boolean" }, "is_partially_refunded": { "description": "Whether part of the charge has been refunded.", "title": "Is Partially Refunded", "type": "boolean" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "outstanding_amount": { "description": "What is still owed on the charge: the uncollected portion net of refunds, zero until the charge becomes due.", "examples": [ "4.00" ], "title": "Outstanding Amount", "type": "string" }, "period_end": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "End date of the period covered by the charge.", "examples": [ "2026-01-31" ], "title": "Period End" }, "period_start": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Start date of the period covered by the charge.", "examples": [ "2026-01-01" ], "title": "Period Start" }, "refundable_amount": { "description": "Amount remaining eligible for refund.", "examples": [ "7.00" ], "title": "Refundable Amount", "type": "string" }, "refunded_amount": { "description": "Amount already refunded.", "examples": [ "5.00" ], "title": "Refunded Amount", "type": "string" }, "refunds": { "description": "Refunds issued for the fee charge.", "items": { "$ref": "#/components/schemas/Refund" }, "title": "Refunds", "type": "array" }, "related_transaction": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Transaction associated with the fee charge.", "title": "Related Transaction" }, "related_transaction_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The notional the fee was priced on. Null when the amount does not depend on a notional, as a flat fee does not.", "examples": [ "250.00" ], "title": "Related Transaction Amount" }, "tax_rate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Tax rate applied to the fee charge.", "examples": [ "0.20" ], "title": "Tax Rate" } }, "required": [ "created_at", "modified_at", "id", "tax_rate", "fee", "amount_fee", "amount_tax", "amount_total", "refunded_amount", "refundable_amount", "is_fully_refunded", "is_partially_refunded", "currency", "period_start", "period_end", "collected_at", "related_transaction", "related_transaction_amount", "collected_amount", "outstanding_amount", "refunds", "collections" ], "title": "FeeCharge", "type": "object" }, "FeeChargeableCurrency": { "properties": { "unit_amount": { "description": "Fee amount charged in this currency.", "examples": [ "2.50" ], "title": "Unit Amount", "type": "string" } }, "required": [ "unit_amount" ], "title": "FeeChargeableCurrency", "type": "object" }, "FeeCollection": { "description": "One collection event: cash actually taken from the client for a fee charge.", "properties": { "amount": { "description": "Cash collected by this event, in the charge's currency.", "examples": [ "4.00" ], "title": "Amount", "type": "string" }, "collected_at": { "description": "When the cash actually moved.", "examples": [ "2026-07-02T09:00:00Z" ], "format": "date-time", "title": "Collected At", "type": "string" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "Currency of the collected amount." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "amount", "currency", "collected_at" ], "title": "FeeCollection", "type": "object" }, "FeeType": { "enum": [ "transaction", "recurring" ], "properties": {}, "title": "FeeType", "type": "string" }, "FeeVariant": { "description": "An immutable scoped slice of a fee.", "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Authoring note; never used in matching.", "title": "Description" }, "fee": { "description": "The fee this variant scopes.", "title": "Fee", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "instrument": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Instrument-id scope.", "title": "Instrument" }, "instrument_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Instrument-type scope.", "title": "Instrument Type" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "portfolio_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Forward-looking portfolio-type scope key.", "title": "Portfolio Type" }, "transaction_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Triggering transaction type (transaction fees only).", "title": "Transaction Type" } }, "required": [ "created_at", "modified_at", "id", "fee" ], "title": "FeeVariant", "type": "object" }, "File": { "properties": { "content_type": { "description": "MIME type of the uploaded file.", "title": "Content Type", "type": "string" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "filename": { "description": "Name of the uploaded file.", "title": "Filename", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "purpose": { "description": "Purpose of the uploaded file.", "enum": [ "verification_evidence", "legal_document", "welcome_letter", "order_confirmation", "fee_statement", "account_statement" ], "title": "Purpose", "type": "string" }, "signed_upload": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the signed upload that created the file.", "title": "Signed Upload" } }, "required": [ "created_at", "modified_at", "id", "filename", "content_type", "purpose", "signed_upload" ], "title": "File", "type": "object" }, "FinancialProfileClaimSpec": { "additionalProperties": false, "description": "AML income and wealth, in bands, with their sources.", "properties": { "annual_income_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "claim_type": { "const": "financial_profile", "title": "Claim Type", "type": "string" }, "income_sources": { "items": { "$ref": "#/components/schemas/ClaimIncomeSource" }, "minItems": 1, "title": "Income Sources", "type": "array" }, "net_worth_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "wealth_sources": { "items": { "$ref": "#/components/schemas/ClaimWealthSource" }, "minItems": 1, "title": "Wealth Sources", "type": "array" } }, "required": [ "claim_type", "annual_income_eur", "income_sources", "net_worth_eur", "wealth_sources" ], "title": "FinancialProfileClaimSpec", "type": "object" }, "FinancialProfilePersonClaim": { "additionalProperties": false, "properties": { "annual_income_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "financial_profile", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "income_sources": { "items": { "$ref": "#/components/schemas/ClaimIncomeSource" }, "minItems": 1, "title": "Income Sources", "type": "array" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "net_worth_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" }, "wealth_sources": { "items": { "$ref": "#/components/schemas/ClaimWealthSource" }, "minItems": 1, "title": "Wealth Sources", "type": "array" } }, "required": [ "claim_type", "annual_income_eur", "income_sources", "net_worth_eur", "wealth_sources", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "FinancialProfilePersonClaim", "type": "object" }, "FinancialProfilePersonClaimSummary": { "additionalProperties": false, "properties": { "annual_income_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "claim_type": { "const": "financial_profile", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "income_sources": { "items": { "$ref": "#/components/schemas/ClaimIncomeSource" }, "minItems": 1, "title": "Income Sources", "type": "array" }, "net_worth_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "wealth_sources": { "items": { "$ref": "#/components/schemas/ClaimWealthSource" }, "minItems": 1, "title": "Wealth Sources", "type": "array" } }, "required": [ "claim_type", "annual_income_eur", "income_sources", "net_worth_eur", "wealth_sources", "id", "created_at", "status" ], "title": "FinancialProfilePersonClaimSummary", "type": "object" }, "FundingAccount": { "properties": { "bank_code": { "description": "The bank code, such as a BIC or SWIFT code.", "title": "Bank Code", "type": "string" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency of the funding account." }, "iban": { "description": "The IBAN of the funding account.", "title": "Iban", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_verified": { "default": false, "description": "Whether ownership of the funding account is verified.", "title": "Is Verified", "type": "boolean" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "nickname": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The user-provided nickname for the funding account.", "title": "Nickname" }, "owner_name": { "description": "The owner name as specified by the bank on the funding account.", "title": "Owner Name", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "owner_name", "iban", "bank_code", "currency" ], "title": "FundingAccount", "type": "object" }, "GenerateAccountStatementRequest": { "properties": { "period_end": { "description": "The end of the period to generate the statement for, exclusive.", "examples": [ "2026-02-01" ], "format": "date", "title": "Period End", "type": "string" }, "period_start": { "description": "The start of the period to generate the statement for, inclusive.", "examples": [ "2026-01-01" ], "format": "date", "title": "Period Start", "type": "string" } }, "required": [ "period_start", "period_end" ], "title": "GenerateAccountStatementRequest", "type": "object" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "title": "Detail", "type": "array" } }, "title": "HTTPValidationError", "type": "object" }, "IdentityClaimSpec": { "additionalProperties": false, "description": "Legal name and date of birth.", "properties": { "claim_type": { "const": "identity", "title": "Claim Type", "type": "string" }, "date_of_birth": { "format": "date", "title": "Date Of Birth", "type": "string" }, "first_name": { "title": "First Name", "type": "string" }, "last_name": { "title": "Last Name", "type": "string" } }, "required": [ "claim_type", "first_name", "last_name", "date_of_birth" ], "title": "IdentityClaimSpec", "type": "object" }, "IdentityPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "identity", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "date_of_birth": { "format": "date", "title": "Date Of Birth", "type": "string" }, "first_name": { "title": "First Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "last_name": { "title": "Last Name", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "first_name", "last_name", "date_of_birth", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "IdentityPersonClaim", "type": "object" }, "IdentityPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "identity", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "date_of_birth": { "format": "date", "title": "Date Of Birth", "type": "string" }, "first_name": { "title": "First Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "last_name": { "title": "Last Name", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "first_name", "last_name", "date_of_birth", "id", "created_at", "status" ], "title": "IdentityPersonClaimSummary", "type": "object" }, "IndividualCustomer": { "properties": { "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Customer's primary address." }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "customer_type": { "const": "individual", "description": "Customer classification.", "title": "Customer Type", "type": "string" }, "date_of_birth": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Customer's date and time of birth.", "examples": [ "1988-04-12T00:00:00Z" ], "title": "Date Of Birth" }, "first_name": { "description": "Customer's first name.", "title": "First Name", "type": "string" }, "full_name": { "description": "Customer's full display name.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "id_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Masked national identity number.", "title": "Id Number" }, "last_name": { "description": "Customer's last name.", "title": "Last Name", "type": "string" }, "mifid_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's MiFID classification.", "title": "Mifid Category" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "nationalities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 nationality codes.", "title": "Nationalities" }, "onboarding": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the customer's onboarding process.", "title": "Onboarding" }, "passport_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Masked passport number.", "title": "Passport Number" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's primary phone number.", "title": "Phone Number" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer-visible reference.", "title": "Reference" }, "referrer_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Referral code associated with the customer.", "title": "Referrer Code" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's assigned risk profile.", "title": "Risk Profile" }, "risk_score": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's risk score.", "examples": [ "42.50" ], "title": "Risk Score" }, "status": { "$ref": "#/components/schemas/CustomerStatus", "description": "Current customer status." }, "tax_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Masked tax identification number.", "title": "Tax Number" } }, "required": [ "created_at", "modified_at", "id", "reference", "status", "full_name", "onboarding", "mifid_category", "address", "phone_number", "risk_profile", "risk_score", "referrer_code", "customer_type", "first_name", "last_name", "date_of_birth", "nationalities", "passport_number", "id_number", "tax_number" ], "title": "IndividualCustomer", "type": "object" }, "InstrumentRolloutStage": { "enum": [ "ga", "beta", "provisional", "restricted" ], "properties": {}, "title": "InstrumentRolloutStage", "type": "string" }, "InstrumentTradingStatus": { "enum": [ "buy_sell", "buy_only", "sell_only", "not_trading" ], "properties": {}, "title": "InstrumentTradingStatus", "type": "string" }, "InstrumentType": { "enum": [ "money_market_fund", "stock", "bill", "bond", "etf", "mutual_fund", "currency_pair", "amc" ], "properties": {}, "title": "InstrumentType", "type": "string" }, "InvalidParam": { "properties": { "code": { "description": "A machine-readable error code.", "title": "Code", "type": "string" }, "detail": { "description": "Human-readable detail for error.", "title": "Detail", "type": "string" }, "path": { "description": "Path to the field name (or index if a list) that errored.", "items": { "anyOf": [ { "type": "integer" }, { "type": "string" } ] }, "title": "Path", "type": "array" } }, "required": [ "path", "detail", "code" ], "title": "InvalidParam", "type": "object" }, "InvestmentExperienceClaimSpec": { "additionalProperties": false, "description": "Onboarding summary of prior investing.", "properties": { "asset_classes": { "items": { "$ref": "#/components/schemas/ClaimAssetClass" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "investment_experience", "title": "Claim Type", "type": "string" }, "has_prior_experience": { "title": "Has Prior Experience", "type": "boolean" } }, "required": [ "claim_type", "has_prior_experience" ], "title": "InvestmentExperienceClaimSpec", "type": "object" }, "InvestmentExperiencePersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "asset_classes": { "items": { "$ref": "#/components/schemas/ClaimAssetClass" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "investment_experience", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "has_prior_experience": { "title": "Has Prior Experience", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "has_prior_experience", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "InvestmentExperiencePersonClaim", "type": "object" }, "InvestmentExperiencePersonClaimSummary": { "additionalProperties": false, "properties": { "asset_classes": { "items": { "$ref": "#/components/schemas/ClaimAssetClass" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "investment_experience", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "has_prior_experience": { "title": "Has Prior Experience", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "has_prior_experience", "id", "created_at", "status" ], "title": "InvestmentExperiencePersonClaimSummary", "type": "object" }, "JointCustomer": { "properties": { "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Customer's primary address." }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "customer_type": { "const": "joint", "description": "Customer classification.", "title": "Customer Type", "type": "string" }, "first_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Combined first names of the joint owners.", "title": "First Name" }, "full_name": { "description": "Customer's full display name.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "last_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Combined last names of the joint owners.", "title": "Last Name" }, "mifid_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's MiFID classification.", "title": "Mifid Category" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "onboarding": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the customer's onboarding process.", "title": "Onboarding" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's primary phone number.", "title": "Phone Number" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer-visible reference.", "title": "Reference" }, "referrer_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Referral code associated with the customer.", "title": "Referrer Code" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's assigned risk profile.", "title": "Risk Profile" }, "risk_score": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Customer's risk score.", "examples": [ "42.50" ], "title": "Risk Score" }, "status": { "$ref": "#/components/schemas/CustomerStatus", "description": "Current customer status." } }, "required": [ "created_at", "modified_at", "id", "reference", "status", "full_name", "onboarding", "mifid_category", "address", "phone_number", "risk_profile", "risk_score", "referrer_code", "customer_type", "first_name", "last_name" ], "title": "JointCustomer", "type": "object" }, "LegalDocument": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "document_type": { "$ref": "#/components/schemas/LegalDocumentType", "description": "Legal document type." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "latest_version": { "anyOf": [ { "$ref": "#/components/schemas/LegalDocumentVersion" }, { "type": "null" } ], "description": "Latest version of the legal document." }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "name": { "description": "Legal document name.", "title": "Name", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "name", "document_type", "latest_version" ], "title": "LegalDocument", "type": "object" }, "LegalDocumentType": { "enum": [ "investment_services_agreement", "risk_disclosures", "conflicts_of_interest_policy", "complaints_handling_policy", "client_assets_safeguarding_policy", "investor_compensation_fund_policy", "order_execution_policy", "costs_and_charges", "pccpc_prospectus", "pccpc_special_regulations", "pccpc_acceptance_declaration" ], "properties": {}, "title": "LegalDocumentType", "type": "string" }, "LegalDocumentVersion": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "effective_at": { "description": "Time the legal document version becomes effective.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Effective At", "type": "string" }, "file": { "description": "ID of the file for the legal document version.", "title": "File", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "legal_document": { "description": "ID of the parent legal document.", "title": "Legal Document", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "version": { "description": "Version of the legal document.", "title": "Version", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "legal_document", "version", "effective_at", "file" ], "title": "LegalDocumentVersion", "type": "object" }, "LegalDocumentVersionWithDownloadUrl": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "download_url": { "description": "Download URL for the legal document version.", "title": "Download Url", "type": "string" }, "effective_at": { "description": "Time the legal document version becomes effective.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Effective At", "type": "string" }, "file": { "description": "ID of the file for the legal document version.", "title": "File", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "legal_document": { "description": "ID of the parent legal document.", "title": "Legal Document", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "version": { "description": "Version of the legal document.", "title": "Version", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "legal_document", "version", "effective_at", "file", "download_url" ], "title": "LegalDocumentVersionWithDownloadUrl", "type": "object" }, "LegalEntityType": { "enum": [ "limited_company", "partnership", "sole_proprietorship", "foundation", "trust", "cooperative", "other" ], "properties": {}, "title": "LegalEntityType", "type": "string" }, "LegalPerson": { "properties": { "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Registered address: residential for natural persons, registered office for legal persons." }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "entity_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Registered legal entity name.", "title": "Entity Name" }, "entity_type": { "anyOf": [ { "$ref": "#/components/schemas/LegalEntityType" }, { "type": "null" } ], "description": "Legal entity type (e.g. `limited_company`, `partnership`)." }, "full_name": { "description": "Full name: first and last for natural persons, entity name for legal persons.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lei_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Legal Entity Identifier.", "title": "Lei Code" }, "lei_code_expiry_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Expiry date of the Legal Entity Identifier.", "examples": [ "2027-06-30" ], "title": "Lei Code Expiry Date" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "operating_address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Primary operating address." }, "person_type": { "const": "legal", "description": "Person classification.", "title": "Person Type", "type": "string" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Person's primary phone number.", "title": "Phone Number" } }, "required": [ "created_at", "modified_at", "id", "person_type", "full_name", "address", "phone_number", "entity_name", "entity_type", "lei_code", "lei_code_expiry_date", "operating_address" ], "title": "LegalPerson", "type": "object" }, "LeiClaimSpec": { "additionalProperties": false, "description": "Legal Entity Identifier.", "properties": { "claim_type": { "const": "lei", "title": "Claim Type", "type": "string" }, "expiry_date": { "format": "date", "title": "Expiry Date", "type": "string" }, "identifier": { "title": "Identifier", "type": "string" } }, "required": [ "claim_type", "identifier", "expiry_date" ], "title": "LeiClaimSpec", "type": "object" }, "LeiPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "lei", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "expiry_date": { "format": "date", "title": "Expiry Date", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "identifier": { "title": "Identifier", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "identifier", "expiry_date", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "LeiPersonClaim", "type": "object" }, "LeiPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "lei", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "expiry_date": { "format": "date", "title": "Expiry Date", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "identifier": { "title": "Identifier", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "identifier", "expiry_date", "id", "created_at", "status" ], "title": "LeiPersonClaimSummary", "type": "object" }, "MmfMarketCashEstimate": { "properties": { "asof": { "description": "Timestamp of the price the estimate is based on.", "format": "date-time", "title": "Asof", "type": "string" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "1.00" ], "title": "Fees", "type": "string" }, "net_cash_amount": { "description": "Cash invested after fees.", "examples": [ "9999.00" ], "title": "Net Cash Amount", "type": "string" }, "price": { "description": "Latest price per unit.", "examples": [ "99.9281" ], "title": "Price", "type": "string" }, "quantity": { "description": "Estimated units the order would acquire; for fixed income this is the nominal redeemed at par at maturity.", "examples": [ "10000" ], "title": "Quantity", "type": "string" }, "yield": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Annualised yield (yield to maturity for fixed income). Percent, e.g. 2.25 = 2.25%.", "examples": [ "2.25" ], "title": "Yield" } }, "required": [ "price", "asof", "quantity", "net_cash_amount", "fees", "fee_breakdown" ], "title": "MmfMarketCashEstimate", "type": "object" }, "MmfMarketCashQuote": { "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "cash_amount": { "description": "Cash the user chose to invest (before fees).", "examples": [ "1000.00" ], "title": "Cash Amount", "type": "string" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/MmfMarketCashEstimate", "description": "Estimated economics at the latest NAV." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quote_type": { "const": "mmf_market_cash", "default": "mmf_market_cash", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "cash_amount", "estimate" ], "title": "MmfMarketCashQuote", "type": "object" }, "MoneyMarketFund": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Summary of the instrument.", "examples": [ "Common stock listed on the Nasdaq Global Select Market." ], "title": "About" }, "asset_class": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AssetClassAllocation" }, "type": "array" }, { "type": "null" } ], "description": "How the instrument splits across asset classes, one entry per class, weights summing to 1. A single-class instrument carries one entry at a weight of 1. Null when the instrument carries no classification at all.", "title": "Asset Class" }, "benchmark": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Benchmark used to evaluate fund performance.", "examples": [ "Euro Short-Term Rate (€STR)" ], "title": "Benchmark" }, "dealing_deadline": { "description": "Daily cutoff time for placing orders.", "examples": [ "13:00:00" ], "format": "time", "title": "Dealing Deadline", "type": "string" }, "dealing_deadline_time_and_day": { "description": "Next dealing cutoff shown as time and date.", "examples": [ "13:00 Jul 15, 2026" ], "title": "Dealing Deadline Time And Day", "type": "string" }, "decimal_precision": { "description": "Decimal places used by the trading increment.", "examples": [ 2 ], "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "description": "Deprecated: use `trading_configuration`. Always false; the server enforces the trading rules.", "readOnly": true, "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC of the listing venue.", "examples": [ "XNAS" ], "title": "Exchange" }, "fund_management_company": { "description": "Company that manages the fund.", "examples": [ "BlackRock Asset Management Ireland Limited" ], "title": "Fund Management Company", "type": "string" }, "fund_ongoing_charges": { "description": "Annual ongoing charges as a percentage.", "examples": [ "0.15" ], "title": "Fund Ongoing Charges", "type": "string" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public CDN URL of the instrument's icon.", "examples": [ "https://storage.googleapis.com/sophic-assets/instrument-icons/in_x7GqT.png" ], "title": "Icon Url" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_issue_date": { "description": "Date the fund was first issued.", "examples": [ "2013-07-15" ], "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "money_market_fund", "description": "Instrument type.", "title": "Instrument Type", "type": "string" }, "investment_objective": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Investment objective of the fund.", "examples": [ "Preserve capital while providing daily liquidity and income." ], "title": "Investment Objective" }, "is_passed_dealing_deadline": { "description": "Whether today's dealing cutoff has passed.", "title": "Is Passed Dealing Deadline", "type": "boolean" }, "is_qualifying_mmf": { "description": "Whether the fund qualifies as a QMMF under MiFID.", "title": "Is Qualifying Mmf", "type": "boolean" }, "isin": { "description": "International Securities Identification Number.", "examples": [ "US5949181045" ], "title": "Isin", "type": "string" }, "issuer": { "description": "Name of the issuer.", "examples": [ "BlackRock Asset Management Ireland Limited" ], "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO 3166-1 alpha-2 country code of the issuer.", "examples": [ "US" ], "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Issuer credit rating.", "examples": [ "AAA" ], "title": "Issuer Credit Rating", "type": "string" }, "minimum_initial_cash_investment": { "description": "Deprecated: use `trading_configuration.buy.min_initial_cash_amount`. Zero when no minimum applies.", "readOnly": true, "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "Deprecated: use `trading_configuration.buy`. The cash a buy must invest: `min_initial_cash_amount`, else `min_cash_amount`, else the trading increment when no minimum applies.", "readOnly": true, "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "Display name of the instrument.", "examples": [ "Apple Inc." ], "title": "Name", "type": "string" }, "price_type": { "$ref": "#/components/schemas/PriceType", "description": "Price quotation type." }, "pro_traders_only": { "description": "Whether the instrument is restricted to professional investors.", "title": "Pro Traders Only", "type": "boolean" }, "required_cash_increment": { "description": "Deprecated: no longer enforced, always zero.", "readOnly": true, "title": "Required Cash Increment", "type": "integer" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "Availability stage of the instrument." }, "symbol": { "description": "Market identifier, such as an ISIN or currency pair.", "examples": [ "US5949181045" ], "title": "Symbol", "type": "string" }, "target_client_categories": { "description": "MiFID II client categories this instrument is intended for.", "items": { "$ref": "#/components/schemas/ClientCategory" }, "title": "Target Client Categories", "type": "array" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Ticker symbol of the security.", "examples": [ "AAPL" ], "title": "Ticker" }, "trading_configuration": { "$ref": "#/components/schemas/TradingConfiguration", "description": "How orders may be sized and the minimums they must meet, by side. Cash amounts are in the trading currency." }, "trading_currency": { "$ref": "#/components/schemas/Currency", "description": "Currency used to trade the instrument.", "examples": [ "USD" ] }, "trading_increment": { "description": "Smallest quantity increment accepted for orders.", "examples": [ "0.00010000" ], "title": "Trading Increment", "type": "string" }, "trading_status": { "$ref": "#/components/schemas/InstrumentTradingStatus", "description": "Current trading status." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "trading_configuration", "decimal_precision", "pro_traders_only", "price_type", "target_client_categories", "isin", "issuer", "issuer_country", "trading_currency", "initial_issue_date", "issuer_credit_rating", "dealing_deadline", "dealing_deadline_time_and_day", "fund_management_company", "investment_objective", "is_passed_dealing_deadline", "benchmark", "fund_ongoing_charges", "is_qualifying_mmf", "minimum_trading_quantity", "minimum_initial_cash_investment", "required_cash_increment", "enforce_trading_rules" ], "title": "MoneyMarketFund", "type": "object" }, "NationalitiesClaimSpec": { "additionalProperties": false, "description": "Every nationality the person holds.", "properties": { "claim_type": { "const": "nationalities", "title": "Claim Type", "type": "string" }, "nationalities": { "items": { "$ref": "#/components/schemas/NationalityEntry" }, "title": "Nationalities", "type": "array" } }, "required": [ "claim_type" ], "title": "NationalitiesClaimSpec", "type": "object" }, "NationalitiesPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "nationalities", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "nationalities": { "items": { "$ref": "#/components/schemas/NationalityEntry" }, "title": "Nationalities", "type": "array" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "NationalitiesPersonClaim", "type": "object" }, "NationalitiesPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "nationalities", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "nationalities": { "items": { "$ref": "#/components/schemas/NationalityEntry" }, "title": "Nationalities", "type": "array" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "id", "created_at", "status" ], "title": "NationalitiesPersonClaimSummary", "type": "object" }, "NationalityBasis": { "enum": [ "birth", "naturalisation", "descent", "marriage", "investment_programme", "other" ], "properties": {}, "title": "NationalityBasis", "type": "string" }, "NationalityEntry": { "additionalProperties": false, "description": "One nationality and how it is held.", "properties": { "basis": { "anyOf": [ { "$ref": "#/components/schemas/NationalityBasis" }, { "type": "null" } ] }, "country_code": { "title": "Country Code", "type": "string" } }, "required": [ "country_code" ], "title": "NationalityEntry", "type": "object" }, "NaturalPerson": { "properties": { "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ], "description": "Registered address: residential for natural persons, registered office for legal persons." }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "date_of_birth": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Person's date of birth.", "examples": [ "1988-04-12" ], "title": "Date Of Birth" }, "first_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Person's first name.", "title": "First Name" }, "full_name": { "description": "Full name: first and last for natural persons, entity name for legal persons.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "id_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Masked national identity number.", "title": "Id Number" }, "last_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Person's last name.", "title": "Last Name" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "nationalities": { "description": "ISO 3166-1 alpha-2 nationality codes.", "items": { "type": "string" }, "title": "Nationalities", "type": "array" }, "passport_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Masked passport number.", "title": "Passport Number" }, "person_type": { "const": "natural", "description": "Person classification.", "title": "Person Type", "type": "string" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Person's primary phone number.", "title": "Phone Number" }, "tax_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Masked tax identification number.", "title": "Tax Number" } }, "required": [ "created_at", "modified_at", "id", "person_type", "full_name", "address", "phone_number", "first_name", "last_name", "passport_number", "id_number", "tax_number", "nationalities", "date_of_birth" ], "title": "NaturalPerson", "type": "object" }, "OAuthErrorBody": { "description": "RFC 6749 §5.2 error body returned by the OAuth protocol endpoints.\n\nReferenced in the OpenAPI schema only; responses are never serialized from\nthis model.", "properties": { "error": { "description": "The RFC 6749 error code, e.g. `invalid_grant`.", "title": "Error", "type": "string" }, "error_description": { "description": "A human-readable description of the error.", "title": "Error Description", "type": "string" } }, "required": [ "error", "error_description" ], "title": "OAuthErrorBody", "type": "object" }, "OAuthToken": { "properties": { "access_token": { "description": "The access token.", "title": "Access Token", "type": "string" }, "expires_in": { "description": "The number of seconds until the token expires.", "title": "Expires In", "type": "integer" }, "refresh_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A refresh token for obtaining new access tokens without re-authentication.", "title": "Refresh Token" }, "scope": { "description": "The scopes of the token, comma-separated.", "title": "Scope", "type": "string" }, "token_type": { "description": "The token type. Always 'bearer' for JWT tokens.", "title": "Token Type", "type": "string" } }, "required": [ "access_token", "token_type", "expires_in", "scope" ], "title": "OAuthToken", "type": "object" }, "OnboardingApplicationOutcome": { "enum": [ "approved", "rejected", "expired" ], "properties": {}, "title": "OnboardingApplicationOutcome", "type": "string" }, "OnboardingApplicationResponse": { "properties": { "application": { "additionalProperties": true, "description": "Submitted application data.", "title": "Application", "type": "object" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "customer_type": { "$ref": "#/components/schemas/CustomerType", "description": "Customer type for the application." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "outcome": { "anyOf": [ { "$ref": "#/components/schemas/OnboardingApplicationOutcome" }, { "type": "null" } ], "description": "Final application outcome." }, "status": { "$ref": "#/components/schemas/OnboardingApplicationStatus", "description": "Lifecycle status of the application." } }, "required": [ "created_at", "modified_at", "id", "customer_type", "status", "application" ], "title": "OnboardingApplicationResponse", "type": "object" }, "OnboardingApplicationStatus": { "enum": [ "pending", "processing", "completed" ], "properties": {}, "title": "OnboardingApplicationStatus", "type": "string" }, "OnboardingAuthoritySpec": { "additionalProperties": false, "description": "A person reference with authority type.", "properties": { "authority_type": { "$ref": "#/components/schemas/AuthorityType" }, "person": { "title": "Person", "type": "string" } }, "required": [ "person", "authority_type" ], "title": "OnboardingAuthoritySpec", "type": "object" }, "OnboardingConsentSpec": { "additionalProperties": false, "description": "A consent declaration captured during onboarding.\n\nThe `person_id` attributes the consent to a specific person -- an\nauthority on the application, or a related person referenced by\nthe legal entity's relationships claim. Validation of required\nconsents happens per-person.\n\n`consent_type` is either a `LegalDocumentType` (the person accepted\na specific legal document -- `legal_document_version` is required)\nor an `AttestationType` (the person made a self-attestation --\n`legal_document_version` must be omitted).", "properties": { "consent_type": { "anyOf": [ { "$ref": "#/components/schemas/LegalDocumentType" }, { "$ref": "#/components/schemas/AttestationType" } ], "title": "Consent Type" }, "consented_at": { "format": "date-time", "title": "Consented At", "type": "string" }, "legal_document_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Legal Document Version" }, "person": { "title": "Person", "type": "string" } }, "required": [ "person", "consent_type", "consented_at" ], "title": "OnboardingConsentSpec", "type": "object" }, "OnboardingEvidenceSpec": { "additionalProperties": false, "description": "An evidence file reference captured during onboarding.\n\nThe `person_id` attributes the evidence to a specific person, so\nper-authority and per-relationship requirements can be validated\nagainst the subset of items belonging to that person.", "properties": { "document_type": { "anyOf": [ { "$ref": "#/components/schemas/sophic__domain__onboarding__enums__DocumentType" }, { "type": "null" } ] }, "evidence_type": { "$ref": "#/components/schemas/EvidenceType" }, "file": { "title": "File", "type": "string" }, "person": { "title": "Person", "type": "string" } }, "required": [ "person", "evidence_type", "file" ], "title": "OnboardingEvidenceSpec", "type": "object" }, "OperatingAddressClaimSpec": { "additionalProperties": false, "description": "Where the business trades (principal place of business).", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "operating_address", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "postal_code": { "title": "Postal Code", "type": "string" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type" ], "title": "OperatingAddressClaimSpec", "type": "object" }, "OperatingAddressPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "city": { "title": "City", "type": "string" }, "claim_type": { "const": "operating_address", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "postal_code": { "title": "Postal Code", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "OperatingAddressPersonClaim", "type": "object" }, "OperatingAddressPersonClaimSummary": { "additionalProperties": false, "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "operating_address", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "postal_code": { "title": "Postal Code", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type", "id", "created_at", "status" ], "title": "OperatingAddressPersonClaimSummary", "type": "object" }, "Order": { "properties": { "accepted_appropriateness_warning": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Whether the customer accepted the appropriateness warning for this instrument. Null on orders placed before the field existed.", "title": "Accepted Appropriateness Warning" }, "account": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the parent account. Present on customer orders; `null` for system-placed orders.", "title": "Account" }, "automatic_rollover": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Customer's automatic rollover preference; set only on eligible buy orders.", "title": "Automatic Rollover" }, "average_traded_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Quantity-weighted average price of the executed trades, rounded to 5 decimal places. Clean price for bonds (excludes accrued interest). `null` until the first trade executes.", "examples": [ "95.08250" ], "title": "Average Traded Price" }, "cancelled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the order was cancelled.", "examples": [ "2026-07-14T09:34:12Z" ], "title": "Cancelled At" }, "cancelled_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The reason for cancelling the order, if cancelled.", "title": "Cancelled Reason" }, "cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The amount to invest (before fees). Buy orders are cash-based (you specify how much to invest, not how many units to buy).", "examples": [ "1000.00" ], "title": "Cash Amount" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ], "description": "Order currency: the instrument trading currency for securities, or the base currency for FX." }, "fees": { "description": "The total fees for this order.", "examples": [ "1.50" ], "title": "Fees", "type": "string" }, "filled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the order was filled.", "examples": [ "2026-07-14T09:34:12Z" ], "title": "Filled At" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "instrument": { "description": "The instrument to buy or sell.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_cancellable": { "description": "Whether the order can be cancelled now; true only for limit orders in a cancellable phase with no fills.", "title": "Is Cancellable", "type": "boolean" }, "limit_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Limit price per unit; `null` for market orders.", "examples": [ "95.1000" ], "title": "Limit Price" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "net_cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The amount to invest after fees. This is what gets traded.", "examples": [ "998.50" ], "title": "Net Cash Amount" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "The order type (e.g. market, limit)." }, "position": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the position this order belongs to; `null` until the order executes.", "title": "Position" }, "purpose": { "$ref": "#/components/schemas/OrderPurpose", "description": "The purpose of the order." }, "quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Requested unit quantity for sell orders.", "examples": [ "10.5" ], "title": "Quantity" }, "quote": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the quote used to place this order. On FX orders, locks the executing rate; when omitted, the order trades at the live rate.", "title": "Quote" }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the order was settled.", "examples": [ "2026-07-16T09:34:12Z" ], "title": "Settled At" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." }, "status": { "$ref": "#/components/schemas/OrderStatus", "description": "The order status." }, "traded_notional": { "description": "The total notional value executed.", "examples": [ "998.50" ], "title": "Traded Notional", "type": "string" }, "traded_quantity": { "description": "The total quantity executed.", "examples": [ "10.5" ], "title": "Traded Quantity", "type": "string" }, "trades": { "description": "All trades executed to fill this order.", "items": { "$ref": "#/components/schemas/OrderTrade" }, "title": "Trades", "type": "array" } }, "required": [ "created_at", "modified_at", "id", "status", "order_type", "purpose", "side", "instrument", "traded_quantity", "traded_notional", "fees", "is_cancellable", "trades" ], "title": "Order", "type": "object" }, "OrderMode": { "enum": [ "cash", "quantity" ], "properties": {}, "title": "OrderMode", "type": "string" }, "OrderPurpose": { "enum": [ "user_request", "rollover", "square_off", "backfill", "portfolio_allocation" ], "properties": {}, "title": "OrderPurpose", "type": "string" }, "OrderQuoteBlocker": { "description": "Why the quoted order cannot be placed as quoted: a trading rule it breaks, or a\nbalance it exceeds. Placing it as quoted fails with the same `code` and\n`context`.", "properties": { "code": { "description": "The error placement returns for this order: `trading_rule_violated`, `insufficient_funds` or `insufficient_units`.", "examples": [ "trading_rule_violated" ], "title": "Code", "type": "string" }, "context": { "anyOf": [ { "$ref": "#/components/schemas/OrderQuoteBlockerContext" }, { "$ref": "#/components/schemas/OrderQuoteFundsBlockerContext" }, { "$ref": "#/components/schemas/OrderQuoteUnitsBlockerContext" } ], "description": "The rule broken, or the balance exceeded, by `code`.", "title": "Context" }, "detail": { "description": "A readable description of the violation.", "examples": [ "Instrument AMC001 requires a minimum initial investment of 100000. Invested amount is 99950.00" ], "title": "Detail", "type": "string" } }, "required": [ "code", "detail", "context" ], "title": "OrderQuoteBlocker", "type": "object" }, "OrderQuoteBlockerContext": { "description": "The trading rule a blocker names, in the shape of the instrument's\n`trading_configuration`.", "properties": { "actual": { "description": "What the order has: the cash it invests (net of fees) or raises, its units, or its mode.", "examples": [ "99950.00" ], "title": "Actual", "type": "string" }, "required": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "description": "What the rule asks for: the minimum, the trading increment, or the allowed order modes.", "examples": [ "100000" ], "title": "Required" }, "required_cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "On a cash buy, the least `cash_amount`, fees included, that meets every buy rule checked in cash or units, so the client can say what to enter. Null on any other order.", "examples": [ "100053.00" ], "title": "Required Cash Amount" }, "rule": { "description": "The rule path, e.g. `buy.min_initial_cash_amount`, or `trading_increment`.", "examples": [ "buy.min_initial_cash_amount" ], "title": "Rule", "type": "string" } }, "required": [ "rule", "required", "actual", "required_cash_amount" ], "title": "OrderQuoteBlockerContext", "type": "object" }, "OrderQuoteFeeLine": { "description": "One line of an estimate's itemised `fees`.", "properties": { "amount": { "description": "The fee including its tax, in the quote's `currency`.", "examples": [ "1.00" ], "title": "Amount", "type": "string" }, "display_name": { "description": "The fee's name, for display.", "examples": [ "Settlement Fee" ], "title": "Display Name", "type": "string" }, "label": { "description": "What the fee is for, as the resulting order's fee row will label it. Open-ended: new labels can appear as fees are added, so render unknown values by `display_name`.", "examples": [ "settlement_fee", "execution_commission" ], "title": "Label", "type": "string" } }, "required": [ "label", "display_name", "amount" ], "title": "OrderQuoteFeeLine", "type": "object" }, "OrderQuoteFundsBlockerContext": { "description": "The cash balance an `insufficient_funds` blocker names.", "properties": { "available": { "description": "The free cash the account has for trading.", "examples": [ "800.00" ], "title": "Available", "type": "string" }, "currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ], "description": "The cash balance's currency.", "examples": [ "EUR" ] }, "requested": { "description": "The cash the order would reserve.", "examples": [ "1000.00" ], "title": "Requested", "type": "string" } }, "required": [ "available", "requested", "currency" ], "title": "OrderQuoteFundsBlockerContext", "type": "object" }, "OrderQuoteRequest": { "properties": { "cash_amount": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "The cash amount for a buy order.", "examples": [ "1000.00" ], "title": "Cash Amount" }, "instrument": { "description": "ID of the instrument to quote.", "title": "Instrument", "type": "string" }, "limit_price": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "Optional limit price. When set, the quote is a deterministic bound: `estimated_price` echoes the limit, a cash buy returns affordable quantity and `max_cost`, a sell returns `min_proceeds`.", "examples": [ "25.7500" ], "title": "Limit Price" }, "quantity": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "The unit quantity for a sell order.", "examples": [ "12.5000" ], "title": "Quantity" }, "return_only_fees": { "default": false, "description": "Whether to return only applicable fees.", "title": "Return Only Fees", "type": "boolean" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "The order side, buy or sell." } }, "required": [ "instrument", "side" ], "title": "OrderQuoteRequest", "type": "object" }, "OrderQuoteReservation": { "description": "What a placement referencing this quote would set aside.", "properties": { "amount": { "description": "Amount a placement would reserve: a cash amount on a buy, a unit quantity on a sell — see `denomination`.", "examples": [ "1000.00" ], "title": "Amount", "type": "string" }, "denomination": { "$ref": "#/components/schemas/ReservedDenomination", "description": "Whether `amount` is a cash amount or a unit quantity." } }, "required": [ "amount", "denomination" ], "title": "OrderQuoteReservation", "type": "object" }, "OrderQuoteUnitsBlockerContext": { "description": "The position an `insufficient_units` blocker names.", "properties": { "available": { "description": "The free units the position has for trading.", "examples": [ "10" ], "title": "Available", "type": "string" }, "requested": { "description": "The units the order would sell.", "examples": [ "12" ], "title": "Requested", "type": "string" } }, "required": [ "available", "requested" ], "title": "OrderQuoteUnitsBlockerContext", "type": "object" }, "OrderSide": { "enum": [ "buy", "sell" ], "properties": {}, "title": "OrderSide", "type": "string" }, "OrderStatus": { "enum": [ "held", "placed", "executing", "cancelling", "filled", "settled", "cancelled" ], "properties": {}, "title": "OrderStatus", "type": "string" }, "OrderTrade": { "properties": { "account": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the account that owns the trade.", "title": "Account" }, "accrued_interest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The accrued interest included in the notional amount.", "examples": [ "871.23" ], "title": "Accrued Interest" }, "counterparty": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the counterparty.", "title": "Counterparty" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "executed_at": { "description": "The time the trade was executed.", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Executed At", "type": "string" }, "execution_audit_trail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The execution audit trail.", "title": "Execution Audit Trail" }, "execution_broker": { "description": "The executing broker.", "title": "Execution Broker", "type": "string" }, "execution_reference": { "description": "The execution reference.", "title": "Execution Reference", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "instrument": { "description": "The traded instrument.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_reportable": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Whether the trade is reportable.", "title": "Is Reportable" }, "meta": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Additional trade metadata.", "title": "Meta" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "notional": { "description": "The executed notional amount.", "examples": [ "99250.00" ], "title": "Notional", "type": "string" }, "notional_currency": { "$ref": "#/components/schemas/Currency", "description": "The currency of the notional amount." }, "order": { "description": "The ID of the order.", "title": "Order", "type": "string" }, "position": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the resulting position.", "title": "Position" }, "price": { "description": "The execution price per unit.", "examples": [ "99.25" ], "title": "Price", "type": "string" }, "quantity": { "description": "The executed quantity.", "examples": [ "1000" ], "title": "Quantity", "type": "string" }, "quantity_currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ], "description": "The currency in which the quantity is denominated." }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the trade settled.", "examples": [ "2026-07-16T10:15:00Z" ], "title": "Settled At" }, "settlement_batch_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the settlement batch.", "title": "Settlement Batch Id" }, "settlement_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The scheduled settlement date.", "examples": [ "2026-07-16" ], "title": "Settlement Date" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "The executed order side." }, "status": { "$ref": "#/components/schemas/OrderTradeStatus", "description": "The trade status." }, "trading_venue": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The venue where the trade was executed.", "title": "Trading Venue" }, "tvtic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The trading venue transaction identification code.", "title": "Tvtic" }, "ytm": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The yield to maturity at execution.", "examples": [ "4.25" ], "title": "Ytm" } }, "required": [ "created_at", "modified_at", "id", "price", "quantity", "quantity_currency", "notional", "notional_currency", "side", "status", "position", "account", "order", "counterparty", "instrument", "ytm", "trading_venue", "tvtic", "execution_reference", "execution_broker", "execution_audit_trail", "settlement_batch_id", "is_reportable", "settlement_date", "executed_at", "settled_at", "meta" ], "title": "OrderTrade", "type": "object" }, "OrderTradeStatus": { "enum": [ "executed", "settled" ], "properties": {}, "title": "OrderTradeStatus", "type": "string" }, "OrderType": { "enum": [ "market", "limit" ], "properties": {}, "title": "OrderType", "type": "string" }, "PepStatusClaimSpec": { "additionalProperties": false, "description": "Politically exposed person status and associations.", "properties": { "claim_type": { "const": "pep_status", "title": "Claim Type", "type": "string" }, "has_pep_association": { "title": "Has Pep Association", "type": "boolean" }, "is_pep": { "title": "Is Pep", "type": "boolean" }, "pep_associate_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Associate Name" }, "pep_associate_relationship": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Associate Relationship" }, "pep_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Role" }, "pep_role_end_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Pep Role End Date" }, "pep_role_start_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Pep Role Start Date" } }, "required": [ "claim_type", "is_pep", "has_pep_association" ], "title": "PepStatusClaimSpec", "type": "object" }, "PepStatusPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "pep_status", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "has_pep_association": { "title": "Has Pep Association", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_pep": { "title": "Is Pep", "type": "boolean" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "pep_associate_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Associate Name" }, "pep_associate_relationship": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Associate Relationship" }, "pep_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Role" }, "pep_role_end_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Pep Role End Date" }, "pep_role_start_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Pep Role Start Date" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "is_pep", "has_pep_association", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "PepStatusPersonClaim", "type": "object" }, "PepStatusPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "pep_status", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "has_pep_association": { "title": "Has Pep Association", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_pep": { "title": "Is Pep", "type": "boolean" }, "pep_associate_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Associate Name" }, "pep_associate_relationship": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Associate Relationship" }, "pep_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pep Role" }, "pep_role_end_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Pep Role End Date" }, "pep_role_start_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Pep Role Start Date" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "is_pep", "has_pep_association", "id", "created_at", "status" ], "title": "PepStatusPersonClaimSummary", "type": "object" }, "Period": { "enum": [ "1d", "1w", "1m", "this-month", "3m", "6m", "ytd", "1y", "all" ], "properties": {}, "title": "Period", "type": "string" }, "Permission": { "properties": { "permission": { "description": "Permission in `resource.action` form (e.g. `user.read`).", "title": "Permission", "type": "string" }, "scopes": { "description": "Concrete scope paths where this permission applies in the current realm (e.g. `tenant/T1` or `tenant/T1/customer/C5`).", "items": { "type": "string" }, "title": "Scopes", "type": "array" }, "when": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Stable condition id when the permission is conditional (e.g. `is_own_user`). Omitted when unconditional.", "title": "When" } }, "required": [ "permission", "scopes" ], "title": "Permission", "type": "object" }, "PersonCreationResponse": { "properties": { "claims": { "description": "Claims created for this person.", "items": { "discriminator": { "mapping": { "business_nature": "#/components/schemas/BusinessNaturePersonClaimSummary", "contact_details": "#/components/schemas/ContactDetailsPersonClaimSummary", "education_level": "#/components/schemas/EducationLevelPersonClaimSummary", "employment": "#/components/schemas/EmploymentPersonClaimSummary", "expected_activity": "#/components/schemas/ExpectedActivityPersonClaimSummary", "fatca_status": "#/components/schemas/FatcaStatusPersonClaimSummary", "financial_profile": "#/components/schemas/FinancialProfilePersonClaimSummary", "identity": "#/components/schemas/IdentityPersonClaimSummary", "investment_experience": "#/components/schemas/InvestmentExperiencePersonClaimSummary", "lei": "#/components/schemas/LeiPersonClaimSummary", "nationalities": "#/components/schemas/NationalitiesPersonClaimSummary", "operating_address": "#/components/schemas/OperatingAddressPersonClaimSummary", "pep_status": "#/components/schemas/PepStatusPersonClaimSummary", "registered_address": "#/components/schemas/RegisteredAddressPersonClaimSummary", "registration": "#/components/schemas/RegistrationPersonClaimSummary", "relationships": "#/components/schemas/RelationshipsPersonClaimSummary", "residence": "#/components/schemas/ResidencePersonClaimSummary", "tax_residencies": "#/components/schemas/TaxResidenciesPersonClaimSummary" }, "propertyName": "claim_type" }, "oneOf": [ { "$ref": "#/components/schemas/IdentityPersonClaimSummary" }, { "$ref": "#/components/schemas/NationalitiesPersonClaimSummary" }, { "$ref": "#/components/schemas/ResidencePersonClaimSummary" }, { "$ref": "#/components/schemas/TaxResidenciesPersonClaimSummary" }, { "$ref": "#/components/schemas/FatcaStatusPersonClaimSummary" }, { "$ref": "#/components/schemas/PepStatusPersonClaimSummary" }, { "$ref": "#/components/schemas/EducationLevelPersonClaimSummary" }, { "$ref": "#/components/schemas/EmploymentPersonClaimSummary" }, { "$ref": "#/components/schemas/FinancialProfilePersonClaimSummary" }, { "$ref": "#/components/schemas/InvestmentExperiencePersonClaimSummary" }, { "$ref": "#/components/schemas/RegistrationPersonClaimSummary" }, { "$ref": "#/components/schemas/ContactDetailsPersonClaimSummary" }, { "$ref": "#/components/schemas/LeiPersonClaimSummary" }, { "$ref": "#/components/schemas/RegisteredAddressPersonClaimSummary" }, { "$ref": "#/components/schemas/OperatingAddressPersonClaimSummary" }, { "$ref": "#/components/schemas/BusinessNaturePersonClaimSummary" }, { "$ref": "#/components/schemas/ExpectedActivityPersonClaimSummary" }, { "$ref": "#/components/schemas/RelationshipsPersonClaimSummary" } ] }, "title": "Claims", "type": "array" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "full_name": { "description": "Person's full name.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "person_type": { "$ref": "#/components/schemas/PersonType", "description": "Person type." } }, "required": [ "created_at", "modified_at", "id", "person_type", "full_name", "claims" ], "title": "PersonCreationResponse", "type": "object" }, "PersonRelationshipType": { "enum": [ "director", "shareholder", "beneficial_owner", "trustee", "settlor", "authorised_signatory", "senior_management" ], "properties": {}, "title": "PersonRelationshipType", "type": "string" }, "PersonType": { "enum": [ "natural", "legal" ], "properties": {}, "title": "PersonType", "type": "string" }, "PlaceOrderRequest": { "properties": { "accepted_appropriateness_warning": { "default": false, "description": "When true, records that the person accepted the appropriateness warning shown for this instrument. False is a no-op.", "title": "Accepted Appropriateness Warning", "type": "boolean" }, "automatic_rollover": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether the resulting position rolls into a similar instrument at maturity; valid only for eligible buy orders.", "title": "Automatic Rollover" }, "cash_amount": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "Pre-fee cash amount required for buy orders.", "examples": [ "1000.00" ], "title": "Cash Amount" }, "instrument": { "description": "The ID of the instrument to buy or sell.", "title": "Instrument", "type": "string" }, "limit_price": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "Positive price required for limit orders and rejected for market orders.", "examples": [ "25.7500" ], "title": "Limit Price" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "The order type, market or limit. Limit orders are ETFs only." }, "quantity": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "Positive unit quantity required for sell orders.", "examples": [ "12.5" ], "title": "Quantity" }, "quote": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of a previously issued order quote. FX orders replay the locked rate; security cash buys may reference a prior quote for a deviation check against the quoted amount.", "title": "Quote" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "The order side, buy or sell." } }, "required": [ "instrument", "order_type", "side" ], "title": "PlaceOrderRequest", "type": "object" }, "Portal": { "enum": [ "classic", "surf" ], "properties": {}, "title": "Portal", "type": "string" }, "Position": { "properties": { "account": { "description": "ID of the account that owns the position.", "title": "Account", "type": "string" }, "automatic_rollover": { "description": "Whether automatic rollover is enabled.", "title": "Automatic Rollover", "type": "boolean" }, "automatic_rollover_cutoff": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "Last date automatic rollover can be changed.", "examples": [ "2025-09-25" ], "title": "Automatic Rollover Cutoff" }, "available_for_trading": { "description": "Instrument quantity available for trading.", "examples": [ "1000.00" ], "title": "Available For Trading", "type": "string" }, "average_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Average acquisition price per instrument unit.", "examples": [ "98.75" ], "title": "Average Price" }, "can_update_automatic_rollover": { "description": "Whether automatic rollover can currently be changed.", "title": "Can Update Automatic Rollover", "type": "boolean" }, "closed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Time the position was closed.", "examples": [ "2025-07-15T10:30:00Z" ], "title": "Closed At" }, "created_at": { "description": "Time the position record was created.", "examples": [ "2025-01-15T10:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "ID of the position.", "title": "Id", "type": "string" }, "instrument": { "description": "Instrument held in the position.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "modified_at": { "description": "Time the position record was last modified.", "examples": [ "2025-07-01T14:32:18Z" ], "format": "date-time", "title": "Modified At", "type": "string" }, "most_recent_maturity_period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Most recent maturity period used for rollover.", "examples": [ "3m" ], "title": "Most Recent Maturity Period" }, "opened_at": { "description": "Time the position was opened.", "examples": [ "2025-01-15T10:30:00Z" ], "format": "date-time", "title": "Opened At", "type": "string" }, "reserved": { "description": "Instrument quantity reserved by pending orders.", "examples": [ "50.00" ], "title": "Reserved", "type": "string" }, "settled": { "description": "Settled instrument quantity.", "examples": [ "1000.00" ], "title": "Settled", "type": "string" }, "status": { "$ref": "#/components/schemas/PositionStatus", "description": "Current lifecycle status of the position." }, "total": { "description": "Total instrument quantity held.", "examples": [ "1250.00" ], "title": "Total", "type": "string" }, "total_buy_trades": { "description": "Number of buy trades contributing to the position.", "examples": [ 3 ], "title": "Total Buy Trades", "type": "integer" }, "unsettled": { "description": "Instrument quantity awaiting settlement.", "examples": [ "250.00" ], "title": "Unsettled", "type": "string" }, "ytm": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Yield to maturity as a percentage.", "examples": [ "4.25" ], "title": "Ytm" } }, "required": [ "created_at", "modified_at", "id", "account", "status", "instrument", "total", "available_for_trading", "settled", "unsettled", "reserved", "automatic_rollover", "can_update_automatic_rollover", "average_price", "most_recent_maturity_period", "ytm", "total_buy_trades", "opened_at", "closed_at" ], "title": "Position", "type": "object" }, "PositionEarningsV2": { "properties": { "account": { "description": "ID of the account holding the position.", "title": "Account", "type": "string" }, "period_end": { "description": "End date and time of the earnings period.", "examples": [ "2026-03-31T23:59:59Z" ], "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "description": "Start date and time of the earnings period.", "examples": [ "2026-01-01T00:00:00Z" ], "format": "date-time", "title": "Period Start", "type": "string" }, "position": { "description": "ID of the position the earnings were computed for.", "title": "Position", "type": "string" }, "reporting": { "$ref": "#/components/schemas/PositionReportingEarnings", "description": "The position's earnings in the account's base currency, with a breakdown into what the investment earned and what exchange-rate movements added or took away. Summed over all positions, these give the account's positions figures." }, "trading": { "$ref": "#/components/schemas/PositionTradingEarnings", "description": "The position's earnings in the instrument's own currency." } }, "required": [ "position", "account", "period_start", "period_end", "trading", "reporting" ], "title": "PositionEarningsV2", "type": "object" }, "PositionReportingEarnings": { "properties": { "attribution": { "$ref": "#/components/schemas/EarningsAttribution", "description": "Breakdown of the earnings into how much came from the investment itself and how much from exchange-rate movements." }, "cost_basis": { "description": "Acquisition cost of the units still held, converted at the exchange rates in force when they were bought.", "title": "Cost Basis", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The account's base currency." }, "gross": { "description": "Total earnings before fees in the account's currency, each part converted at the exchange rate of the day it happened. Equals the investment effect plus the currency effect.", "title": "Gross", "type": "string" }, "money_in": { "description": "The money put into the position over the period, in the account's currency: the value of the units held at the start of the period plus the cost of every purchase during it, each converted at the exchange rate of its own day. Sales are not subtracted.", "title": "Money In", "type": "string" }, "simple_return": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The simple return as a decimal: `gross` divided by `money_in`, so it includes the currency effect. Before fees, which are charged to the account rather than to a position. `null` when nothing was put in.", "examples": [ "0.0307" ], "title": "Simple Return" }, "simple_return_annualised": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "`simple_return` annualised over the period: (1 + `simple_return`) ^ (365 / days) - 1. `null` when the period is shorter than a year, which is never annualised, or when `simple_return` is.", "examples": [ "0.0127" ], "title": "Simple Return Annualised" } }, "required": [ "currency", "cost_basis", "gross", "money_in", "simple_return", "simple_return_annualised", "attribution" ], "title": "PositionReportingEarnings", "type": "object" }, "PositionReturnsV2": { "properties": { "flags": { "description": "Signals explaining clamps, missing data, or uncomputable rates.", "items": { "$ref": "#/components/schemas/ReturnsFlag" }, "title": "Flags", "type": "array" }, "mwrr": { "$ref": "#/components/schemas/RatePair", "description": "Money-weighted return figures; fields are `null` when uncomputable." }, "period": { "$ref": "#/components/schemas/Period", "description": "Requested period the returns were computed over." }, "period_end": { "description": "Resolved end of the period (the `asof` time of the computation).", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "description": "Resolved start of the period, inclusive. Clamped to the scope's inception when the requested period starts earlier.", "examples": [ "2026-01-01T00:00:00Z" ], "format": "date-time", "title": "Period Start", "type": "string" }, "position": { "description": "ID of the position the returns were computed for.", "title": "Position", "type": "string" }, "twrr": { "$ref": "#/components/schemas/RatePair", "description": "Time-weighted return figures; fields are `null` when uncomputable." } }, "required": [ "period", "period_start", "period_end", "mwrr", "twrr", "flags", "position" ], "title": "PositionReturnsV2", "type": "object" }, "PositionStatus": { "enum": [ "open", "closing", "closed" ], "properties": {}, "title": "PositionStatus", "type": "string" }, "PositionTradingEarnings": { "properties": { "attribution": { "$ref": "#/components/schemas/TradingEarningsAttribution", "description": "Breakdown of the earnings into realized and unrealized, and within each into price changes and income." }, "cost_basis": { "description": "Total acquisition cost of the units still held.", "title": "Cost Basis", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The instrument's currency." }, "gross": { "description": "Total realized and unrealized earnings before fees and taxes.", "title": "Gross", "type": "string" }, "money_in": { "description": "The money put into the position over the period: the value of the units held at the start of the period plus the cost of every purchase during it. Sales are not subtracted.", "title": "Money In", "type": "string" }, "simple_return": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The simple return as a decimal: `gross` divided by `money_in`. Before fees, which are charged to the account rather than to a position. `null` when nothing was put in.", "examples": [ "0.0307" ], "title": "Simple Return" }, "simple_return_annualised": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "`simple_return` annualised over the period: (1 + `simple_return`) ^ (365 / days) - 1. `null` when the period is shorter than a year, which is never annualised, or when `simple_return` is.", "examples": [ "0.0127" ], "title": "Simple Return Annualised" }, "unrealized_percentage": { "description": "Unrealized earnings as a proportion of the cost basis.", "title": "Unrealized Percentage", "type": "string" } }, "required": [ "currency", "cost_basis", "gross", "unrealized_percentage", "money_in", "simple_return", "simple_return_annualised", "attribution" ], "title": "PositionTradingEarnings", "type": "object" }, "PositionValuation": { "properties": { "asof": { "description": "The time of the position valuation.", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Asof", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency of the position value." }, "position": { "$ref": "#/components/schemas/Position", "description": "The valued position." }, "price": { "description": "The price used to value the position.", "examples": [ "99.25" ], "title": "Price", "type": "string" }, "value": { "description": "The position value.", "examples": [ "99250.00" ], "title": "Value", "type": "string" } }, "required": [ "position", "value", "currency", "price", "asof" ], "title": "PositionValuation", "type": "object" }, "Price": { "properties": { "accrued_interest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The accrued interest at standard settlement.", "examples": [ "0.87123288" ], "title": "Accrued Interest" }, "ask": { "description": "The ask price.", "examples": [ "99.50" ], "title": "Ask", "type": "string" }, "bid": { "description": "The bid price.", "examples": [ "99.25" ], "title": "Bid", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The trading currency associated with the price." }, "dirty_ask": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ask price including accrued interest.", "examples": [ "100.37" ], "title": "Dirty Ask" }, "dirty_bid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The bid price including accrued interest.", "examples": [ "100.12" ], "title": "Dirty Bid" }, "dirty_mid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The midpoint price including accrued interest.", "examples": [ "100.245" ], "title": "Dirty Mid" }, "mid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The midpoint between the bid and ask prices.", "examples": [ "99.375" ], "title": "Mid" }, "price_type": { "$ref": "#/components/schemas/PriceType", "description": "The price quotation type." }, "quality": { "$ref": "#/components/schemas/PriceQuality", "description": "The timeliness quality of the price." }, "symbol": { "description": "The instrument symbol, such as an ISIN or ticker.", "title": "Symbol", "type": "string" }, "timestamp": { "description": "The time the price took effect.", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Timestamp", "type": "string" }, "ytm_ask": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ask yield to maturity for a fixed-income instrument.", "examples": [ "4.20" ], "title": "Ytm Ask" }, "ytm_bid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The bid yield to maturity for a fixed-income instrument.", "examples": [ "4.25" ], "title": "Ytm Bid" }, "ytm_mid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The midpoint yield to maturity for a fixed-income instrument.", "examples": [ "4.23" ], "title": "Ytm Mid" } }, "required": [ "symbol", "price_type", "quality", "currency", "bid", "ask", "mid", "ytm_bid", "ytm_ask", "ytm_mid", "accrued_interest", "timestamp" ], "title": "Price", "type": "object" }, "PriceQuality": { "enum": [ "closing", "intraday", "realtime", "delayed" ], "properties": {}, "title": "PriceQuality", "type": "string" }, "PriceType": { "enum": [ "percent", "money" ], "properties": {}, "title": "PriceType", "type": "string" }, "RatePair": { "description": "A methodology's two figures: cumulative over the period and annualised.", "properties": { "annualised": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Return as an annual rate, whatever the period length; `null` when uncomputable.", "examples": [ "0.1180" ], "title": "Annualised" }, "cumulative": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Return over the period as a decimal, never annualised; `null` when uncomputable.", "examples": [ "0.0925" ], "title": "Cumulative" } }, "required": [ "cumulative", "annualised" ], "title": "RatePair", "type": "object" }, "RealizedEarningsSplit": { "properties": { "capital": { "description": "The part that came from price changes on units sold.", "title": "Capital", "type": "string" }, "income": { "description": "The part that came from income paid out.", "title": "Income", "type": "string" } }, "required": [ "capital", "income" ], "title": "RealizedEarningsSplit", "type": "object" }, "ReferenceType": { "enum": [ "deposit", "withdrawal", "order", "fee_charge", "fee_collection", "refund", "corporate_action", "position_migration_in", "book_transfer", "portfolio_deposit", "portfolio_withdrawal" ], "properties": {}, "title": "ReferenceType", "type": "string" }, "Refund": { "properties": { "amount": { "description": "Amount refunded.", "examples": [ "25.00" ], "title": "Amount", "type": "string" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "Currency of the refund amount." }, "fee_charge": { "description": "Fee charge associated with the refund.", "title": "Fee Charge", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "amount", "currency", "fee_charge", "fee_charge" ], "title": "Refund", "type": "object" }, "RegisteredAddressClaimSpec": { "additionalProperties": false, "description": "Legal registration address.", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "registered_address", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "operating_address_is_same": { "default": false, "title": "Operating Address Is Same", "type": "boolean" }, "postal_code": { "title": "Postal Code", "type": "string" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type" ], "title": "RegisteredAddressClaimSpec", "type": "object" }, "RegisteredAddressPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "city": { "title": "City", "type": "string" }, "claim_type": { "const": "registered_address", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "operating_address_is_same": { "default": false, "title": "Operating Address Is Same", "type": "boolean" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "postal_code": { "title": "Postal Code", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "RegisteredAddressPersonClaim", "type": "object" }, "RegisteredAddressPersonClaimSummary": { "additionalProperties": false, "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "registered_address", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "operating_address_is_same": { "default": false, "title": "Operating Address Is Same", "type": "boolean" }, "postal_code": { "title": "Postal Code", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type", "id", "created_at", "status" ], "title": "RegisteredAddressPersonClaimSummary", "type": "object" }, "RegistrationClaimSpec": { "additionalProperties": false, "description": "Company registration.", "properties": { "claim_type": { "const": "registration", "title": "Claim Type", "type": "string" }, "country_of_incorporation": { "title": "Country Of Incorporation", "type": "string" }, "date_of_incorporation": { "format": "date", "title": "Date Of Incorporation", "type": "string" }, "entity_type": { "$ref": "#/components/schemas/ClaimRegistrationEntityType" }, "legal_name": { "title": "Legal Name", "type": "string" }, "registration_number": { "title": "Registration Number", "type": "string" }, "trading_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Trading Name" } }, "required": [ "claim_type", "legal_name", "registration_number", "date_of_incorporation", "country_of_incorporation", "entity_type" ], "title": "RegistrationClaimSpec", "type": "object" }, "RegistrationPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "registration", "title": "Claim Type", "type": "string" }, "country_of_incorporation": { "title": "Country Of Incorporation", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "date_of_incorporation": { "format": "date", "title": "Date Of Incorporation", "type": "string" }, "entity_type": { "$ref": "#/components/schemas/ClaimRegistrationEntityType" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "legal_name": { "title": "Legal Name", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "registration_number": { "title": "Registration Number", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "trading_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Trading Name" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "legal_name", "registration_number", "date_of_incorporation", "country_of_incorporation", "entity_type", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "RegistrationPersonClaim", "type": "object" }, "RegistrationPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "registration", "title": "Claim Type", "type": "string" }, "country_of_incorporation": { "title": "Country Of Incorporation", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "date_of_incorporation": { "format": "date", "title": "Date Of Incorporation", "type": "string" }, "entity_type": { "$ref": "#/components/schemas/ClaimRegistrationEntityType" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "legal_name": { "title": "Legal Name", "type": "string" }, "registration_number": { "title": "Registration Number", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "trading_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Trading Name" } }, "required": [ "claim_type", "legal_name", "registration_number", "date_of_incorporation", "country_of_incorporation", "entity_type", "id", "created_at", "status" ], "title": "RegistrationPersonClaimSummary", "type": "object" }, "RelationshipEntry-Input": { "additionalProperties": false, "description": "A single relationship entry within a relationships claim.", "properties": { "appointment_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Appointment Date" }, "authority_scope": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authority Scope" }, "control_type": { "anyOf": [ { "$ref": "#/components/schemas/ControlType" }, { "type": "null" } ] }, "end_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "End Date" }, "ownership_percentage": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "title": "Ownership Percentage" }, "position": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Position" }, "related_person": { "title": "Related Person", "type": "string" }, "relationship_type": { "$ref": "#/components/schemas/PersonRelationshipType" } }, "required": [ "related_person", "relationship_type" ], "title": "RelationshipEntry", "type": "object" }, "RelationshipEntry-Output": { "additionalProperties": false, "description": "A single relationship entry within a relationships claim.", "properties": { "appointment_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Appointment Date" }, "authority_scope": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authority Scope" }, "control_type": { "anyOf": [ { "$ref": "#/components/schemas/ControlType" }, { "type": "null" } ] }, "end_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "End Date" }, "ownership_percentage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ownership Percentage" }, "position": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Position" }, "related_person": { "title": "Related Person", "type": "string" }, "relationship_type": { "$ref": "#/components/schemas/PersonRelationshipType" } }, "required": [ "related_person", "relationship_type" ], "title": "RelationshipEntry", "type": "object" }, "RelationshipsClaimSpec": { "additionalProperties": false, "description": "Directors, owners, UBOs and signatories of a legal person.", "properties": { "claim_type": { "const": "relationships", "title": "Claim Type", "type": "string" }, "relationships": { "items": { "$ref": "#/components/schemas/RelationshipEntry-Input" }, "minItems": 1, "title": "Relationships", "type": "array" } }, "required": [ "claim_type", "relationships" ], "title": "RelationshipsClaimSpec", "type": "object" }, "RelationshipsPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "relationships", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "relationships": { "items": { "$ref": "#/components/schemas/RelationshipEntry-Output" }, "minItems": 1, "title": "Relationships", "type": "array" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "relationships", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "RelationshipsPersonClaim", "type": "object" }, "RelationshipsPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "relationships", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "relationships": { "items": { "$ref": "#/components/schemas/RelationshipEntry-Output" }, "minItems": 1, "title": "Relationships", "type": "array" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "claim_type", "relationships", "id", "created_at", "status" ], "title": "RelationshipsPersonClaimSummary", "type": "object" }, "ReservedDenomination": { "enum": [ "cash", "units" ], "properties": {}, "title": "ReservedDenomination", "type": "string" }, "ResidenceClaimSpec": { "additionalProperties": false, "description": "Residential address.", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "residence", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "postal_code": { "title": "Postal Code", "type": "string" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type" ], "title": "ResidenceClaimSpec", "type": "object" }, "ResidencePersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "city": { "title": "City", "type": "string" }, "claim_type": { "const": "residence", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "postal_code": { "title": "Postal Code", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "ResidencePersonClaim", "type": "object" }, "ResidencePersonClaimSummary": { "additionalProperties": false, "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "residence", "title": "Claim Type", "type": "string" }, "country_code": { "title": "Country Code", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "District County" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "line1": { "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Line3" }, "postal_code": { "title": "Postal Code", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" } }, "required": [ "line1", "postal_code", "city", "country_code", "claim_type", "id", "created_at", "status" ], "title": "ResidencePersonClaimSummary", "type": "object" }, "ReturnsFlag": { "enum": [ "inception_after_period_start", "missing_history", "twrr_uncomputable", "mwrr_uncomputable", "xirr_no_sign_change", "xirr_single_cashflow" ], "properties": {}, "title": "ReturnsFlag", "type": "string" }, "SellEstimate": { "properties": { "asof": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Timestamp of the price the estimate is based on; set on market sells.", "title": "Asof" }, "cash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Estimated proceeds after fees; set on market sells.", "examples": [ "965.30" ], "title": "Cash" }, "fee_breakdown": { "description": "Itemised `fees`: one line per charge, in a stable order. The line amounts sum to `fees` exactly. Empty when nothing is charged.", "items": { "$ref": "#/components/schemas/OrderQuoteFeeLine" }, "title": "Fee Breakdown", "type": "array" }, "fees": { "description": "Estimated order fees.", "examples": [ "0.00" ], "title": "Fees", "type": "string" }, "min_proceeds": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Worst-case proceeds at the limit; set on limit sells.", "examples": [ "950.00" ], "title": "Min Proceeds" }, "price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Latest market price per unit; set on market sells.", "examples": [ "96.53" ], "title": "Price" } }, "required": [ "fees", "fee_breakdown" ], "title": "SellEstimate", "type": "object" }, "SellQuote": { "description": "One shape for every sell, across instrument types. Market sells carry\n`estimate.price` / `asof` / `cash`; limit sells carry `estimate.min_proceeds`\nand a top-level `limit_price`.", "properties": { "blockers": { "description": "Why the order cannot be placed as quoted, if it cannot: a trading rule it breaks (a minimum, or the trading increment), or the free cash or units it exceeds. The `estimate` is still computed, so the order's cost can be shown next to what it needs. At most one entry; empty when `is_placeable`.", "items": { "$ref": "#/components/schemas/OrderQuoteBlocker" }, "title": "Blockers", "type": "array" }, "created_at": { "description": "When the quote was issued.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency every cash amount in this quote is given in." }, "estimate": { "$ref": "#/components/schemas/SellEstimate", "description": "Estimated proceeds." }, "expires_at": { "description": "When the quote expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "expires_in": { "description": "Seconds until `expires_at`, for clients to time expiry off their own clock rather than comparing `expires_at` against local time.", "examples": [ 60 ], "title": "Expires In", "type": "integer" }, "id": { "description": "Quote ID, redeemable via `quote_id` at order placement.", "title": "Id", "type": "string" }, "instrument": { "description": "The full instrument being quoted.", "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Instrument" }, "is_binding": { "description": "Whether the quoted price is binding at execution. Always false for security quotes; binding FX quotes are issued via /order-quotes/fx.", "title": "Is Binding", "type": "boolean" }, "is_placeable": { "description": "Whether an order placed from this quote would be accepted as quoted. False when `blockers` lists why it would not.", "title": "Is Placeable", "type": "boolean" }, "limit_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Worst-case price per unit; set on limit sells.", "examples": [ "96.0000" ], "title": "Limit Price" }, "order_type": { "$ref": "#/components/schemas/OrderType", "description": "Market or limit." }, "quantity": { "description": "Units the user chose to sell.", "examples": [ "1000" ], "title": "Quantity", "type": "string" }, "quote_type": { "const": "sell", "default": "sell", "description": "The kind of order quote returned, which determines the set of fields present in this response.", "title": "Quote Type", "type": "string" }, "reservation": { "$ref": "#/components/schemas/OrderQuoteReservation" }, "side": { "$ref": "#/components/schemas/OrderSide", "description": "Buy or sell." } }, "required": [ "is_placeable", "blockers", "id", "created_at", "expires_at", "expires_in", "is_binding", "instrument", "side", "order_type", "currency", "reservation", "quantity", "estimate" ], "title": "SellQuote", "type": "object" }, "SellTradingConfiguration": { "description": "How a sell may be sized and the minimums it must meet. A null minimum is not\napplied, and a sell of the whole position is never blocked by one.", "properties": { "min_cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Cash every sell must raise, in the trading currency, before fees.", "examples": [ "1000.00000000" ], "title": "Min Cash Amount" }, "min_quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Units every sell must sell.", "examples": [ "10.00000000" ], "title": "Min Quantity" }, "modes": { "description": "How a sell may be sized: `cash` (raise an amount) and/or `quantity` (sell a number of units).", "examples": [ [ "quantity" ] ], "items": { "$ref": "#/components/schemas/OrderMode" }, "title": "Modes", "type": "array" } }, "required": [ "modes", "min_cash_amount", "min_quantity" ], "title": "SellTradingConfiguration", "type": "object" }, "SeriesPoint": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "format": "date-time", "type": "string" }, { "type": "string" } ], "properties": {}, "title": "SeriesPoint", "type": "array" }, "Service": { "properties": { "id": { "title": "Id", "type": "string" } }, "required": [ "id" ], "title": "Service", "type": "object" }, "SignedUpload": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "expires_at": { "description": "Date and time the signed upload expires.", "examples": [ "2026-07-14T10:00:00Z" ], "format": "date-time", "title": "Expires At", "type": "string" }, "filename": { "description": "Name of the file to upload.", "title": "Filename", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "purpose": { "const": "verification_evidence", "description": "Purpose of the file upload.", "title": "Purpose", "type": "string" }, "signed_upload_url": { "description": "Signed URL for uploading the file.", "title": "Signed Upload Url", "type": "string" }, "upload_headers": { "additionalProperties": { "type": "string" }, "description": "Headers the upload must send verbatim. They are covered by the URL's signature, so storage rejects the upload if any is missing or altered.", "title": "Upload Headers", "type": "object" } }, "required": [ "created_at", "modified_at", "id", "filename", "expires_at", "purpose", "signed_upload_url", "upload_headers" ], "title": "SignedUpload", "type": "object" }, "SubmitOnboardingApplicationRequest": { "properties": { "authorities": { "description": "People authorized to act and their authority types.", "items": { "$ref": "#/components/schemas/OnboardingAuthoritySpec" }, "minItems": 1, "title": "Authorities", "type": "array" }, "consents": { "description": "Consent declarations attached to the application.", "items": { "$ref": "#/components/schemas/OnboardingConsentSpec" }, "title": "Consents", "type": "array" }, "customer_type": { "$ref": "#/components/schemas/CustomerType", "description": "Customer structure for the application." }, "evidence": { "description": "Evidence files attached to the application.", "items": { "$ref": "#/components/schemas/OnboardingEvidenceSpec" }, "title": "Evidence", "type": "array" } }, "required": [ "customer_type", "authorities" ], "title": "SubmitOnboardingApplicationRequest", "type": "object" }, "SyntheticRiskIndicator": { "enum": [ 1, 2, 3, 4, 5, 6, 7 ], "properties": {}, "title": "SyntheticRiskIndicator", "type": "integer" }, "TaxResidenciesClaimSpec": { "additionalProperties": false, "description": "Every tax residence, each with its TIN or an exemption reason.", "properties": { "claim_type": { "const": "tax_residencies", "title": "Claim Type", "type": "string" }, "tax_residencies": { "items": { "$ref": "#/components/schemas/TaxResidencyEntry" }, "title": "Tax Residencies", "type": "array" } }, "required": [ "claim_type" ], "title": "TaxResidenciesClaimSpec", "type": "object" }, "TaxResidenciesPersonClaim": { "additionalProperties": false, "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer pending claim replaced this row; `null` if this is the current pending row.", "examples": [ "2026-07-20T08:15:00Z" ], "title": "Archived At" }, "claim_type": { "const": "tax_residencies", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Date and time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived lifecycle role from `status`, `archived_at`, and `superseded_at`.", "enum": [ "active", "in_flight", "historical" ], "readOnly": true, "title": "Lifecycle", "type": "string" }, "person": { "description": "ID of the person this claim belongs to.", "title": "Person", "type": "string" }, "status": { "description": "Claim status (`pending` or `verified`). Non-null `superseded_at` means a newer verified claim replaced this row.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time a newer verified claim replaced this row; `null` if this is the current row.", "examples": [ "2026-08-01T12:00:00Z" ], "title": "Superseded At" }, "tax_residencies": { "items": { "$ref": "#/components/schemas/TaxResidencyEntry" }, "title": "Tax Residencies", "type": "array" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Date and time the claim was verified; `null` while pending.", "examples": [ "2026-07-14T10:00:00Z" ], "title": "Verified At" } }, "required": [ "claim_type", "id", "person", "created_at", "status", "verified_at", "superseded_at", "archived_at", "lifecycle" ], "title": "TaxResidenciesPersonClaim", "type": "object" }, "TaxResidenciesPersonClaimSummary": { "additionalProperties": false, "properties": { "claim_type": { "const": "tax_residencies", "title": "Claim Type", "type": "string" }, "created_at": { "description": "Time the claim was created.", "examples": [ "2026-07-14T09:30:00Z" ], "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "status": { "description": "The status of the claim (`pending` or `verified`).", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "tax_residencies": { "items": { "$ref": "#/components/schemas/TaxResidencyEntry" }, "title": "Tax Residencies", "type": "array" } }, "required": [ "claim_type", "id", "created_at", "status" ], "title": "TaxResidenciesPersonClaimSummary", "type": "object" }, "TaxResidencyEntry": { "additionalProperties": false, "description": "One tax residence, with its TIN or the reason there is none.", "properties": { "country_code": { "title": "Country Code", "type": "string" }, "tin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tin" }, "tin_exemption_reason": { "anyOf": [ { "$ref": "#/components/schemas/TinExemptionReason" }, { "type": "null" } ] } }, "required": [ "country_code" ], "title": "TaxResidencyEntry", "type": "object" }, "TinExemptionReason": { "enum": [ "not_issued", "pending_application", "not_required" ], "properties": {}, "title": "TinExemptionReason", "type": "string" }, "TradingConfiguration": { "description": "The order rules of an instrument, split by side.", "properties": { "buy": { "$ref": "#/components/schemas/BuyTradingConfiguration", "description": "Rules for buy orders." }, "sell": { "$ref": "#/components/schemas/SellTradingConfiguration", "description": "Rules for sell orders." } }, "required": [ "buy", "sell" ], "title": "TradingConfiguration", "type": "object" }, "TradingEarningsAttribution": { "properties": { "investment": { "$ref": "#/components/schemas/EarningsEffect", "description": "How much the position earned, measured in the instrument's own currency. Exchange rates play no part here, so there is no currency effect." } }, "required": [ "investment" ], "title": "TradingEarningsAttribution", "type": "object" }, "Transaction": { "properties": { "accrued_interest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The accrued interest included in a fixed-income transaction.", "examples": [ "871.23" ], "title": "Accrued Interest" }, "booked_at": { "description": "The time the transaction was booked.", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Booked At", "type": "string" }, "cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The transaction cash amount.", "examples": [ "-99250.00" ], "title": "Cash Amount" }, "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The currency of the transaction amounts.", "title": "Currency" }, "id": { "description": "The ID of the transaction.", "title": "Id", "type": "string" }, "instrument": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the instrument.", "title": "Instrument" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the related source resource (order, trade, etc.).", "title": "Reference" }, "reference_type": { "$ref": "#/components/schemas/ReferenceType", "description": "The type of the related resource." }, "settlement_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The settlement date.", "examples": [ "2026-07-16" ], "title": "Settlement Date" }, "summary": { "description": "A summary of the transaction.", "title": "Summary", "type": "string" }, "tax": { "description": "The total tax amount.", "examples": [ "19.85" ], "title": "Tax", "type": "string" }, "taxes": { "description": "The taxes applied to the transaction.", "items": { "$ref": "#/components/schemas/TransactionTax" }, "title": "Taxes", "type": "array" }, "transaction_type": { "$ref": "#/components/schemas/TransactionType", "description": "The transaction type." }, "unit_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The transaction price per unit.", "examples": [ "99.25" ], "title": "Unit Price" }, "unit_quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The number of units transacted.", "examples": [ "1000.00" ], "title": "Unit Quantity" } }, "required": [ "id", "summary", "booked_at", "settlement_date", "cash_amount", "unit_quantity", "unit_price", "tax", "currency", "instrument", "transaction_type", "reference", "reference_type", "taxes" ], "title": "Transaction", "type": "object" }, "TransactionTax": { "properties": { "amount": { "description": "The tax amount.", "examples": [ "19.85" ], "title": "Amount", "type": "string" }, "currency": { "description": "The currency of the tax amount.", "title": "Currency", "type": "string" }, "rate": { "description": "The tax rate as a percentage.", "examples": [ "20.00" ], "title": "Rate", "type": "string" } }, "required": [ "rate", "amount", "currency" ], "title": "TransactionTax", "type": "object" }, "TransactionType": { "enum": [ "deposit", "withdrawal", "buy", "sell", "fee", "refund", "maturity", "coupon_payment", "merger", "fx", "position_migration_in", "book_transfer", "write_off" ], "properties": {}, "title": "TransactionType", "type": "string" }, "UnrealizedEarningsSplit": { "properties": { "capital": { "description": "The part that came from price changes on units still held.", "title": "Capital", "type": "string" }, "income": { "description": "The part that came from interest accrued but not yet paid.", "title": "Income", "type": "string" } }, "required": [ "capital", "income" ], "title": "UnrealizedEarningsSplit", "type": "object" }, "UpdatePositionRequest": { "properties": { "automatic_rollover": { "description": "Automatic rollover setting, updateable only before the cutoff date.", "title": "Automatic Rollover", "type": "boolean" } }, "required": [ "automatic_rollover" ], "title": "UpdatePositionRequest", "type": "object" }, "UpdateWebhookRequest": { "properties": { "description": { "description": "Human-readable purpose of the webhook.", "title": "Description", "type": "string", "x-remove-null-from-type-union": true }, "is_active": { "description": "Whether the webhook is active.", "title": "Is Active", "type": "boolean", "x-remove-null-from-type-union": true }, "url": { "description": "HTTPS URL that receives webhook deliveries; IP addresses are rejected.", "examples": [ "https://example.com/webhook" ], "title": "Url", "type": "string", "x-remove-null-from-type-union": true } }, "title": "UpdateWebhookRequest", "type": "object" }, "User": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "default_portal": { "anyOf": [ { "$ref": "#/components/schemas/Portal" }, { "type": "null" } ], "description": "The portal the user prefers to land on, or null if they have not chosen one." }, "email": { "description": "The (verified) email address of the user.", "title": "Email", "type": "string" }, "first_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The first name of the user. Also referred to as the preferred name, as it can be the name the user wants to be called. It does not have to be the legal name.", "title": "First Name" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "last_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The last name of the user.", "title": "Last Name" }, "locale": { "description": "The locale of the user e.g 'en_GB' or 'en_US'.", "title": "Locale", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "profile_photo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Relative URL of the user's profile photo, or null if none is set. Resolve it against the API base; the endpoint redirects to a short-lived image URL.", "readOnly": true, "title": "Profile Photo Url" } }, "required": [ "created_at", "modified_at", "id", "email", "first_name", "last_name", "locale", "profile_photo_url" ], "title": "User", "type": "object" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "title": "Location", "type": "array" }, "msg": { "title": "Message", "type": "string" }, "type": { "title": "Error Type", "type": "string" } }, "required": [ "loc", "msg", "type" ], "title": "ValidationError", "type": "object" }, "Valuation": { "properties": { "account": { "description": "The ID of the account.", "title": "Account", "type": "string" }, "asof": { "description": "The time of the account valuation.", "examples": [ "2026-07-14T09:34:12Z" ], "format": "date-time", "title": "Asof", "type": "string" }, "cash_valuations": { "description": "The valuations of the account cash balances.", "items": { "$ref": "#/components/schemas/CashValuation" }, "title": "Cash Valuations", "type": "array" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency of the aggregate values." }, "position_valuations": { "description": "The valuations of the account positions.", "items": { "$ref": "#/components/schemas/PositionValuation" }, "title": "Position Valuations", "type": "array" }, "total_cash_value": { "description": "The total value of the account cash balances.", "examples": [ "25000.00" ], "title": "Total Cash Value", "type": "string" }, "total_position_value": { "description": "The total value of the account positions.", "examples": [ "99250.00" ], "title": "Total Position Value", "type": "string" }, "total_value": { "description": "The total account value.", "examples": [ "124250.00" ], "title": "Total Value", "type": "string" } }, "required": [ "account", "total_value", "total_position_value", "total_cash_value", "currency", "cash_valuations", "position_valuations", "asof" ], "title": "Valuation", "type": "object" }, "ValuationHistory": { "properties": { "resolution": { "$ref": "#/components/schemas/AccountHistoryResolution", "description": "The time interval between valuation points." }, "series": { "description": "The chronological valuation points as timestamp and value pairs.", "examples": [ [ [ "2026-07-13T09:34:12Z", "12345.67" ], [ "2026-07-14T09:34:12Z", "12350.12" ] ] ], "items": { "$ref": "#/components/schemas/SeriesPoint" }, "title": "Series", "type": "array" } }, "required": [ "resolution", "series" ], "title": "ValuationHistory", "type": "object" }, "Webhook": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Webhook purpose.", "title": "Description" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_active": { "description": "Whether the webhook is active.", "title": "Is Active", "type": "boolean" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "url": { "description": "Webhook destination URL.", "title": "Url", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "url", "is_active", "description" ], "title": "Webhook", "type": "object" }, "WebhookDelivery": { "properties": { "attempts": { "description": "Delivery attempts.", "items": { "$ref": "#/components/schemas/WebhookDeliveryAttempt" }, "title": "Attempts", "type": "array" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "event": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of the event being delivered; `null` for test deliveries.", "title": "Event" }, "failed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Time the delivery permanently failed.", "examples": [ "2026-07-14T09:30:00Z" ], "title": "Failed At" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "next_attempt_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Time the next delivery attempt is scheduled.", "examples": [ "2026-07-14T09:35:00Z" ], "title": "Next Attempt At" }, "payload": { "additionalProperties": true, "description": "Delivery payload.", "title": "Payload", "type": "object" }, "status": { "$ref": "#/components/schemas/WebhookDeliveryStatus", "description": "The delivery lifecycle status." }, "succeeded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Time the delivery succeeded.", "examples": [ "2026-07-14T09:30:00Z" ], "title": "Succeeded At" }, "webhook": { "description": "ID of the webhook this delivery targets.", "title": "Webhook", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "webhook", "event", "status", "payload", "succeeded_at", "failed_at", "next_attempt_at", "attempts" ], "title": "WebhookDelivery", "type": "object" }, "WebhookDeliveryAttempt": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "error": { "anyOf": [ { "$ref": "#/components/schemas/WebhookDeliveryAttemptError" }, { "type": "null" } ], "description": "Error details, or `null` if the attempt succeeded.", "readOnly": true }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "outcome": { "$ref": "#/components/schemas/WebhookDeliveryAttemptOutcome", "description": "Delivery attempt outcome." }, "response": { "anyOf": [ { "$ref": "#/components/schemas/WebhookDeliveryAttemptResponse" }, { "type": "null" } ], "description": "HTTP response details, or `null` if no response was received.", "readOnly": true } }, "required": [ "created_at", "modified_at", "id", "outcome", "response", "error" ], "title": "WebhookDeliveryAttempt", "type": "object" }, "WebhookDeliveryAttemptError": { "properties": { "error_type": { "$ref": "#/components/schemas/WebhookDeliveryAttemptErrorType", "description": "Classification of the failure." }, "message": { "description": "Human-readable error detail.", "title": "Message", "type": "string" } }, "required": [ "error_type", "message" ], "title": "WebhookDeliveryAttemptError", "type": "object" }, "WebhookDeliveryAttemptErrorType": { "enum": [ "http", "timeout", "dns", "tls", "connection", "validation", "unknown" ], "properties": {}, "title": "WebhookDeliveryAttemptErrorType", "type": "string" }, "WebhookDeliveryAttemptOutcome": { "enum": [ "succeeded", "failed" ], "properties": {}, "title": "WebhookDeliveryAttemptOutcome", "type": "string" }, "WebhookDeliveryAttemptResponse": { "properties": { "duration": { "description": "Response duration in milliseconds.", "examples": [ 125 ], "title": "Duration", "type": "integer" }, "status": { "description": "HTTP response status code.", "examples": [ 200 ], "title": "Status", "type": "integer" } }, "required": [ "status", "duration" ], "title": "WebhookDeliveryAttemptResponse", "type": "object" }, "WebhookDeliveryStatus": { "enum": [ "pending", "in_progress", "succeeded", "failed" ], "properties": {}, "title": "WebhookDeliveryStatus", "type": "string" }, "WebhookWithSecret": { "properties": { "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Webhook purpose.", "title": "Description" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_active": { "description": "Whether the webhook is active.", "title": "Is Active", "type": "boolean" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "secret": { "description": "Signing secret returned when the webhook is created.", "title": "Secret", "type": "string" }, "url": { "description": "Webhook destination URL.", "title": "Url", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "url", "is_active", "description", "secret" ], "title": "WebhookWithSecret", "type": "object" }, "Withdrawal": { "properties": { "account": { "description": "The ID of the parent account.", "title": "Account", "type": "string" }, "amount": { "description": "The amount to withdraw.", "examples": [ "100.00", "50.12" ], "title": "Amount", "type": "string" }, "completed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the withdrawal was completed.", "examples": [ "2026-07-14T09:34:12Z" ], "title": "Completed At" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was created.", "format": "date-time", "title": "Created At", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency", "description": "The currency to withdraw." }, "funding_account": { "$ref": "#/components/schemas/FundingAccount", "description": "The funding account that will receive the funds." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "modified_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the resource was last modified.", "format": "date-time", "title": "Modified At", "type": "string" }, "status": { "$ref": "#/components/schemas/WithdrawalStatus", "description": "The status of the withdrawal." } }, "required": [ "created_at", "modified_at", "id", "account", "amount", "currency", "status", "funding_account" ], "title": "Withdrawal", "type": "object" }, "WithdrawalStatus": { "enum": [ "created", "completed" ], "properties": {}, "title": "WithdrawalStatus", "type": "string" }, "sophic__domain__broker__enums__DocumentType": { "enum": [ "welcome_letter", "order_confirmation", "fee_statement", "account_statement" ], "properties": {}, "title": "DocumentType", "type": "string" }, "sophic__domain__onboarding__enums__DocumentType": { "enum": [ "passport", "national_id_front", "national_id_back", "driving_license", "driving_license_front", "driving_license_back", "utility_bill", "bank_statement", "tax_document", "shareholder_register", "share_certificate", "director_register", "board_minutes", "certificate_of_good_standing", "incumbency_certificate", "audited_accounts", "management_accounts", "ubo_declaration", "org_chart", "trust_deed", "nominee_agreement", "board_resolution" ], "properties": {}, "title": "DocumentType", "type": "string" } }, "securitySchemes": { "HTTPBearer": { "scheme": "bearer", "type": "http" } } }, "info": { "title": "Sophic Engine API", "version": "0.1.0" }, "openapi": "3.1.0", "paths": { "/accounts/{account_id}/cash-balances": { "get": { "description": "Retrieve an account's cash balances (one for each supported currency).", "operationId": "list_cash_balances_accounts__account_id__cash_balances_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CashBalance" }, "title": "Response List Cash Balances Accounts Account Id Cash Balances Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List cash balances", "tags": [ "holdings" ] } }, "/accounts/{account_id}/deposits": { "post": { "description": "Create a deposit, funded by bank transfer. The deposit amount can be optionally advanced, to increase the account's buying power before the deposit is funded.", "operationId": "create_deposit_accounts__account_id__deposits_post", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDepositRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Deposit" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create a deposit", "tags": [ "payments" ] } }, "/accounts/{account_id}/deposits/{deposit_id}": { "get": { "description": "Retrieve a deposit by ID.", "operationId": "get_deposit_accounts__account_id__deposits__deposit_id__get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "in": "path", "name": "deposit_id", "required": true, "schema": { "title": "Deposit Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Deposit" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a deposit", "tags": [ "payments" ] } }, "/accounts/{account_id}/documents": { "get": { "description": "Retrieve all account documents.", "operationId": "list_documents_accounts__account_id__documents_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "in": "query", "name": "document_type", "required": false, "schema": { "anyOf": [ { "items": { "$ref": "#/components/schemas/sophic__domain__broker__enums__DocumentType" }, "type": "array" }, { "type": "null" } ], "title": "Document Type" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Document" }, "title": "Response List Documents Accounts Account Id Documents Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List account documents", "tags": [ "accounts" ] } }, "/accounts/{account_id}/earnings": { "get": { "description": "Retrieve an account's earnings (P&L) for the requested period. Note the period supports full date-times, with timezone information.", "operationId": "get_earnings_accounts__account_id__earnings_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "description": "Predefined period over which earnings are computed. Takes precedence over `period_start`/`period_end` when provided.", "in": "query", "name": "period", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/Period" }, { "type": "null" } ], "description": "Predefined period over which earnings are computed. Takes precedence over `period_start`/`period_end` when provided.", "title": "Period" } }, { "description": "The period start (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the account opening date/time. Note that the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "in": "query", "name": "period_start", "required": false, "schema": { "description": "The period start (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the account opening date/time. Note that the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "examples": [ "period_start=2025-11-12T00:00:00Z", "period_start=2025-11-12" ], "format": "date-time", "title": "Period Start", "type": "string", "x-remove-null-from-type-union": true } }, { "description": "The period end (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the current date/time. Note the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "in": "query", "name": "period_end", "required": false, "schema": { "description": "The period end (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the current date/time. Note the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "examples": [ "period_end=2025-11-12T00:00:00Z", "period_end=2025-11-12" ], "format": "date-time", "title": "Period End", "type": "string", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountEarningsV2" } } }, "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve account earnings (P&L)", "tags": [ "performance" ] } }, "/accounts/{account_id}/funding-accounts": { "get": { "description": "Retrieve the funding bank accounts registered on the parent account. Funding accounts are automatically registered using the bank details from a deposit when received. These can be used to withdraw funds out of the account.", "operationId": "list_funding_accounts_accounts__account_id__funding_accounts_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/FundingAccount" }, "title": "Response List Funding Accounts Accounts Account Id Funding Accounts Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List funding accounts", "tags": [ "payments" ] } }, "/accounts/{account_id}/order-quotes": { "post": { "description": "Issues a quote for a prospective order. The quote captures the fees and estimated price/quantity that would apply, is persisted, and carries an `id` and `expires_at`; pass the `id` as `quote_id` at order placement to reference the previewed terms. Placement rejects expired quotes.", "operationId": "create_order_quote_accounts__account_id__order_quotes_post", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrderQuoteRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "discriminator": { "mapping": { "amc_market_cash": "#/components/schemas/AmcMarketCashQuote", "bill_market_cash": "#/components/schemas/BillMarketCashQuote", "bond_fixed_coupon_market_cash": "#/components/schemas/BondFixedCouponMarketCashQuote", "bond_zero_coupon_market_cash": "#/components/schemas/BondZeroCouponMarketCashQuote", "etf_limit_cash": "#/components/schemas/EtfLimitCashQuote", "etf_limit_quantity": "#/components/schemas/EtfLimitQuantityQuote", "etf_market_cash": "#/components/schemas/EtfMarketCashQuote", "etf_market_quantity": "#/components/schemas/EtfMarketQuantityQuote", "mmf_market_cash": "#/components/schemas/MmfMarketCashQuote", "sell": "#/components/schemas/SellQuote" }, "propertyName": "quote_type" }, "oneOf": [ { "$ref": "#/components/schemas/EtfMarketCashQuote" }, { "$ref": "#/components/schemas/EtfLimitCashQuote" }, { "$ref": "#/components/schemas/EtfMarketQuantityQuote" }, { "$ref": "#/components/schemas/EtfLimitQuantityQuote" }, { "$ref": "#/components/schemas/BillMarketCashQuote" }, { "$ref": "#/components/schemas/BondZeroCouponMarketCashQuote" }, { "$ref": "#/components/schemas/BondFixedCouponMarketCashQuote" }, { "$ref": "#/components/schemas/MmfMarketCashQuote" }, { "$ref": "#/components/schemas/AmcMarketCashQuote" }, { "$ref": "#/components/schemas/SellQuote" } ], "title": "Response 200 Create Order Quote Accounts Account Id Order Quotes Post" } } }, "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get an order quote", "tags": [ "trading" ] } }, "/accounts/{account_id}/orders": { "get": { "description": "Retrieve all orders associated with the given account.", "operationId": "list_orders_accounts__account_id__orders_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Order" }, "title": "Response List Orders Accounts Account Id Orders Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List orders", "tags": [ "trading" ] }, "post": { "description": "Places a buy-side or sell-side market or limit order. Buys are cash-based; sells require a unit quantity.", "operationId": "place_order_accounts__account_id__orders_post", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "in": "header", "name": "Idempotency-Key", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Idempotency-Key" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlaceOrderRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Order" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Place an order", "tags": [ "trading" ] } }, "/accounts/{account_id}/orders/{order_id}": { "get": { "description": "Retrieve an order by ID.", "operationId": "get_order_accounts__account_id__orders__order_id__get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "in": "path", "name": "order_id", "required": true, "schema": { "title": "Order Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Order" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve an order", "tags": [ "trading" ] } }, "/accounts/{account_id}/pending-orders": { "get": { "description": "Retrieve all orders associated with the given account that are pending execution.", "operationId": "list_orders_pending_execution_accounts__account_id__pending_orders_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Order" }, "title": "Response List Orders Pending Execution Accounts Account Id Pending Orders Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List pending orders", "tags": [ "trading" ] } }, "/accounts/{account_id}/positions": { "get": { "description": "List an account's positions, optionally filtered to only include open positions.", "operationId": "list_positions_accounts__account_id__positions_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "description": "If true, only open positions are returned.", "in": "query", "name": "open_only", "required": false, "schema": { "default": false, "description": "If true, only open positions are returned.", "title": "Open Only", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Position" }, "title": "Response List Positions Accounts Account Id Positions Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List positions", "tags": [ "holdings" ] } }, "/accounts/{account_id}/positions/{position_id}": { "get": { "description": "Retrieve a position within an account.", "operationId": "get_position_accounts__account_id__positions__position_id__get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "in": "path", "name": "position_id", "required": true, "schema": { "title": "Position Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Position" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a position", "tags": [ "holdings" ] } }, "/accounts/{account_id}/returns": { "get": { "description": "Retrieve the account's MWRR and TWRR for the requested period.", "operationId": "get_account_returns_accounts__account_id__returns_get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "description": "Predefined period over which returns are computed.", "in": "query", "name": "period", "required": true, "schema": { "$ref": "#/components/schemas/Period", "description": "Predefined period over which returns are computed." } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountReturnsV2" } } }, "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve Account Returns (MWRR / TWRR)", "tags": [ "performance" ] } }, "/accounts/{account_id}/statements": { "post": { "description": "Creates a new statement", "operationId": "create_account_statement_accounts__account_id__statements_post", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateAccountStatementRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Document" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create an account statement", "tags": [ "accounts" ] } }, "/accounts/{account_id}/valuation": { "get": { "description": "Retrieve an account's current valuation.", "operationId": "get_current_valuation_accounts__account_id__valuation_get", "parameters": [ { "description": "The ID of the account to retrieve the valuation for.", "in": "path", "name": "account_id", "required": true, "schema": { "description": "The ID of the account to retrieve the valuation for.", "title": "Account Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Valuation" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve current valuation", "tags": [ "valuation" ] } }, "/accounts/{account_id}/valuation-history": { "get": { "description": "Retrieve an account's valuation time series for the requested period. Suitable for charting an account's valuation over time.", "operationId": "get_account_history_time_series_accounts__account_id__valuation_history_get", "parameters": [ { "description": "The ID of the account to retrieve the valuation history for.", "in": "path", "name": "account_id", "required": true, "schema": { "description": "The ID of the account to retrieve the valuation history for.", "title": "Account Id", "type": "string" } }, { "description": "The period start (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) date format). Note the period is interpreted as a closed interval with both `period_start` and `period_end` included.", "in": "query", "name": "period_start", "required": true, "schema": { "description": "The period start (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) date format). Note the period is interpreted as a closed interval with both `period_start` and `period_end` included.", "examples": [ "period_start=2025-11-12" ], "format": "date", "title": "Period Start", "type": "string" } }, { "description": "The period end (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) date format). Note the period is interpreted as a closed period is interpreted as a closed interval with both `period_start` and `period_end` included.", "in": "query", "name": "period_end", "required": false, "schema": { "description": "The period end (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) date format). Note the period is interpreted as a closed period is interpreted as a closed interval with both `period_start` and `period_end` included.", "examples": [ "period_end=2025-11-12" ], "format": "date", "title": "Period End", "type": "string", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValuationHistory" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve valuation history", "tags": [ "valuation" ] } }, "/accounts/{account_id}/withdrawals": { "post": { "description": "Initiates a withdrawal of cash out of the account.", "operationId": "create_withdrawal_accounts__account_id__withdrawals_post", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWithdrawalRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Withdrawal" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create a withdrawal", "tags": [ "payments" ] } }, "/accounts/{account_id}/withdrawals/{withdrawal_id}": { "get": { "description": "Retrieve a withdrawal by ID.", "operationId": "get_withdrawal_accounts__account_id__withdrawals__withdrawal_id__get", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } }, { "in": "path", "name": "withdrawal_id", "required": true, "schema": { "title": "Withdrawal Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Withdrawal" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a withdrawal", "tags": [ "payments" ] } }, "/accounts/{id_or_reference}": { "get": { "description": "Retrieve an account by ID or reference.", "operationId": "get_account_accounts__id_or_reference__get", "parameters": [ { "in": "path", "name": "id_or_reference", "required": true, "schema": { "title": "Id Or Reference", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Account" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve an account", "tags": [ "accounts" ] } }, "/accounts/{id}/transactions": { "get": { "description": "Retrieve the account's transaction activity.", "operationId": "list_account_transactions_accounts__id__transactions_get", "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "title": "Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit", "x-remove-null": true } }, { "in": "query", "name": "transaction_types", "required": false, "schema": { "anyOf": [ { "items": { "$ref": "#/components/schemas/TransactionType" }, "type": "array" }, { "type": "null" } ], "title": "Transaction Types" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Transaction" }, "title": "Response List Account Transactions Accounts Id Transactions Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List account transactions", "tags": [ "activity" ] } }, "/auth/token": { "post": { "description": "Issue an OAuth token using client credentials.", "operationId": "issue_token_auth_token_post", "requestBody": { "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/ClientCredentialsForm" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthToken" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthErrorBody" } } }, "description": "OAuth error response (RFC 6749 §5.2). Malformed form fields return the standard error envelope instead." }, "401": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthErrorBody" } } }, "description": "Client authentication failed (RFC 6749 §5.2)." } }, "summary": "Issue an OAuth token", "tags": [ "auth" ] } }, "/bills/otr": { "get": { "description": "Returns the on-the-run treasury bill for each standard maturity period of the given issuer country that currently has a matching bill. Periods with no matching bill are omitted from the response.", "operationId": "get_on_the_run_bill_matrix_bills_otr_get", "parameters": [ { "in": "query", "name": "issuer_country", "required": true, "schema": { "title": "Issuer Country", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "examples": { "default": { "summary": "EU on-the-run matrix with no 6m match", "value": { "12m": { "days_to_maturity": 366, "id": "instrument_def456", "instrument_type": "bill", "isin": "EU0000000011", "issuer": "EU", "issuer_country": "EU", "maturity_date": "2024-10-04", "name": "EU 12M T-Bill 2024-10-04", "symbol": "EU0000000011", "trading_currency": "EUR" }, "3m": { "days_to_maturity": 92, "id": "instrument_abc123", "instrument_type": "bill", "isin": "EU0000000001", "issuer": "EU", "issuer_country": "EU", "maturity_date": "2024-01-04", "name": "EU 3M T-Bill 2024-01-04", "symbol": "EU0000000001", "trading_currency": "EUR" } } } }, "schema": { "additionalProperties": { "$ref": "#/components/schemas/Bill" }, "title": "Response Get On The Run Bill Matrix Bills Otr Get", "type": "object" } } }, "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List on-the-run bills", "tags": [ "catalog" ] } }, "/customers/{id}": { "get": { "description": "Retrieve a customer by ID.", "operationId": "get_customer_customers__id__get", "parameters": [ { "description": "The ID of the customer.", "in": "path", "name": "id", "required": true, "schema": { "description": "The ID of the customer.", "title": "Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "discriminator": { "mapping": { "business": "#/components/schemas/BusinessCustomer", "individual": "#/components/schemas/IndividualCustomer", "joint": "#/components/schemas/JointCustomer" }, "propertyName": "customer_type" }, "oneOf": [ { "$ref": "#/components/schemas/IndividualCustomer" }, { "$ref": "#/components/schemas/JointCustomer" }, { "$ref": "#/components/schemas/BusinessCustomer" } ], "title": "Response Get Customer Customers Id Get" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a customer", "tags": [ "customers" ] } }, "/customers/{id}/account-ownerships": { "get": { "description": "Retrieve the account ownerships for a customer.", "operationId": "list_customer_account_ownerships_customers__id__account_ownerships_get", "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "title": "Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AccountOwnership" }, "title": "Response List Customer Account Ownerships Customers Id Account Ownerships Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Customer Account Ownerships", "tags": [ "customers" ] } }, "/documents/{document_id}/file": { "get": { "description": "Downloads the underlying document file. Note that this endpoint is implemented using a redirect which should be followed by the client for downloading directly from file storage. Clients that cannot follow a redirect can make the request with ?redirect=false and manually open the URL in `download_url` to trigger the download.", "operationId": "download_document_file_documents__document_id__file_get", "parameters": [ { "in": "path", "name": "document_id", "required": true, "schema": { "title": "Document Id", "type": "string" } }, { "in": "query", "name": "redirect", "required": false, "schema": { "default": true, "title": "Redirect", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Download Document File", "tags": [ "accounts" ] } }, "/events": { "get": { "description": "Retrieve events, optionally filtered by name, resource ID, or creation time.", "operationId": "list_events_events_get", "parameters": [ { "description": "Filter by fully-qualified event name, e.g. `customer.created`.", "in": "query", "name": "name", "required": false, "schema": { "description": "Filter by fully-qualified event name, e.g. `customer.created`.", "title": "Name", "type": "string", "x-remove-null-from-type-union": true } }, { "description": "Filter by the resource ID that the events describe.", "in": "query", "name": "resource[id]", "required": false, "schema": { "description": "Filter by the resource ID that the events describe.", "title": "Resource[Id]", "type": "string", "x-remove-null-from-type-union": true } }, { "description": "Return events created strictly after this timestamp.", "in": "query", "name": "created[gt]", "required": false, "schema": { "description": "Return events created strictly after this timestamp.", "format": "date-time", "title": "Created[Gt]", "type": "string", "x-remove-null-from-type-union": true } }, { "description": "Return events created on or after this timestamp.", "in": "query", "name": "created[gte]", "required": false, "schema": { "description": "Return events created on or after this timestamp.", "format": "date-time", "title": "Created[Gte]", "type": "string", "x-remove-null-from-type-union": true } }, { "description": "Return events created strictly before this timestamp.", "in": "query", "name": "created[lt]", "required": false, "schema": { "description": "Return events created strictly before this timestamp.", "format": "date-time", "title": "Created[Lt]", "type": "string", "x-remove-null-from-type-union": true } }, { "description": "Return events created on or before this timestamp.", "in": "query", "name": "created[lte]", "required": false, "schema": { "description": "Return events created on or before this timestamp.", "format": "date-time", "title": "Created[Lte]", "type": "string", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Event" }, "title": "Response List Events Events Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List events", "tags": [ "events" ] } }, "/events/{event_id}": { "get": { "description": "Retrieve an event by ID.", "operationId": "get_event_events__event_id__get", "parameters": [ { "in": "path", "name": "event_id", "required": true, "schema": { "title": "Event Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Event" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve event", "tags": [ "events" ] } }, "/fee-charges/{fee_charge_id}": { "get": { "description": "Retrieve a fee charge by ID.", "operationId": "get_fee_charge_fee_charges__fee_charge_id__get", "parameters": [ { "in": "path", "name": "fee_charge_id", "required": true, "schema": { "title": "Fee Charge Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeeCharge" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a fee charge", "tags": [ "billing" ] } }, "/fees/{fee_id}": { "get": { "description": "Retrieve a fee by ID, including its variants.", "operationId": "retrieve_fee_fees__fee_id__get", "parameters": [ { "in": "path", "name": "fee_id", "required": true, "schema": { "title": "Fee Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Fee" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a fee", "tags": [ "billing" ] } }, "/files": { "post": { "description": "Create a file from a signed upload. **Please use the `id` that was returned when the signed upload was requested.**", "operationId": "create_file_from_signed_upload_files_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFileFromSignedUploadRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/File" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create a file", "tags": [ "files" ] } }, "/instruments": { "get": { "description": "Retrieve all instruments. Note that only instruments visible for your tenant will be returned.", "operationId": "list_instruments_instruments_get", "parameters": [ { "description": "Return instruments of the given types.", "in": "query", "name": "instrument_type", "required": false, "schema": { "description": "Return instruments of the given types.", "items": { "$ref": "#/components/schemas/InstrumentType" }, "title": "Instrument Type", "type": "array", "x-remove-null-from-type-union": true } }, { "description": "Return instruments with the given trading statuses.", "in": "query", "name": "trading_status", "required": false, "schema": { "description": "Return instruments with the given trading statuses.", "items": { "$ref": "#/components/schemas/InstrumentTradingStatus" }, "title": "Trading Status", "type": "array", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ] }, "title": "Response List Instruments Instruments Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List instruments", "tags": [ "catalog" ] } }, "/instruments/{id_or_symbol}": { "get": { "description": "Retrieve an instrument by ID or symbol. Note that the instrument has to be visible for your tenant to be accessible.", "operationId": "get_instrument_instruments__id_or_symbol__get", "parameters": [ { "description": "The ID or symbol of the instrument to retrieve.", "in": "path", "name": "id_or_symbol", "required": true, "schema": { "description": "The ID or symbol of the instrument to retrieve.", "title": "Id Or Symbol", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "discriminator": { "mapping": { "amc": "#/components/schemas/AMC", "bill": "#/components/schemas/Bill", "bond": "#/components/schemas/Bond", "currency_pair": "#/components/schemas/CurrencyPair", "etf": "#/components/schemas/ETF", "money_market_fund": "#/components/schemas/MoneyMarketFund" }, "propertyName": "instrument_type" }, "oneOf": [ { "$ref": "#/components/schemas/Bill" }, { "$ref": "#/components/schemas/CurrencyPair" }, { "$ref": "#/components/schemas/Bond" }, { "$ref": "#/components/schemas/MoneyMarketFund" }, { "$ref": "#/components/schemas/AMC" }, { "$ref": "#/components/schemas/ETF" } ], "title": "Response Get Instrument Instruments Id Or Symbol Get" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve an instrument", "tags": [ "catalog" ] } }, "/legal-documents": { "get": { "description": "Retrieve all available legal documents, optionally filtered by document type.", "operationId": "list_legal_documents_legal_documents_get", "parameters": [ { "description": "Return legal documents of the given type.", "in": "query", "name": "document_type", "required": false, "schema": { "$ref": "#/components/schemas/LegalDocumentType", "description": "Return legal documents of the given type.", "title": "Document Type", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LegalDocument" }, "title": "Response List Legal Documents Legal Documents Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List legal documents", "tags": [ "legal-documents" ] } }, "/legal-documents/{legal_document_id}": { "get": { "description": "Retrieve a legal document by ID.", "operationId": "get_legal_document_legal_documents__legal_document_id__get", "parameters": [ { "description": "The ID of the legal document to retrieve.", "in": "path", "name": "legal_document_id", "required": true, "schema": { "description": "The ID of the legal document to retrieve.", "title": "Legal Document Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LegalDocument" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a legal document", "tags": [ "legal-documents" ] } }, "/legal-documents/{legal_document_id}/latest": { "get": { "description": "Retrieves the latest version of a legal document alongside its download URL.", "operationId": "get_latest_legal_document_legal_documents__legal_document_id__latest_get", "parameters": [ { "description": "The ID of the legal document.", "in": "path", "name": "legal_document_id", "required": true, "schema": { "description": "The ID of the legal document.", "title": "Legal Document Id", "type": "string" } }, { "in": "query", "name": "inline", "required": false, "schema": { "default": false, "title": "Inline", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LegalDocumentVersionWithDownloadUrl" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve the latest version of a legal document", "tags": [ "legal-documents" ] } }, "/legal-documents/{legal_document_id}/latest/file": { "get": { "description": "Downloads the file for the latest version of a legal document (by effective date). This endpoint redirects to a signed download URL. Clients that cannot follow a redirect can make the request with ?redirect=false and manually open the URL in `download_url` to trigger the download. If you want to open the file inline,add ?inline=true to the request.", "operationId": "download_latest_legal_document_legal_documents__legal_document_id__latest_file_get", "parameters": [ { "description": "The ID of the legal document.", "in": "path", "name": "legal_document_id", "required": true, "schema": { "description": "The ID of the legal document.", "title": "Legal Document Id", "type": "string" } }, { "in": "query", "name": "redirect", "required": false, "schema": { "default": true, "title": "Redirect", "type": "boolean" } }, { "in": "query", "name": "inline", "required": false, "schema": { "default": false, "title": "Inline", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Download the latest version of a legal document", "tags": [ "legal-documents" ] } }, "/legal-documents/{legal_document_id}/versions": { "get": { "description": "Returns all versions of the given legal document, ordered by effective date descending (most recent first).", "operationId": "list_legal_document_versions_legal_documents__legal_document_id__versions_get", "parameters": [ { "description": "The ID of the legal document.", "in": "path", "name": "legal_document_id", "required": true, "schema": { "description": "The ID of the legal document.", "title": "Legal Document Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LegalDocumentVersion" }, "title": "Response List Legal Document Versions Legal Documents Legal Document Id Versions Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List versions of a legal document", "tags": [ "legal-documents" ] } }, "/legal-documents/{legal_document_id}/versions/{version_id}": { "get": { "description": "Retrieve a specific version of a legal document.", "operationId": "get_legal_document_version_legal_documents__legal_document_id__versions__version_id__get", "parameters": [ { "description": "The ID of the legal document.", "in": "path", "name": "legal_document_id", "required": true, "schema": { "description": "The ID of the legal document.", "title": "Legal Document Id", "type": "string" } }, { "description": "The ID of the version to retrieve.", "in": "path", "name": "version_id", "required": true, "schema": { "description": "The ID of the version to retrieve.", "title": "Version Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LegalDocumentVersion" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a legal document version", "tags": [ "legal-documents" ] } }, "/legal-documents/{legal_document_id}/versions/{version_id}/file": { "get": { "description": "Downloads the file for a specific version of a legal document. This endpoint redirects to a signed download URL. Clients that cannot follow a redirect can make the request with ?redirect=false and manually open the URL in `download_url` to trigger the download. If you want to open the file inline, add ?inline=true to the request.", "operationId": "download_legal_document_version_legal_documents__legal_document_id__versions__version_id__file_get", "parameters": [ { "description": "The ID of the legal document.", "in": "path", "name": "legal_document_id", "required": true, "schema": { "description": "The ID of the legal document.", "title": "Legal Document Id", "type": "string" } }, { "description": "The ID of the version to download.", "in": "path", "name": "version_id", "required": true, "schema": { "description": "The ID of the version to download.", "title": "Version Id", "type": "string" } }, { "in": "query", "name": "redirect", "required": false, "schema": { "default": true, "title": "Redirect", "type": "boolean" } }, { "in": "query", "name": "inline", "required": false, "schema": { "default": false, "title": "Inline", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Download a legal document version", "tags": [ "legal-documents" ] } }, "/me": { "get": { "description": "Retrieves the authenticated user or service actor for inspection and debugging.", "operationId": "me_me_get", "responses": { "200": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/User" }, { "$ref": "#/components/schemas/Service" } ], "title": "Response Me Me Get" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve current actor", "tags": [ "identity" ] } }, "/me/permissions": { "get": { "description": "Lists all effective permissions for the authenticated actor. Conditional permissions include a stable `when` condition id.", "operationId": "list_permissions_me_permissions_get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Permission" }, "title": "Response List Permissions Me Permissions Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List current actor permissions", "tags": [ "identity" ] } }, "/onboarding-applications": { "post": { "description": "Submits an onboarding application for compliance review. All referenced persons must already exist. The application is validated against the onboarding requirements for the given customer type.", "operationId": "submit_onboarding_application_onboarding_applications_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubmitOnboardingApplicationRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingApplicationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Submit an onboarding application", "tags": [ "onboarding" ] } }, "/onboarding-applications/{id}": { "get": { "description": "Retrieve a persisted onboarding application by its ID.", "operationId": "get_onboarding_application_onboarding_applications__id__get", "parameters": [ { "description": "The ID of the onboarding application.", "in": "path", "name": "id", "required": true, "schema": { "description": "The ID of the onboarding application.", "title": "Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingApplicationResponse" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve an onboarding application", "tags": [ "onboarding" ] } }, "/persons": { "post": { "description": "Creates a person from claims with optional verification evidence. Supports both natural and legal persons.", "operationId": "create_person_persons_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePersonRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonCreationResponse" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create a person", "tags": [ "customers" ] } }, "/persons/{id}": { "get": { "description": "Retrieve a person by ID.", "operationId": "get_person_persons__id__get", "parameters": [ { "description": "The ID of the person.", "in": "path", "name": "id", "required": true, "schema": { "description": "The ID of the person.", "title": "Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "discriminator": { "mapping": { "legal": "#/components/schemas/LegalPerson", "natural": "#/components/schemas/NaturalPerson" }, "propertyName": "person_type" }, "oneOf": [ { "$ref": "#/components/schemas/NaturalPerson" }, { "$ref": "#/components/schemas/LegalPerson" } ], "title": "Response Get Person Persons Id Get" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a person", "tags": [ "customers" ] } }, "/persons/{id}/authorities": { "get": { "description": "List all authorities for a person by ID, optionally including revoked authorities.", "operationId": "list_person_authorities_persons__id__authorities_get", "parameters": [ { "description": "The ID of the person.", "in": "path", "name": "id", "required": true, "schema": { "description": "The ID of the person.", "title": "Id", "type": "string" } }, { "description": "Whether to include revoked authorities.", "in": "query", "name": "include_revoked", "required": false, "schema": { "default": false, "description": "Whether to include revoked authorities.", "title": "Include Revoked", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CustomerAuthority" }, "title": "Response List Person Authorities Persons Id Authorities Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List authorities for a person", "tags": [ "customers" ] } }, "/persons/{person_id}/claims": { "get": { "description": "List claims for a person by ID.", "operationId": "list_person_claims_persons__person_id__claims_get", "parameters": [ { "description": "The ID of the person.", "in": "path", "name": "person_id", "required": true, "schema": { "description": "The ID of the person.", "title": "Person Id", "type": "string" } }, { "description": "If set, only claims of this type.", "in": "query", "name": "claim_type", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ClaimType" }, { "type": "null" } ], "description": "If set, only claims of this type.", "title": "Claim Type" } }, { "description": "Filter by claim status (pending or verified). If omitted, claims of all statuses are returned.", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ClaimStatus" }, { "type": "null" } ], "description": "Filter by claim status (pending or verified). If omitted, claims of all statuses are returned.", "title": "Status" } }, { "description": "Default `true`: every row for this person is returned (archived pendings and superseded verifieds included), newest-first. Set to `false` to collapse to the two current rows per claim type -- the `active` verified row and the `in_flight` pending update, if any.", "in": "query", "name": "include_history", "required": false, "schema": { "default": true, "description": "Default `true`: every row for this person is returned (archived pendings and superseded verifieds included), newest-first. Set to `false` to collapse to the two current rows per claim type -- the `active` verified row and the `in_flight` pending update, if any.", "title": "Include History", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "discriminator": { "mapping": { "business_nature": "#/components/schemas/BusinessNaturePersonClaim", "contact_details": "#/components/schemas/ContactDetailsPersonClaim", "education_level": "#/components/schemas/EducationLevelPersonClaim", "employment": "#/components/schemas/EmploymentPersonClaim", "expected_activity": "#/components/schemas/ExpectedActivityPersonClaim", "fatca_status": "#/components/schemas/FatcaStatusPersonClaim", "financial_profile": "#/components/schemas/FinancialProfilePersonClaim", "identity": "#/components/schemas/IdentityPersonClaim", "investment_experience": "#/components/schemas/InvestmentExperiencePersonClaim", "lei": "#/components/schemas/LeiPersonClaim", "nationalities": "#/components/schemas/NationalitiesPersonClaim", "operating_address": "#/components/schemas/OperatingAddressPersonClaim", "pep_status": "#/components/schemas/PepStatusPersonClaim", "registered_address": "#/components/schemas/RegisteredAddressPersonClaim", "registration": "#/components/schemas/RegistrationPersonClaim", "relationships": "#/components/schemas/RelationshipsPersonClaim", "residence": "#/components/schemas/ResidencePersonClaim", "tax_residencies": "#/components/schemas/TaxResidenciesPersonClaim" }, "propertyName": "claim_type" }, "oneOf": [ { "$ref": "#/components/schemas/IdentityPersonClaim" }, { "$ref": "#/components/schemas/NationalitiesPersonClaim" }, { "$ref": "#/components/schemas/ResidencePersonClaim" }, { "$ref": "#/components/schemas/TaxResidenciesPersonClaim" }, { "$ref": "#/components/schemas/FatcaStatusPersonClaim" }, { "$ref": "#/components/schemas/PepStatusPersonClaim" }, { "$ref": "#/components/schemas/EducationLevelPersonClaim" }, { "$ref": "#/components/schemas/EmploymentPersonClaim" }, { "$ref": "#/components/schemas/FinancialProfilePersonClaim" }, { "$ref": "#/components/schemas/InvestmentExperiencePersonClaim" }, { "$ref": "#/components/schemas/RegistrationPersonClaim" }, { "$ref": "#/components/schemas/ContactDetailsPersonClaim" }, { "$ref": "#/components/schemas/LeiPersonClaim" }, { "$ref": "#/components/schemas/RegisteredAddressPersonClaim" }, { "$ref": "#/components/schemas/OperatingAddressPersonClaim" }, { "$ref": "#/components/schemas/BusinessNaturePersonClaim" }, { "$ref": "#/components/schemas/ExpectedActivityPersonClaim" }, { "$ref": "#/components/schemas/RelationshipsPersonClaim" } ] }, "title": "Response List Person Claims Persons Person Id Claims Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List claims for a person", "tags": [ "customers" ] }, "post": { "description": "Submit a claim of any type for a person. The claim is created with pending status and will need verification.", "operationId": "create_person_claim_persons__person_id__claims_post", "parameters": [ { "description": "The ID of the person.", "in": "path", "name": "person_id", "required": true, "schema": { "description": "The ID of the person.", "title": "Person Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/IdentityClaimSpec" }, { "$ref": "#/components/schemas/NationalitiesClaimSpec" }, { "$ref": "#/components/schemas/ResidenceClaimSpec" }, { "$ref": "#/components/schemas/TaxResidenciesClaimSpec" }, { "$ref": "#/components/schemas/FatcaStatusClaimSpec" }, { "$ref": "#/components/schemas/PepStatusClaimSpec" }, { "$ref": "#/components/schemas/EducationLevelClaimSpec" }, { "$ref": "#/components/schemas/EmploymentClaimSpec" }, { "$ref": "#/components/schemas/FinancialProfileClaimSpec" }, { "$ref": "#/components/schemas/InvestmentExperienceClaimSpec" }, { "$ref": "#/components/schemas/ExpectedActivityClaimSpec" }, { "$ref": "#/components/schemas/RelationshipsClaimSpec" }, { "$ref": "#/components/schemas/RegistrationClaimSpec" }, { "$ref": "#/components/schemas/ContactDetailsClaimSpec" }, { "$ref": "#/components/schemas/LeiClaimSpec" }, { "$ref": "#/components/schemas/RegisteredAddressClaimSpec" }, { "$ref": "#/components/schemas/OperatingAddressClaimSpec" }, { "$ref": "#/components/schemas/BusinessNatureClaimSpec" } ], "description": "The claim payload, discriminated by claim_type.", "title": "Body" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "discriminator": { "mapping": { "business_nature": "#/components/schemas/BusinessNaturePersonClaim", "contact_details": "#/components/schemas/ContactDetailsPersonClaim", "education_level": "#/components/schemas/EducationLevelPersonClaim", "employment": "#/components/schemas/EmploymentPersonClaim", "expected_activity": "#/components/schemas/ExpectedActivityPersonClaim", "fatca_status": "#/components/schemas/FatcaStatusPersonClaim", "financial_profile": "#/components/schemas/FinancialProfilePersonClaim", "identity": "#/components/schemas/IdentityPersonClaim", "investment_experience": "#/components/schemas/InvestmentExperiencePersonClaim", "lei": "#/components/schemas/LeiPersonClaim", "nationalities": "#/components/schemas/NationalitiesPersonClaim", "operating_address": "#/components/schemas/OperatingAddressPersonClaim", "pep_status": "#/components/schemas/PepStatusPersonClaim", "registered_address": "#/components/schemas/RegisteredAddressPersonClaim", "registration": "#/components/schemas/RegistrationPersonClaim", "relationships": "#/components/schemas/RelationshipsPersonClaim", "residence": "#/components/schemas/ResidencePersonClaim", "tax_residencies": "#/components/schemas/TaxResidenciesPersonClaim" }, "propertyName": "claim_type" }, "oneOf": [ { "$ref": "#/components/schemas/IdentityPersonClaim" }, { "$ref": "#/components/schemas/NationalitiesPersonClaim" }, { "$ref": "#/components/schemas/ResidencePersonClaim" }, { "$ref": "#/components/schemas/TaxResidenciesPersonClaim" }, { "$ref": "#/components/schemas/FatcaStatusPersonClaim" }, { "$ref": "#/components/schemas/PepStatusPersonClaim" }, { "$ref": "#/components/schemas/EducationLevelPersonClaim" }, { "$ref": "#/components/schemas/EmploymentPersonClaim" }, { "$ref": "#/components/schemas/FinancialProfilePersonClaim" }, { "$ref": "#/components/schemas/InvestmentExperiencePersonClaim" }, { "$ref": "#/components/schemas/RegistrationPersonClaim" }, { "$ref": "#/components/schemas/ContactDetailsPersonClaim" }, { "$ref": "#/components/schemas/LeiPersonClaim" }, { "$ref": "#/components/schemas/RegisteredAddressPersonClaim" }, { "$ref": "#/components/schemas/OperatingAddressPersonClaim" }, { "$ref": "#/components/schemas/BusinessNaturePersonClaim" }, { "$ref": "#/components/schemas/ExpectedActivityPersonClaim" }, { "$ref": "#/components/schemas/RelationshipsPersonClaim" } ], "title": "Response Create Person Claim Persons Person Id Claims Post" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create a claim for a person", "tags": [ "customers" ] } }, "/persons/{person_id}/claims/{claim_id}": { "get": { "description": "Retrieve a single claim for a person by person ID and claim ID.", "operationId": "get_person_claim_persons__person_id__claims__claim_id__get", "parameters": [ { "description": "The ID of the person.", "in": "path", "name": "person_id", "required": true, "schema": { "description": "The ID of the person.", "title": "Person Id", "type": "string" } }, { "description": "The ID of the claim.", "in": "path", "name": "claim_id", "required": true, "schema": { "description": "The ID of the claim.", "title": "Claim Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "discriminator": { "mapping": { "business_nature": "#/components/schemas/BusinessNaturePersonClaim", "contact_details": "#/components/schemas/ContactDetailsPersonClaim", "education_level": "#/components/schemas/EducationLevelPersonClaim", "employment": "#/components/schemas/EmploymentPersonClaim", "expected_activity": "#/components/schemas/ExpectedActivityPersonClaim", "fatca_status": "#/components/schemas/FatcaStatusPersonClaim", "financial_profile": "#/components/schemas/FinancialProfilePersonClaim", "identity": "#/components/schemas/IdentityPersonClaim", "investment_experience": "#/components/schemas/InvestmentExperiencePersonClaim", "lei": "#/components/schemas/LeiPersonClaim", "nationalities": "#/components/schemas/NationalitiesPersonClaim", "operating_address": "#/components/schemas/OperatingAddressPersonClaim", "pep_status": "#/components/schemas/PepStatusPersonClaim", "registered_address": "#/components/schemas/RegisteredAddressPersonClaim", "registration": "#/components/schemas/RegistrationPersonClaim", "relationships": "#/components/schemas/RelationshipsPersonClaim", "residence": "#/components/schemas/ResidencePersonClaim", "tax_residencies": "#/components/schemas/TaxResidenciesPersonClaim" }, "propertyName": "claim_type" }, "oneOf": [ { "$ref": "#/components/schemas/IdentityPersonClaim" }, { "$ref": "#/components/schemas/NationalitiesPersonClaim" }, { "$ref": "#/components/schemas/ResidencePersonClaim" }, { "$ref": "#/components/schemas/TaxResidenciesPersonClaim" }, { "$ref": "#/components/schemas/FatcaStatusPersonClaim" }, { "$ref": "#/components/schemas/PepStatusPersonClaim" }, { "$ref": "#/components/schemas/EducationLevelPersonClaim" }, { "$ref": "#/components/schemas/EmploymentPersonClaim" }, { "$ref": "#/components/schemas/FinancialProfilePersonClaim" }, { "$ref": "#/components/schemas/InvestmentExperiencePersonClaim" }, { "$ref": "#/components/schemas/RegistrationPersonClaim" }, { "$ref": "#/components/schemas/ContactDetailsPersonClaim" }, { "$ref": "#/components/schemas/LeiPersonClaim" }, { "$ref": "#/components/schemas/RegisteredAddressPersonClaim" }, { "$ref": "#/components/schemas/OperatingAddressPersonClaim" }, { "$ref": "#/components/schemas/BusinessNaturePersonClaim" }, { "$ref": "#/components/schemas/ExpectedActivityPersonClaim" }, { "$ref": "#/components/schemas/RelationshipsPersonClaim" } ], "title": "Response Get Person Claim Persons Person Id Claims Claim Id Get" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve a person claim", "tags": [ "customers" ] } }, "/positions/{id}": { "put": { "description": "Updates (a limited set of) settings for the given position.", "operationId": "update_position_positions__id__put", "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "title": "Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePositionRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Position" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Position", "tags": [ "holdings" ] } }, "/positions/{id}/transactions": { "get": { "description": "Retrieve the position's transaction activity.", "operationId": "list_position_transactions_positions__id__transactions_get", "parameters": [ { "in": "path", "name": "id", "required": true, "schema": { "title": "Id", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit", "x-remove-null": true } }, { "in": "query", "name": "transaction_types", "required": false, "schema": { "anyOf": [ { "items": { "$ref": "#/components/schemas/TransactionType" }, "type": "array" }, { "type": "null" } ], "title": "Transaction Types" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Transaction" }, "title": "Response List Position Transactions Positions Id Transactions Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List position transactions", "tags": [ "activity" ] } }, "/positions/{position_id}/earnings": { "get": { "description": "Retrieve a position's earnings (P&L) for the requested period. Note the period supports full date-times, with timezone information.", "operationId": "get_position_earnings_positions__position_id__earnings_get", "parameters": [ { "in": "path", "name": "position_id", "required": true, "schema": { "title": "Position Id", "type": "string" } }, { "description": "Predefined period over which earnings are computed. Takes precedence over `period_start`/`period_end` when provided.", "in": "query", "name": "period", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/Period" }, { "type": "null" } ], "description": "Predefined period over which earnings are computed. Takes precedence over `period_start`/`period_end` when provided.", "title": "Period" } }, { "description": "The period start (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the position opening date/time. Note that the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "in": "query", "name": "period_start", "required": false, "schema": { "description": "The period start (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the position opening date/time. Note that the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "examples": [ "period_start=2025-11-12T00:00:00Z", "period_start=2025-11-12" ], "format": "date-time", "title": "Period Start", "type": "string", "x-remove-null-from-type-union": true } }, { "description": "The period end (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the current date/time. Note the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "in": "query", "name": "period_end", "required": false, "schema": { "description": "The period end (in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If omitted, it defaults to the current date/time. Note the period is interpreted as a half-open interval with `period_start` included and `period_end` excluded.", "examples": [ "period_end=2025-11-12T00:00:00Z", "period_end=2025-11-12" ], "format": "date-time", "title": "Period End", "type": "string", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PositionEarningsV2" } } }, "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve position earnings (P&L)", "tags": [ "performance" ] } }, "/positions/{position_id}/returns": { "get": { "description": "Retrieve the position's MWRR and TWRR for the requested period.", "operationId": "get_position_returns_positions__position_id__returns_get", "parameters": [ { "in": "path", "name": "position_id", "required": true, "schema": { "title": "Position Id", "type": "string" } }, { "description": "Predefined period over which returns are computed.", "in": "query", "name": "period", "required": true, "schema": { "$ref": "#/components/schemas/Period", "description": "Predefined period over which returns are computed." } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PositionReturnsV2" } } }, "description": "Successful Response" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve Position Returns (MWRR / TWRR)", "tags": [ "performance" ] } }, "/positions/{position_id}/valuation": { "get": { "description": "Retrieve a position's current valuation.", "operationId": "get_position_valuation_positions__position_id__valuation_get", "parameters": [ { "description": "The ID of the position to retrieve the valuation for.", "in": "path", "name": "position_id", "required": true, "schema": { "description": "The ID of the position to retrieve the valuation for.", "title": "Position Id", "type": "string" } }, { "description": "Compute the valuation as-of this datetime (ISO 8601). Defaults to now.", "in": "query", "name": "asof", "required": false, "schema": { "description": "Compute the valuation as-of this datetime (ISO 8601). Defaults to now.", "format": "date-time", "title": "Asof", "type": "string", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PositionValuation" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve position valuation", "tags": [ "valuation" ] } }, "/prices": { "get": { "description": "Retrieve the price for the requested symbols as-of the given datetime, which defaults to now.", "operationId": "list_prices_prices_get", "parameters": [ { "description": "Return prices for the given symbols.", "in": "query", "name": "symbol", "required": true, "schema": { "description": "Return prices for the given symbols.", "items": { "type": "string" }, "title": "Symbol", "type": "array" } }, { "description": "Return prices as-of the given datetime. Defaults to now.", "in": "query", "name": "asof", "required": false, "schema": { "description": "Return prices as-of the given datetime. Defaults to now.", "format": "date-time", "title": "Asof", "type": "string", "x-remove-null-from-type-union": true } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Price" }, "title": "Response List Prices Prices Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve prices", "tags": [ "market-data" ] } }, "/signed-uploads": { "post": { "description": "Request a signed URL for uploading a file directly to storage. **The returned `id` is needed to create a file from the signed upload.**", "operationId": "request_signed_upload_signed_uploads_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSignedUploadRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignedUpload" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Request file upload", "tags": [ "files" ] } }, "/webhook-deliveries/{delivery_id}": { "get": { "description": "Retrieve a webhook delivery by ID.", "operationId": "get_webhook_delivery_webhook_deliveries__delivery_id__get", "parameters": [ { "description": "The ID of the webhook delivery to retrieve.", "in": "path", "name": "delivery_id", "required": true, "schema": { "description": "The ID of the webhook delivery to retrieve.", "title": "Delivery Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookDelivery" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve webhook delivery", "tags": [ "webhooks" ] } }, "/webhooks": { "get": { "description": "List all webhooks.", "operationId": "list_webhooks_webhooks_get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Webhook" }, "title": "Response List Webhooks Webhooks Get", "type": "array" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List webhooks", "tags": [ "webhooks" ] }, "post": { "description": "Create a new webhook.", "operationId": "create_webhook_webhooks_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWebhookRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookWithSecret" } } }, "description": "Created" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create a webhook", "tags": [ "webhooks" ] } }, "/webhooks/{webhook_id}": { "get": { "description": "Retrieve a webhook by ID.", "operationId": "get_webhook_webhooks__webhook_id__get", "parameters": [ { "description": "The ID of the webhook to retrieve.", "in": "path", "name": "webhook_id", "required": true, "schema": { "description": "The ID of the webhook to retrieve.", "title": "Webhook Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Webhook" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve webhook", "tags": [ "webhooks" ] }, "put": { "description": "Update an existing webhook.", "operationId": "update_webhook_webhooks__webhook_id__put", "parameters": [ { "description": "The ID of the webhook to update.", "in": "path", "name": "webhook_id", "required": true, "schema": { "description": "The ID of the webhook to update.", "title": "Webhook Id", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWebhookRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Webhook" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update a webhook", "tags": [ "webhooks" ] } } }, "servers": [ { "url": "https://api.engine.usesophic.com" } ], "tags": [ { "description": "Retrieve accounts and account documents.", "name": "accounts", "x-group": "Accounts" }, { "description": "Read the audit trail of platform activity.", "name": "activity", "x-group": "Activity" }, { "description": "Obtain OAuth access tokens for the Engine API.", "name": "auth", "x-group": "Authentication" }, { "description": "Inspect the authenticated user or service actor.", "name": "identity", "x-group": "Identity" }, { "description": "Retrieve fee schedules and billing information.", "name": "billing", "x-group": "Billing" }, { "description": "Browse instruments and tradable products.", "name": "catalog", "x-group": "Catalog" }, { "description": "Track onboarding applications through completion.", "name": "onboarding", "x-group": "Onboarding" }, { "description": "Manage customer records and related person data.", "name": "customers", "x-group": "Customers" }, { "description": "List platform events and inspect individual occurrences.", "name": "events", "x-group": "Events" }, { "description": "Read positions, transactions, and account holdings.", "name": "holdings", "x-group": "Holdings" }, { "description": "Retrieve legal agreements and required disclosures.", "name": "legal-documents", "x-group": "Legal Documents" }, { "description": "Access prices and market data for instruments.", "name": "market-data", "x-group": "Market Data" }, { "description": "Manage deposits, withdrawals, and funding accounts.", "name": "payments", "x-group": "Payments" }, { "description": "Retrieve returns, earnings, and performance metrics.", "name": "performance", "x-group": "Performance" }, { "description": "Place and manage orders, quotes, and trades.", "name": "trading", "x-group": "Trading" }, { "description": "Read position and account valuations over time.", "name": "valuation", "x-group": "Valuation" }, { "description": "Configure webhook endpoints and inspect deliveries.", "name": "webhooks", "x-group": "Webhooks" }, { "description": "Upload files and retrieve stored documents.", "name": "files", "x-group": "Files" } ] }