{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Transaction fees overview","description":"Welcome to the Upvest API documentation. Here you will find all the information you need to integrate with our API.","siteUrl":"https://docs.upvest.co/","image":"/assets/upvest-logo-card.ee25ccc59849324b0b73151a5c972c87639419556344db0b6dcf518151cb4c3c.925ff8b2.png","keywords":"documentation, api","lang":"en-US","meta":[{"name":"description","content":"Welcome to the Upvest API documentation. Here you will find all the information you need to integrate with our API."},{"name":"image","content":"/assets/upvest-logo-card.ee25ccc59849324b0b73151a5c972c87639419556344db0b6dcf518151cb4c3c.925ff8b2.png"},{"name":"twitter:card","content":"summary_large_image"},{"name":"twitter:title","content":"Welcome to the Upvest API Documentation"},{"name":"twitter:image","content":"/assets/upvest-logo-card.ee25ccc59849324b0b73151a5c972c87639419556344db0b6dcf518151cb4c3c.925ff8b2.png"},{"name":"twitter:description","content":"Welcome to the Upvest API documentation. Here you will find all the information you need to integrate with our API."},{"name":"og:url","content":"https://docs.upvest.co/"},{"name":"og:title","content":"Welcome to the Upvest API Documentation"},{"name":"og:description","content":"Welcome to the Upvest API documentation. Here you will find all the information you need to integrate with our API."},{"name":"og:image","content":"/assets/upvest-logo-card.ee25ccc59849324b0b73151a5c972c87639419556344db0b6dcf518151cb4c3c.925ff8b2.png"}],"llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"transaction-fees-overview","__idx":0},"children":["Transaction fees overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Upvest supports both service fees and transaction fees. This guide focuses on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"before-you-begin","__idx":1},"children":["Before you begin"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["We use the following terms and phrases related to transaction fees and transaction fee models throughout this guide."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key Terms"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Description"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transaction fee model"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Upvest’s functionality for creating custom transaction fees. Transaction fee models allow you to create both simple flat fees and sophisticated tiered fee structures."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tiers"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Individual 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."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Thresholds"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["The 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."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Absolute fees"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["An absolute transaction fee is a set flat fee for a specific amount."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Relative fees"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["A 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. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"For example: 1% of the order volume, but not less than 1 EUR."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Basis points (bps)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["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."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"transaction-fees-at-a-glance","__idx":2},"children":["Transaction fees at-a-glance"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a buy or sell order is placed via the Investment API, you can include a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee_configuration"]}," object in the order request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Transaction fees:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fees are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["calculated on an order value basis"]}," but are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["presented and attached to individual order executions"]},". The order-to-fee relationship is 1:N."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are charged on a per-execution basis, but defined on an order level by the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["flat fees"]},", the full fee amount is added to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["first execution"]}," of an order — it is not distributed across partial fills."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Can be specified as a fixed, flat absolute cash amount or percentage, or calculated by Upvest using a tiered fee model."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Are defined in the currency of the account's cash balance."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"our-solution-for-transaction-fees","__idx":3},"children":["Our solution for transaction fees"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Upvest supports two approaches for transaction fees:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Method"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Description"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Simple flat fee  (Standard approach)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You calculate the fee amount on your side and pass it explicitly in the order request via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transaction fee model (Recommended approach)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_fee_model_id"]},".",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},"To charge transaction fees on savings accounts, you must use transaction fee models. ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["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."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"transaction-fee-models-versus-simple-flat-fees","__idx":4},"children":["Transaction fee models versus simple flat fees"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The rest of this guide focuses on using transaction fee models."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"transaction-fee-functionality","__idx":5},"children":["Transaction fee functionality"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Upvest makes it easy for you to manage transaction fees. We provide the following endpoints to configure transaction fees."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Functionality"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":""},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Related Endpoint"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Create, retrieve, or list all fee models"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["We provide the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/transaction_fees/"]}," endpoint to create new fee models or view existing ones: ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /transaction_fees/models"]}]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /transaction_fees/models/{transaction_fee_model_id}"]}," ",{"$$mdtype":"Tag","name":"br","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /transaction_fees/models"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set up transaction Fees on orders"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["You can set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fee_configuration"]}," field to apply fees on orders using the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/orders"]}," endpoint: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /orders"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Set up transaction fees in ex-ante reporting"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["If you use Upvest Ex-ante reporting, both Buy and Sell transaction fees should be communicated separately when creating an ex-ante report: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /reports"]}]}]}]}]}]}]}]},"headings":[{"value":"Transaction fees overview","id":"transaction-fees-overview","depth":1},{"value":"Before you begin","id":"before-you-begin","depth":2},{"value":"Transaction fees at-a-glance","id":"transaction-fees-at-a-glance","depth":2},{"value":"Our solution for transaction fees","id":"our-solution-for-transaction-fees","depth":2},{"value":"Transaction fee models versus simple flat fees","id":"transaction-fee-models-versus-simple-flat-fees","depth":3},{"value":"Transaction fee functionality","id":"transaction-fee-functionality","depth":3}],"frontmatter":{"seo":{"title":"Transaction fees overview"}},"lastModified":"2026-04-13T15:22:15.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/tol/guides/fees/fees_transaction_fees_overview","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}