openapi: 3.1.0 info: title: Upvest Investment Account Transfers Tax Residencies 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 servers: - url: https://api.upvest.co description: Production Server - url: https://sandbox.upvest.co description: Sandbox Server security: - oauth2ClientCredentials: [] tags: - name: Tax Residencies description: Manage tax residency information for users. paths: /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 components: schemas: 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 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' 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 parameters: UserId: name: user_id in: path required: true description: The unique identifier of the user. schema: type: string format: uuid 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 externalDocs: description: Upvest API Documentation url: https://docs.upvest.co/