# Overview

This page provides a high-level overview of **Fee Management System (FMS)** and its core capabilities.   
It explains how to configure fee collection for a partner and how FMS **calculates, settles, and reports fees** for both end-users (**instant charging**) and B2B billing (**invoice settlement**).

### Key components

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

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

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

</td><td style="width: 75%;">Collects data, calculates fees, and stores settlements. Supports optional instant charging.

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

</td><td style="width: 75%;">UI for billing setup, pricing management, and reporting.

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

</td><td style="width: 75%;">Executes balance charges for instant fee transactions.

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

</td><td style="width: 75%;">A data source used as an input for fee calculation (events, files, aggregated counts). Currently, FMS is ready to collect billable data from all Verestro services.

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

### Architecture

#### C4 Context diagram

[ ![fees_arch_diagram_1.png](https://developer.verestro.com/uploads/images/gallery/2025-07/scaled-1680-/fees-arch-diagram-1.png) ](https://developer.verestro.com/uploads/images/gallery/2025-07/fees-arch-diagram-1.png)

#### C4 Container diagram

[ ![fees_arch_diagram_2.png](https://developer.verestro.com/uploads/images/gallery/2025-07/scaled-1680-/fees-arch-diagram-2.png)](https://developer.verestro.com/uploads/images/gallery/2025-07/fees-arch-diagram-2.png)

### Key product features

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

Instant settlement allows to calculate the fee for a defined pricing item and <span style="text-decoration: underline;">instantly deduct the funds from the balance of the end-user</span> who initiated the transaction.

With instant charging, a partner can **move transaction fees (their operational costs) to the end-user** by charging fees directly on each user transaction (e.g., ATM, card, IBAN).

<p class="callout info">This feature is available only when end-users' balances are stored on Antaca's side or are external but integrated with Antaca balances.</p>

##### Fee transaction - money flow

Fee is an internal transaction for a partner who wants to **debit** the **user's balance** as a fee. Antaca automatically **credits** the **company balance** with the funds debited from the user's balance.

[ ![Fees_Cashback_money_flow.png](https://developer.verestro.com/uploads/images/gallery/2024-08/scaled-1680-/h7ufees-cashback-money-flow.png) ](https://developer.verestro.com/uploads/images/gallery/2024-08/h7ufees-cashback-money-flow.png)

#### Automated B2B billing (invoice settlement)

Due to invoice settlement, FMS helps **automate B2B billing** when a client wants to bill their own company or business customers.  
Invoice settlement allows charging defined fees for specific services <span style="text-decoration: underline;">without actually enforcing payment</span>. A report (xlsx file) can be generated from the calculated fees, and then an invoice can be issued.

<p class="callout info">Pricing items with invoice settlement can store both **price** (what you charge) and **cost** (what you pay), so you can track costs and calculate profit per billing item.</p>

#### Supported fee scenarios

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-fee-examples-settlement" style="border-collapse: collapse; width: 100%; height: 238.375px;"><thead><tr style="height: 29.7969px;" valign="TOP"><td bgcolor="#1C1E3F" style="width: 58.2807%; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Fee scenario**</span>

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

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

</td></tr></thead><tbody><tr style="height: 29.7969px;" valign="TOP"><td style="width: 58.2807%; height: 29.7969px;">Card issuance fee (physical card, virtual card)

</td><td style="width: 20.146%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 21.5733%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 58.2807%; height: 29.7969px;">Card transaction fee (POS, eCommerce, ATM)

</td><td style="width: 20.146%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 21.5733%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 58.2807%; height: 29.7969px;">IBAN transfer fee (incoming, outgoing)

</td><td style="width: 20.146%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 21.5733%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 58.2807%; height: 29.7969px;">Card maintenance fee (daily, weekly, monthly, yearly)

</td><td style="width: 20.146%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 21.5733%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 58.2807%; height: 29.7969px;">IBAN maintenance fee (daily, weekly, monthly, yearly)

</td><td style="width: 20.146%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 21.5733%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 58.2807%; height: 29.7969px;">Token maintenance fee (daily, weekly, monthly, yearly)

</td><td style="width: 20.146%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 21.5733%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 58.2807%; height: 29.7969px;">Project / license / platform recurring fee (daily, weekly, monthly, yearly)

</td><td style="width: 20.146%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 21.5733%; text-align: center; height: 29.7969px;">✔

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

<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>

### Fee management

#### Billing setup

A **Billing Setup** is the main configuration entity that defines how fees are collected and calculated for a specific client.   
It contains **Data Collectors** and **Pricings**.

#### Data collectors

Data Collectors specify where billable data comes from. Three types are available:

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

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

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

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 25.754%;">**<span style="font-family: Lato; color: #000000;">Occurrence Data Collector</span>**

</td><td style="width: 40.9921%;"><span style="color: #000000;">Captures events in real-time as they occur.</span>

</td><td style="width: 33.3731%;"><span style="color: #000000;">ATM withdrawal, card transaction, IBAN transfer</span>

</td></tr><tr valign="TOP"><td style="width: 25.754%;">**<span style="font-family: Lato; color: #000000;">File Data Collector</span>**

</td><td style="width: 40.9921%;"><span style="color: #000000;">Processes batch files with lists of entities.  
Data is retrieved periodically (e.g., daily, monthly).</span>

</td><td style="width: 33.3731%;"><span style="color: #000000;">All active cards for maintenance fees</span>

</td></tr><tr valign="TOP"><td style="width: 25.754%;">**<span style="font-family: Lato; color: #000000;">HTTP Query Data Collector</span>**

</td><td style="width: 40.9921%;"><span style="color: #000000;">Retrieves aggregated counts via API.  
Data is retrieved periodically (e.g., daily, monthly).</span>

</td><td style="width: 33.3731%;"><span style="color: #000000;">Number of active accounts per month</span>

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

#### Pricings

A **Pricing** is a set of fee rules (**Pricing Items**) that define what to charge and how.   
Each Pricing has a validity period (**Valid from** / **Valid until**), which ensures full auditability of pricing changes over time.   
Each Billing Setup can contain multiple Pricings, but only one can be active at a time.   
You can schedule a Pricing change in advance — for example, set a new Pricing to activate on the first day of next month.

#### Pricing item

Each Pricing item specifies:

- [Pricing item type](#bkmrk-pricing%C2%A0item-types)
- [Data source — data collector](#bkmrk-data-collector-types-within-pricing)
- [Fee calculation type](#bkmrk-calculation-types)
- [Settlement type](#bkmrk-settlement)
- Pricing item logic (filters, free tier, minimum amount, etc.) is described in detail on the **Use Cases page**.

##### Pricing item types

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-type-what-it-means-t" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 19.0703%;"><span style="font-family: Lato; color: #ecf0f1;">**Type**</span>

</td><td bgcolor="#1C1E3F" style="width: 36.708%;"><span style="font-family: Lato; color: #ecf0f1;">**What it means**</span>

</td><td bgcolor="#1C1E3F" style="width: 44.2217%;"><span style="font-family: Lato; color: #ecf0f1;">**Typical use cases**</span>

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

</td><td style="width: 36.708%;">Fee calculated per single event (one transaction = one fee).

</td><td style="width: 44.2217%;">ATM withdrawal fee, card issuance fee, IBAN transfer fee.

</td></tr><tr valign="TOP"><td style="width: 19.0703%;">**Recurring**

</td><td style="width: 36.708%;">Fee charged once per period (daily/weekly/monthly/yearly).

</td><td style="width: 44.2217%;">Monthly platform fee, monthly maintenance fee per project.

</td></tr><tr valign="TOP"><td style="width: 19.0703%;">**Cumulative**

</td><td style="width: 36.708%;">Fee based on total quantity/volume in a period (calculated using usage metrics from external product).

</td><td style="width: 44.2217%;">Card/token maintenance billed using tiered or volume pricing.

</td></tr><tr valign="TOP"><td style="width: 19.0703%;">**Aggregated**

</td><td style="width: 36.708%;">Collects data via event-based data collector, but the fee is calculated at the end of the billing period based on total accumulated quantity.

</td><td style="width: 44.2217%;">Number of active accounts per month, number of active cards per day.

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

##### Fee calculation types

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

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

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

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

</td><td style="width: 36.4659%;">Static amount per unit/event.

</td><td style="width: 46.8476%;">2 EUR per ATM withdrawal.

</td></tr><tr valign="TOP"><td style="width: 16.6865%;">**Percentage**

</td><td style="width: 36.4659%;">Percentage of transaction value.

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

</td></tr><tr valign="TOP"><td style="width: 16.6865%;">**Mixed**

</td><td style="width: 36.4659%;">Fixed amount + percentage.

</td><td style="width: 46.8476%;">0.50 EUR + 0.5% per transaction.

</td></tr><tr valign="TOP"><td style="width: 16.6865%;">**Tiered**

</td><td style="width: 36.4659%;">Different rates for quantity ranges. Each tier is billed at its own rate.

</td><td style="width: 46.8476%;">1-100 transactions: 1.00 EUR each  
101-500 transactions: 0.80 EUR each  
501+ transactions: 0.50 EUR each  
  
*150 transactions = (100 × 1.00) + (50 × 0.80) = **140 EUR***

</td></tr><tr valign="TOP"><td style="width: 16.6865%;">**Volume**

</td><td style="width: 36.4659%;">Single rate based on total volume. All units billed at the same rate.

</td><td style="width: 46.8476%;">1-100 transactions: 1.00 EUR each  
101-500 transactions: 0.80 EUR each  
501+ transactions: 0.50 EUR each  
  
*150 transactions = 150 × 0.80 = **120 EUR***

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

##### Fee calculation types per pricing item type

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-pricing-item-type-fi" style="border-collapse: collapse; width: 100%; height: 178.781px;"><thead><tr style="height: 29.7969px;" valign="TOP"><td bgcolor="#1C1E3F" rowspan="2" style="width: 16.6865%; height: 59.5938px; vertical-align: middle;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" colspan="5" style="text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Fee calculation types**</span>

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td bgcolor="#1C1E3F" style="width: 16.6865%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Fixed**</span>

</td><td bgcolor="#1C1E3F" style="width: 16.6865%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Percentage**</span>

</td><td bgcolor="#1C1E3F" style="width: 16.3294%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Mixed**</span>

</td><td bgcolor="#1C1E3F" style="width: 17.0437%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Volume**</span>

</td><td bgcolor="#1C1E3F" style="width: 16.6865%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Tiered**</span>

</td></tr></thead><tbody><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.6865%; height: 29.7969px;">**Unit**

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 16.3294%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 17.0437%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✘

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.6865%; height: 29.7969px;">**Recurring**

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 16.3294%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 17.0437%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✘

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.6865%; height: 29.7969px;">**Cumulative**

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 16.3294%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 17.0437%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.6865%; height: 29.7969px;">**Aggregated**

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 16.3294%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 17.0437%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 16.6865%; text-align: center; height: 29.7969px;">✔

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

##### Settlement types per pricing item type

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-pricing-item-type-in" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" rowspan="2" style="width: 16.0906%; vertical-align: middle;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" colspan="2" style="text-align: center;"><span style="font-family: Lato; color: #ecf0f1;">**Settlement types**</span>

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

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

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

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

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

</td></tr><tr valign="TOP"><td style="width: 16.0906%;">**Recurring**

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

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

</td></tr><tr valign="TOP"><td style="width: 16.0906%;">**Cumulative**

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

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

</td></tr><tr valign="TOP"><td style="width: 16.0906%;">**Aggregated**

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

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

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

##### Data collector types per pricing item type

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-pricing-item-type-dc" style="border-collapse: collapse; width: 100%; height: 178.781px;"><thead><tr style="height: 29.7969px;" valign="TOP"><td bgcolor="#1C1E3F" class="align-left" rowspan="2" style="width: 16.2106%; height: 59.5938px; vertical-align: middle;"><span style="font-family: Lato; color: #ecf0f1;">**Pricing item type**</span>

</td><td bgcolor="#1C1E3F" colspan="3" style="text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Data collector types**</span>

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td bgcolor="#1C1E3F" style="width: 37.663%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**Occurrence data collector**</span>

</td><td bgcolor="#1C1E3F" style="width: 23.1228%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**File data collector**</span>

</td><td bgcolor="#1C1E3F" style="width: 23.1228%; text-align: center; height: 29.7969px;"><span style="font-family: Lato; color: #ecf0f1;">**HTTP query data collector**</span>

</td></tr></thead><tbody><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.2106%; height: 29.7969px;">**Unit**

</td><td style="width: 37.663%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✘

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.2106%; height: 29.7969px;">**Recurring**

</td><td style="width: 37.663%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✘

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.2106%; height: 29.7969px;">**Cumulative**

</td><td style="width: 37.663%; text-align: center; height: 29.7969px;">✔ <span style="color: #666;">(deprecated)</span>

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✔

</td></tr><tr style="height: 29.7969px;" valign="TOP"><td style="width: 16.2106%; height: 29.7969px;">**Aggregated**

</td><td style="width: 37.663%; text-align: center; height: 29.7969px;">✔

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✘

</td><td style="width: 23.1228%; text-align: center; height: 29.7969px;">✘

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



<p class="callout info">Detailed behavior and configuration examples for each pricing item type are described in the **Use cases** section.</p>

### Fee processing

Once a Billing Setup is configured, FMS processes fees in three steps: **data collection**, **fee calculation**, and **settlement**.

#### 1) Data collection

FMS collects billable data using **Data Collectors**. Depending on the configuration, data can represent end-user transactions (e.g., card, ATM, IBAN) or other measurable actions/usage (e.g., active accounts, active cards).

#### 2) Fee calculation

When data arrives (event, file, or API response), FMS matches it against the **active Pricing** and its **Pricing Items**, calculates the fee amount, and **stores the calculated fee in the database** for auditability and reporting.

#### 3) Settlement

After calculation, the fee is settled in one of two modes:

<table border="1" cellpadding="8" cellspacing="0" id="bkmrk-mode-how-it-works-be" style="border-collapse: collapse; width: 100%;"><thead><tr valign="TOP"><td bgcolor="#1C1E3F" style="width: 18.6112%;"><span style="font-family: Lato; color: #ecf0f1;">**Mode**</span>

</td><td bgcolor="#1C1E3F" style="width: 48.135%;"><span style="font-family: Lato; color: #ecf0f1;">**How it works**</span>

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

</td></tr></thead><tbody><tr valign="TOP"><td style="width: 18.6112%;">**<span style="font-family: Lato; color: #000000;">Instant settlement</span>**

</td><td style="width: 48.135%;"><span style="color: #000000;"> FMS charges the **end-user’s balance** for the transaction that triggered the fee. The charge is executed in real time (via Antaca). </span>

</td><td style="width: 33.3731%;"><span style="color: #000000;">Transaction fees, ATM withdrawals, card issuance</span>

</td></tr><tr valign="TOP"><td style="width: 18.6112%;">**<span style="font-family: Lato; color: #000000;">Invoice settlement</span>**

</td><td style="width: 48.135%;"><span style="color: #000000;"> FMS **stores settlements in the database** and aggregates them for reporting. Payment is handled outside of FMS (e.g., by issuing an invoice based on the report). </span>

</td><td style="width: 33.3731%;"><span style="color: #000000;">B2B billing, maintenance fees, volume-based pricing</span>

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

Both modes can be used within the same Pricing — charge end-users instantly for transactions while recording invoice settlements for periodic B2B billing.

### Reporting

For invoice settlements, FMS generates monthly reports for your finance team (XLSX file).   
Each report line contains the billing item name and usage details (e.g., quantity and total transaction value), along with the calculated **revenue (price)** and **cost**.   
Based on these values, the report automatically calculates **profit** (**revenue minus cost**) per billing item.

Below is an example of a **monthly B2B settlement report** generated by FMS.

[ ![Monthly B2B settlement report example](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">**Multi-currency:** FMS supports fee calculation for transactions and pricing items in multiple currencies.</p>

<p class="callout warning">If a single report contains multiple currencies, the values cannot be summed into one total amount. In such cases, totals should be interpreted **per currency** (or converted externally to a single reporting currency).</p>