Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt

Use this file to discover all available pages before exploring further.

Fee Packages are the building blocks of the Fees Engine. Each package defines a set of fee rules and the conditions under which they apply to Transactions.
The Fees Engine plugin must be enabled in Midaz module settings before this page is available.

What a Fee Package contains


A Fee Package lets you:
  • Define fee calculation rules — flat fees, percentage-based fees, or combined calculations.
  • Set amount ranges — apply fees only to transactions within a min/max range.
  • Link to transaction routes — target specific transaction flows.
  • Waive fees for specific accounts — exempt selected source accounts.
  • Prioritize fee application — control the order in which multiple fees are applied.
Fee Packages combine with Accounting Routes and Segments for granular control.

Accessing the Fee Packages page


In the Midaz Module sidebar, expand Fees Engine and select Fee Packages. The page lists every configured package.
If you do not have any Fee Packages, the list will appear empty with a prompt to create your first package.

Available actions

From the Fee Packages page, you can:

Create a Fee Package

Define new fee calculation rules for transactions

Edit a Fee Package

Update fee configurations and rules

Delete a Fee Package

Remove a fee package from your configuration

Understanding Fee Package structure


When creating or editing a fee package in Midaz Module, you’ll work with:

Basic information

  • Fee Group Label (required) - A descriptive name for the fee package
  • Description (required) - Explanation of the package purpose and when it applies
  • Transaction Route (optional) - Link to a specific transaction route
  • Segment (optional) - Associate with a specific segment
  • Ledger (required) - The ledger this package applies to

Amount range

  • Minimum Amount (required) - Lowest transaction amount for fee application
  • Maximum Amount (required) - Highest transaction amount for fee application
  • Waived Accounts (optional) - List of account aliases exempt from these fees

Fee rules

Each fee package can contain multiple fee rules with:
  • Fee Label - Name identifying this specific fee
  • Application Rule - How the fee is calculated:
    • flatFee - Fixed amount regardless of transaction value
    • percentual - Percentage of the transaction amount
    • maxBetweenTypes - Higher value between flat and percentage calculations
  • Calculation Type - flat or percentage
  • Calculation Value - The fee amount or percentage
  • Reference Amount - Base for percentage calculation:
    • originalAmount - Calculate on original transaction value
    • afterFeesAmount - Calculate after other fees are applied
  • Priority - Order of fee application (lower numbers apply first)
  • Is Deductible From - Whether this fee is deducted from the transaction
  • Credit Account - Account that receives the fee amount

Common use cases


Apply a fixed fee to all transactions within an amount range:
  • Application Rule: flatFee
  • Calculation: flat with value 2.50
  • Example: 2.50feeoneverytransactionbetween2.50 fee on every transaction between 10 and $1000
Charge a percentage of the transaction amount:
  • Application Rule: percentual
  • Calculation: percentage with value 1.5
  • Example: 1.5% fee on transfers, where 100transfer=100 transfer = 1.50 fee
Create multiple packages with different amount ranges:
  • Package 1: 00-100 → 2% fee
  • Package 2: 100100-1000 → 1.5% fee
  • Package 3: $1000+ → 1% fee
  • Lower fees for higher-value transactions
Apply whichever is higher between flat and percentage:
  • Application Rule: maxBetweenTypes
  • Calculations: flat: 1.00 and percentage: 2.0
  • Example: On 30transaction:max(30 transaction: max(1.00, 0.60)=0.60) = 1.00 fee
  • Example: On 100transaction:max(100 transaction: max(1.00, 2.00)=2.00) = 2.00 fee
Exempt specific accounts from fees:
  • Create package with standard fee rules
  • Add premium account aliases to Waived Accounts list
  • These accounts transact without incurring the configured fees

Best practices


1

Plan your fee structure

Design your fee packages before implementation. Consider transaction types, amount ranges, and customer segments that require different fee treatments.
2

Use descriptive labels

Choose clear fee group labels and descriptions that explain when and why fees apply. This helps with auditing and customer communication.
3

Set appropriate amount ranges

Define minimum and maximum amounts carefully to avoid gaps or overlaps in your fee structure.
4

Test fee calculations

Use the Fee Estimation feature to verify fee calculations before enabling packages in production.
5

Manage priority carefully

When using multiple fees in a package, set priorities to ensure fees are applied in the correct order.
6

Document waived accounts

Keep track of why certain accounts are waived from fees for audit and compliance purposes.

Fee calculation flow


When a transaction is processed, Fees Engine:
  1. Identifies applicable fee packages based on transaction route and segment
  2. Filters packages by amount range (transaction must fall within min/max)
  3. Checks if source account is in the waived accounts list
  4. Applies fee rules in priority order
  5. Calculates each fee based on application rule and reference amount
  6. Credits fee amounts to designated accounts
Fee packages must be enabled to apply to transactions. You can disable packages temporarily without deleting them.