Upvest Direct Debits API

Manage direct debit funding operations.

Documentation

Specifications

Schemas & Data

OpenAPI Specification

upvest-direct-debits-api-openapi.yml Raw ↑
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/