openapi: 3.1.0 info: title: Upvest Investment API description: >- The Upvest Investment API provides a unified interface for building embedded investment experiences. It supports placing and managing orders, creating portfolios, configuring savings plans, handling securities transfers, and managing user accounts and positions. The API covers the full order lifecycle with asynchronous processing and webhook notifications for real-time event handling. Financial institutions can use the API to offer fractional investing, automated portfolio management, and localized investment products across European and UK markets. version: '1.0.0' contact: name: Upvest Support url: https://upvest.co/ termsOfService: https://upvest.co/legal externalDocs: description: Upvest API Documentation url: https://docs.upvest.co/ servers: - url: https://api.upvest.co description: Production Server - url: https://sandbox.upvest.co description: Sandbox Server tags: - name: Account Transfers description: >- Transfer accounts between entities. - name: Accounts description: >- Investment accounts that hold positions and track balances for users. - name: Authentication description: >- OAuth 2.0 token management for API access using client credentials flow. - name: Cash Balances description: >- View cash balance information for accounts. - name: Corporate Actions description: >- View and manage corporate action events on held securities. - name: Direct Debits description: >- Manage direct debit funding operations. - name: Executions description: >- Track order execution details and fills. - name: Fee Configurations description: >- Configure fee structures and schedules. - name: Fees description: >- Track and manage fee charges on accounts. - name: Files description: >- Access and download generated files such as reports and statements. - name: Instrument Prices description: >- Retrieve real-time and historical price data for instruments. - name: Instruments description: >- Query available financial instruments and their metadata. - name: Liquidations description: >- Manage full or partial account liquidations. - name: Mandates description: >- Manage direct debit mandates for accounts. - name: Order Cancellations description: >- Cancel pending orders before execution. - name: Orders description: >- Place, manage, and track buy and sell orders for instruments. - name: Portfolio Allocations description: >- Define and update target allocations within portfolios. - name: Portfolio Orders description: >- Place orders against portfolio allocations. - name: Portfolios description: >- Create and manage portfolios with custom asset allocations. - name: Portfolios Rebalancing description: >- Trigger and track portfolio rebalancing operations. - name: Positions description: >- View current holdings and position details for accounts. - name: Reference Accounts description: >- Manage reference bank accounts linked to investment accounts. - name: Reports description: >- Generate and retrieve user-facing investment reports and statements. - name: Returns description: >- Calculate account-level investment returns. - name: Savings Plans description: >- Configure automated recurring investments into portfolios or instruments. - name: Securities Transfers description: >- Transfer securities between accounts or providers. - name: Tax Residencies description: >- Manage tax residency information for users. - name: Transactions description: >- View transaction history for accounts. - name: Treasury Reports description: >- Access treasury-level reporting for institutional oversight. - name: User Checks description: >- Compliance and verification checks on users. - name: User Identifiers description: >- Manage external identifiers associated with users. - name: Users description: >- Manage end users including onboarding, identity verification, and profile management. - name: Valuations description: >- Retrieve account and position valuations. - name: Webhook Subscriptions description: >- Register, update, and manage webhook subscriptions for event notifications. - name: Withdrawals description: >- Process cash withdrawals from investment accounts. security: - oauth2ClientCredentials: [] paths: /auth/token: post: operationId: createAccessToken summary: Upvest Create an access token description: >- Obtain an OAuth 2.0 access token using client credentials. The returned opaque access token is used to authenticate subsequent API requests. You must specify the required scopes for the endpoints you intend to call. tags: - Authentication security: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - grant_type - client_id - client_secret - scope properties: grant_type: type: string enum: - client_credentials description: >- The OAuth 2.0 grant type. Must be client_credentials. client_id: type: string description: >- The client identifier issued during onboarding. client_secret: type: string description: >- The client secret issued during onboarding. scope: type: string description: >- A space-separated list of scopes to request. responses: '200': description: Access token successfully created content: application/json: schema: $ref: '#/components/schemas/AccessToken' examples: createAccessToken200Example: summary: Default createAccessToken 200 response x-microcks-default: true value: access_token: eyJhbGciOiJSUzI1NiJ9.example token_type: bearer expires_in: 3600 scope: users:read accounts:read '401': description: Invalid client credentials or missing scopes content: application/json: schema: $ref: '#/components/schemas/Error' examples: createAccessToken401Example: summary: Default createAccessToken 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /users: get: operationId: listUsers summary: Upvest List users description: >- Retrieve a paginated list of all onboarded users. Supports filtering and pagination parameters. tags: - Users parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of users content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/User' meta: $ref: '#/components/schemas/PaginationMeta' examples: listUsers200Example: summary: Default listUsers 200 response x-microcks-default: true value: data: - id: {} first_name: {} last_name: {} email: {} date_of_birth: {} nationality: {} address: {} status: {} created_at: {} updated_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listUsers401Example: summary: Default listUsers 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createUser summary: Upvest Create a user description: >- Onboard a new user to the investment platform. The user must pass identity verification and compliance checks before trading is enabled. tags: - Users requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserCreate' examples: createUserRequestExample: summary: Default createUser request x-microcks-default: true value: first_name: Example Name last_name: Example Name email: user@example.com date_of_birth: '2025-03-15' nationality: DE address: street: {} additional_line: {} city: {} postal_code: {} state: {} country: {} responses: '201': description: User successfully created content: application/json: schema: $ref: '#/components/schemas/User' examples: createUser201Example: summary: Default createUser 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 first_name: Example Name last_name: Example Name email: user@example.com date_of_birth: '2025-03-15' nationality: DE address: street: {} additional_line: {} city: {} postal_code: {} state: {} country: {} status: PENDING created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request body content: application/json: schema: $ref: '#/components/schemas/Error' examples: createUser400Example: summary: Default createUser 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createUser401Example: summary: Default createUser 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{user_id}: get: operationId: retrieveUser summary: Upvest Retrieve a user description: >- Retrieve details for a specific user by their unique identifier. tags: - Users parameters: - $ref: '#/components/parameters/UserId' responses: '200': description: User details content: application/json: schema: $ref: '#/components/schemas/User' examples: retrieveUser200Example: summary: Default retrieveUser 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 first_name: Example Name last_name: Example Name email: user@example.com date_of_birth: '2025-03-15' nationality: DE address: street: {} additional_line: {} city: {} postal_code: {} state: {} country: {} status: PENDING created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveUser401Example: summary: Default retrieveUser 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveUser404Example: summary: Default retrieveUser 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateUser summary: Upvest Update a user description: >- Update profile information for an existing user. tags: - Users parameters: - $ref: '#/components/parameters/UserId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserUpdate' examples: updateUserRequestExample: summary: Default updateUser request x-microcks-default: true value: first_name: Example Name last_name: Example Name email: user@example.com address: street: {} additional_line: {} city: {} postal_code: {} state: {} country: {} responses: '200': description: User successfully updated content: application/json: schema: $ref: '#/components/schemas/User' examples: updateUser200Example: summary: Default updateUser 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 first_name: Example Name last_name: Example Name email: user@example.com date_of_birth: '2025-03-15' nationality: DE address: street: {} additional_line: {} city: {} postal_code: {} state: {} country: {} status: PENDING created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request body content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateUser400Example: summary: Default updateUser 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateUser401Example: summary: Default updateUser 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateUser404Example: summary: Default updateUser 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{user_id}/identifiers: get: operationId: listUserIdentifiers summary: Upvest List user identifiers description: >- Retrieve all external identifiers associated with a user. tags: - User Identifiers parameters: - $ref: '#/components/parameters/UserId' responses: '200': description: List of user identifiers content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/UserIdentifier' examples: listUserIdentifiers200Example: summary: Default listUserIdentifiers 200 response x-microcks-default: true value: data: - id: {} type: {} value: {} created_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listUserIdentifiers401Example: summary: Default listUserIdentifiers 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: User not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: listUserIdentifiers404Example: summary: Default listUserIdentifiers 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createUserIdentifier summary: Upvest Create a user identifier description: >- Add an external identifier to a user record. tags: - User Identifiers parameters: - $ref: '#/components/parameters/UserId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserIdentifierCreate' examples: createUserIdentifierRequestExample: summary: Default createUserIdentifier request x-microcks-default: true value: type: standard value: example-value responses: '201': description: Identifier created content: application/json: schema: $ref: '#/components/schemas/UserIdentifier' examples: createUserIdentifier201Example: summary: Default createUserIdentifier 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: standard value: example-value created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createUserIdentifier400Example: summary: Default createUserIdentifier 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createUserIdentifier401Example: summary: Default createUserIdentifier 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{user_id}/identifiers/{identifier_id}: get: operationId: retrieveUserIdentifier summary: Upvest Retrieve a user identifier description: >- Retrieve a specific external identifier for a user. tags: - User Identifiers parameters: - $ref: '#/components/parameters/UserId' - $ref: '#/components/parameters/IdentifierId' responses: '200': description: User identifier details content: application/json: schema: $ref: '#/components/schemas/UserIdentifier' examples: retrieveUserIdentifier200Example: summary: Default retrieveUserIdentifier 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: standard value: example-value created_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveUserIdentifier401Example: summary: Default retrieveUserIdentifier 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Identifier not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveUserIdentifier404Example: summary: Default retrieveUserIdentifier 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateUserIdentifier summary: Upvest Update a user identifier description: >- Update an existing external identifier for a user. tags: - User Identifiers parameters: - $ref: '#/components/parameters/UserId' - $ref: '#/components/parameters/IdentifierId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserIdentifierUpdate' examples: updateUserIdentifierRequestExample: summary: Default updateUserIdentifier request x-microcks-default: true value: value: example-value responses: '200': description: Identifier updated content: application/json: schema: $ref: '#/components/schemas/UserIdentifier' examples: updateUserIdentifier200Example: summary: Default updateUserIdentifier 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: standard value: example-value created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateUserIdentifier400Example: summary: Default updateUserIdentifier 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateUserIdentifier401Example: summary: Default updateUserIdentifier 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{user_id}/checks: get: operationId: listUserChecks summary: Upvest List user checks description: >- Retrieve compliance and verification checks performed on a user. tags: - User Checks parameters: - $ref: '#/components/parameters/UserId' responses: '200': description: List of user checks content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/UserCheck' examples: listUserChecks200Example: summary: Default listUserChecks 200 response x-microcks-default: true value: data: - id: {} type: {} status: {} created_at: {} completed_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listUserChecks401Example: summary: Default listUserChecks 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{user_id}/tax_residencies: get: operationId: listTaxResidencies summary: Upvest List tax residencies description: >- Retrieve tax residency information for a user. tags: - Tax Residencies parameters: - $ref: '#/components/parameters/UserId' responses: '200': description: List of tax residencies content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaxResidency' examples: listTaxResidencies200Example: summary: Default listTaxResidencies 200 response x-microcks-default: true value: data: - id: {} country: {} tax_identification_number: {} created_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listTaxResidencies401Example: summary: Default listTaxResidencies 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createTaxResidency summary: Upvest Create a tax residency description: >- Add a tax residency record for a user. tags: - Tax Residencies parameters: - $ref: '#/components/parameters/UserId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TaxResidencyCreate' examples: createTaxResidencyRequestExample: summary: Default createTaxResidency request x-microcks-default: true value: country: DE tax_identification_number: a1b2c3d4-e5f6-7890-abcd-ef1234567890 responses: '201': description: Tax residency created content: application/json: schema: $ref: '#/components/schemas/TaxResidency' examples: createTaxResidency201Example: summary: Default createTaxResidency 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 country: DE tax_identification_number: a1b2c3d4-e5f6-7890-abcd-ef1234567890 created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createTaxResidency400Example: summary: Default createTaxResidency 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createTaxResidency401Example: summary: Default createTaxResidency 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /users/{user_id}/accounts: get: operationId: listUserAccounts summary: Upvest List accounts for a user description: >- Retrieve all investment accounts belonging to a specific user. tags: - Accounts parameters: - $ref: '#/components/parameters/UserId' responses: '200': description: List of user accounts content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Account' meta: $ref: '#/components/schemas/PaginationMeta' examples: listUserAccounts200Example: summary: Default listUserAccounts 200 response x-microcks-default: true value: data: - id: {} user_id: {} account_group_id: {} type: {} status: {} created_at: {} updated_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listUserAccounts401Example: summary: Default listUserAccounts 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts: get: operationId: listAccounts summary: Upvest List accounts description: >- Retrieve a paginated list of all investment accounts. tags: - Accounts parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of accounts content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Account' meta: $ref: '#/components/schemas/PaginationMeta' examples: listAccounts200Example: summary: Default listAccounts 200 response x-microcks-default: true value: data: - id: {} user_id: {} account_group_id: {} type: {} status: {} created_at: {} updated_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listAccounts401Example: summary: Default listAccounts 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createAccount summary: Upvest Create an account description: >- Open a new investment account for a user. tags: - Accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AccountCreate' examples: createAccountRequestExample: summary: Default createAccount request x-microcks-default: true value: user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: standard responses: '201': description: Account successfully created content: application/json: schema: $ref: '#/components/schemas/Account' examples: createAccount201Example: summary: Default createAccount 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: standard status: PENDING created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request body content: application/json: schema: $ref: '#/components/schemas/Error' examples: createAccount400Example: summary: Default createAccount 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createAccount401Example: summary: Default createAccount 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}: get: operationId: retrieveAccount summary: Upvest Retrieve an account description: >- Retrieve details for a specific investment account. tags: - Accounts parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Account details content: application/json: schema: $ref: '#/components/schemas/Account' examples: retrieveAccount200Example: summary: Default retrieveAccount 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: standard status: PENDING created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveAccount401Example: summary: Default retrieveAccount 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveAccount404Example: summary: Default retrieveAccount 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateAccount summary: Upvest Update an account description: >- Update metadata or settings for an existing investment account. tags: - Accounts parameters: - $ref: '#/components/parameters/AccountId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AccountUpdate' examples: updateAccountRequestExample: summary: Default updateAccount request x-microcks-default: true value: type: standard responses: '200': description: Account updated content: application/json: schema: $ref: '#/components/schemas/Account' examples: updateAccount200Example: summary: Default updateAccount 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: standard status: PENDING created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateAccount400Example: summary: Default updateAccount 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateAccount401Example: summary: Default updateAccount 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateAccount404Example: summary: Default updateAccount 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: closeAccount summary: Upvest Close an account description: >- Close an investment account. The account must have no open positions or pending orders. tags: - Accounts parameters: - $ref: '#/components/parameters/AccountId' responses: '204': description: Account successfully closed '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: closeAccount401Example: summary: Default closeAccount 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: closeAccount404Example: summary: Default closeAccount 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /instruments: get: operationId: listInstruments summary: Upvest List instruments description: >- Retrieve a paginated list of available financial instruments including equities, ETFs, and other tradeable securities. tags: - Instruments parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' - name: isin in: query description: >- Filter instruments by ISIN code. schema: type: string example: DE0005140008 - name: type in: query description: >- Filter instruments by type. schema: type: string enum: - EQUITY - ETF - BOND - FUND example: EQUITY responses: '200': description: A paginated list of instruments content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Instrument' meta: $ref: '#/components/schemas/PaginationMeta' examples: listInstruments200Example: summary: Default listInstruments 200 response x-microcks-default: true value: data: - id: {} isin: {} wkn: {} name: {} type: {} currency: {} exchanges: {} tradeable: {} fractional_trading_enabled: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listInstruments401Example: summary: Default listInstruments 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /instruments/{instrument_id}: get: operationId: retrieveInstrument summary: Upvest Retrieve an instrument description: >- Retrieve details for a specific financial instrument. tags: - Instruments parameters: - $ref: '#/components/parameters/InstrumentId' responses: '200': description: Instrument details content: application/json: schema: $ref: '#/components/schemas/Instrument' examples: retrieveInstrument200Example: summary: Default retrieveInstrument 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 isin: DE0005140008 wkn: example-value name: Example Name type: EQUITY currency: EUR exchanges: - {} tradeable: true fractional_trading_enabled: true '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveInstrument401Example: summary: Default retrieveInstrument 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Instrument not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveInstrument404Example: summary: Default retrieveInstrument 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /instruments/{instrument_id}/prices: get: operationId: listInstrumentPrices summary: Upvest List instrument prices description: >- Retrieve price data for a specific instrument. Prices are linked to exchanges so you can track where prices are available. tags: - Instrument Prices parameters: - $ref: '#/components/parameters/InstrumentId' responses: '200': description: Instrument price data content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/InstrumentPrice' examples: listInstrumentPrices200Example: summary: Default listInstrumentPrices 200 response x-microcks-default: true value: data: - instrument_id: {} exchange_id: {} price: {} currency: {} timestamp: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listInstrumentPrices401Example: summary: Default listInstrumentPrices 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Instrument not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: listInstrumentPrices404Example: summary: Default listInstrumentPrices 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /orders: get: operationId: listOrders summary: Upvest List orders description: >- Retrieve a paginated list of orders. Supports filtering by account, status, and other criteria. tags: - Orders parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' - name: account_id in: query description: >- Filter orders by account identifier. schema: type: string format: uuid example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 - name: status in: query description: >- Filter orders by status. schema: type: string enum: - NEW - PROCESSING - FILLED - CANCELLED - REJECTED example: NEW responses: '200': description: A paginated list of orders content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Order' meta: $ref: '#/components/schemas/PaginationMeta' examples: listOrders200Example: summary: Default listOrders 200 response x-microcks-default: true value: data: - id: {} account_id: {} user_id: {} instrument_id: {} side: {} type: {} status: {} quantity: {} cash_amount: {} limit_price: {} stop_price: {} currency: {} created_at: {} updated_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listOrders401Example: summary: Default listOrders 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createOrder summary: Upvest Place an order description: >- Place a new buy or sell order for a financial instrument. Orders are processed asynchronously and their status can be tracked via webhooks or polling. tags: - Orders requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrderCreate' examples: createOrderRequestExample: summary: Default createOrder request x-microcks-default: true value: account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 side: BUY type: MARKET quantity: example-value cash_amount: example-value limit_price: example-value stop_price: example-value currency: EUR responses: '201': description: Order successfully placed content: application/json: schema: $ref: '#/components/schemas/Order' examples: createOrder201Example: summary: Default createOrder 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 side: BUY type: MARKET status: NEW quantity: example-value cash_amount: example-value limit_price: example-value stop_price: example-value currency: EUR created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid order request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createOrder400Example: summary: Default createOrder 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createOrder401Example: summary: Default createOrder 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /orders/{order_id}: get: operationId: retrieveOrder summary: Upvest Retrieve an order description: >- Retrieve details for a specific order including current status and execution information. tags: - Orders parameters: - $ref: '#/components/parameters/OrderId' responses: '200': description: Order details content: application/json: schema: $ref: '#/components/schemas/Order' examples: retrieveOrder200Example: summary: Default retrieveOrder 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 side: BUY type: MARKET status: NEW quantity: example-value cash_amount: example-value limit_price: example-value stop_price: example-value currency: EUR created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveOrder401Example: summary: Default retrieveOrder 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Order not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveOrder404Example: summary: Default retrieveOrder 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /orders/{order_id}/cancellation: post: operationId: cancelOrder summary: Upvest Cancel an order description: >- Request cancellation of a pending order. Cancellation may not be possible if the order is already in execution. tags: - Order Cancellations parameters: - $ref: '#/components/parameters/OrderId' responses: '200': description: Cancellation request accepted content: application/json: schema: $ref: '#/components/schemas/OrderCancellation' examples: cancelOrder200Example: summary: Default cancelOrder 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 order_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: PENDING created_at: '2025-03-15T14:30:00Z' '400': description: Order cannot be cancelled content: application/json: schema: $ref: '#/components/schemas/Error' examples: cancelOrder400Example: summary: Default cancelOrder 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: cancelOrder401Example: summary: Default cancelOrder 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Order not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: cancelOrder404Example: summary: Default cancelOrder 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /orders/{order_id}/executions: get: operationId: listOrderExecutions summary: Upvest List order executions description: >- Retrieve execution details for a specific order. Each execution represents a fill against the order. tags: - Executions parameters: - $ref: '#/components/parameters/OrderId' responses: '200': description: List of order executions content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Execution' examples: listOrderExecutions200Example: summary: Default listOrderExecutions 200 response x-microcks-default: true value: data: - id: {} order_id: {} status: {} quantity: {} price: {} executed_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listOrderExecutions401Example: summary: Default listOrderExecutions 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Order not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: listOrderExecutions404Example: summary: Default listOrderExecutions 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /portfolios: get: operationId: listPortfolios summary: Upvest List portfolios description: >- Retrieve a paginated list of portfolios. tags: - Portfolios parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of portfolios content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Portfolio' meta: $ref: '#/components/schemas/PaginationMeta' examples: listPortfolios200Example: summary: Default listPortfolios 200 response x-microcks-default: true value: data: - id: {} account_id: {} name: {} status: {} created_at: {} updated_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listPortfolios401Example: summary: Default listPortfolios 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createPortfolio summary: Upvest Create a portfolio description: >- Create a new portfolio with a defined set of target allocations across instruments. tags: - Portfolios requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PortfolioCreate' examples: createPortfolioRequestExample: summary: Default createPortfolio request x-microcks-default: true value: account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: Example Name allocations: - {} responses: '201': description: Portfolio created content: application/json: schema: $ref: '#/components/schemas/Portfolio' examples: createPortfolio201Example: summary: Default createPortfolio 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: Example Name status: ACTIVE created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createPortfolio400Example: summary: Default createPortfolio 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createPortfolio401Example: summary: Default createPortfolio 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /portfolios/{portfolio_id}: get: operationId: retrievePortfolio summary: Upvest Retrieve a portfolio description: >- Retrieve details for a specific portfolio including its allocations and current state. tags: - Portfolios parameters: - $ref: '#/components/parameters/PortfolioId' responses: '200': description: Portfolio details content: application/json: schema: $ref: '#/components/schemas/Portfolio' examples: retrievePortfolio200Example: summary: Default retrievePortfolio 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: Example Name status: ACTIVE created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrievePortfolio401Example: summary: Default retrievePortfolio 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Portfolio not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrievePortfolio404Example: summary: Default retrievePortfolio 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updatePortfolio summary: Upvest Update a portfolio description: >- Update portfolio settings or metadata. tags: - Portfolios parameters: - $ref: '#/components/parameters/PortfolioId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PortfolioUpdate' examples: updatePortfolioRequestExample: summary: Default updatePortfolio request x-microcks-default: true value: name: Example Name responses: '200': description: Portfolio updated content: application/json: schema: $ref: '#/components/schemas/Portfolio' examples: updatePortfolio200Example: summary: Default updatePortfolio 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: Example Name status: ACTIVE created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: updatePortfolio400Example: summary: Default updatePortfolio 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: updatePortfolio401Example: summary: Default updatePortfolio 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /portfolios/{portfolio_id}/allocations: get: operationId: listPortfolioAllocations summary: Upvest List portfolio allocations description: >- Retrieve target allocations for a specific portfolio. tags: - Portfolio Allocations parameters: - $ref: '#/components/parameters/PortfolioId' responses: '200': description: List of portfolio allocations content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/PortfolioAllocation' examples: listPortfolioAllocations200Example: summary: Default listPortfolioAllocations 200 response x-microcks-default: true value: data: - instrument_id: {} weight: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listPortfolioAllocations401Example: summary: Default listPortfolioAllocations 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: updatePortfolioAllocations summary: Upvest Update portfolio allocations description: >- Replace the target allocation set for a portfolio. tags: - Portfolio Allocations parameters: - $ref: '#/components/parameters/PortfolioId' requestBody: required: true content: application/json: schema: type: object required: - allocations properties: allocations: type: array items: $ref: '#/components/schemas/PortfolioAllocationCreate' examples: updatePortfolioAllocationsRequestExample: summary: Default updatePortfolioAllocations request x-microcks-default: true value: allocations: - instrument_id: {} weight: {} responses: '200': description: Allocations updated content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/PortfolioAllocation' examples: updatePortfolioAllocations200Example: summary: Default updatePortfolioAllocations 200 response x-microcks-default: true value: data: - instrument_id: {} weight: {} '400': description: Invalid allocations content: application/json: schema: $ref: '#/components/schemas/Error' examples: updatePortfolioAllocations400Example: summary: Default updatePortfolioAllocations 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: updatePortfolioAllocations401Example: summary: Default updatePortfolioAllocations 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /portfolios/{portfolio_id}/orders: post: operationId: createPortfolioOrder summary: Upvest Place a portfolio order description: >- Place an order against a portfolio allocation. The order amount is distributed across the portfolio's instruments according to the target allocations. tags: - Portfolio Orders parameters: - $ref: '#/components/parameters/PortfolioId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PortfolioOrderCreate' examples: createPortfolioOrderRequestExample: summary: Default createPortfolioOrder request x-microcks-default: true value: cash_amount: example-value currency: EUR responses: '201': description: Portfolio order placed content: application/json: schema: $ref: '#/components/schemas/PortfolioOrder' examples: createPortfolioOrder201Example: summary: Default createPortfolioOrder 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR status: NEW created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createPortfolioOrder400Example: summary: Default createPortfolioOrder 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createPortfolioOrder401Example: summary: Default createPortfolioOrder 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /portfolios/{portfolio_id}/rebalancing: post: operationId: triggerPortfolioRebalancing summary: Upvest Trigger portfolio rebalancing description: >- Initiate a rebalancing operation to realign current holdings with target allocations. tags: - Portfolios Rebalancing parameters: - $ref: '#/components/parameters/PortfolioId' responses: '201': description: Rebalancing initiated content: application/json: schema: $ref: '#/components/schemas/RebalancingExecution' examples: triggerPortfolioRebalancing201Example: summary: Default triggerPortfolioRebalancing 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: NEW created_at: '2025-03-15T14:30:00Z' '400': description: Rebalancing not possible content: application/json: schema: $ref: '#/components/schemas/Error' examples: triggerPortfolioRebalancing400Example: summary: Default triggerPortfolioRebalancing 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: triggerPortfolioRebalancing401Example: summary: Default triggerPortfolioRebalancing 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: listRebalancingExecutions summary: Upvest List rebalancing executions description: >- Retrieve a list of rebalancing executions for a portfolio. tags: - Portfolios Rebalancing parameters: - $ref: '#/components/parameters/PortfolioId' responses: '200': description: List of rebalancing executions content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/RebalancingExecution' examples: listRebalancingExecutions200Example: summary: Default listRebalancingExecutions 200 response x-microcks-default: true value: data: - id: {} portfolio_id: {} status: {} created_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listRebalancingExecutions401Example: summary: Default listRebalancingExecutions 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /savings_plans: get: operationId: listSavingsPlans summary: Upvest List savings plans description: >- Retrieve a paginated list of automated savings plans. tags: - Savings Plans parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A paginated list of savings plans content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SavingsPlan' meta: $ref: '#/components/schemas/PaginationMeta' examples: listSavingsPlans200Example: summary: Default listSavingsPlans 200 response x-microcks-default: true value: data: - id: {} account_id: {} portfolio_id: {} instrument_id: {} cash_amount: {} currency: {} frequency: {} status: {} next_execution_date: {} created_at: {} updated_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listSavingsPlans401Example: summary: Default listSavingsPlans 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createSavingsPlan summary: Upvest Create a savings plan description: >- Create an automated recurring investment plan. Savings plans execute on a defined schedule, investing a specified amount into an instrument or portfolio. tags: - Savings Plans requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SavingsPlanCreate' examples: createSavingsPlanRequestExample: summary: Default createSavingsPlan request x-microcks-default: true value: account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR frequency: WEEKLY responses: '201': description: Savings plan created content: application/json: schema: $ref: '#/components/schemas/SavingsPlan' examples: createSavingsPlan201Example: summary: Default createSavingsPlan 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR frequency: WEEKLY status: ACTIVE next_execution_date: '2025-03-15' created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createSavingsPlan400Example: summary: Default createSavingsPlan 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createSavingsPlan401Example: summary: Default createSavingsPlan 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /savings_plans/{savings_plan_id}: get: operationId: retrieveSavingsPlan summary: Upvest Retrieve a savings plan description: >- Retrieve details for a specific savings plan. tags: - Savings Plans parameters: - $ref: '#/components/parameters/SavingsPlanId' responses: '200': description: Savings plan details content: application/json: schema: $ref: '#/components/schemas/SavingsPlan' examples: retrieveSavingsPlan200Example: summary: Default retrieveSavingsPlan 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR frequency: WEEKLY status: ACTIVE next_execution_date: '2025-03-15' created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveSavingsPlan401Example: summary: Default retrieveSavingsPlan 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Savings plan not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveSavingsPlan404Example: summary: Default retrieveSavingsPlan 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateSavingsPlan summary: Upvest Update a savings plan description: >- Update the configuration of an existing savings plan. tags: - Savings Plans parameters: - $ref: '#/components/parameters/SavingsPlanId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SavingsPlanUpdate' examples: updateSavingsPlanRequestExample: summary: Default updateSavingsPlan request x-microcks-default: true value: cash_amount: example-value frequency: WEEKLY status: ACTIVE responses: '200': description: Savings plan updated content: application/json: schema: $ref: '#/components/schemas/SavingsPlan' examples: updateSavingsPlan200Example: summary: Default updateSavingsPlan 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR frequency: WEEKLY status: ACTIVE next_execution_date: '2025-03-15' created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateSavingsPlan400Example: summary: Default updateSavingsPlan 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateSavingsPlan401Example: summary: Default updateSavingsPlan 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteSavingsPlan summary: Upvest Delete a savings plan description: >- Cancel and remove an automated savings plan. tags: - Savings Plans parameters: - $ref: '#/components/parameters/SavingsPlanId' responses: '204': description: Savings plan deleted '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: deleteSavingsPlan401Example: summary: Default deleteSavingsPlan 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Savings plan not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: deleteSavingsPlan404Example: summary: Default deleteSavingsPlan 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/positions: get: operationId: listPositions summary: Upvest List positions description: >- Retrieve current holdings and position details for an account. tags: - Positions parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: List of positions content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Position' examples: listPositions200Example: summary: Default listPositions 200 response x-microcks-default: true value: data: - id: {} account_id: {} instrument_id: {} quantity: {} average_buy_in_price: {} currency: {} created_at: {} updated_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listPositions401Example: summary: Default listPositions 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Account not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: listPositions404Example: summary: Default listPositions 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/positions/{position_id}: get: operationId: retrievePosition summary: Upvest Retrieve a position description: >- Retrieve details for a specific position within an account. tags: - Positions parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/PositionId' responses: '200': description: Position details content: application/json: schema: $ref: '#/components/schemas/Position' examples: retrievePosition200Example: summary: Default retrievePosition 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 quantity: example-value average_buy_in_price: example-value currency: EUR created_at: '2025-03-15T14:30:00Z' updated_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrievePosition401Example: summary: Default retrievePosition 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Position not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrievePosition404Example: summary: Default retrievePosition 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/valuations: get: operationId: listValuations summary: Upvest List account valuations description: >- Retrieve valuation history for an account. tags: - Valuations parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: List of valuations content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Valuation' examples: listValuations200Example: summary: Default listValuations 200 response x-microcks-default: true value: data: - id: {} account_id: {} total_value: {} currency: {} valued_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listValuations401Example: summary: Default listValuations 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/returns: get: operationId: listAccountReturns summary: Upvest List account returns description: >- Retrieve investment return calculations for an account. tags: - Returns parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Account returns data content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AccountReturn' examples: listAccountReturns200Example: summary: Default listAccountReturns 200 response x-microcks-default: true value: data: - account_id: {} total_return: {} total_return_percentage: {} period_start: {} period_end: {} currency: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listAccountReturns401Example: summary: Default listAccountReturns 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/cash_balances: get: operationId: listCashBalances summary: Upvest List cash balances description: >- Retrieve cash balance information for an account. tags: - Cash Balances parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Cash balance details content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CashBalance' examples: listCashBalances200Example: summary: Default listCashBalances 200 response x-microcks-default: true value: data: - account_id: {} available: {} pending: {} total: {} currency: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listCashBalances401Example: summary: Default listCashBalances 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /direct_debits: post: operationId: createDirectDebit summary: Upvest Create a direct debit description: >- Submit a direct debit funding request to transfer funds into an investment account. tags: - Direct Debits requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DirectDebitCreate' examples: createDirectDebitRequestExample: summary: Default createDirectDebit request x-microcks-default: true value: user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 mandate_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR remittance_information: example-value responses: '201': description: Direct debit created content: application/json: schema: $ref: '#/components/schemas/DirectDebit' examples: createDirectDebit201Example: summary: Default createDirectDebit 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 mandate_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR remittance_information: example-value status: NEW created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createDirectDebit400Example: summary: Default createDirectDebit 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createDirectDebit401Example: summary: Default createDirectDebit 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: listDirectDebits summary: Upvest List direct debits description: >- Retrieve a list of direct debit funding requests. tags: - Direct Debits parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A list of direct debits content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/DirectDebit' meta: $ref: '#/components/schemas/PaginationMeta' examples: listDirectDebits200Example: summary: Default listDirectDebits 200 response x-microcks-default: true value: data: - id: {} user_id: {} account_group_id: {} mandate_id: {} cash_amount: {} currency: {} remittance_information: {} status: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listDirectDebits401Example: summary: Default listDirectDebits 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /mandates: get: operationId: listMandates summary: Upvest List mandates description: >- Retrieve a list of direct debit mandates. tags: - Mandates parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A list of mandates content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Mandate' meta: $ref: '#/components/schemas/PaginationMeta' examples: listMandates200Example: summary: Default listMandates 200 response x-microcks-default: true value: data: - id: {} account_group_id: {} iban: {} status: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listMandates401Example: summary: Default listMandates 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /mandates/{mandate_id}: get: operationId: retrieveMandate summary: Upvest Retrieve a mandate description: >- Retrieve details for a specific direct debit mandate. tags: - Mandates parameters: - $ref: '#/components/parameters/MandateId' responses: '200': description: Mandate details content: application/json: schema: $ref: '#/components/schemas/Mandate' examples: retrieveMandate200Example: summary: Default retrieveMandate 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 iban: example-value status: ACTIVE created_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveMandate401Example: summary: Default retrieveMandate 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Mandate not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveMandate404Example: summary: Default retrieveMandate 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /withdrawals: post: operationId: createWithdrawal summary: Upvest Create a withdrawal description: >- Process a cash withdrawal from an investment account to a linked reference account. tags: - Withdrawals requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WithdrawalCreate' examples: createWithdrawalRequestExample: summary: Default createWithdrawal request x-microcks-default: true value: account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR responses: '201': description: Withdrawal created content: application/json: schema: $ref: '#/components/schemas/Withdrawal' examples: createWithdrawal201Example: summary: Default createWithdrawal 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: example-value currency: EUR status: NEW created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createWithdrawal400Example: summary: Default createWithdrawal 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createWithdrawal401Example: summary: Default createWithdrawal 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: listWithdrawals summary: Upvest List withdrawals description: >- Retrieve a list of cash withdrawals. tags: - Withdrawals parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A list of withdrawals content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Withdrawal' meta: $ref: '#/components/schemas/PaginationMeta' examples: listWithdrawals200Example: summary: Default listWithdrawals 200 response x-microcks-default: true value: data: - id: {} account_id: {} cash_amount: {} currency: {} status: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listWithdrawals401Example: summary: Default listWithdrawals 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/reference_accounts: get: operationId: listReferenceAccounts summary: Upvest List reference accounts description: >- Retrieve linked reference bank accounts for an investment account. tags: - Reference Accounts parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: List of reference accounts content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ReferenceAccount' examples: listReferenceAccounts200Example: summary: Default listReferenceAccounts 200 response x-microcks-default: true value: data: - id: {} iban: {} bic: {} account_holder: {} status: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listReferenceAccounts401Example: summary: Default listReferenceAccounts 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/fees: get: operationId: listFees summary: Upvest List fees description: >- Retrieve fees charged on an account. tags: - Fees parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: List of fees content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Fee' examples: listFees200Example: summary: Default listFees 200 response x-microcks-default: true value: data: - id: {} account_id: {} type: {} amount: {} currency: {} created_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listFees401Example: summary: Default listFees 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /fee_configurations: get: operationId: listFeeConfigurations summary: Upvest List fee configurations description: >- Retrieve available fee configuration templates. tags: - Fee Configurations parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: List of fee configurations content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/FeeConfiguration' meta: $ref: '#/components/schemas/PaginationMeta' examples: listFeeConfigurations200Example: summary: Default listFeeConfigurations 200 response x-microcks-default: true value: data: - id: {} name: {} type: {} rate: {} currency: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listFeeConfigurations401Example: summary: Default listFeeConfigurations 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /reports: get: operationId: listReports summary: Upvest List reports description: >- Retrieve a paginated list of generated user-facing reports and statements. tags: - Reports parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A list of reports content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Report' meta: $ref: '#/components/schemas/PaginationMeta' examples: listReports200Example: summary: Default listReports 200 response x-microcks-default: true value: data: - id: {} type: {} status: {} file_id: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listReports401Example: summary: Default listReports 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /treasury_reports: get: operationId: listTreasuryReports summary: Upvest List treasury reports description: >- Retrieve treasury-level reports for institutional oversight and reconciliation. tags: - Treasury Reports parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: A list of treasury reports content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TreasuryReport' meta: $ref: '#/components/schemas/PaginationMeta' examples: listTreasuryReports200Example: summary: Default listTreasuryReports 200 response x-microcks-default: true value: data: - id: {} type: {} file_id: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listTreasuryReports401Example: summary: Default listTreasuryReports 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/transactions: get: operationId: listTransactions summary: Upvest List transactions description: >- Retrieve transaction history for an account including order executions, fees, dividends, and transfers. tags: - Transactions parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: List of transactions content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Transaction' meta: $ref: '#/components/schemas/PaginationMeta' examples: listTransactions200Example: summary: Default listTransactions 200 response x-microcks-default: true value: data: - id: {} account_id: {} type: {} amount: {} currency: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listTransactions401Example: summary: Default listTransactions 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /files/{file_id}: get: operationId: retrieveFile summary: Upvest Retrieve a file description: >- Download a generated file such as a report or statement. tags: - Files parameters: - $ref: '#/components/parameters/FileId' responses: '200': description: File content content: application/pdf: schema: type: string format: binary application/octet-stream: schema: type: string format: binary '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveFile401Example: summary: Default retrieveFile 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: File not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveFile404Example: summary: Default retrieveFile 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /accounts/{account_id}/liquidations: post: operationId: createLiquidation summary: Upvest Create a liquidation description: >- Initiate a full or partial liquidation of an account's holdings. tags: - Liquidations parameters: - $ref: '#/components/parameters/AccountId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LiquidationCreate' examples: createLiquidationRequestExample: summary: Default createLiquidation request x-microcks-default: true value: type: FULL responses: '201': description: Liquidation initiated content: application/json: schema: $ref: '#/components/schemas/Liquidation' examples: createLiquidation201Example: summary: Default createLiquidation 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: FULL status: NEW created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createLiquidation400Example: summary: Default createLiquidation 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createLiquidation401Example: summary: Default createLiquidation 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: listLiquidations summary: Upvest List liquidations description: >- Retrieve liquidation operations for an account. tags: - Liquidations parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: List of liquidations content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Liquidation' examples: listLiquidations200Example: summary: Default listLiquidations 200 response x-microcks-default: true value: data: - id: {} account_id: {} type: {} status: {} created_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listLiquidations401Example: summary: Default listLiquidations 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /securities_transfers: post: operationId: createSecuritiesTransfer summary: Upvest Create a securities transfer description: >- Initiate a transfer of securities between accounts or providers. tags: - Securities Transfers requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SecuritiesTransferCreate' examples: createSecuritiesTransferRequestExample: summary: Default createSecuritiesTransfer request x-microcks-default: true value: direction: INBOUND responses: '201': description: Securities transfer initiated content: application/json: schema: $ref: '#/components/schemas/SecuritiesTransfer' examples: createSecuritiesTransfer201Example: summary: Default createSecuritiesTransfer 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: NEW direction: INBOUND created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createSecuritiesTransfer400Example: summary: Default createSecuritiesTransfer 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createSecuritiesTransfer401Example: summary: Default createSecuritiesTransfer 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: listSecuritiesTransfers summary: Upvest List securities transfers description: >- Retrieve a list of securities transfer operations. tags: - Securities Transfers parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: List of securities transfers content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SecuritiesTransfer' meta: $ref: '#/components/schemas/PaginationMeta' examples: listSecuritiesTransfers200Example: summary: Default listSecuritiesTransfers 200 response x-microcks-default: true value: data: - id: {} status: {} direction: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listSecuritiesTransfers401Example: summary: Default listSecuritiesTransfers 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /account_transfers: post: operationId: createAccountTransfer summary: Upvest Create an account transfer description: >- Transfer an account between entities. tags: - Account Transfers requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AccountTransferCreate' examples: createAccountTransferRequestExample: summary: Default createAccountTransfer request x-microcks-default: true value: source_account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 target_account_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 responses: '201': description: Account transfer initiated content: application/json: schema: $ref: '#/components/schemas/AccountTransfer' examples: createAccountTransfer201Example: summary: Default createAccountTransfer 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: NEW created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createAccountTransfer400Example: summary: Default createAccountTransfer 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createAccountTransfer401Example: summary: Default createAccountTransfer 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK get: operationId: listAccountTransfers summary: Upvest List account transfers description: >- Retrieve a list of account transfer operations. tags: - Account Transfers parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: List of account transfers content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/AccountTransfer' meta: $ref: '#/components/schemas/PaginationMeta' examples: listAccountTransfers200Example: summary: Default listAccountTransfers 200 response x-microcks-default: true value: data: - id: {} status: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listAccountTransfers401Example: summary: Default listAccountTransfers 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /corporate_actions: get: operationId: listCorporateActions summary: Upvest List corporate actions description: >- Retrieve corporate action events affecting held securities such as dividends, splits, and mergers. tags: - Corporate Actions parameters: - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': description: List of corporate actions content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CorporateAction' meta: $ref: '#/components/schemas/PaginationMeta' examples: listCorporateActions200Example: summary: Default listCorporateActions 200 response x-microcks-default: true value: data: - id: {} instrument_id: {} type: {} status: {} record_date: {} ex_date: {} created_at: {} meta: offset: 0 limit: 20 count: 100 total: 100 '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listCorporateActions401Example: summary: Default listCorporateActions 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /webhooks: get: operationId: listWebhookSubscriptions summary: Upvest List webhook subscriptions description: >- Retrieve all registered webhook subscriptions. tags: - Webhook Subscriptions responses: '200': description: List of webhook subscriptions content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/WebhookSubscription' examples: listWebhookSubscriptions200Example: summary: Default listWebhookSubscriptions 200 response x-microcks-default: true value: data: - id: {} url: {} event_categories: {} status: {} created_at: {} '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: listWebhookSubscriptions401Example: summary: Default listWebhookSubscriptions 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createWebhookSubscription summary: Upvest Create a webhook subscription description: >- Register a new webhook endpoint to receive event notifications. The URL must use HTTPS and support TLS 1.2 or higher. tags: - Webhook Subscriptions requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookSubscriptionCreate' examples: createWebhookSubscriptionRequestExample: summary: Default createWebhookSubscription request x-microcks-default: true value: url: https://example.com event_categories: - example-value responses: '201': description: Webhook subscription created content: application/json: schema: $ref: '#/components/schemas/WebhookSubscription' examples: createWebhookSubscription201Example: summary: Default createWebhookSubscription 201 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 url: https://example.com event_categories: - ALL status: ACTIVE created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: createWebhookSubscription400Example: summary: Default createWebhookSubscription 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: createWebhookSubscription401Example: summary: Default createWebhookSubscription 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK /webhooks/{webhook_id}: get: operationId: retrieveWebhookSubscription summary: Upvest Retrieve a webhook subscription description: >- Retrieve details for a specific webhook subscription. tags: - Webhook Subscriptions parameters: - $ref: '#/components/parameters/WebhookId' responses: '200': description: Webhook subscription details content: application/json: schema: $ref: '#/components/schemas/WebhookSubscription' examples: retrieveWebhookSubscription200Example: summary: Default retrieveWebhookSubscription 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 url: https://example.com event_categories: - ALL status: ACTIVE created_at: '2025-03-15T14:30:00Z' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveWebhookSubscription401Example: summary: Default retrieveWebhookSubscription 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Webhook subscription not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: retrieveWebhookSubscription404Example: summary: Default retrieveWebhookSubscription 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateWebhookSubscription summary: Upvest Update a webhook subscription description: >- Update the configuration of an existing webhook subscription. tags: - Webhook Subscriptions parameters: - $ref: '#/components/parameters/WebhookId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookSubscriptionUpdate' examples: updateWebhookSubscriptionRequestExample: summary: Default updateWebhookSubscription request x-microcks-default: true value: url: https://example.com event_categories: - example-value status: ACTIVE responses: '200': description: Webhook subscription updated content: application/json: schema: $ref: '#/components/schemas/WebhookSubscription' examples: updateWebhookSubscription200Example: summary: Default updateWebhookSubscription 200 response x-microcks-default: true value: id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 url: https://example.com event_categories: - ALL status: ACTIVE created_at: '2025-03-15T14:30:00Z' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateWebhookSubscription400Example: summary: Default updateWebhookSubscription 400 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: updateWebhookSubscription401Example: summary: Default updateWebhookSubscription 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteWebhookSubscription summary: Upvest Delete a webhook subscription description: >- Remove a webhook subscription. Events will no longer be delivered to this endpoint. tags: - Webhook Subscriptions parameters: - $ref: '#/components/parameters/WebhookId' responses: '204': description: Webhook subscription deleted '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' examples: deleteWebhookSubscription401Example: summary: Default deleteWebhookSubscription 401 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value '404': description: Webhook subscription not found content: application/json: schema: $ref: '#/components/schemas/Error' examples: deleteWebhookSubscription404Example: summary: Default deleteWebhookSubscription 404 response x-microcks-default: true value: type: standard status: 100 title: example-value detail: example-value x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: oauth2ClientCredentials: type: oauth2 description: >- OAuth 2.0 client credentials flow. Obtain an access token by providing your client ID and client secret. flows: clientCredentials: tokenUrl: /auth/token scopes: users:read: Read user data users:admin: Onboard and manage users accounts:read: Read account data accounts:admin: Create and manage accounts orders:read: Read order data orders:admin: Place and manage orders instruments:read: Read instrument data portfolios:read: Read portfolio data portfolios:admin: Create and manage portfolios positions:read: Read position data payments:read: Read payment data payments:admin: Manage payments and direct debits reports:read: Read reports webhooks:read: Read webhook subscriptions webhooks:admin: Manage webhook subscriptions transactions:read: Read transaction data fees:read: Read fee data fees:admin: Configure fees parameters: UserId: name: user_id in: path required: true description: >- The unique identifier of the user. schema: type: string format: uuid AccountId: name: account_id in: path required: true description: >- The unique identifier of the account. schema: type: string format: uuid InstrumentId: name: instrument_id in: path required: true description: >- The unique identifier of the instrument. schema: type: string format: uuid OrderId: name: order_id in: path required: true description: >- The unique identifier of the order. schema: type: string format: uuid PortfolioId: name: portfolio_id in: path required: true description: >- The unique identifier of the portfolio. schema: type: string format: uuid SavingsPlanId: name: savings_plan_id in: path required: true description: >- The unique identifier of the savings plan. schema: type: string format: uuid PositionId: name: position_id in: path required: true description: >- The unique identifier of the position. schema: type: string format: uuid WebhookId: name: webhook_id in: path required: true description: >- The unique identifier of the webhook subscription. schema: type: string format: uuid MandateId: name: mandate_id in: path required: true description: >- The unique identifier of the mandate. schema: type: string format: uuid FileId: name: file_id in: path required: true description: >- The unique identifier of the file. schema: type: string format: uuid IdentifierId: name: identifier_id in: path required: true description: >- The unique identifier of the user identifier. schema: type: string format: uuid Offset: name: offset in: query description: >- The number of items to skip for pagination. schema: type: integer minimum: 0 default: 0 Limit: name: limit in: query description: >- The maximum number of items to return per page. schema: type: integer minimum: 1 maximum: 100 default: 20 schemas: AccessToken: type: object description: >- An OAuth 2.0 access token for authenticating API requests. properties: access_token: type: string description: >- The opaque access token string. example: eyJhbGciOiJSUzI1NiJ9.example token_type: type: string enum: - bearer description: >- The type of token issued. example: bearer expires_in: type: integer description: >- The lifetime of the access token in seconds. example: 3600 scope: type: string description: >- The scopes granted to the access token. example: users:read accounts:read User: type: object description: >- An end user on the investment platform. properties: id: type: string format: uuid description: >- The unique identifier of the user. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 first_name: type: string description: >- The user's first name. example: Example Name last_name: type: string description: >- The user's last name. example: Example Name email: type: string format: email description: >- The user's email address. example: user@example.com date_of_birth: type: string format: date description: >- The user's date of birth. example: '2025-03-15' nationality: type: string description: >- The user's nationality as an ISO 3166-1 alpha-2 country code. pattern: '^[A-Z]{2}$' example: DE address: $ref: '#/components/schemas/Address' status: type: string enum: - PENDING - ACTIVE - BLOCKED - CLOSED description: >- The current status of the user. example: PENDING created_at: type: string format: date-time description: >- The date and time when the user was created. example: '2025-03-15T14:30:00Z' updated_at: type: string format: date-time description: >- The date and time when the user was last updated. example: '2025-03-15T14:30:00Z' UserCreate: type: object description: >- Request body for creating a new user. required: - first_name - last_name - email - date_of_birth - nationality - address properties: first_name: type: string description: >- The user's first name. example: Example Name last_name: type: string description: >- The user's last name. example: Example Name email: type: string format: email description: >- The user's email address. example: user@example.com date_of_birth: type: string format: date description: >- The user's date of birth. example: '2025-03-15' nationality: type: string description: >- The user's nationality as an ISO 3166-1 alpha-2 country code. pattern: '^[A-Z]{2}$' example: DE address: $ref: '#/components/schemas/Address' UserUpdate: type: object description: >- Request body for updating user information. properties: first_name: type: string description: >- The user's first name. example: Example Name last_name: type: string description: >- The user's last name. example: Example Name email: type: string format: email description: >- The user's email address. example: user@example.com address: $ref: '#/components/schemas/Address' Address: type: object description: >- A postal address. required: - street - city - postal_code - country properties: street: type: string description: >- The street name and number. example: Example Street 1 additional_line: type: string description: >- Additional address line. example: example-value city: type: string description: >- The city name. example: Berlin postal_code: type: string description: >- The postal or ZIP code. example: '10115' state: type: string description: >- The state or province. example: BE country: type: string description: >- The country as an ISO 3166-1 alpha-2 code. pattern: '^[A-Z]{2}$' example: DE UserIdentifier: type: object description: >- An external identifier associated with a user. properties: id: type: string format: uuid description: >- The unique identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string description: >- The type of external identifier. example: standard value: type: string description: >- The identifier value. example: example-value created_at: type: string format: date-time description: >- When the identifier was created. example: '2025-03-15T14:30:00Z' UserIdentifierCreate: type: object description: >- Request body for creating a user identifier. required: - type - value properties: type: type: string description: >- The type of external identifier. example: standard value: type: string description: >- The identifier value. example: example-value UserIdentifierUpdate: type: object description: >- Request body for updating a user identifier. properties: value: type: string description: >- The updated identifier value. example: example-value UserCheck: type: object description: >- A compliance or verification check on a user. properties: id: type: string format: uuid description: >- The unique identifier of the check. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string description: >- The type of check performed. example: standard status: type: string enum: - PENDING - PASSED - FAILED description: >- The current status of the check. example: PENDING created_at: type: string format: date-time description: >- When the check was created. example: '2025-03-15T14:30:00Z' completed_at: type: string format: date-time description: >- When the check was completed. example: '2025-03-15T14:30:00Z' TaxResidency: type: object description: >- A tax residency record for a user. properties: id: type: string format: uuid description: >- The unique identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 country: type: string description: >- The country of tax residency as an ISO 3166-1 alpha-2 code. pattern: '^[A-Z]{2}$' example: DE tax_identification_number: type: string description: >- The tax identification number in the given country. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 created_at: type: string format: date-time description: >- When the record was created. example: '2025-03-15T14:30:00Z' TaxResidencyCreate: type: object description: >- Request body for creating a tax residency record. required: - country properties: country: type: string description: >- The country of tax residency as an ISO 3166-1 alpha-2 code. pattern: '^[A-Z]{2}$' example: DE tax_identification_number: type: string description: >- The tax identification number in the given country. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 Account: type: object description: >- An investment account that holds positions and tracks balances. properties: id: type: string format: uuid description: >- The unique identifier of the account. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: type: string format: uuid description: >- The user who owns this account. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: type: string format: uuid description: >- The account group this account belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string description: >- The type of investment account. example: standard status: type: string enum: - PENDING - OPEN - CLOSING - CLOSED description: >- The current status of the account. example: PENDING created_at: type: string format: date-time description: >- When the account was created. example: '2025-03-15T14:30:00Z' updated_at: type: string format: date-time description: >- When the account was last updated. example: '2025-03-15T14:30:00Z' AccountCreate: type: object description: >- Request body for creating an investment account. required: - user_id - account_group_id properties: user_id: type: string format: uuid description: >- The user to create the account for. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: type: string format: uuid description: >- The account group to assign the account to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string description: >- The type of investment account. example: standard AccountUpdate: type: object description: >- Request body for updating an investment account. properties: type: type: string description: >- The type of investment account. example: standard Instrument: type: object description: >- A tradeable financial instrument such as a stock, ETF, or bond. properties: id: type: string format: uuid description: >- The unique identifier of the instrument. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 isin: type: string description: >- The International Securities Identification Number. pattern: '^[A-Z]{2}[A-Z0-9]{9}[0-9]$' example: DE0005140008 wkn: type: string description: >- The Wertpapierkennnummer (German securities ID). example: example-value name: type: string description: >- The name of the instrument. example: Example Name type: type: string enum: - EQUITY - ETF - BOND - FUND description: >- The instrument type. example: EQUITY currency: type: string description: >- The trading currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR exchanges: type: array items: $ref: '#/components/schemas/Exchange' description: >- Exchanges where the instrument is traded. example: - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: Example Name mic: example-value tradeable: type: boolean description: >- Whether the instrument is currently tradeable. example: true fractional_trading_enabled: type: boolean description: >- Whether fractional shares are supported for this instrument. example: true Exchange: type: object description: >- A securities exchange where instruments are traded. properties: id: type: string description: >- The exchange identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: type: string description: >- The exchange name. example: Example Name mic: type: string description: >- The Market Identifier Code (ISO 10383). example: example-value InstrumentPrice: type: object description: >- Price data for an instrument on a specific exchange. properties: instrument_id: type: string format: uuid description: >- The instrument identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 exchange_id: type: string description: >- The exchange identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 price: type: string description: >- The current price as a decimal string. example: example-value currency: type: string description: >- The price currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR timestamp: type: string format: date-time description: >- When this price was recorded. example: '2025-03-15T14:30:00Z' Order: type: object description: >- A buy or sell order for a financial instrument. properties: id: type: string format: uuid description: >- The unique identifier of the order. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account the order belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: type: string format: uuid description: >- The user who placed the order. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: type: string format: uuid description: >- The instrument being traded. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 side: type: string enum: - BUY - SELL description: >- Whether this is a buy or sell order. example: BUY type: type: string enum: - MARKET - LIMIT - STOP description: >- The order type. example: MARKET status: type: string enum: - NEW - PROCESSING - FILLED - CANCELLED - REJECTED description: >- The current status of the order. example: NEW quantity: type: string description: >- The quantity of shares to trade as a decimal string. example: example-value cash_amount: type: string description: >- The cash amount to invest as a decimal string. example: example-value limit_price: type: string description: >- The limit price for limit orders as a decimal string. example: example-value stop_price: type: string description: >- The stop price for stop orders as a decimal string. example: example-value currency: type: string description: >- The order currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR created_at: type: string format: date-time description: >- When the order was placed. example: '2025-03-15T14:30:00Z' updated_at: type: string format: date-time description: >- When the order was last updated. example: '2025-03-15T14:30:00Z' OrderCreate: type: object description: >- Request body for placing an order. required: - account_id - instrument_id - side - type properties: account_id: type: string format: uuid description: >- The account to place the order for. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: type: string format: uuid description: >- The instrument to trade. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 side: type: string enum: - BUY - SELL description: >- Whether to buy or sell. example: BUY type: type: string enum: - MARKET - LIMIT - STOP description: >- The order type. example: MARKET quantity: type: string description: >- The quantity of shares to trade as a decimal string. example: example-value cash_amount: type: string description: >- The cash amount to invest as a decimal string. example: example-value limit_price: type: string description: >- The limit price for limit orders as a decimal string. example: example-value stop_price: type: string description: >- The stop price for stop orders as a decimal string. example: example-value currency: type: string description: >- The order currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR OrderCancellation: type: object description: >- A cancellation request for an order. properties: id: type: string format: uuid description: >- The cancellation identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 order_id: type: string format: uuid description: >- The order being cancelled. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: type: string enum: - PENDING - CONFIRMED - REJECTED description: >- The status of the cancellation request. example: PENDING created_at: type: string format: date-time description: >- When the cancellation was requested. example: '2025-03-15T14:30:00Z' Execution: type: object description: >- An execution fill for an order. properties: id: type: string format: uuid description: >- The execution identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 order_id: type: string format: uuid description: >- The order this execution belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: type: string enum: - NEW - SETTLED - CANCELLED description: >- The execution status. example: NEW quantity: type: string description: >- The executed quantity as a decimal string. example: example-value price: type: string description: >- The execution price as a decimal string. example: example-value executed_at: type: string format: date-time description: >- When the execution occurred. example: '2025-03-15T14:30:00Z' Portfolio: type: object description: >- A portfolio with defined target allocations across instruments. properties: id: type: string format: uuid description: >- The unique identifier of the portfolio. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account this portfolio belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: type: string description: >- The portfolio name. example: Example Name status: type: string enum: - ACTIVE - CLOSED description: >- The portfolio status. example: ACTIVE created_at: type: string format: date-time description: >- When the portfolio was created. example: '2025-03-15T14:30:00Z' updated_at: type: string format: date-time description: >- When the portfolio was last updated. example: '2025-03-15T14:30:00Z' PortfolioCreate: type: object description: >- Request body for creating a portfolio. required: - account_id - name - allocations properties: account_id: type: string format: uuid description: >- The account to create the portfolio for. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: type: string description: >- The portfolio name. example: Example Name allocations: type: array items: $ref: '#/components/schemas/PortfolioAllocationCreate' description: >- The initial target allocations. example: - instrument_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 weight: example-value PortfolioUpdate: type: object description: >- Request body for updating a portfolio. properties: name: type: string description: >- The updated portfolio name. example: Example Name PortfolioAllocation: type: object description: >- A target allocation within a portfolio. properties: instrument_id: type: string format: uuid description: >- The instrument identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 weight: type: string description: >- The target weight as a decimal string between 0 and 1. example: example-value PortfolioAllocationCreate: type: object description: >- Request body for defining a portfolio allocation. required: - instrument_id - weight properties: instrument_id: type: string format: uuid description: >- The instrument to allocate to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 weight: type: string description: >- The target weight as a decimal string between 0 and 1. example: example-value PortfolioOrder: type: object description: >- An order placed against a portfolio's allocations. properties: id: type: string format: uuid description: >- The portfolio order identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: type: string format: uuid description: >- The portfolio the order was placed for. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: type: string description: >- The total cash amount invested. example: example-value currency: type: string description: >- The order currency. example: EUR status: type: string enum: - NEW - PROCESSING - COMPLETED - CANCELLED description: >- The portfolio order status. example: NEW created_at: type: string format: date-time description: >- When the order was created. example: '2025-03-15T14:30:00Z' PortfolioOrderCreate: type: object description: >- Request body for placing a portfolio order. required: - cash_amount - currency properties: cash_amount: type: string description: >- The total cash amount to invest, distributed across allocations. example: example-value currency: type: string description: >- The order currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR RebalancingExecution: type: object description: >- A portfolio rebalancing operation. properties: id: type: string format: uuid description: >- The rebalancing execution identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: type: string format: uuid description: >- The portfolio being rebalanced. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: type: string enum: - NEW - PROCESSING - COMPLETED - FAILED description: >- The rebalancing status. example: NEW created_at: type: string format: date-time description: >- When the rebalancing was initiated. example: '2025-03-15T14:30:00Z' SavingsPlan: type: object description: >- An automated recurring investment plan. properties: id: type: string format: uuid description: >- The unique identifier of the savings plan. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account the savings plan belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: type: string format: uuid description: >- The portfolio to invest into, if applicable. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: type: string format: uuid description: >- The instrument to invest into, if applicable. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: type: string description: >- The recurring investment amount as a decimal string. example: example-value currency: type: string description: >- The savings plan currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR frequency: type: string enum: - WEEKLY - BIWEEKLY - MONTHLY - QUARTERLY description: >- How often the savings plan executes. example: WEEKLY status: type: string enum: - ACTIVE - PAUSED - CANCELLED description: >- The savings plan status. example: ACTIVE next_execution_date: type: string format: date description: >- The next scheduled execution date. example: '2025-03-15' created_at: type: string format: date-time description: >- When the savings plan was created. example: '2025-03-15T14:30:00Z' updated_at: type: string format: date-time description: >- When the savings plan was last updated. example: '2025-03-15T14:30:00Z' SavingsPlanCreate: type: object description: >- Request body for creating a savings plan. required: - account_id - cash_amount - currency - frequency properties: account_id: type: string format: uuid description: >- The account to create the plan for. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 portfolio_id: type: string format: uuid description: >- The portfolio to invest into. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: type: string format: uuid description: >- The instrument to invest into. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: type: string description: >- The recurring investment amount. example: example-value currency: type: string description: >- The currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR frequency: type: string enum: - WEEKLY - BIWEEKLY - MONTHLY - QUARTERLY description: >- The execution frequency. example: WEEKLY SavingsPlanUpdate: type: object description: >- Request body for updating a savings plan. properties: cash_amount: type: string description: >- The updated investment amount. example: example-value frequency: type: string enum: - WEEKLY - BIWEEKLY - MONTHLY - QUARTERLY description: >- The updated execution frequency. example: WEEKLY status: type: string enum: - ACTIVE - PAUSED description: >- Activate or pause the savings plan. example: ACTIVE Position: type: object description: >- A holding of a financial instrument within an account. properties: id: type: string format: uuid description: >- The unique identifier of the position. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account the position belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: type: string format: uuid description: >- The instrument held. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 quantity: type: string description: >- The quantity of shares held as a decimal string. example: example-value average_buy_in_price: type: string description: >- The average buy-in price as a decimal string. example: example-value currency: type: string description: >- The position currency. pattern: '^[A-Z]{3}$' example: EUR created_at: type: string format: date-time description: >- When the position was first established. example: '2025-03-15T14:30:00Z' updated_at: type: string format: date-time description: >- When the position was last updated. example: '2025-03-15T14:30:00Z' Valuation: type: object description: >- A point-in-time valuation of an account or position. properties: id: type: string format: uuid description: >- The valuation identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account being valued. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 total_value: type: string description: >- The total account value as a decimal string. example: example-value currency: type: string description: >- The valuation currency. pattern: '^[A-Z]{3}$' example: EUR valued_at: type: string format: date-time description: >- The valuation timestamp. example: '2025-03-15T14:30:00Z' AccountReturn: type: object description: >- Investment return calculation for an account. properties: account_id: type: string format: uuid description: >- The account identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 total_return: type: string description: >- The total return as a decimal string. example: example-value total_return_percentage: type: string description: >- The total return as a percentage string. example: example-value period_start: type: string format: date description: >- The start of the return period. example: '2025-03-15' period_end: type: string format: date description: >- The end of the return period. example: '2025-03-15' currency: type: string description: >- The return currency. pattern: '^[A-Z]{3}$' example: EUR CashBalance: type: object description: >- Cash balance information for an account. properties: account_id: type: string format: uuid description: >- The account identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 available: type: string description: >- The available cash balance as a decimal string. example: example-value pending: type: string description: >- The pending cash amount as a decimal string. example: example-value total: type: string description: >- The total cash balance as a decimal string. example: example-value currency: type: string description: >- The balance currency. pattern: '^[A-Z]{3}$' example: EUR DirectDebit: type: object description: >- A direct debit funding request. properties: id: type: string format: uuid description: >- The direct debit identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 user_id: type: string format: uuid description: >- The user initiating the direct debit. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: type: string format: uuid description: >- The account group to fund. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 mandate_id: type: string format: uuid description: >- The mandate authorizing the debit. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: type: string description: >- The debit amount as a decimal string. example: example-value currency: type: string description: >- The currency of the debit. pattern: '^[A-Z]{3}$' example: EUR remittance_information: type: string description: >- Optional remittance information for the debit. example: example-value status: type: string enum: - NEW - PROCESSING - COMPLETED - FAILED - REVERSED description: >- The status of the direct debit. example: NEW created_at: type: string format: date-time description: >- When the direct debit was created. example: '2025-03-15T14:30:00Z' DirectDebitCreate: type: object description: >- Request body for creating a direct debit. required: - user_id - account_group_id - mandate_id - cash_amount - currency properties: user_id: type: string format: uuid description: >- The user initiating the debit. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: type: string format: uuid description: >- The account group to fund. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 mandate_id: type: string format: uuid description: >- The mandate authorizing the debit. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: type: string description: >- The debit amount. example: example-value currency: type: string description: >- The currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR remittance_information: type: string description: >- Optional remittance information. example: example-value Mandate: type: object description: >- A direct debit mandate authorizing fund collection. properties: id: type: string format: uuid description: >- The mandate identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_group_id: type: string format: uuid description: >- The account group the mandate belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 iban: type: string description: >- The IBAN of the bank account. example: example-value status: type: string enum: - ACTIVE - REVOKED description: >- The mandate status. example: ACTIVE created_at: type: string format: date-time description: >- When the mandate was created. example: '2025-03-15T14:30:00Z' Withdrawal: type: object description: >- A cash withdrawal from an investment account. properties: id: type: string format: uuid description: >- The withdrawal identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account to withdraw from. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: type: string description: >- The withdrawal amount. example: example-value currency: type: string description: >- The currency of the withdrawal. pattern: '^[A-Z]{3}$' example: EUR status: type: string enum: - NEW - PROCESSING - COMPLETED - FAILED description: >- The withdrawal status. example: NEW created_at: type: string format: date-time description: >- When the withdrawal was created. example: '2025-03-15T14:30:00Z' WithdrawalCreate: type: object description: >- Request body for creating a withdrawal. required: - account_id - cash_amount - currency properties: account_id: type: string format: uuid description: >- The account to withdraw from. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 cash_amount: type: string description: >- The withdrawal amount. example: example-value currency: type: string description: >- The currency as an ISO 4217 code. pattern: '^[A-Z]{3}$' example: EUR ReferenceAccount: type: object description: >- A linked reference bank account for transfers. properties: id: type: string format: uuid description: >- The reference account identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 iban: type: string description: >- The IBAN of the reference bank account. example: example-value bic: type: string description: >- The BIC/SWIFT code. example: example-value account_holder: type: string description: >- The name of the account holder. example: example-value status: type: string enum: - ACTIVE - INACTIVE description: >- The reference account status. example: ACTIVE Fee: type: object description: >- A fee charged on an account. properties: id: type: string format: uuid description: >- The fee identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account the fee was charged on. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string description: >- The fee type. example: standard amount: type: string description: >- The fee amount as a decimal string. example: example-value currency: type: string description: >- The fee currency. pattern: '^[A-Z]{3}$' example: EUR created_at: type: string format: date-time description: >- When the fee was charged. example: '2025-03-15T14:30:00Z' FeeConfiguration: type: object description: >- A fee configuration template defining fee structures. properties: id: type: string format: uuid description: >- The fee configuration identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 name: type: string description: >- The name of the fee configuration. example: Example Name type: type: string description: >- The fee type this configuration applies to. example: standard rate: type: string description: >- The fee rate as a decimal string. example: example-value currency: type: string description: >- The fee currency. pattern: '^[A-Z]{3}$' example: EUR Report: type: object description: >- A generated user-facing report or statement. properties: id: type: string format: uuid description: >- The report identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string description: >- The report type. example: standard status: type: string enum: - PENDING - READY - FAILED description: >- The report generation status. example: PENDING file_id: type: string format: uuid description: >- The file identifier for downloading the report. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 created_at: type: string format: date-time description: >- When the report was generated. example: '2025-03-15T14:30:00Z' TreasuryReport: type: object description: >- A treasury-level report for institutional oversight. properties: id: type: string format: uuid description: >- The treasury report identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string description: >- The report type. example: standard file_id: type: string format: uuid description: >- The file identifier for downloading the report. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 created_at: type: string format: date-time description: >- When the report was generated. example: '2025-03-15T14:30:00Z' Transaction: type: object description: >- A transaction record within an account. properties: id: type: string format: uuid description: >- The transaction identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account the transaction belongs to. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string enum: - ORDER_EXECUTION - FEE - DIVIDEND - TRANSFER - DIRECT_DEBIT - WITHDRAWAL description: >- The transaction type. example: ORDER_EXECUTION amount: type: string description: >- The transaction amount as a decimal string. example: example-value currency: type: string description: >- The transaction currency. pattern: '^[A-Z]{3}$' example: EUR created_at: type: string format: date-time description: >- When the transaction occurred. example: '2025-03-15T14:30:00Z' Liquidation: type: object description: >- A liquidation of account holdings. properties: id: type: string format: uuid description: >- The liquidation identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 account_id: type: string format: uuid description: >- The account being liquidated. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string enum: - FULL - PARTIAL description: >- Whether this is a full or partial liquidation. example: FULL status: type: string enum: - NEW - PROCESSING - COMPLETED - FAILED description: >- The liquidation status. example: NEW created_at: type: string format: date-time description: >- When the liquidation was initiated. example: '2025-03-15T14:30:00Z' LiquidationCreate: type: object description: >- Request body for creating a liquidation. required: - type properties: type: type: string enum: - FULL - PARTIAL description: >- Whether to fully or partially liquidate. example: FULL SecuritiesTransfer: type: object description: >- A securities transfer between accounts or providers. properties: id: type: string format: uuid description: >- The transfer identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: type: string enum: - NEW - PROCESSING - COMPLETED - FAILED description: >- The transfer status. example: NEW direction: type: string enum: - INBOUND - OUTBOUND description: >- Whether securities are coming in or going out. example: INBOUND created_at: type: string format: date-time description: >- When the transfer was initiated. example: '2025-03-15T14:30:00Z' SecuritiesTransferCreate: type: object description: >- Request body for creating a securities transfer. required: - direction properties: direction: type: string enum: - INBOUND - OUTBOUND description: >- The transfer direction. example: INBOUND AccountTransfer: type: object description: >- An account transfer between entities. properties: id: type: string format: uuid description: >- The transfer identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: type: string enum: - NEW - PROCESSING - COMPLETED - FAILED description: >- The transfer status. example: NEW created_at: type: string format: date-time description: >- When the transfer was initiated. example: '2025-03-15T14:30:00Z' AccountTransferCreate: type: object description: >- Request body for creating an account transfer. properties: source_account_id: type: string format: uuid description: >- The source account. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 target_account_id: type: string format: uuid description: >- The target account. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 CorporateAction: type: object description: >- A corporate action event such as a dividend, split, or merger. properties: id: type: string format: uuid description: >- The corporate action identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 instrument_id: type: string format: uuid description: >- The instrument affected. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 type: type: string enum: - DIVIDEND - SPLIT - MERGER - RIGHTS_ISSUE description: >- The type of corporate action. example: DIVIDEND status: type: string enum: - ANNOUNCED - PROCESSED description: >- The corporate action status. example: ANNOUNCED record_date: type: string format: date description: >- The record date for the corporate action. example: '2025-03-15' ex_date: type: string format: date description: >- The ex-date for the corporate action. example: '2025-03-15' created_at: type: string format: date-time description: >- When the event was recorded. example: '2025-03-15T14:30:00Z' WebhookSubscription: type: object description: >- A webhook subscription for receiving event notifications. properties: id: type: string format: uuid description: >- The webhook subscription identifier. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 url: type: string format: uri description: >- The HTTPS endpoint URL to deliver events to. example: https://example.com event_categories: type: array items: type: string enum: - ALL - USER - USER_CHECK - ORDER - ORDER_CANCELLATION - EXECUTION - POSITION - CASH_BALANCE - ACCOUNT - ACCOUNT_GROUP - PORTFOLIO - SAVINGS_PLAN - DIRECT_DEBIT - WITHDRAWAL - MANDATE - SECURITIES_TRANSFER - ACCOUNT_TRANSFER - CORPORATE_ACTION - LIQUIDATION - REPORT - FEE - REBALANCING description: >- The event categories to subscribe to. example: - ALL status: type: string enum: - ACTIVE - INACTIVE description: >- The subscription status. example: ACTIVE created_at: type: string format: date-time description: >- When the subscription was created. example: '2025-03-15T14:30:00Z' WebhookSubscriptionCreate: type: object description: >- Request body for creating a webhook subscription. required: - url - event_categories properties: url: type: string format: uri description: >- The HTTPS endpoint URL. Must use TLS 1.2 or higher. example: https://example.com event_categories: type: array items: type: string description: >- The event categories to subscribe to. example: - example-value WebhookSubscriptionUpdate: type: object description: >- Request body for updating a webhook subscription. properties: url: type: string format: uri description: >- The updated endpoint URL. example: https://example.com event_categories: type: array items: type: string description: >- The updated event categories. example: - example-value status: type: string enum: - ACTIVE - INACTIVE description: >- Activate or deactivate the subscription. example: ACTIVE PaginationMeta: type: object description: >- Pagination metadata for list responses. properties: offset: type: integer description: >- The current offset. example: 0 limit: type: integer description: >- The page size. example: 20 count: type: integer description: >- The total number of items in the current page. example: 100 total: type: integer description: >- The total number of items available. example: 100 Error: type: object description: >- An API error response. properties: type: type: string description: >- The error type identifier. example: standard status: type: integer description: >- The HTTP status code. example: 100 title: type: string description: >- A short human-readable summary of the error. example: example-value detail: type: string description: >- A detailed human-readable explanation of the error. example: example-value