# Use cases

This page describes practical scenarios for configuring **Fee Management System (FMS)**.  
Each use case shows the recommended configuration (data collector, pricing item, settlement type), explains the processing flow, and provides a calculation example.  
For definitions of core concepts, see the **Overview** page.

### End-user fee charging (instant settlement)

Instant settlement charges the **end-user's balance** in real time via Antaca every time a billable event occurs or a periodic check runs. This section covers the most common end-user fee scenarios.

<p class="callout warning">**Important:** Charging an end-user's balance (instant settlement) can be done only by a licensed financial institution. If a partner uses another financial institution to perform charging, the legal responsibility for charging fees is on that financial institution's side.</p>

#### Card maintenance fee

A periodic fee charged for every active card held by an end-user (e.g., monthly fee for a physical card). FMS retrieves a full list of active cards from Antaca as a CSV file, then charges each card holder individually.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-card-maint-config" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Data collector**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.34%;"><span style="font-family: Lato; color: #ecf0f1;">**Settlement type**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 33.33%;">File Data Collector

</td><td style="width: 33.33%;">Unit

</td><td style="width: 33.34%;">Instant settlement

</td></tr></tbody></table>

**Flow:**

1. On the first day of the billing period, FMS sends a request to Antaca for a list of active cards.
2. Antaca returns a CSV file (e.g., 5 000 active physical cards).
3. FMS processes each row and charges the end-user's balance.

> **Example:**  
> Card maintenance fee = **1 EUR / month** per active physical card.  
> If a user holds 2 active physical cards, the system charges **2 separate fee transactions of 1 EUR each** — one per card.

#### Transaction fee

A fee charged instantly every time an end-user performs a specific transaction — for example, an ATM withdrawal, a POS purchase, an outgoing IBAN transfer, or a card issuance. FMS receives the transaction event in real time and charges the fee immediately.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-tx-fee-config" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Data collector**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.34%;"><span style="font-family: Lato; color: #ecf0f1;">**Settlement type**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 33.33%;">Occurrence Data Collector

</td><td style="width: 33.33%;">Unit

</td><td style="width: 33.34%;">Instant settlement

</td></tr></tbody></table>

**Flow:**

1. End-user performs a transaction (e.g., ATM withdrawal).
2. The external product (e.g., Antaca) publishes a transaction event.
3. FMS receives the event, matches it against the active Pricing, calculates the fee, and charges the end-user's balance instantly.

**Examples:**

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-tx-fee-examples-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 35%;"><span style="font-family: Lato; color: #ecf0f1;">**Scenario**</span>

</td><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Calculation type**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Calculation**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 35%;">ATM withdrawal fee

</td><td style="width: 25%;">Fixed

</td><td style="width: 40%;">2.00 EUR per withdrawal

</td></tr><tr valign="TOP"><td style="width: 35%;">Card transaction fee

</td><td style="width: 25%;">Percentage

</td><td style="width: 40%;">1.5% of transaction amount

</td></tr><tr valign="TOP"><td style="width: 35%;">Outgoing IBAN transfer fee

</td><td style="width: 25%;">Mixed

</td><td style="width: 40%;">0.50 EUR + 0.5% of transfer amount

</td></tr></tbody></table>

<p class="callout info">FMS can also be integrated with an **external API** to charge end-users via a third-party system instead of Antaca. This requires custom development on the product side.</p>

<p class="callout warning">**Recommendation:** We recommend charging transaction fees **after the transaction has been cleared (settled)**, not at the authorization stage. While it is technically possible to charge fees on authorization, there is a risk that the transaction may be reversed or declined during clearing — in which case the fee would have already been collected.</p>

### Automated B2B billing (invoice settlement)

Invoice settlement **does not execute any payment**. Instead, FMS stores the calculated fees in the database and aggregates them into a settlement report (XLSX). The report serves as a basis for issuing an invoice to the client. This section covers the most common B2B billing scenarios.

#### Usage-based fees (tiered &amp; volume pricing)

A fee calculated at the end of the billing period based on the **total quantity of usage** — for example, the number of transactions processed, active cards maintained, or cards issued. FMS retrieves the aggregated count from an external product's API and applies tiered or volume pricing.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-usage-config" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Data collector**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.34%;"><span style="font-family: Lato; color: #ecf0f1;">**Settlement type**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 33.33%;">HTTP Query Data Collector

