Cosmic Module

O

Qubits of DPK

March 23, 2026

Core Open Source

What This Module Is (Big Picture)

The charge module manages financial fees and penalties applied to customers.
Charges may apply to:
  • loan processing
  • late repayment penalties
  • loan disbursement fees
  • account maintenance charges
  • withdrawal fees
  • service charges
This module defines how charges are configured and when they are applied.

Layman Example

Suppose a borrower takes a loan of ₹10,000.
The bank may apply:
Loan processing fee = ₹200
Or
Late payment penalty = ₹50
These fees are defined and calculated using the charge module.

Where the Code Lives

Key Package

org.apache.fineract.portfolio.charge
Responsibilities include:
  • defining charge rules
  • calculating charge amounts
  • attaching charges to accounts
  • applying charges during events

Core Domain Entity:

Charge.java

Path
fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
This class represents a charge definition.
A charge definition describes how a fee should be calculated and applied.

Key fields on

Charge

Charge Calculation Methods

Charges can be calculated in multiple ways.

Example Charge Calculation

Loan Amount = ₹10,000
Processing Fee = 2%
Charge Amount = ₹200

Example Charge Calculation Code

java
QUBITS OF DPK
1public BigDecimal calculateCharge(BigDecimal baseAmount, BigDecimal percentage) {
2
3    BigDecimal charge =
4        baseAmount.multiply(percentage)
5                  .divide(BigDecimal.valueOf(100));
6
7    return charge;
8}
This calculates percentage-based charges.

Charge Application Events

Charges may apply at different events.
Examples:

Attaching Charges to Accounts

Charges may be attached to:
  • loan accounts
  • savings accounts
  • share accounts
Example:
Loan Account → Late Payment Penalty
Savings Account → Withdrawal Fee

API Layer

Main controller
ChargesApiResource
Example endpoints
plain text
QUBITS OF DPK
1GET  /v1/charges
2POST /v1/charges
3GET  /v1/charges/{chargeId}
These APIs allow administrators to:
  • create charge definitions
  • retrieve charges
  • configure fee rules

Read Services

Read services retrieve charge configurations.
Examples:
  • retrieve charge definitions
  • retrieve charges for loan products
  • retrieve charges for savings products
These services are used during transaction processing.

Write Services

Write services manage charge creation and updates.
Responsibilities include:
  • creating new charge rules
  • updating charge values
  • assigning charges to products

Repository Layer

Exceptions

These prevent incorrect charge calculations.

How It All Connects (Full Flow)

Example: Loan Processing Fee
java
QUBITS OF DPK
1Loan Service
2Loan created
34Charge Processor
5    │ identify applicable charge
67Charge Calculation Engine
8    │ calculate fee
910Accounting Module
11record charge entry
1213Database

Why This Module Matters

The charge module ensures financial institutions can:
  • collect service fees
  • apply penalties
  • configure pricing for financial products
This allows banks to generate revenue and enforce repayment discipline.

One-Sentence Summary

fineract-charge manages fees and penalties applied to financial transactions such as loan processing fees, late payment penalties, and service charges.