Skip to content

Charges Configuration

Charges are fees and penalties applied to loan and savings accounts. They must be created before products, because products reference charges at configuration time. Getting charges right early saves significant rework later.


Charge vs. Penalty

Every charge in Fineract is classified as either a fee or a penalty:

Typepenalty fieldBehaviour
FeefalseApplied automatically or by staff as a routine cost (disbursement fee, maintenance fee)
PenaltytrueApplied when a rule is violated (overdue penalty, bounced payment fee); counted separately in accounting and reporting

The distinction matters for: GL account mapping (fees and penalties post to different income accounts), reporting (PAR metrics separate penalties from fees), and borrower communications.


Charge Calculation Types

How the charge amount is calculated:

CodeNameMeaning
1FlatFixed currency amount (e.g., 10 USD per event)
2Percentage of amount% of outstanding principal (e.g., 1% of disbursed amount)
3Percentage of amount + interest% of principal + interest
4Percentage of interest% of interest component only
5Percentage of amount disbursed% calculated on disbursement amount specifically

When Charges Apply (Charge Time Types)

The chargeTimeType field controls the trigger:

CodeNameApplies toTriggered when
1DisbursementLoansLoan is first disbursed
2Specified due dateLoansA specific calendar date set at account level
3Instalment feeLoansEvery repayment instalment
4OverdueLoansAn instalment becomes overdue (COB applies this)
5Loan maturityLoansLoan reaches its maturity date
6Monthly fee (savings)SavingsMonthly, on a configured day of month
7Annual fee (savings)SavingsAnnually, on a configured date
8Withdrawal feeSavingsEach savings withdrawal
9Savings no activity feeSavingsAccount is inactive for a configured period
10Tranche disbursementMulti-tranche loansEach subsequent tranche is disbursed
12Overdue maturity date feeLoansLoan is not closed by maturity date

Charge Payment Modes (Loan Charges)

CodeNameMeaning
0RegularCharged to the loan account, collected on repayment
1Up-front (capitalised)Added to principal at disbursement

Creating a Charge via API

bash
POST /fineract-provider/api/v1/charges
Authorization: Basic <base64>
Fineract-Platform-TenantId: default
Content-Type: application/json

Example 1: Flat disbursement fee

json
{
  "name": "Loan Origination Fee",
  "currencyCode": "USD",
  "amount": 25.00,
  "chargeAppliesTo": 1,
  "chargeTimeType": 1,
  "chargeCalculationType": 1,
  "chargePaymentMode": 0,
  "penalty": false,
  "active": true,
  "locale": "en"
}

Example 2: Percentage overdue penalty

json
{
  "name": "Late Payment Penalty",
  "currencyCode": "USD",
  "amount": 2.0,
  "chargeAppliesTo": 1,
  "chargeTimeType": 4,
  "chargeCalculationType": 2,
  "chargePaymentMode": 0,
  "penalty": true,
  "feeInterval": 1,
  "feeFrequency": 2,
  "active": true,
  "locale": "en"
}

feeInterval and feeFrequency on overdue charges control how often the penalty is reapplied - in this example, every 1 month while the instalment remains unpaid.

Example 3: Monthly savings maintenance fee

json
{
  "name": "Monthly Account Fee",
  "currencyCode": "USD",
  "amount": 3.00,
  "chargeAppliesTo": 2,
  "chargeTimeType": 6,
  "chargeCalculationType": 1,
  "penalty": false,
  "feeOnMonthDay": "01 January",
  "monthDayFormat": "dd MMMM",
  "active": true,
  "locale": "en"
}

chargeAppliesTo: 1 = Loans, chargeAppliesTo: 2 = Savings.


Field Reference

FieldRequiredMeaning
nameYesDisplay name for this charge
currencyCodeYesISO 4217 currency code
amountYesBase amount (flat value or percentage rate)
chargeAppliesToYes1 = Loan, 2 = Savings, 3 = Client
chargeTimeTypeYesWhen the charge triggers (see table above)
chargeCalculationTypeYesHow amount is calculated (see table above)
chargePaymentModeLoan only0 = Regular, 1 = Up-front
penaltyYestrue for penalties, false for fees
activeYestrue to make available for use on products
minCapNoMinimum charge amount when using percentage calculation
maxCapNoMaximum charge amount when using percentage calculation
feeIntervalOverdue/recurringHow often the charge repeats
feeFrequencyOverdue/recurringFrequency unit: 0=days, 1=weeks, 2=months, 3=years

Attaching Charges to a Loan Product

Charges are referenced in the charges array when creating or updating a loan product:

json
{
  "name": "Standard Personal Loan",
  "charges": [
    { "id": 1 },
    { "id": 3 }
  ]
}

These become the default charges applied to every loan account created from this product. Charges can also be added or removed at the individual loan account level before or after disbursement.


Adding a Charge to an Existing Loan Account

bash
POST /fineract-provider/api/v1/loans/{loanId}/charges
json
{
  "chargeId": 4,
  "amount": 15.00,
  "dueDate": "01 April 2025",
  "dateFormat": "dd MMMM yyyy",
  "locale": "en"
}

For specified due date charges, include dueDate. For disbursement and instalment charges, dueDate is not required.


Waiving a Charge

Staff can waive a specific charge on a loan account when appropriate:

bash
POST /fineract-provider/api/v1/loans/{loanId}/charges/{chargeId}?command=waive

Waived charges appear in the loan transaction history with type WAIVE_CHARGES and are reflected in the accounting entries.


Listing and Managing Charges

bash
# List all active charges
GET /fineract-provider/api/v1/charges

# List only loan charges
GET /fineract-provider/api/v1/charges?chargeAppliesTo=1

# Get a specific charge
GET /fineract-provider/api/v1/charges/{chargeId}

# Update a charge (name, amount, active status)
PUT /fineract-provider/api/v1/charges/{chargeId}

# Delete a charge (only if not used by any product or account)
DELETE /fineract-provider/api/v1/charges/{chargeId}

Before creating any loan or savings products, set up at minimum:

ChargeTypeApplies toTypical amount
Loan origination feeFlat, disbursementLoansFixed amount or 1-3%
Late payment penalty% of amount, overdueLoans1-2% per month
Loan instalment processing feeFlat, instalmentLoansSmall fixed amount
Savings withdrawal feeFlat, withdrawalSavingsFixed per withdrawal
Monthly account maintenanceFlat, monthlySavingsFixed per month

Creating these first means products can reference them from day one.


Common Mistakes

MistakeEffectFix
Creating a product before its charges existProduct creation fails or charge references are missingAlways create charges before products
Using penalty: false for a late payment chargeCharge appears as a fee in reports and accountingSet penalty: true for all late/overdue charges
Not setting minCap/maxCap on % chargesVery small or very large loans get disproportionate chargesAlways cap percentage charges
Deleting an active charge in useAPI returns a 403 or conflict errorDeactivate ("active": false) instead of deleting