openapi: 3.1.0 info: title: Upvest Investment Account Transfers Direct Debits 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: Direct Debits description: Manage direct debit funding operations. paths: /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 components: schemas: 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 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 parameters: 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 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/