</td><td style="width: 33.33%;">Cumulative

</td><td style="width: 33.34%;">Invoice settlement

</td></tr></tbody></table>

<p class="callout warning">**Note:** Historically, Occurrence Data Collector was also used with Cumulative pricing items. This approach is **deprecated** — all new usage-based fee configurations should use HTTP Query Data Collector.</p>

**Flow:**

1. At the end of the billing period, FMS sends an HTTP request to the external product's API.
2. The API returns an aggregated count (e.g., *numberOfActiveCards: 1 500*).
3. FMS applies the configured tiered or volume pricing to the count.
4. The calculated fee is stored as an invoice settlement item in the report.

##### Tiered vs volume pricing

Both tiered and volume pricing use quantity ranges (tiers) to determine the fee rate. The key difference is **how the rate is applied across tiers**.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-tiered-volume-comparison" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 15.0179%;"><span style="font-family: Lato; color: #ecf0f1;"> </span>

</td><td bgcolor="#1C1E3F" style="width: 50.1816%;"><span style="font-family: Lato; color: #ecf0f1;">**Tiered pricing**</span>

</td><td bgcolor="#1C1E3F" style="width: 34.8005%;"><span style="font-family: Lato; color: #ecf0f1;">**Volume pricing**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 15.0179%;">**Logic**

</td><td style="width: 50.1816%;">Each tier is billed at its own rate. Units in different tiers have different prices.

</td><td style="width: 34.8005%;">A single rate is applied to **all** units based on which tier the total volume falls into.

</td></tr><tr valign="TOP"><td style="width: 15.0179%;">**Tiers**

</td><td style="width: 50.1816%;">1–100: 1.00 EUR each  
101–500: 0.80 EUR each  
501+: 0.50 EUR each

</td><td style="width: 34.8005%;">1–100: 1.00 EUR each  
101–500: 0.80 EUR each  
501+: 0.50 EUR each

</td></tr><tr valign="TOP"><td style="width: 15.0179%;">**150 units**

</td><td style="width: 50.1816%;">(100 × 1.00) + (50 × 0.80) = **140.00 EUR**

</td><td style="width: 34.8005%;">150 × 0.80 = **120.00 EUR**

</td></tr><tr valign="TOP"><td style="width: 15.0179%;">**600 units**

</td><td style="width: 50.1816%;">(100 × 1.00) + (400 × 0.80) + (100 × 0.50) = **470.00 EUR**

</td><td style="width: 34.8005%;">600 × 0.50 = **300.00 EUR**

</td></tr></tbody></table>

<p class="callout info">**When to use which?** Tiered pricing provides a gradual cost reduction as volume grows — the client always benefits from the lower rate on the incremental portion. Volume pricing offers a bigger discount at higher volumes, as the lowest tier rate applies to all units once the threshold is crossed.</p>

#### Fixed recurring fees

A flat fee charged at regular intervals (daily, weekly, monthly, or yearly) regardless of usage. Typical examples include a monthly platform license fee or a yearly project fee. No Data Collector is required — FMS triggers the fee automatically based on the defined schedule.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-recurring-config" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Data collector**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.34%;"><span style="font-family: Lato; color: #ecf0f1;">**Settlement type**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 33.33%;">None (not required)

</td><td style="width: 33.33%;">Recurring

</td><td style="width: 33.34%;">Invoice settlement

</td></tr></tbody></table>

> **Example:**  
> Monthly platform license fee = **500.00 EUR / month**.   
> Every month, FMS automatically adds a 500.00 EUR line item to the settlement report.

<p class="callout info">Available recurring periods: **daily**, **weekly**, **monthly**, **yearly**.</p>

#### Event-based aggregated fees

Similar to usage-based fees, but instead of retrieving an aggregated count from an API, FMS **collects individual events in real time** and aggregates them at the end of the billing period. The fee is then calculated using tiered or volume pricing on the accumulated total. This approach offers greater flexibility because each event carries its full set of properties, enabling **granular filtering per event**.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-agg-config" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Data collector**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.33%;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" style="width: 33.34%;"><span style="font-family: Lato; color: #ecf0f1;">**Settlement type**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 33.33%;">Occurrence Data Collector

</td><td style="width: 33.33%;">Aggregated

</td><td style="width: 33.34%;">Invoice settlement

</td></tr></tbody></table>

**Flow:**

