Skip to content

Transaction fees overview

Upvest gives clients the ability to charge end users per-order transaction fees, with fee details provided on each order so clients can display the total cost to the end user.

Beyond simple flat fees, transaction fee models let you build a custom fee structure — whether a fixed lump sum or a value calculated relative to the transaction amount.

Upvest supports both service fees and transaction fees. This guide focuses on transaction fees. Transaction fees are applied at the order level and are separate from any AUM-based service fees that may also be configured on an account.

Before you begin

We use the following terms and phrases related to transaction fees and transaction fee models throughout this guide.

Key TermsDescription
Transaction fee modelUpvest’s functionality for creating custom transaction fees. Transaction fee models allow you to create both simple flat fees and sophisticated tiered fee structures.
TiersIndividual bands within a transaction fee model, each relating to a range for the order’s cash amount. A fee model with only one tier functions as a simple flat fee.
ThresholdsThe base amount values that define the lower boundary of each tier. When an order's value meets or exceeds a threshold, the corresponding tier's fee applies.
Absolute feesAn absolute transaction fee is a set flat fee for a specific amount.
Relative feesA relative transaction fee is calculated from a basis point (bps, 0.01%) amount applied to the order value. When creating a relative transaction fee, you can also set a minimum and maximum absolute fee amount in each tier.

For example: 1% of the order volume, but not less than 1 EUR.
Basis points (bps)The rate of change in a fee amount expressed as a whole number. One bps equal 0.0001. For example, a 1% change in the fee amount equals a basis point value of 100.

Transaction fees at-a-glance

When a buy or sell order is placed via the Investment API, you can include a fee_configuration object in the order request.

Transaction fees:

  • Fees are calculated on an order value basis but are presented and attached to individual order executions. The order-to-fee relationship is 1:N.
  • Are charged on a per-execution basis, but defined on an order level by the client.
  • For flat fees, the full fee amount is added to the first execution of an order — it is not distributed across partial fills.
  • Can be specified as a fixed, flat absolute cash amount or percentage, or calculated by Upvest using a tiered fee model.
  • Are defined in the currency of the account's cash balance.

Our solution for transaction fees

Upvest supports two approaches for transaction fees:

MethodDescription
Simple flat fee (Standard approach)You calculate the fee amount on your side and pass it explicitly in the order request via cash_amount in the fee_configuration section of the request. Suitable for the clients with sophisticated fee structure that can’t be covered by Upvest fee functionality
Transaction fee model (Recommended approach)You create a transaction fee structure via the API. Upvest calculates the applicable fee based on the order value and the configured tier thresholds, referenced via transaction_fee_model_id.

To charge transaction fees on savings accounts, you must use transaction fee models.

Note: You can use a transaction fee model for a simple flat fee as well. For example, you can create a 0-fee model to temporarily provide free-of-charge trading to the user.

Transaction fee models versus simple flat fees

Transaction fee models offer a more sophisticated and flexible approach to pricing compared to simple flat fees. Both support creating a single charge for a transaction. However, transaction fee models extend this functionality by also enabling more granular and complex fee structures.

The rest of this guide focuses on using transaction fee models.

Transaction fee functionality

Upvest makes it easy for you to manage transaction fees. We provide the following endpoints to configure transaction fees.

FunctionalityRelated Endpoint
Create, retrieve, or list all fee modelsWe provide the /transaction_fees/ endpoint to create new fee models or view existing ones:
POST /transaction_fees/models
GET /transaction_fees/models/{transaction_fee_model_id}
GET /transaction_fees/models
Set up transaction Fees on ordersYou can set the fee_configuration field to apply fees on orders using the /orders endpoint: POST /orders
Set up transaction fees in ex-ante reportingIf you use Upvest Ex-ante reporting, both Buy and Sell transaction fees should be communicated separately when creating an ex-ante report: POST /reports