{ "components": { "schemas": { "AMC": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Prose description of the instrument.", "title": "About" }, "dealing_deadline": { "description": "The dealing deadline time for orders.", "format": "time", "title": "Dealing Deadline", "type": "string" }, "dealing_deadline_time_and_day": { "description": "The dealing deadline formatted with time and date.", "title": "Dealing Deadline Time And Day", "type": "string" }, "decimal_precision": { "description": "The number of decimal places for this instrument's trading increment.", "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC code of the exchange (venue) the instrument is listed on.", "title": "Exchange" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_issue_date": { "description": "The initial issue date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument.", "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "amc", "description": "The type of instrument.", "title": "Instrument Type" }, "is_passed_dealing_deadline": { "description": "True if the current time has passed the dealing deadline on a business day.", "title": "Is Passed Dealing Deadline", "type": "boolean" }, "isin": { "description": "International Securities Identification Number.", "title": "Isin", "type": "string" }, "issuer": { "description": "The name of the instrument issuer.", "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The country code (in [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html) format) of the instrument issuer.", "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Credit rating from a credit agency e.g AA.", "title": "Issuer Credit Rating", "type": "string" }, "minimum_initial_cash_investment": { "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "The minimum trading quantity allowed for the given financial instrument.", "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "The name of the instrument.", "title": "Name", "type": "string" }, "portfolio_manager": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The portfolio manager of the AMC.", "title": "Portfolio Manager" }, "price_type": { "allOf": [ { "$ref": "#/components/schemas/PriceType" } ], "description": "The type of price for this instrument." }, "pro_traders_only": { "description": "Flag indicating if this instrument is only available to professional (incl. elective) investors under MiFID II.", "title": "Pro Traders Only", "type": "boolean" }, "provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The provider of the AMC instrument (e.g. UBS).", "title": "Provider" }, "required_cash_increment": { "title": "Required Cash Increment", "type": "integer" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The risk profile of the AMC.", "title": "Risk Profile" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "The rollout stage of the instrument. GA instruments are visible to every user; BETA instruments are visible only to pilot users." }, "share_class": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The share class of the AMC.", "title": "Share Class" }, "strategy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The investment strategy of the AMC.", "title": "Strategy" }, "symbol": { "description": "A unique, secondary, identifier representing the instrument in financial markets (e.g. ISIN or currency pair). For example, 'US5949181045' for the Apple Inc. stock and 'EUR/USD' for the EUR/USD currency pair. ", "title": "Symbol", "type": "string" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ticker symbol of the security.", "title": "Ticker" }, "trading_currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The instrument's trading currency." }, "trading_increment": { "description": "The trading increment refers to the smallest quantity or value of a financial instrument that can be traded. This means orders must be executed in multiples of this increment.", "title": "Trading Increment", "type": "string" }, "trading_status": { "allOf": [ { "$ref": "#/components/schemas/InstrumentTradingStatus" } ], "description": "The trading status of the instrument." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "decimal_precision", "pro_traders_only", "price_type", "isin", "issuer", "issuer_country", "minimum_trading_quantity", "trading_currency", "initial_issue_date", "enforce_trading_rules", "minimum_initial_cash_investment", "required_cash_increment", "issuer_credit_rating", "dealing_deadline", "dealing_deadline_time_and_day", "is_passed_dealing_deadline", "strategy", "risk_profile", "portfolio_manager", "share_class", "provider" ], "title": "AMC", "type": "object" }, "Account": { "properties": { "bank_payment_reference": { "title": "Bank Payment Reference", "type": "string" }, "base_currency": { "$ref": "#/components/schemas/Currency" }, "can_deposit": { "title": "Can Deposit", "type": "boolean" }, "can_place_buy_order": { "title": "Can Place Buy Order", "type": "boolean" }, "can_place_sell_order": { "title": "Can Place Sell Order", "type": "boolean" }, "can_withdraw": { "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": { "items": { "$ref": "#/components/schemas/Currency" }, "title": "Funding Currencies", "type": "array" }, "has_deposited": { "title": "Has Deposited", "type": "boolean" }, "has_placed_buy_order": { "title": "Has Placed Buy Order", "type": "boolean" }, "has_placed_sell_order": { "title": "Has Placed Sell Order", "type": "boolean" }, "has_withdrawn": { "title": "Has Withdrawn", "type": "boolean" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_primary_owner_mifid_pro": { "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": { "title": "Name", "type": "string" }, "reference": { "title": "Reference", "type": "string" }, "status": { "$ref": "#/components/schemas/AccountStatus" } }, "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" }, "AccountEarnings": { "properties": { "account": { "title": "Account", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency" }, "fees": { "title": "Fees", "type": "string" }, "gross_realized": { "title": "Gross Realized", "type": "string" }, "gross_total": { "title": "Gross Total", "type": "string" }, "gross_unrealized": { "title": "Gross Unrealized", "type": "string" }, "net_realized": { "title": "Net Realized", "type": "string" }, "net_total": { "title": "Net Total", "type": "string" }, "net_unrealized": { "title": "Net Unrealized", "type": "string" }, "period_end": { "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "format": "date-time", "title": "Period Start", "type": "string" }, "position_earnings": { "items": { "$ref": "#/components/schemas/PositionEarnings" }, "title": "Position Earnings", "type": "array" }, "realized_capital": { "title": "Realized Capital", "type": "string" }, "realized_income": { "title": "Realized Income", "type": "string" }, "unrealized_capital": { "title": "Unrealized Capital", "type": "string" }, "unrealized_income": { "title": "Unrealized Income", "type": "string" } }, "required": [ "account", "gross_realized", "gross_unrealized", "gross_total", "realized_capital", "realized_income", "unrealized_capital", "unrealized_income", "net_realized", "net_unrealized", "net_total", "fees", "currency", "period_start", "period_end", "position_earnings" ], "title": "AccountEarnings", "type": "object" }, "AccountHistoryResolution": { "const": "day", "description": "The point aggregation resolution of the history time series.", "properties": {}, "title": "AccountHistoryResolution", "type": "string" }, "AccountOwnership": { "properties": { "account": { "allOf": [ { "$ref": "#/components/schemas/Account" } ], "description": "The account the account ownership applies to." }, "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": "The customer the account ownership applies to.", "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 the account ownership is the primary ownership of the customer.", "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" }, "AccountReturns": { "properties": { "account": { "description": "The account the returns were computed for.", "title": "Account", "type": "string" }, "flags": { "description": "Edge-case signals from the computation. Empty when the result is clean. Each flag explains a clamping, missing-data, or uncomputable-rate condition the caller may want to surface.", "items": { "$ref": "#/components/schemas/ReturnsFlag" }, "title": "Flags", "type": "array" }, "mwrr": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Money-weighted rate of return (XIRR over signed cashflows plus opening and closing valuations) as a cumulative period decimal (e.g. `0.0925` = 9,25%). `null` when uncomputable; see `flags`.", "title": "Mwrr" }, "period": { "allOf": [ { "$ref": "#/components/schemas/Period" } ], "description": "The requested period the returns were computed over." }, "period_end": { "description": "Resolved end of the period (the `asof` time of the computation).", "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "description": "Resolved start of the period, inclusive. Clamped to the scope's inception (account opening / position opening) when the requested period extends earlier; in that case `inception_after_period_start` is present in `flags`.", "format": "date-time", "title": "Period Start", "type": "string" }, "twrr": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time-weighted rate of return (daily-chained, cashflow-neutralised) as a cumulative period decimal (e.g. `0.0925` = 9,25%). `null` when uncomputable; see `flags`.", "title": "Twrr" } }, "required": [ "period", "period_start", "period_end", "mwrr", "twrr", "flags", "account" ], "title": "AccountReturns", "type": "object" }, "AccountStatus": { "enum": [ "active", "suspended", "closing", "closed" ], "properties": {}, "title": "AccountStatus", "type": "string" }, "Address": { "properties": { "city": { "description": "The city of the address.", "title": "City", "type": "string" }, "country_code": { "description": "The country code of the address.", "title": "Country Code", "type": "string" }, "district_county": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The district or county of the address.", "title": "District County" }, "line1": { "description": "The first line of the address.", "title": "Line1", "type": "string" }, "line2": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The second line of the address.", "title": "Line2" }, "line3": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The third line of the address.", "title": "Line3" }, "postal_code": { "description": "The postal code of the address.", "title": "Postal Code", "type": "string" } }, "required": [ "line1", "line2", "line3", "district_county", "city", "postal_code", "country_code" ], "title": "Address", "type": "object" }, "AttestationType": { "const": "data_accuracy", "description": "Self-declarations a person can make about a specific action or submission.\n\nAn attestation is always recorded against a target resource (see\n`ConsentTargetType`) — for example, asserting data accuracy for an\nonboarding application the person is submitting. It does not\nreference a `LegalDocumentVersion`; the wording is implicit in the\nsurrounding flow.", "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": "Prose description of the instrument.", "title": "About" }, "days_to_maturity": { "description": "The number of days until the instrument matures.", "title": "Days To Maturity", "type": "integer" }, "decimal_precision": { "description": "The number of decimal places for this instrument's trading increment.", "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC code of the exchange (venue) the instrument is listed on.", "title": "Exchange" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The initial auction date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument.", "title": "Initial Auction Date" }, "initial_issue_date": { "description": "The initial issue date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument.", "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "bill", "description": "The type of instrument.", "title": "Instrument Type" }, "isin": { "description": "International Securities Identification Number.", "title": "Isin", "type": "string" }, "issuer": { "description": "The name of the instrument issuer.", "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The country code (in [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html) format) of the instrument issuer.", "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Credit rating from a credit agency e.g AA.", "title": "Issuer Credit Rating", "type": "string" }, "latest_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The latest auction date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument (in case of tap issues).", "title": "Latest Auction Date" }, "latest_issue_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The latest issue date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument (in case of tap issues).", "title": "Latest Issue Date" }, "maturity_date": { "description": "The maturity date of the instrument.", "format": "date", "title": "Maturity Date", "type": "string" }, "minimum_initial_cash_investment": { "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "The minimum trading quantity allowed for the given financial instrument.", "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "The name of the instrument.", "title": "Name", "type": "string" }, "par_value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Nominal denomination per unit against which the price is quoted, as reported by the venue. Varies by market convention: many Euro MTNs quote 1.00, US Treasuries typically 100, and US corporates often 100 or 1000. Stored for reference only.", "title": "Par Value" }, "price_type": { "allOf": [ { "$ref": "#/components/schemas/PriceType" } ], "description": "The type of price for this instrument." }, "pro_traders_only": { "description": "Flag indicating if this instrument is only available to professional (incl. elective) investors under MiFID II.", "title": "Pro Traders Only", "type": "boolean" }, "required_cash_increment": { "title": "Required Cash Increment", "type": "integer" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "The rollout stage of the instrument. GA instruments are visible to every user; BETA instruments are visible only to pilot users." }, "supports_automatic_rollover": { "description": "Flag indicating whether account positions in this instrument can be configured to automatically rollover upon maturity.", "title": "Supports Automatic Rollover", "type": "boolean" }, "symbol": { "description": "A unique, secondary, identifier representing the instrument in financial markets (e.g. ISIN or currency pair). For example, 'US5949181045' for the Apple Inc. stock and 'EUR/USD' for the EUR/USD currency pair. ", "title": "Symbol", "type": "string" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ticker symbol of the security.", "title": "Ticker" }, "trading_currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The instrument's trading currency." }, "trading_increment": { "description": "The trading increment refers to the smallest quantity or value of a financial instrument that can be traded. This means orders must be executed in multiples of this increment.", "title": "Trading Increment", "type": "string" }, "trading_status": { "allOf": [ { "$ref": "#/components/schemas/InstrumentTradingStatus" } ], "description": "The trading status of the instrument." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "decimal_precision", "pro_traders_only", "price_type", "isin", "issuer", "issuer_country", "minimum_trading_quantity", "trading_currency", "initial_issue_date", "enforce_trading_rules", "minimum_initial_cash_investment", "required_cash_increment", "maturity_date", "days_to_maturity", "supports_automatic_rollover", "issuer_credit_rating", "initial_auction_date", "latest_auction_date", "latest_issue_date", "par_value" ], "title": "Bill", "type": "object" }, "Bond": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Prose description of the instrument.", "title": "About" }, "coupon": { "description": "The coupon rate of the bond.", "title": "Coupon", "type": "string" }, "coupon_frequency": { "anyOf": [ { "$ref": "#/components/schemas/BondCouponFrequency" }, { "type": "null" } ], "description": "The frequency of coupon payments (e.g., annual, semi-annual, quarterly)." }, "coupon_type": { "allOf": [ { "$ref": "#/components/schemas/BondCouponType" } ], "description": "The type of coupon payment (e.g., fixed, floating, zero-coupon)." }, "day_count_convention": { "anyOf": [ { "$ref": "#/components/schemas/DayCountConvention" }, { "type": "null" } ], "description": "Day count convention used by the venue / pricing provider to compute accrued interest. Sophic stores this as metadata only; accrued interest is not computed in-house. Null for zero-coupon bonds — they don't accrue." }, "days_to_maturity": { "description": "The number of days until the instrument matures.", "title": "Days To Maturity", "type": "integer" }, "decimal_precision": { "description": "The number of decimal places for this instrument's trading increment.", "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC code of the exchange (venue) the instrument is listed on.", "title": "Exchange" }, "first_coupon_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The date of the first scheduled coupon payment. Present when the bond has an irregular first coupon period; otherwise the schedule is derived from the issue date and coupon frequency.", "title": "First Coupon Date" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The initial auction date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument.", "title": "Initial Auction Date" }, "initial_issue_date": { "description": "The initial issue date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument.", "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "bond", "description": "The type of instrument.", "title": "Instrument Type" }, "isin": { "description": "International Securities Identification Number.", "title": "Isin", "type": "string" }, "issuer": { "description": "The name of the instrument issuer.", "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The country code (in [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html) format) of the instrument issuer.", "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Credit rating from a credit agency e.g AA.", "title": "Issuer Credit Rating", "type": "string" }, "latest_auction_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The latest auction date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument (in case of tap issues).", "title": "Latest Auction Date" }, "latest_issue_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The latest issue date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument (in case of tap issues).", "title": "Latest Issue Date" }, "maturity_date": { "description": "The maturity date of the instrument.", "format": "date", "title": "Maturity Date", "type": "string" }, "minimum_initial_cash_investment": { "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "The minimum trading quantity allowed for the given financial instrument.", "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "The name of the instrument.", "title": "Name", "type": "string" }, "next_coupon_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The next scheduled coupon payment date as of today, computed from the schedule anchor (`first_coupon_date` if set, otherwise the issue date) and `coupon_frequency`. Null for zero-coupon bonds and for bonds whose final coupon has already been paid.", "title": "Next Coupon Date" }, "par_value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Nominal denomination per unit against which the price is quoted, as reported by the venue. Varies by market convention: many Euro MTNs quote 1.00, US Treasuries typically 100, and US corporates often 100 or 1000. Stored for reference only.", "title": "Par Value" }, "price_type": { "allOf": [ { "$ref": "#/components/schemas/PriceType" } ], "description": "The type of price for this instrument." }, "pro_traders_only": { "description": "Flag indicating if this instrument is only available to professional (incl. elective) investors under MiFID II.", "title": "Pro Traders Only", "type": "boolean" }, "required_cash_increment": { "title": "Required Cash Increment", "type": "integer" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "The rollout stage of the instrument. GA instruments are visible to every user; BETA instruments are visible only to pilot users." }, "supports_automatic_rollover": { "description": "Flag indicating whether account positions in this instrument can be configured to automatically rollover upon maturity.", "title": "Supports Automatic Rollover", "type": "boolean" }, "symbol": { "description": "A unique, secondary, identifier representing the instrument in financial markets (e.g. ISIN or currency pair). For example, 'US5949181045' for the Apple Inc. stock and 'EUR/USD' for the EUR/USD currency pair. ", "title": "Symbol", "type": "string" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ticker symbol of the security.", "title": "Ticker" }, "trading_currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The instrument's trading currency." }, "trading_increment": { "description": "The trading increment refers to the smallest quantity or value of a financial instrument that can be traded. This means orders must be executed in multiples of this increment.", "title": "Trading Increment", "type": "string" }, "trading_status": { "allOf": [ { "$ref": "#/components/schemas/InstrumentTradingStatus" } ], "description": "The trading status of the instrument." }, "upcoming_coupon_amount_per_unit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The cash amount per one unit of held face quantity for the next coupon, derived from the schedule. Null for zero-coupon bonds and for bonds whose final coupon has already been paid.", "title": "Upcoming Coupon Amount Per Unit" } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "decimal_precision", "pro_traders_only", "price_type", "isin", "issuer", "issuer_country", "minimum_trading_quantity", "trading_currency", "initial_issue_date", "enforce_trading_rules", "minimum_initial_cash_investment", "required_cash_increment", "maturity_date", "days_to_maturity", "supports_automatic_rollover", "issuer_credit_rating", "initial_auction_date", "latest_auction_date", "latest_issue_date", "par_value", "coupon_type", "coupon_frequency", "coupon" ], "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" }, "BusinessCustomer": { "properties": { "address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ] }, "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": "The type of customer.", "title": "Customer Type" }, "entity_name": { "title": "Entity Name", "type": "string" }, "entity_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entity Type" }, "full_name": { "description": "The full name of the customer.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lei_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lei Code" }, "lei_code_expiry_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Lei Code Expiry Date" }, "mifid_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The MIFID category of the customer (retail, professional, etc.).", "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": "The onboarding ID of the customer.", "title": "Onboarding" }, "operating_address": { "anyOf": [ { "$ref": "#/components/schemas/Address" }, { "type": "null" } ] }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone Number" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A friendlier, shorter, customer-visible ID.", "title": "Reference" }, "referrer_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Referrer Code" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Risk Profile" }, "risk_score": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Risk Score" }, "status": { "allOf": [ { "$ref": "#/components/schemas/CustomerStatus" } ], "description": "The status of the customer (active, suspended, closing, closed)." } }, "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": "Spec for legal entity business nature and turnover claim data.", "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" }, "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, "description": "Business nature / turnover claim response.", "properties": { "annual_turnover_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "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" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Business nature claim summary.", "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" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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" }, "CashBalance": { "properties": { "available_for_trading": { "description": "The portion of the cash balance available for placing buy orders, also known as buying power.", "title": "Available For Trading", "type": "string" }, "available_for_withdrawal": { "description": "The portion of the cash balance available for withdrawal.", "title": "Available For Withdrawal", "type": "string" }, "currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The currency of the cash balance." }, "reserved": { "description": "The portion of the cash balance that is reserved for currently executing orders or withdrawals.", "title": "Reserved", "type": "string" }, "total": { "description": "The total cash balance, including settled, unsettled and reserved cash.", "title": "Total", "type": "string" } }, "required": [ "currency", "total", "available_for_trading", "available_for_withdrawal", "reserved" ], "title": "CashBalance", "type": "object" }, "CashValuation": { "properties": { "asof": { "format": "date-time", "title": "Asof", "type": "string" }, "cash_balance": { "$ref": "#/components/schemas/CashBalance" }, "currency": { "$ref": "#/components/schemas/Currency" }, "value": { "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" }, "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" }, "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": "Spec for legal entity contact details claim data.", "properties": { "claim_type": { "const": "contact_details", "title": "Claim Type" }, "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, "description": "Legal entity contact details claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "contact_details", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Legal entity contact details claim summary.", "properties": { "claim_type": { "const": "contact_details", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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": "The amount to deposit, as a decimal number with two decimal places.", "examples": [ "100.00", "50.12" ], "title": "Amount" }, "currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The currency to deposit in, which needs to be a supported currency on the account." }, "payment_reference": { "description": "The reference that will be used to identify the inbound payment that funds this deposit. If provided, it should be unique per batch of deposits you are planning to fund. If not provided, we will generate one for you. In both cases, we expect that a payment will be received with this reference.", "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": "The signed upload ID to create the file from.", "title": "Signed Upload", "type": "string" } }, "required": [ "signed_upload" ], "title": "CreateFileFromSignedUploadRequest", "type": "object" }, "CreatePersonRequest": { "description": "Create a person with claims.", "properties": { "claims": { "description": "Typed claim specs 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/RegistrationClaimSpec" }, { "$ref": "#/components/schemas/ContactDetailsClaimSpec" }, { "$ref": "#/components/schemas/LeiClaimSpec" }, { "$ref": "#/components/schemas/RegisteredAddressClaimSpec" }, { "$ref": "#/components/schemas/OperatingAddressClaimSpec" }, { "$ref": "#/components/schemas/BusinessNatureClaimSpec" }, { "$ref": "#/components/schemas/ExpectedActivityClaimSpec" }, { "$ref": "#/components/schemas/RelationshipsClaimSpec" } ] }, "minItems": 1, "title": "Claims", "type": "array" }, "person_type": { "allOf": [ { "$ref": "#/components/schemas/PersonType" } ], "description": "The type of person to create: natural or legal." } }, "required": [ "person_type", "claims" ], "title": "CreatePersonRequest", "type": "object" }, "CreateSignedUploadRequest": { "properties": { "content_type": { "description": "The content type of the file to be uploaded, e.g. application/pdf.", "title": "Content Type", "type": "string", "x-remove-null-from-type-union": true }, "filename": { "description": "The name of the file to be uploaded.", "title": "Filename", "type": "string" }, "purpose": { "const": "verification_evidence", "description": "The purpose of the uploaded file.", "title": "Purpose" } }, "required": [ "filename", "purpose" ], "title": "CreateSignedUploadRequest", "type": "object" }, "CreateWebhookRequest": { "properties": { "description": { "description": "Optional description of what the webhook is used for.", "title": "Description", "type": "string", "x-remove-null-from-type-union": true }, "url": { "description": "The URL of the webhook. Note that the URL must use HTTPS and must not be an IP address.", "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": "The amount to withdraw, as a decimal number with two decimal places.", "examples": [ "100.00", "50.12" ], "title": "Amount" }, "currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The currency to withdraw in, which needs to be a supported currency on the account. Note that the platform does not support currency conversions at this time." }, "funding_account": { "description": "The funding account that will receive the funds. Note that we only allow withdrawals to funding accounts that are 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": "Prose description of the instrument.", "title": "About" }, "base_currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The base currency of the currency pair. For example, in EUR/USD, EUR is the base currency. When placing FX orders, you are always trading the base currency." }, "decimal_precision": { "description": "The number of decimal places for this instrument's trading increment.", "title": "Decimal Precision", "type": "integer" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC code of the exchange (venue) the instrument is listed on.", "title": "Exchange" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "instrument_type": { "const": "currency_pair", "description": "The type of instrument.", "title": "Instrument Type" }, "name": { "description": "The name of the instrument.", "title": "Name", "type": "string" }, "price_type": { "allOf": [ { "$ref": "#/components/schemas/PriceType" } ], "description": "The type of price for this instrument." }, "pro_traders_only": { "description": "Flag indicating if this instrument is only available to professional (incl. elective) investors under MiFID II.", "title": "Pro Traders Only", "type": "boolean" }, "quote_currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The quote currency of the currency pair. For example, in EUR/USD, USD is the quote currency." }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "The rollout stage of the instrument. GA instruments are visible to every user; BETA instruments are visible only to pilot users." }, "symbol": { "description": "A unique, secondary, identifier representing the instrument in financial markets (e.g. ISIN or currency pair). For example, 'US5949181045' for the Apple Inc. stock and 'EUR/USD' for the EUR/USD currency pair. ", "title": "Symbol", "type": "string" }, "trading_increment": { "description": "The trading increment refers to the smallest quantity or value of a financial instrument that can be traded. This means orders must be executed in multiples of this increment.", "title": "Trading Increment", "type": "string" }, "trading_status": { "allOf": [ { "$ref": "#/components/schemas/InstrumentTradingStatus" } ], "description": "The trading status of the instrument." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "decimal_precision", "pro_traders_only", "price_type", "base_currency", "quote_currency" ], "title": "CurrencyPair", "type": "object" }, "CustomerAuthority": { "properties": { "authority_type": { "allOf": [ { "$ref": "#/components/schemas/AuthorityType" } ], "description": "The type 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": "The customer the authority applies to.", "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": "The timestamp at which the authority was granted (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format).", "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": "The person the authority is granted to.", "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": "The timestamp at which the authority was revoked (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format). If the authority is still active, this will be `null`.", "title": "Revoked At" }, "status": { "allOf": [ { "$ref": "#/components/schemas/AuthorityStatus" } ], "description": "The status of the authority (active or revoked)." } }, "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 timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the deposit was advanced as unsettled cash, if applicable.", "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 timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the deposit was completed i.e settled funds were credited to the account's cash balance.", "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": { "allOf": [ { "$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 that will be used to identify the inbound payment that funds this deposit.", "examples": [ "202512161234" ], "title": "Payment Reference", "type": "string" }, "status": { "allOf": [ { "$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", "completed" ], "properties": {}, "title": "DepositStatus", "type": "string" }, "Document": { "properties": { "account": { "title": "Account", "type": "string" }, "content_type": { "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" }, "file": { "title": "File", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_downloadable": { "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" } ], "title": "Period End" }, "period_start": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Period Start" }, "title": { "title": "Title", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "account", "title", "document_type", "content_type", "file", "period_start", "period_end", "is_downloadable" ], "title": "Document", "type": "object" }, "DocumentType-Output": { "enum": [ "welcome_letter", "trade_confirmation", "fee_statement", "account_statement" ], "properties": {}, "title": "DocumentType", "type": "string" }, "ETF": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Prose description of the instrument.", "title": "About" }, "decimal_precision": { "description": "The number of decimal places for this instrument's trading increment.", "title": "Decimal Precision", "type": "integer" }, "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": { "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC code of the exchange (venue) the instrument is listed on.", "title": "Exchange" }, "expense_ratio": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The total expense ratio (TER) as a decimal fraction of AUM (0.0020 = 0.20%).", "title": "Expense Ratio" }, "fund_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The Morningstar-style fund category (e.g. Large Blend).", "title": "Fund Category" }, "fund_domicile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The fund's domicile country (in [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html) format).", "title": "Fund Domicile" }, "fund_management": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The legal fund management company (e.g. Vanguard Group (Ireland) Limited).", "title": "Fund Management" }, "hedge_currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ], "description": "Currency the fund hedges its FX exposure into (e.g. EUR). Null for unhedged funds." }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_issue_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The fund inception date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)).", "title": "Initial Issue Date" }, "instrument_type": { "const": "etf", "description": "The type of instrument.", "title": "Instrument Type" }, "isin": { "description": "International Securities Identification Number.", "title": "Isin", "type": "string" }, "issuer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The brand-level fund name (e.g. iShares). The legal entity is in `fund_management`.", "title": "Issuer" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The country code (in [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html) format) of the instrument issuer.", "title": "Issuer Country" }, "minimum_initial_cash_investment": { "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "The minimum trading quantity allowed for the given financial instrument.", "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "The name of the instrument.", "title": "Name", "type": "string" }, "net_assets": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Total net assets of the fund.", "title": "Net Assets" }, "price_type": { "allOf": [ { "$ref": "#/components/schemas/PriceType" } ], "description": "The type of price for this instrument." }, "pro_traders_only": { "description": "Flag indicating if this instrument is only available to professional (incl. elective) investors under MiFID II.", "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": { "title": "Required Cash Increment", "type": "integer" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "The rollout stage of the instrument. GA instruments are visible to every user; BETA instruments are visible only to pilot users." }, "sri": { "anyOf": [ { "$ref": "#/components/schemas/SyntheticRiskIndicator" }, { "type": "null" } ], "description": "PRIIPs KID synthetic risk indicator (1 = lowest, 7 = highest)." }, "symbol": { "description": "A unique, secondary, identifier representing the instrument in financial markets (e.g. ISIN or currency pair). For example, 'US5949181045' for the Apple Inc. stock and 'EUR/USD' for the EUR/USD currency pair. ", "title": "Symbol", "type": "string" }, "ticker": { "description": "The ticker symbol of the ETF listing.", "title": "Ticker", "type": "string" }, "tracking_index": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The index that the ETF tracks.", "title": "Tracking Index" }, "trading_currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The instrument's trading currency." }, "trading_increment": { "description": "The trading increment refers to the smallest quantity or value of a financial instrument that can be traded. This means orders must be executed in multiples of this increment.", "title": "Trading Increment", "type": "string" }, "trading_status": { "allOf": [ { "$ref": "#/components/schemas/InstrumentTradingStatus" } ], "description": "The trading status of the instrument." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "decimal_precision", "pro_traders_only", "price_type", "isin", "ticker", "issuer", "issuer_country", "minimum_trading_quantity", "trading_currency", "initial_issue_date", "enforce_trading_rules", "minimum_initial_cash_investment", "required_cash_increment", "fund_management", "fund_category", "fund_domicile", "tracking_index", "expense_ratio", "replication_method", "distribution_policy", "distribution_frequency", "sri", "hedge_currency" ], "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" }, "EducationLevelClaimSpec": { "additionalProperties": false, "description": "Spec for education level claim data (MiFID II suitability).", "properties": { "claim_type": { "const": "education_level", "title": "Claim Type" }, "education_level": { "$ref": "#/components/schemas/ClaimEducationLevel" } }, "required": [ "claim_type", "education_level" ], "title": "EducationLevelClaimSpec", "type": "object" }, "EducationLevelPersonClaim": { "additionalProperties": false, "description": "Education level claim response (MiFID II suitability).", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "education_level", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Education level claim summary.", "properties": { "claim_type": { "const": "education_level", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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": "Spec for employment claim data (MiFID II suitability).", "properties": { "claim_type": { "const": "employment", "title": "Claim Type" }, "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, "description": "Employment claim response (MiFID II suitability).", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "employment", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Employment claim summary.", "properties": { "claim_type": { "const": "employment", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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" } ] }, "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" }, "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": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the event was recorded.", "format": "date-time", "title": "Created At", "type": "string" }, "data": { "description": "Event-specific payload data.", "title": "Data", "type": "object" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "name": { "description": "Fully-qualified event name, e.g. `customer.created`.", "title": "Name", "type": "string" }, "resource": { "allOf": [ { "$ref": "#/components/schemas/EventResource" } ], "description": "The resource that the event relates to." } }, "required": [ "id", "name", "resource", "data", "created_at" ], "title": "Event", "type": "object" }, "EventResource": { "properties": { "id": { "description": "The ID of the resource.", "title": "Id", "type": "string" }, "resource_type": { "description": "The canonical type of the resource.", "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": "Spec for expected investment activity claim data.", "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" }, "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, "description": "Expected investment activity claim response.", "properties": { "annual_transactions": { "title": "Annual Transactions", "type": "string" }, "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "asset_classes": { "items": { "type": "string" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "expected_activity", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Expected activity claim summary.", "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" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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": "Spec for FATCA US-person status (natural or legal person).", "properties": { "claim_type": { "const": "fatca_status", "title": "Claim Type" }, "is_us_person": { "title": "Is Us Person", "type": "boolean" } }, "required": [ "claim_type", "is_us_person" ], "title": "FatcaStatusClaimSpec", "type": "object" }, "FatcaStatusPersonClaim": { "additionalProperties": false, "description": "FATCA US-person status claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "fatca_status", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "FATCA status claim summary.", "properties": { "claim_type": { "const": "fatca_status", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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": { "title": "Alias", "type": "string" }, "chargeable_currencies": { "additionalProperties": { "$ref": "#/components/schemas/FeeChargeableCurrency" }, "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" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "fee_type": { "$ref": "#/components/schemas/FeeType" }, "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": { "title": "Name", "type": "string" }, "tax_rate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tax Rate" }, "transaction_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transaction Type" } }, "required": [ "created_at", "modified_at", "id", "name", "display_name", "alias", "description", "tax_rate", "fee_type", "transaction_type", "chargeable_currencies" ], "title": "Fee", "type": "object" }, "FeeCharge": { "properties": { "amount_fee": { "title": "Amount Fee", "type": "string" }, "amount_tax": { "title": "Amount Tax", "type": "string" }, "amount_total": { "title": "Amount Total", "type": "string" }, "collected_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Collected 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" }, "fee": { "$ref": "#/components/schemas/Fee" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "is_fully_refunded": { "title": "Is Fully Refunded", "type": "boolean" }, "is_partially_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" }, "period_end": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Period End" }, "period_start": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Period Start" }, "refundable_amount": { "title": "Refundable Amount", "type": "string" }, "refunded_amount": { "title": "Refunded Amount", "type": "string" }, "refunds": { "items": { "$ref": "#/components/schemas/Refund" }, "title": "Refunds", "type": "array" }, "related_transaction": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Related Transaction" }, "related_transaction_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Related Transaction Amount" }, "tax_rate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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", "refunds" ], "title": "FeeCharge", "type": "object" }, "FeeChargeableCurrency": { "properties": { "unit_amount": { "title": "Unit Amount", "type": "string" } }, "required": [ "unit_amount" ], "title": "FeeChargeableCurrency", "type": "object" }, "FeeType": { "enum": [ "transaction", "recurring" ], "properties": {}, "title": "FeeType", "type": "string" }, "File": { "description": "Uploaded File resource.", "properties": { "content_type": { "description": "The content type of the file that was uploaded.", "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": "The name of the file that was uploaded.", "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": "The purpose of the file.", "enum": [ "verification_evidence", "legal_document", "welcome_letter", "trade_confirmation", "fee_statement", "account_statement" ], "title": "Purpose", "type": "string" }, "signed_upload": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the signed upload that created this file.", "title": "Signed Upload" } }, "required": [ "created_at", "modified_at", "id", "filename", "content_type", "purpose", "signed_upload" ], "title": "File", "type": "object" }, "FinancialProfileClaimSpec": { "additionalProperties": false, "description": "Spec for income and wealth financial profile claim data.", "properties": { "annual_income_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "claim_type": { "const": "financial_profile", "title": "Claim Type" }, "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, "description": "Financial profile (income and wealth) claim response.", "properties": { "annual_income_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "financial_profile", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Financial profile claim summary.", "properties": { "annual_income_eur": { "$ref": "#/components/schemas/EurAmountBand" }, "claim_type": { "const": "financial_profile", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 (e.g BIC/SWIFT).", "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": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The currency of the funding account. We don't support multi-currency funding accounts at this time." }, "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 we've verified the ownership of the funding account. By default, we will mark the funding account as verified if we've received a deposit from it.", "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": "User-provided nickname for the funding account. This can be used in your app to distinguish between multiple funding accounts.", "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.", "format": "date", "title": "Period End", "type": "string" }, "period_start": { "description": "The start of the period to generate the statement for, inclusive.", "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": "Spec for identity claim data.", "properties": { "claim_type": { "const": "identity", "title": "Claim Type" }, "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, "description": "Identity claim response (first/last name, date of birth).", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "identity", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Identity claim summary.", "properties": { "claim_type": { "const": "identity", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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" } ] }, "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": "The type of customer.", "title": "Customer Type" }, "date_of_birth": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Date Of Birth" }, "first_name": { "description": "The first name of the customer.", "title": "First Name", "type": "string" }, "full_name": { "description": "The full name of the customer.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "id_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id Number" }, "last_name": { "description": "The last name of the customer.", "title": "Last Name", "type": "string" }, "mifid_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The MIFID category of the customer (retail, professional, etc.).", "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" } ], "title": "Nationalities" }, "onboarding": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The onboarding ID of the customer.", "title": "Onboarding" }, "passport_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Passport Number" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone Number" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A friendlier, shorter, customer-visible ID.", "title": "Reference" }, "referrer_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Referrer Code" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Risk Profile" }, "risk_score": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Risk Score" }, "status": { "allOf": [ { "$ref": "#/components/schemas/CustomerStatus" } ], "description": "The status of the customer (active, suspended, closing, closed)." }, "tax_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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" ], "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": "Spec for prior investment experience claim data.", "properties": { "asset_classes": { "items": { "$ref": "#/components/schemas/ClaimAssetClass" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "investment_experience", "title": "Claim Type" }, "has_prior_experience": { "title": "Has Prior Experience", "type": "boolean" } }, "required": [ "claim_type", "has_prior_experience" ], "title": "InvestmentExperienceClaimSpec", "type": "object" }, "InvestmentExperiencePersonClaim": { "additionalProperties": false, "description": "Investment experience claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "asset_classes": { "items": { "$ref": "#/components/schemas/ClaimAssetClass" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "investment_experience", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Investment experience claim summary.", "properties": { "asset_classes": { "items": { "$ref": "#/components/schemas/ClaimAssetClass" }, "title": "Asset Classes", "type": "array" }, "claim_type": { "const": "investment_experience", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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" } ] }, "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": "The type of customer.", "title": "Customer Type" }, "first_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The concatenated first names of the joint owners.", "title": "First Name" }, "full_name": { "description": "The full name of the customer.", "title": "Full Name", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "last_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The concatenated last names of the joint owners.", "title": "Last Name" }, "mifid_category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The MIFID category of the customer (retail, professional, etc.).", "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": "The onboarding ID of the customer.", "title": "Onboarding" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Phone Number" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A friendlier, shorter, customer-visible ID.", "title": "Reference" }, "referrer_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Referrer Code" }, "risk_profile": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Risk Profile" }, "risk_score": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Risk Score" }, "status": { "allOf": [ { "$ref": "#/components/schemas/CustomerStatus" } ], "description": "The status of the customer (active, suspended, closing, closed)." } }, "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": { "allOf": [ { "$ref": "#/components/schemas/LegalDocumentType" } ], "description": "Type of the legal document." }, "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": "Name of the legal document.", "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": "The timestamp from which this version of the document is effective (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format).", "format": "date-time", "title": "Effective At", "type": "string" }, "file": { "description": "ID of the underlying `File`.", "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": "Signed download URL for the legal document version.", "title": "Download Url", "type": "string" }, "effective_at": { "description": "The timestamp from which this version of the document is effective (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format).", "format": "date-time", "title": "Effective At", "type": "string" }, "file": { "description": "ID of the underlying `File`.", "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": "The 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": "The name of the legal entity.", "title": "Entity Name" }, "entity_type": { "anyOf": [ { "$ref": "#/components/schemas/LegalEntityType" }, { "type": "null" } ], "description": "The type of legal entity (e.g. limited_company, partnership, etc.)." }, "full_name": { "description": "The full name of the person (first name and last name 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": "The LEI code of the legal entity.", "title": "Lei Code" }, "lei_code_expiry_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "description": "The expiry date of the LEI code.", "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": "The operating address of the legal entity." }, "person_type": { "const": "legal", "description": "The type of person.", "title": "Person Type" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The primary phone number of the person.", "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": "Spec for Legal Entity Identifier (LEI) claim data.", "properties": { "claim_type": { "const": "lei", "title": "Claim Type" }, "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, "description": "LEI claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "lei", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "LEI claim summary.", "properties": { "claim_type": { "const": "lei", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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" }, "MoneyMarketFund": { "properties": { "about": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Prose description of the instrument.", "title": "About" }, "benchmark": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The benchmark (often a market index) used to evaluate the fund's performance.", "title": "Benchmark" }, "dealing_deadline": { "description": "The dealing deadline time for orders.", "format": "time", "title": "Dealing Deadline", "type": "string" }, "dealing_deadline_time_and_day": { "description": "The dealing deadline formatted with time and date.", "title": "Dealing Deadline Time And Day", "type": "string" }, "decimal_precision": { "description": "The number of decimal places for this instrument's trading increment.", "title": "Decimal Precision", "type": "integer" }, "enforce_trading_rules": { "title": "Enforce Trading Rules", "type": "boolean" }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "MIC code of the exchange (venue) the instrument is listed on.", "title": "Exchange" }, "fund_management_company": { "description": "The fund management company.", "title": "Fund Management Company", "type": "string" }, "fund_ongoing_charges": { "description": "The ongoing charges for the fund.", "title": "Fund Ongoing Charges", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "initial_issue_date": { "description": "The initial issue date ([ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)) of the instrument.", "format": "date", "title": "Initial Issue Date", "type": "string" }, "instrument_type": { "const": "money_market_fund", "description": "The type of instrument.", "title": "Instrument Type" }, "investment_objective": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The investment objective of the fund.", "title": "Investment Objective" }, "is_passed_dealing_deadline": { "description": "Flag indicating whether the the dealing deadline has passed for today.", "title": "Is Passed Dealing Deadline", "type": "boolean" }, "is_qualifying_mmf": { "description": "Flag indicating whether this is a Qualifying Money Market Fund (QMMF). QMMFs hold mainly short-term, low-risk financial assets, aiming to maintain a stable value.", "title": "Is Qualifying Mmf", "type": "boolean" }, "isin": { "description": "International Securities Identification Number.", "title": "Isin", "type": "string" }, "issuer": { "description": "The name of the instrument issuer.", "title": "Issuer", "type": "string" }, "issuer_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The country code (in [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html) format) of the instrument issuer.", "title": "Issuer Country" }, "issuer_credit_rating": { "description": "Credit rating from a credit agency e.g AA.", "title": "Issuer Credit Rating", "type": "string" }, "minimum_initial_cash_investment": { "title": "Minimum Initial Cash Investment", "type": "string" }, "minimum_trading_quantity": { "description": "The minimum trading quantity allowed for the given financial instrument.", "title": "Minimum Trading Quantity", "type": "string" }, "name": { "description": "The name of the instrument.", "title": "Name", "type": "string" }, "price_type": { "allOf": [ { "$ref": "#/components/schemas/PriceType" } ], "description": "The type of price for this instrument." }, "pro_traders_only": { "description": "Flag indicating if this instrument is only available to professional (incl. elective) investors under MiFID II.", "title": "Pro Traders Only", "type": "boolean" }, "required_cash_increment": { "title": "Required Cash Increment", "type": "integer" }, "rollout_stage": { "anyOf": [ { "$ref": "#/components/schemas/InstrumentRolloutStage" }, { "type": "null" } ], "description": "The rollout stage of the instrument. GA instruments are visible to every user; BETA instruments are visible only to pilot users." }, "symbol": { "description": "A unique, secondary, identifier representing the instrument in financial markets (e.g. ISIN or currency pair). For example, 'US5949181045' for the Apple Inc. stock and 'EUR/USD' for the EUR/USD currency pair. ", "title": "Symbol", "type": "string" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ticker symbol of the security.", "title": "Ticker" }, "trading_currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The instrument's trading currency." }, "trading_increment": { "description": "The trading increment refers to the smallest quantity or value of a financial instrument that can be traded. This means orders must be executed in multiples of this increment.", "title": "Trading Increment", "type": "string" }, "trading_status": { "allOf": [ { "$ref": "#/components/schemas/InstrumentTradingStatus" } ], "description": "The trading status of the instrument." } }, "required": [ "id", "name", "symbol", "instrument_type", "trading_status", "rollout_stage", "trading_increment", "decimal_precision", "pro_traders_only", "price_type", "isin", "issuer", "issuer_country", "minimum_trading_quantity", "trading_currency", "initial_issue_date", "enforce_trading_rules", "minimum_initial_cash_investment", "required_cash_increment", "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" ], "title": "MoneyMarketFund", "type": "object" }, "NationalitiesClaimSpec": { "additionalProperties": false, "description": "Spec for nationalities claim data.", "properties": { "claim_type": { "const": "nationalities", "title": "Claim Type" }, "nationalities": { "items": { "$ref": "#/components/schemas/NationalityEntry" }, "title": "Nationalities", "type": "array" } }, "required": [ "claim_type" ], "title": "NationalitiesClaimSpec", "type": "object" }, "NationalitiesPersonClaim": { "additionalProperties": false, "description": "Nationalities claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "nationalities", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Nationalities claim summary.", "properties": { "claim_type": { "const": "nationalities", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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, "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": "The 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": "The date of birth of the person.", "title": "Date Of Birth" }, "first_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The first name of the person.", "title": "First Name" }, "full_name": { "description": "The full name of the person (first name and last name 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": "The national ID number of the person.", "title": "Id Number" }, "last_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The last name of the person.", "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": "The list of country codes for the person's nationalities.", "items": { "type": "string" }, "title": "Nationalities", "type": "array" }, "passport_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The passport number of the person.", "title": "Passport Number" }, "person_type": { "const": "natural", "description": "The type of person.", "title": "Person Type" }, "phone_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The primary phone number of the person.", "title": "Phone Number" }, "tax_number": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The tax number of the person.", "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" }, "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": { "description": "Response for a persisted onboarding application record.", "properties": { "application": { "description": "The full application payload as submitted.", "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": { "allOf": [ { "$ref": "#/components/schemas/CustomerType" } ], "description": "The customer type for this onboarding." }, "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 outcome (populated after processing completes)." }, "status": { "allOf": [ { "$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": "Spec for legal entity operating (principal place of business) address.", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "operating_address", "title": "Claim Type" }, "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, "description": "Legal entity operating address claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "city": { "title": "City", "type": "string" }, "claim_type": { "const": "operating_address", "title": "Claim Type" }, "country_code": { "title": "Country 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 claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Legal entity operating address claim summary.", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "operating_address", "title": "Claim Type" }, "country_code": { "title": "Country 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 claim was created.", "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": { "account": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the parent account. Orders placed by users always have a parent account. Orders placed by the system (e.g. for internal operations) do not.", "title": "Account" }, "automatic_rollover": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "The customer's request for automatic rollover. Only has a value for buy orders in relevant instruments.", "title": "Automatic Rollover" }, "cancelled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The cancellation timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format).", "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": "Total wallet debit for buy orders (gross purchase plus fees). Cash-mode buys specify this directly; quantity-mode buys compute it at placement from the latest price.", "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": "The order currency. For securities orders, this is the trading currency of the instrument. For FX orders, this is the base currency." }, "fees": { "description": "The total fees for this order.", "title": "Fees", "type": "string" }, "filled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The fill timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format).", "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 this 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": "The limit price for limit orders. Null for market orders.", "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": "Gross purchase amount (before fees). This is what gets traded.", "title": "Net Cash Amount" }, "order_type": { "allOf": [ { "$ref": "#/components/schemas/OrderType" } ], "description": "The order type (e.g. market, limit)." }, "position": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ID of the position this order is part of, if applicable. Note that the position is null before the order is executed.", "title": "Position" }, "purpose": { "allOf": [ { "$ref": "#/components/schemas/OrderPurpose" } ], "description": "The order purpose, set by us." }, "quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The number of units to sell. Sell orders are unit-based (you specify how many units to sell, not how much cash to receive).", "title": "Quantity" }, "quote": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Reference to the ``OrderQuote`` that produced this order, if any. Optional for all orders. When set on an FX order, the executing rate is locked to the quote; when omitted, the order trades at the live market rate.", "title": "Quote" }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The settlement timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format).", "title": "Settled At" }, "side": { "allOf": [ { "$ref": "#/components/schemas/OrderSide" } ], "description": "Buy or sell." }, "status": { "allOf": [ { "$ref": "#/components/schemas/OrderStatus" } ], "description": "The order status." }, "traded_notional": { "description": "The sum of notional values of all order executions so far.", "title": "Traded Notional", "type": "string" }, "traded_quantity": { "description": "The sum of unit quantities of all order executions so far.", "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" }, "OrderPurpose": { "enum": [ "user_request", "rollover", "square_off", "backfill" ], "properties": {}, "title": "OrderPurpose", "type": "string" }, "OrderQuote": { "description": "Quote returned by `/order-quotes`. ETF quantity-mode buys are persisted\nautomatically and carry an `id` and `expires_at` for replay at order\nplacement; other quotes are indicative only. For a binding FX quote with\n`from`/`to` notation, use `/order-quotes/fx`.", "properties": { "cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Total wallet debit for buy orders (gross purchase plus fees). Set for cash-mode and quantity-mode buys.", "title": "Cash Amount" }, "estimated_cash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Gross purchase snapshot (quantity × price × buffer, excluding fees). Set for quantity-mode buys and sells.", "title": "Estimated Cash" }, "estimated_price": { "description": "The estimated price per unit.", "title": "Estimated Price", "type": "string" }, "estimated_quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The estimated quantity of units that would be traded.", "title": "Estimated Quantity" }, "expires_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the quote expires, when persisted.", "title": "Expires At" }, "fees": { "description": "The estimated fees.", "title": "Fees", "type": "string" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The quote ID, when persisted.", "title": "Id" }, "instrument": { "description": "The ID of the instrument being quoted.", "title": "Instrument", "type": "string" }, "is_binding": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Whether the quote's price is binding at execution.", "title": "Is Binding" }, "max_cost": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The maximum cash a limit buy can consume. Set on limit buy quotes.", "title": "Max Cost" }, "min_proceeds": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The minimum proceeds a limit sell yields. Set on limit sell quotes.", "title": "Min Proceeds" }, "net_cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Gross purchase amount (before fees). This is what gets traded.", "title": "Net Cash Amount" }, "price_buffer_percentage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The price buffer percentage applied to quantity-mode buys.", "title": "Price Buffer Percentage" }, "quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The unit quantity. Set for sells and quantity-mode buys.", "title": "Quantity" }, "side": { "allOf": [ { "$ref": "#/components/schemas/OrderSide" } ], "description": "Buy or sell." } }, "required": [ "instrument", "side", "fees", "estimated_price" ], "title": "OrderQuote", "type": "object" }, "OrderQuoteRequest": { "properties": { "cash_amount": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "The cash amount for a cash-mode buy. Omitted in quantity mode.", "title": "Cash Amount" }, "instrument_id": { "description": "The ID of the instrument the quote is for", "title": "Instrument Id", "type": "string" }, "limit_price": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string" } ], "gt": 0 }, { "type": "null" } ], "description": "Optional limit price. When set, the quote is a deterministic bound: `estimated_price` echoes the limit price, a buy returns the affordable quantity and `max_cost`, a sell returns `min_proceeds`.", "title": "Limit Price" }, "quantity": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "description": "The quantity to sell, or to buy in quantity mode.", "title": "Quantity" }, "return_only_fees": { "default": false, "description": "When true, only the applicable fees will be returned to the user", "title": "Return Only Fees", "type": "boolean" }, "side": { "allOf": [ { "$ref": "#/components/schemas/OrderSide" } ], "description": "The order side, buy or sell." } }, "required": [ "instrument_id", "side" ], "title": "OrderQuoteRequest", "type": "object" }, "OrderSide": { "enum": [ "buy", "sell" ], "properties": {}, "title": "OrderSide", "type": "string" }, "OrderStatus": { "enum": [ "held", "placed", "pending", "executing", "cancelling", "filled", "settled", "cancelled" ], "properties": {}, "title": "OrderStatus", "type": "string" }, "OrderTrade": { "properties": { "account": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Account" }, "accrued_interest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Accrued interest portion of the (dirty) notional for fixed income trades. Sourced from FIX AccruedInterestAmt (tag 159) when the venue provides it. Clients can derive the clean notional as notional - accrued_interest.", "title": "Accrued Interest" }, "counterparty": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "format": "date-time", "title": "Executed At", "type": "string" }, "execution_audit_trail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Execution Audit Trail" }, "execution_broker": { "title": "Execution Broker", "type": "string" }, "execution_reference": { "title": "Execution Reference", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "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" } ], "title": "Is Reportable" }, "meta": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "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": { "title": "Notional", "type": "string" }, "notional_currency": { "$ref": "#/components/schemas/Currency" }, "order": { "title": "Order", "type": "string" }, "position": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Position" }, "price": { "title": "Price", "type": "string" }, "quantity": { "title": "Quantity", "type": "string" }, "quantity_currency": { "anyOf": [ { "$ref": "#/components/schemas/Currency" }, { "type": "null" } ] }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Settled At" }, "settlement_batch_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Settlement Batch Id" }, "settlement_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Settlement Date" }, "side": { "$ref": "#/components/schemas/OrderSide" }, "status": { "$ref": "#/components/schemas/OrderTradeStatus" }, "trading_venue": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Trading Venue" }, "tvtic": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tvtic" }, "ytm": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": "Spec for politically exposed person (PEP) declaration claim data.", "properties": { "claim_type": { "const": "pep_status", "title": "Claim Type" }, "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, "description": "Politically-exposed-person claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "pep_status", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "PEP status claim summary.", "properties": { "claim_type": { "const": "pep_status", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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" }, "PersonCreationResponse": { "description": "Response for a person created from claims.\n\nIncludes the person summary and all created claims.", "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": "The full name of the person.", "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": { "allOf": [ { "$ref": "#/components/schemas/PersonType" } ], "description": "The type of person (natural or legal)." } }, "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": { "automatic_rollover": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "If true, the resulting position will be set to automatically rollover to a similar instrument upon maturity. Only applicable to buy orders on instruments with `supports_automatic_rollover` set to true.", "title": "Automatic Rollover" }, "cash_amount": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string" } ], "gt": 0 }, { "type": "null" } ], "description": "Required for buy orders. The amount to invest (before fees). Buy orders are cash-based (you specify how much to invest, not how many units to buy).", "examples": [ "100.00", "50.12" ], "title": "Cash Amount" }, "instrument": { "description": "The ID of the instrument to buy or sell.", "title": "Instrument", "type": "string" }, "limit_price": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string" } ], "gt": 0 }, { "type": "null" } ], "description": "Limit price. Required for limit orders, rejected for market orders.", "title": "Limit Price" }, "order_type": { "allOf": [ { "$ref": "#/components/schemas/OrderType" } ], "description": "The order type, market or limit. Limit orders are ETFs only." }, "quantity": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string" } ], "gt": 0 }, { "type": "null" } ], "description": "Required for sell orders. The number of units to sell. Sell orders are unit-based (you specify how many units to sell, not how much cash to receive).", "title": "Quantity" }, "quote": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of a previously issued order quote. For FX orders, the locked rate is replayed at execution. For security quantity-mode buys, cash is recomputed from the latest price at placement (with a deviation check against the quoted amount).", "title": "Quote" }, "side": { "allOf": [ { "$ref": "#/components/schemas/OrderSide" } ], "description": "The order side, buy or sell." } }, "required": [ "instrument", "order_type", "side" ], "title": "PlaceOrderRequest", "type": "object" }, "Position": { "properties": { "account": { "title": "Account", "type": "string" }, "automatic_rollover": { "title": "Automatic Rollover", "type": "boolean" }, "automatic_rollover_cutoff": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Automatic Rollover Cutoff" }, "available_for_trading": { "title": "Available For Trading", "type": "string" }, "average_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Average Price" }, "can_update_automatic_rollover": { "title": "Can Update Automatic Rollover", "type": "boolean" }, "closed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Closed At" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "id": { "title": "Id", "type": "string" }, "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" }, "modified_at": { "format": "date-time", "title": "Modified At", "type": "string" }, "most_recent_maturity_period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Most Recent Maturity Period" }, "opened_at": { "format": "date-time", "title": "Opened At", "type": "string" }, "reserved": { "title": "Reserved", "type": "string" }, "settled": { "title": "Settled", "type": "string" }, "status": { "$ref": "#/components/schemas/PositionStatus" }, "total": { "title": "Total", "type": "string" }, "total_buy_trades": { "title": "Total Buy Trades", "type": "integer" }, "unsettled": { "title": "Unsettled", "type": "string" }, "ytm": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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" }, "PositionEarnings": { "properties": { "cost_basis": { "title": "Cost Basis", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency" }, "gross_realized": { "title": "Gross Realized", "type": "string" }, "gross_total": { "title": "Gross Total", "type": "string" }, "gross_unrealized": { "title": "Gross Unrealized", "type": "string" }, "gross_unrealized_percentage": { "title": "Gross Unrealized Percentage", "type": "string" }, "period_end": { "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "format": "date-time", "title": "Period Start", "type": "string" }, "position": { "title": "Position", "type": "string" }, "realized_capital": { "title": "Realized Capital", "type": "string" }, "realized_income": { "title": "Realized Income", "type": "string" }, "unrealized_capital": { "title": "Unrealized Capital", "type": "string" }, "unrealized_income": { "title": "Unrealized Income", "type": "string" } }, "required": [ "position", "gross_realized", "gross_unrealized", "gross_total", "gross_unrealized_percentage", "realized_capital", "realized_income", "unrealized_capital", "unrealized_income", "cost_basis", "currency", "period_start", "period_end" ], "title": "PositionEarnings", "type": "object" }, "PositionReturns": { "properties": { "flags": { "description": "Edge-case signals from the computation. Empty when the result is clean. Each flag explains a clamping, missing-data, or uncomputable-rate condition the caller may want to surface.", "items": { "$ref": "#/components/schemas/ReturnsFlag" }, "title": "Flags", "type": "array" }, "mwrr": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Money-weighted rate of return (XIRR over signed cashflows plus opening and closing valuations) as a cumulative period decimal (e.g. `0.0925` = 9,25%). `null` when uncomputable; see `flags`.", "title": "Mwrr" }, "period": { "allOf": [ { "$ref": "#/components/schemas/Period" } ], "description": "The requested period the returns were computed over." }, "period_end": { "description": "Resolved end of the period (the `asof` time of the computation).", "format": "date-time", "title": "Period End", "type": "string" }, "period_start": { "description": "Resolved start of the period, inclusive. Clamped to the scope's inception (account opening / position opening) when the requested period extends earlier; in that case `inception_after_period_start` is present in `flags`.", "format": "date-time", "title": "Period Start", "type": "string" }, "position": { "description": "The position the returns were computed for.", "title": "Position", "type": "string" }, "twrr": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time-weighted rate of return (daily-chained, cashflow-neutralised) as a cumulative period decimal (e.g. `0.0925` = 9,25%). `null` when uncomputable; see `flags`.", "title": "Twrr" } }, "required": [ "period", "period_start", "period_end", "mwrr", "twrr", "flags", "position" ], "title": "PositionReturns", "type": "object" }, "PositionStatus": { "enum": [ "open", "closing", "closed" ], "properties": {}, "title": "PositionStatus", "type": "string" }, "PositionValuation": { "properties": { "asof": { "format": "date-time", "title": "Asof", "type": "string" }, "currency": { "$ref": "#/components/schemas/Currency" }, "position": { "$ref": "#/components/schemas/Position" }, "price": { "title": "Price", "type": "string" }, "value": { "title": "Value", "type": "string" } }, "required": [ "position", "value", "currency", "price", "asof" ], "title": "PositionValuation", "type": "object" }, "Price": { "properties": { "accrued_interest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Accrued interest at standard settlement, in the same units as bid/ask (% of par). Populated only for fixed-coupon bonds.", "title": "Accrued Interest" }, "ask": { "description": "The ask (sell) price at the specific point in time.", "title": "Ask", "type": "string" }, "bid": { "description": "The bid (buy) price at the specific point in time.", "title": "Bid", "type": "string" }, "currency": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The currency of the price. This is specified for percentage prices as well, and reflects the trading currency of the instrument. For currency pairs, this is the base currency." }, "dirty_ask": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Gross (dirty) ask for fixed-income instruments: full settlement cash price including accrued interest, in the same units as ask. Set when the vendor publishes dirty quotes alongside clean bid/ask/mid; otherwise null.", "title": "Dirty Ask" }, "dirty_bid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Gross (dirty) bid for fixed-income instruments: full settlement cash price including accrued interest, in the same units as bid (typically % of par). Set when the vendor publishes dirty quotes alongside clean bid/ask/mid; otherwise null.", "title": "Dirty Bid" }, "dirty_mid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Gross (dirty) mid derived from dirty bid and ask (or supplied by the vendor), in the same units as mid. Null when dirty sides are not available.", "title": "Dirty Mid" }, "mid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The mid-price (bid + ask / 2).", "title": "Mid" }, "price_type": { "allOf": [ { "$ref": "#/components/schemas/PriceType" } ], "description": "The type of price (e.g. percentage or monetary). Percentage prices are expressed as a percentage of par (and apply to fixed-income instruments), while monetary prices are expressed as a monetary value." }, "quality": { "allOf": [ { "$ref": "#/components/schemas/PriceQuality" } ], "description": "The quality of the price (e.g. closing, delayed, realtime)." }, "symbol": { "description": "The instrument symbol i.e ISIN or ticker.", "title": "Symbol", "type": "string" }, "timestamp": { "description": "[ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) datetime of when the price was in effect.", "format": "date-time", "title": "Timestamp", "type": "string" }, "ytm_ask": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The ask yield-to-maturity at the specific point in time. Only applicable for fixed-income instrument types like bonds and bills.", "title": "Ytm Ask" }, "ytm_bid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The bid yield-to-maturity at the specific point in time. Only applicable for fixed-income instrument types like bonds and bills.", "title": "Ytm Bid" }, "ytm_mid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The mid yield-to-maturity (bid + ask / 2) at the specific point in time. Only applicable for fixed-income instrument types like bonds and bills.", "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" }, "ReferenceType": { "enum": [ "deposit", "withdrawal", "order", "fee_charge", "refund", "corporate_action", "position_migration_in", "book_transfer" ], "properties": {}, "title": "ReferenceType", "type": "string" }, "Refund": { "properties": { "amount": { "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" }, "fee_charge": { "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": "Spec for legal entity registered address claim data.\n\nWhen `operating_address_is_same` is True, onboarding applications for\nthis entity do not need a separate `operating_address` claim or\n`proof_of_operating_address` evidence -- compliance treats the\nregistered address as both. Defaults to False so existing behaviour\n(distinct operating address required) is preserved.", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "registered_address", "title": "Claim Type" }, "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, "description": "Legal entity registered address claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "city": { "title": "City", "type": "string" }, "claim_type": { "const": "registered_address", "title": "Claim Type" }, "country_code": { "title": "Country 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 claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Legal entity registered address claim summary.", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "registered_address", "title": "Claim Type" }, "country_code": { "title": "Country 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 claim was created.", "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": "Spec for legal entity registration claim data.", "properties": { "claim_type": { "const": "registration", "title": "Claim Type" }, "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, "description": "Legal entity registration claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "registration", "title": "Claim Type" }, "country_of_incorporation": { "title": "Country Of Incorporation", "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 claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "trading_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Trading Name" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Legal entity registration claim summary.", "properties": { "claim_type": { "const": "registration", "title": "Claim Type" }, "country_of_incorporation": { "title": "Country Of Incorporation", "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 claim was created.", "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": "Spec for person relationships (UBOs, directors, shareholders, etc.).", "properties": { "claim_type": { "const": "relationships", "title": "Claim Type" }, "relationships": { "items": { "$ref": "#/components/schemas/RelationshipEntry-Input" }, "minItems": 1, "title": "Relationships", "type": "array" } }, "required": [ "claim_type", "relationships" ], "title": "RelationshipsClaimSpec", "type": "object" }, "RelationshipsPersonClaim": { "additionalProperties": false, "description": "Relationships claim response (UBOs, directors, shareholders, etc.).", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "relationships", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Relationships claim summary.", "properties": { "claim_type": { "const": "relationships", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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" }, "ResidenceClaimSpec": { "additionalProperties": false, "description": "Spec for residence claim data (aligned with Address).", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "residence", "title": "Claim Type" }, "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, "description": "Residence (residential address) claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "city": { "title": "City", "type": "string" }, "claim_type": { "const": "residence", "title": "Claim Type" }, "country_code": { "title": "Country 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 claim was created.", "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 role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "title": "Superseded At" }, "verified_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Residence claim summary.", "properties": { "city": { "title": "City", "type": "string" }, "claim_type": { "const": "residence", "title": "Claim Type" }, "country_code": { "title": "Country 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 claim was created.", "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" }, "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": { "description": "Signed upload resource, including the signed URL that you can use to upload directly to the bucket.", "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": "The timestamp when the signed upload expires.", "format": "date-time", "title": "Expires At", "type": "string" }, "filename": { "description": "The name of the file to be uploaded.", "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": "The purpose of the uploaded file.", "title": "Purpose" }, "signed_upload_url": { "description": "The signed URL that you can use to upload directly to the bucket.", "title": "Signed Upload Url", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "filename", "expires_at", "purpose", "signed_upload_url" ], "title": "SignedUpload", "type": "object" }, "SubmitOnboardingApplicationRequest": { "description": "Submit a new onboarding application referencing existing persons.", "properties": { "authorities": { "description": "Person references with authority type.", "items": { "$ref": "#/components/schemas/OnboardingAuthoritySpec" }, "minItems": 1, "title": "Authorities", "type": "array" }, "consents": { "description": "Consent declarations for this application.", "items": { "$ref": "#/components/schemas/OnboardingConsentSpec" }, "title": "Consents", "type": "array" }, "customer_type": { "allOf": [ { "$ref": "#/components/schemas/CustomerType" } ], "description": "The intended customer type: individual, joint, or business." }, "evidence": { "description": "Evidence file references.", "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": "Spec for tax residencies claim data.", "properties": { "claim_type": { "const": "tax_residencies", "title": "Claim Type" }, "tax_residencies": { "items": { "$ref": "#/components/schemas/TaxResidencyEntry" }, "title": "Tax Residencies", "type": "array" } }, "required": [ "claim_type" ], "title": "TaxResidenciesClaimSpec", "type": "object" }, "TaxResidenciesPersonClaim": { "additionalProperties": false, "description": "Tax residencies / CRS claim response.", "properties": { "archived_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the pending claim was archived because a newer pending of the same `(person, claim_type)` replaced it (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current pending. Only ever set on pending rows.", "title": "Archived At" }, "claim_type": { "const": "tax_residencies", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "format": "date-time", "title": "Created At", "type": "string" }, "id": { "description": "Unique resource identifier.", "title": "Id", "type": "string" }, "lifecycle": { "description": "Derived role of this row within its `(person, claim_type)` group, computed from `status`, `archived_at`, and `superseded_at`. `active` is a verified row with `superseded_at IS NULL`. `in_flight` is a pending row with `archived_at IS NULL`. `historical` covers archived pendings and superseded verifieds kept for audit. Prefer reading the raw columns directly if you already know which case you care about; this field exists so consumers can keep a single discriminator across the three column values.", "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": "The status of the claim (`pending` or `verified`). A verified claim whose `superseded_at` is non-null is historical -- a newer verified claim of the same type has taken over. A pending claim whose `archived_at` is non-null is historical -- a newer pending of the same type has replaced it.", "enum": [ "pending", "verified" ], "title": "Status", "type": "string" }, "superseded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the claim was superseded by a newer verified claim (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if this is the current row for its type.", "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": "When the claim was verified (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format); `null` if still pending.", "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, "description": "Tax residencies claim summary.", "properties": { "claim_type": { "const": "tax_residencies", "title": "Claim Type" }, "created_at": { "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the claim was created.", "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, "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" }, "Transaction": { "properties": { "accrued_interest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Accrued interest portion of the dirty notional for fixed income trades. Sourced from FIX AccruedInterestAmt (tag 159) when the venue provides it. Clients can derive the clean notional as notional - accrued_interest.", "title": "Accrued Interest" }, "booked_at": { "format": "date-time", "title": "Booked At", "type": "string" }, "cash_amount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cash Amount" }, "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Currency" }, "id": { "title": "Id", "type": "string" }, "instrument": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instrument" }, "reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reference" }, "reference_type": { "$ref": "#/components/schemas/ReferenceType" }, "settlement_date": { "anyOf": [ { "format": "date", "type": "string" }, { "type": "null" } ], "title": "Settlement Date" }, "summary": { "title": "Summary", "type": "string" }, "tax": { "title": "Tax", "type": "string" }, "taxes": { "items": { "$ref": "#/components/schemas/TransactionTax" }, "title": "Taxes", "type": "array" }, "transaction_type": { "$ref": "#/components/schemas/TransactionType" }, "unit_price": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit Price" }, "unit_quantity": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "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": { "title": "Amount", "type": "string" }, "currency": { "title": "Currency", "type": "string" }, "rate": { "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" ], "properties": {}, "title": "TransactionType", "type": "string" }, "UpdatePositionRequest": { "properties": { "automatic_rollover": { "description": "Sets the automatic rollover setting on the position. Only updateable before the cutoff date.", "title": "Automatic Rollover", "type": "boolean" } }, "required": [ "automatic_rollover" ], "title": "UpdatePositionRequest", "type": "object" }, "UpdateWebhookRequest": { "properties": { "description": { "description": "Optional description of what the webhook is used for.", "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": "The URL of the webhook. Note that the URL must use HTTPS and must not be an IP address.", "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" }, "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": { "title": "Account", "type": "string" }, "asof": { "format": "date-time", "title": "Asof", "type": "string" }, "cash_valuations": { "items": { "$ref": "#/components/schemas/CashValuation" }, "title": "Cash Valuations", "type": "array" }, "currency": { "$ref": "#/components/schemas/Currency" }, "position_valuations": { "items": { "$ref": "#/components/schemas/PositionValuation" }, "title": "Position Valuations", "type": "array" }, "total_cash_value": { "title": "Total Cash Value", "type": "string" }, "total_position_value": { "title": "Total Position Value", "type": "string" }, "total_value": { "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" }, "series": { "description": "Time series of [ISO-8601 date, decimal] points.", "examples": [ [ [ "2025-01-01", "12345.67" ], [ "2025-01-02", "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": "Optional description of what the webhook is used for.", "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": "The URL of the webhook.", "title": "Url", "type": "string" } }, "required": [ "created_at", "modified_at", "id", "url", "is_active", "description" ], "title": "Webhook", "type": "object" }, "WebhookDelivery": { "properties": { "attempts": { "description": "The 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": "The event being delivered. Null for test deliveries.", "title": "Event" }, "failed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the delivery permanently failed (after all retries were exhausted).", "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": "The time the next delivery attempt is scheduled. Populated only after the first failed attempt, when the delivery enters a retry loop.", "title": "Next Attempt At" }, "payload": { "description": "The payload that will be delivered.", "title": "Payload", "type": "object" }, "status": { "allOf": [ { "$ref": "#/components/schemas/WebhookDeliveryStatus" } ], "description": "The delivery lifecycle status." }, "succeeded_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The time the delivery succeeded.", "title": "Succeeded At" }, "webhook": { "description": "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, `null` when 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": { "allOf": [ { "$ref": "#/components/schemas/WebhookDeliveryAttemptOutcome" } ], "description": "The outcome of the delivery attempt." }, "response": { "anyOf": [ { "$ref": "#/components/schemas/WebhookDeliveryAttemptResponse" }, { "type": "null" } ], "description": "HTTP response details, `null` when no response was received (e.g. DNS or connection error).", "readOnly": true } }, "required": [ "created_at", "modified_at", "id", "outcome", "response", "error" ], "title": "WebhookDeliveryAttempt", "type": "object" }, "WebhookDeliveryAttemptError": { "properties": { "error_type": { "allOf": [ { "$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": "Wall-clock time in milliseconds.", "title": "Duration", "type": "integer" }, "status": { "description": "The HTTP status code returned by the endpoint.", "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": "Optional description of what the webhook is used for.", "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": "The signing secret for this webhook. **This is only exposed once at creation so please store it securely.**", "title": "Secret", "type": "string" }, "url": { "description": "The URL of the webhook.", "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. Note that an `insufficient_funds` error will be raised if the account does not have enough settled funds.", "examples": [ "100.00", "50.12" ], "title": "Amount", "type": "string" }, "completed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "The timestamp (in [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) format) of when the withdrawal was completed i.e funds were moved out of the account's cash balance.", "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": { "allOf": [ { "$ref": "#/components/schemas/Currency" } ], "description": "The currency to withdraw." }, "funding_account": { "allOf": [ { "$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": { "allOf": [ { "$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", "trade_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/AccountEarnings" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve 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, and — for FX — locks in the rate that will be honoured at execution time. Quotes have an explicit `expires_at` after which placement will be rejected for FX.", "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": { "$ref": "#/components/schemas/OrderQuote" } } }, "description": "OK" }, "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 order. Buys accept either a cash amount (cash mode) or a unit quantity backed by a persisted quote (quantity mode). Sells require quantity.", "operationId": "place_order_accounts__account_id__orders_post", "parameters": [ { "in": "path", "name": "account_id", "required": true, "schema": { "title": "Account Id", "type": "string" } } ], "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": { "allOf": [ { "$ref": "#/components/schemas/Period" } ], "description": "Predefined period over which returns are computed.", "title": "Period" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountReturns" } } }, "description": "OK" }, "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/Error" } } }, "description": "Bad Request" } }, "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" ] } }, "/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": "Retrieve the authenticated user or service.", "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": "Me", "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/RegistrationClaimSpec" }, { "$ref": "#/components/schemas/ContactDetailsClaimSpec" }, { "$ref": "#/components/schemas/LeiClaimSpec" }, { "$ref": "#/components/schemas/RegisteredAddressClaimSpec" }, { "$ref": "#/components/schemas/OperatingAddressClaimSpec" }, { "$ref": "#/components/schemas/BusinessNatureClaimSpec" }, { "$ref": "#/components/schemas/ExpectedActivityClaimSpec" }, { "$ref": "#/components/schemas/RelationshipsClaimSpec" } ], "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/PositionEarnings" } } }, "description": "OK" }, "400": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "description": "Bad Request" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retrieve 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": { "allOf": [ { "$ref": "#/components/schemas/Period" } ], "description": "Predefined period over which returns are computed.", "title": "Period" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PositionReturns" } } }, "description": "OK" }, "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, statements, 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 principal.", "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 portfolio 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" } ] }