1. During the billing period, FMS receives individual transaction events in real time (e.g., each ATM withdrawal).
2. Events are accumulated and counted (with optional filters applied per event).
3. At the end of the period, FMS applies tiered or volume pricing to the total count.
4. The calculated fee is stored as an invoice settlement item.

> **Example:**  
> A partner wants to bill a client for ATM withdrawal processing with tiered pricing, but **only for inter-region transactions**. FMS collects each *transaction.cleared* event, filters by *type = "ATM"* and *region = "INTERREGIONAL"*, accumulates 320 matching events over the month, and applies tiered pricing to 320 units.

##### When to use Cumulative vs Aggregated?

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-cum-vs-agg" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Aspect**</span>

</td><td bgcolor="#1C1E3F" style="width: 37.5%;"><span style="font-family: Lato; color: #ecf0f1;">**Cumulative (HTTP Query)**</span>

</td><td bgcolor="#1C1E3F" style="width: 37.5%;"><span style="font-family: Lato; color: #ecf0f1;">**Aggregated (Occurrence)**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25%;">**Data source**

</td><td style="width: 37.5%;">Single aggregated count from API

</td><td style="width: 37.5%;">Individual events collected in real time

</td></tr><tr valign="TOP"><td style="width: 25%;">**Filtering flexibility**

</td><td style="width: 37.5%;">Limited (depends on what the API exposes)

</td><td style="width: 37.5%;">Full (filters applied per event on all available properties)

</td></tr><tr valign="TOP"><td style="width: 25%;">**Best for**

</td><td style="width: 37.5%;">Simple quantity metrics (e.g., total active cards, total active accounts)

</td><td style="width: 37.5%;">Scenarios requiring granular filtering (e.g., only inter-region ATM transactions)

</td></tr><tr valign="TOP"><td style="width: 25%;">**Recommended for new setups**

</td><td style="width: 37.5%;">✔ (preferred approach)

</td><td style="width: 37.5%;">✔ (when filtering is required)

</td></tr></tbody></table>

#### Costs

Each invoice settlement pricing item can define both a **price** (unit price — what you charge) and a **cost** (unit cost — what you pay or deduct). In the settlement report, cost appears as a **negative value** in the *Total cost* column, while price appears as a positive value in the *Total income* column. The report automatically calculates **Net income** as *Total income* minus *Total cost*.

Depending on how you interpret the report columns, cost can serve two different business purposes:

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-costs-interpretation-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 30%;"><span style="font-family: Lato; color: #ecf0f1;">**Interpretation**</span>

</td><td bgcolor="#1C1E3F" style="width: 30%;"><span style="font-family: Lato; color: #ecf0f1;">**Invoice amount based on**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Cost column represents**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 30%;">**Cost tracking**

</td><td style="width: 30%;">*Total income* column

</td><td style="width: 40%;">Your operational costs per fee type. Use *Net income* to track profit (revenue minus costs).

</td></tr><tr valign="TOP"><td style="width: 30%;">**Discount tracking**

</td><td style="width: 30%;">*Net income* column

</td><td style="width: 40%;">Discounts or rebates per fee type. The client pays the net amount after deducting discounts.

</td></tr></tbody></table>

**Settlement report example:**

