Upvest Webhook Subscriptions API

Register, update, and manage webhook subscriptions for event notifications.

Documentation

Specifications

Schemas & Data

OpenAPI Specification

upvest-webhook-subscriptions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Upvest Investment Account Transfers Webhook Subscriptions 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: Webhook Subscriptions
  description: Register, update, and manage webhook subscriptions for event notifications.
paths:
  /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:
  schemas:
    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
    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
    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
    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'
  parameters:
    WebhookId:
      name: webhook_id
      in: path
      required: true
      description: The unique identifier of the webhook subscription.
      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/