[![image.png](https://developer.verestro.com/uploads/images/gallery/2026-02/scaled-1680-/lGwimage.png)](https://developer.verestro.com/uploads/images/gallery/2026-02/lGwimage.png)

<p class="callout info">In the example report above, the bottom row shows totals: *Total income* is the gross amount, *Total cost* is the sum of all costs/discounts, and *Net income* is the final amount — either the profit or the invoiced amount, depending on interpretation.</p>

### Pricing item setup options

Beyond the core fee configuration (data collector, pricing item type, settlement type), each pricing item supports additional setup options that control how fees are filtered, converted, capped, or linked. Availability of each option depends on the settlement type.

#### Filtering

Each pricing item can include **filters** that narrow down which events trigger the fee. Filters are applied to properties available on the incoming event. This allows defining different fee rules for different transaction types, regions, or other criteria within the same Pricing.

The table below shows the **most commonly used** filter properties. Any property available on the incoming event can be used as a filter.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-filter-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Filter property**</span>

</td><td bgcolor="#1C1E3F" style="width: 35%;"><span style="font-family: Lato; color: #ecf0f1;">**Description**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Example values**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25%;">**type**

</td><td style="width: 35%;">Transaction type

</td><td style="width: 40%;">ATM, POS, ECOM

</td></tr><tr valign="TOP"><td style="width: 25%;">**region**

</td><td style="width: 35%;">Region of transaction

</td><td style="width: 40%;">INTERREGIONAL, INTRAREGIONAL, DOMESTIC

</td></tr><tr valign="TOP"><td style="width: 25%;">**countryCode**

</td><td style="width: 35%;">Country code of transaction

</td><td style="width: 40%;">PL, DE, US

</td></tr><tr valign="TOP"><td style="width: 25%;">**currency**

</td><td style="width: 35%;">Transaction currency

</td><td style="width: 40%;">EUR, USD, PLN

</td></tr><tr valign="TOP"><td style="width: 25%;">**amount**

</td><td style="width: 35%;">Transaction amount

</td><td style="width: 40%;">amount &gt; 10000

</td></tr><tr valign="TOP"><td style="width: 25%;">**captureMode**

</td><td style="width: 35%;">Capture mode of the transaction

</td><td style="width: 40%;">EMV, MAG, CONTACTLESS, ECOMMERCE

</td></tr><tr valign="TOP"><td style="width: 25%;">**digitizedWalletType**

</td><td style="width: 35%;">Digital wallet type

</td><td style="width: 40%;">APPLE\_PAY, GOOGLE\_PAY, SAMSUNG\_PAY

</td></tr><tr valign="TOP"><td style="width: 25%;">**terminalId**

</td><td style="width: 35%;">ID of the terminal where the card was issued

</td><td style="width: 40%;">Specific terminal identifier

</td></tr></tbody></table>

> **Example:**  
> A partner wants to charge **1.5% for inter-region ATM withdrawals** but **0% for domestic ATM withdrawals**.   
> Two pricing items are created with different filters: one with *type = "ATM" AND region = "INTERREGIONAL"*, and one with *type = "ATM" AND region = "DOMESTIC"* with a zero fee.

#### Automatic currency conversion

FMS supports automatic currency conversion in two scenarios. In both cases, the system uses an **averaged exchange rate from the day preceding the transaction date**.

##### Case 1: Currency conversion for instant settlement

When the **fee currency** differs from the **end-user's balance currency**, FMS automatically converts the fee amount before charging the balance.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-fx-instant-example" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Parameter**</span>

</td><td bgcolor="#1C1E3F" style="width: 75%;"><span style="font-family: Lato; color: #ecf0f1;">**Value**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25%;">Defined fee

</td><td style="width: 75%;">1.00 EUR (card issuance)

</td></tr><tr valign="TOP"><td style="width: 25%;">User's balance currency

</td><td style="width: 75%;">PLN

</td></tr><tr valign="TOP"><td style="width: 25%;">Averaged exchange rate (previous day)

</td><td style="width: 75%;">1 EUR = 4.32 PLN

</td></tr><tr valign="TOP"><td style="width: 25%;">**Amount charged**

</td><td style="width: 75%;">**4.32 PLN**

</td></tr></tbody></table>

##### Case 2: Currency conversion for invoice settlement

For percentage-based pricing items, a **settlement currency** must be defined. This is the currency in which the fee will appear in the settlement report. If the transaction was executed in a different currency, FMS converts the calculated fee to the settlement currency.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-fx-invoice-example" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Parameter**</span>

</td><td bgcolor="#1C1E3F" style="width: 75%;"><span style="font-family: Lato; color: #ecf0f1;">**Value**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25%;">Total transaction value

</td><td style="width: 75%;">100 000 EUR

</td></tr><tr valign="TOP"><td style="width: 25%;">Fee rate

</td><td style="width: 75%;">0.1%

</td></tr><tr valign="TOP"><td style="width: 25%;">Settlement currency

</td><td style="width: 75%;">USD

</td></tr><tr valign="TOP"><td style="width: 25%;">Averaged exchange rate (previous day)

</td><td style="width: 75%;">1 EUR = 1.08 USD

</td></tr><tr valign="TOP"><td style="width: 25%;">Calculated fee in EUR

</td><td style="width: 75%;">100.00 EUR

</td></tr><tr valign="TOP"><td style="width: 25%;">**Fee in settlement report**

</td><td style="width: 75%;">**108.00 USD**

</td></tr></tbody></table>

<p class="callout info">**Exchange rate:** In both cases, FMS uses the averaged exchange rate from the day preceding the date of the transaction that triggered the fee.</p>

#### Minimum amount

A **minimum amount** can be defined per pricing item to ensure that the charged fee never falls below a specified threshold. If the calculated fee (e.g., percentage-based) is lower than the minimum, the minimum amount is charged instead.

> **Example:**  
> Fee = **1.5% of ATM withdrawal**, minimum = **2.00 EUR**.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-min-example-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Withdrawal amount**</span>

</td><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Calculated fee (1.5%)**</span>

</td><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Minimum**</span>

</td><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Charged amount**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25%;">50 EUR

</td><td style="width: 25%;">0.75 EUR

</td><td style="width: 25%;">2.00 EUR

</td><td style="width: 25%;">**2.00 EUR** (minimum applied)

</td></tr><tr valign="TOP"><td style="width: 25%;">200 EUR

</td><td style="width: 25%;">3.00 EUR

</td><td style="width: 25%;">2.00 EUR

</td><td style="width: 25%;">**3.00 EUR** (calculated fee higher)

</td></tr></tbody></table>

<p class="callout info">The minimum amount is also subject to **automatic currency conversion**. If the end-user's balance is in a different currency, both the calculated fee and the minimum are converted before comparison.</p>

#### Free tier

A **free tier** allows defining a number of fee-exempt events before charging begins. Two modes are available:

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-free-tier-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 20%;"><span style="font-family: Lato; color: #ecf0f1;">**Free tier type**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Description**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Example**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 20%;">**Period-based**

</td><td style="width: 40%;">A set number of events are free within each billing period (e.g., monthly). The counter resets at the start of every new period.

</td><td style="width: 40%;">1 ATM withdrawal per month is free.

</td></tr><tr valign="TOP"><td style="width: 20%;">**Lifetime**

</td><td style="width: 40%;">A set number of events are free across the entire lifecycle. The counter never resets.

</td><td style="width: 40%;">First card issued for a user is free.

</td></tr></tbody></table>

##### Actor

When defining a free tier, an **actor** must be specified. The actor determines the object in the context of which the free tier counter is tracked. Any field from the incoming event can be used as the actor — the examples below show the most common choices.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-free-actor-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 20%;"><span style="font-family: Lato; color: #ecf0f1;">**Actor (example)**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Free tier counted per**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Example**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 20%;">**End-user**

</td><td style="width: 40%;">Each end-user has their own free tier counter.

</td><td style="width: 40%;">First card issued **for a given user** is free (regardless of how many balances they have).

</td></tr><tr valign="TOP"><td style="width: 20%;">**Balance**

</td><td style="width: 40%;">Each balance has its own free tier counter.

</td><td style="width: 40%;">First card issued **for each balance** is free (a user with 3 balances gets 3 free cards).

</td></tr><tr valign="TOP"><td style="width: 20%;">**Card**

</td><td style="width: 40%;">Each card has its own free tier counter.

</td><td style="width: 40%;">1 free ATM withdrawal per month **per card**.

</td></tr></tbody></table>

> **Example (period-based, actor = end-user):**  
> Free tier = **2 ATM withdrawals per month per end-user**, fee = **2.00 EUR** per withdrawal.

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-free-example-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Withdrawal**</span>

</td><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Free tier**</span>

</td><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Charged**</span>

</td><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Amount**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25%;">1st

</td><td style="width: 25%;">✔ Free

</td><td style="width: 25%;">✘

</td><td style="width: 25%;">0.00 EUR

</td></tr><tr valign="TOP"><td style="width: 25%;">2nd

</td><td style="width: 25%;">✔ Free

</td><td style="width: 25%;">✘

</td><td style="width: 25%;">0.00 EUR

</td></tr><tr valign="TOP"><td style="width: 25%;">3rd

</td><td style="width: 25%;">✘

</td><td style="width: 25%;">✔

</td><td style="width: 25%;">2.00 EUR

</td></tr><tr valign="TOP"><td style="width: 25%;">4th

</td><td style="width: 25%;">✘

</td><td style="width: 25%;">✔

</td><td style="width: 25%;">2.00 EUR

</td></tr><tr valign="TOP"><td style="width: 25%;">5th

</td><td style="width: 25%;">✘

</td><td style="width: 25%;">✔

</td><td style="width: 25%;">2.00 EUR

</td></tr></tbody></table>

**Total charged in month:** 3 × 2.00 EUR = **6.00 EUR** (2 withdrawals free, 3 charged).

#### Reference transaction ID

When enabled, FMS links the **fee transaction** to the **original transaction** that triggered the fee by storing the original transaction's ID as a reference. This allows the partner's system to trace which fee corresponds to which source transaction.

> **Example:**  
> An end-user performs an ATM withdrawal (transaction ID: *txn-abc-123*).   
> FMS charges a 2.00 EUR fee and stores *txn-abc-123* as the reference transaction ID on the fee transaction.   
> The partner can then use this reference to correlate fees with source transactions in their own systems.

#### Transaction description

A **static text description** can be defined per pricing item. This description is attached to the fee transaction and visible to the end-user (e.g., in their transaction history). It helps the end-user understand what the fee was charged for.

> **Example:**  
> Transaction description = *"ATM withdrawal fee"*.   
> Every fee charged by this pricing item will display "ATM withdrawal fee" in the end-user's transaction history.

<p class="callout info">Currently, transaction description supports **static text only**. Dynamic values (e.g., transaction amount or date) cannot be included in the description.</p>

#### Funding source

Funding source defines **which balance is debited** when an instant fee is charged. Two options are available:

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-funding-table" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 25%;"><span style="font-family: Lato; color: #ecf0f1;">**Funding source**</span>

</td><td bgcolor="#1C1E3F" style="width: 35%;"><span style="font-family: Lato; color: #ecf0f1;">**Description**</span>

</td><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Example**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25%;">**User's balance**

</td><td style="width: 35%;">The fee is debited from the end-user's balance (balance ID is taken from the event data).

</td><td style="width: 40%;">ATM withdrawal fee charged from the user's balance that the card is linked to.

</td></tr><tr valign="TOP"><td style="width: 25%;">**Fixed balance ID**

</td><td style="width: 35%;">The fee is debited from a specific, pre-configured balance ID (hardcoded in the pricing item).

</td><td style="width: 40%;">All fees for a particular service are charged from a dedicated settlement balance.

</td></tr></tbody></table>

#### Pricing item setup options per settlement type

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-setup-options-matrix" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 40%;"><span style="font-family: Lato; color: #ecf0f1;">**Setup option**</span>

</td><td bgcolor="#1C1E3F" style="width: 30%; text-align: center;"><span style="font-family: Lato; color: #ecf0f1;">**Instant settlement**</span>

</td><td bgcolor="#1C1E3F" style="width: 30%; text-align: center;"><span style="font-family: Lato; color: #ecf0f1;">**Invoice settlement**</span>

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 40%;">Filtering

</td><td style="width: 30%; text-align: center;">✔

</td><td style="width: 30%; text-align: center;">✔

</td></tr><tr valign="TOP"><td style="width: 40%;">Automatic currency conversion

</td><td style="width: 30%; text-align: center;">✔

</td><td style="width: 30%; text-align: center;">✔

</td></tr><tr valign="TOP"><td style="width: 40%;">Minimum amount

</td><td style="width: 30%; text-align: center;">✔

</td><td style="width: 30%; text-align: center;">✘

</td></tr><tr valign="TOP"><td style="width: 40%;">Free tier

</td><td style="width: 30%; text-align: center;">✔

</td><td style="width: 30%; text-align: center;">✘

</td></tr><tr valign="TOP"><td style="width: 40%;">Reference transaction ID

</td><td style="width: 30%; text-align: center;">✔

</td><td style="width: 30%; text-align: center;">✘

</td></tr><tr valign="TOP"><td style="width: 40%;">Transaction description

</td><td style="width: 30%; text-align: center;">✔

</td><td style="width: 30%; text-align: center;">✘

</td></tr><tr valign="TOP"><td style="width: 40%;">Funding source

</td><td style="width: 30%; text-align: center;">✔

</td><td style="width: 30%; text-align: center;">✘

</td></tr></tbody></table>

### Cashback

Cashback is technically handled by FMS using a **reversed money flow** — instead of debiting the end-user's balance, FMS **credits** the user's balance with a defined amount or percentage of the transaction value. From a business perspective, cashback is treated as a **separate product**.

For details on cashback configuration, flows, and examples, see the dedicated [**Cashback**](https://developer.verestro.com/books/cashback) page.