Cosmic Module
O
Qubits of DPK
March 23, 2026
Core Open Source
What This Module Is (Big Picture)
The accounting module records the financial impact of all banking operations.
Whenever something happens in the system, such as:
- a loan is disbursed
- a repayment is made
- money is deposited in savings
- shares are purchased
the accounting module creates journal entries.
These journal entries ensure that the bank’s financial books stay balanced.
Layman Example
Suppose a loan of ₹10,000 is disbursed.
From an accounting perspective:
Bank gives money to customer.
Two entries must be recorded:
Debit → Loan Account ₹10,000
Credit → Bank Cash Account ₹10,000
This is called double-entry accounting.
The fineract-accounting module manages these entries automatically.
Where the Code Lives
Other modules send transactions to accounting when events occur.
Key Package
org.apache.fineract.accounting
This package manages general ledger operations.
Responsibilities include:
- journal entries
- GL account management
- financial transaction postings
- accounting mappings
Main Domain Entity:
GLAccount.java
Path
fineract-accounting/src/main/java/org/apache/fineract/accounting/glaccount/domain/GLAccount.java
This entity represents a General Ledger account.
In accounting systems, every financial transaction must be recorded in GL accounts.
Key fields on
GLAccount
Example GL accounts in a bank
Journal Entries
The accounting module records journal entries.
A journal entry records a financial event.
Example: loan disbursement
Debit → Loan Portfolio
Credit → Cash
Core Entity:
JournalEntry.java
Path
fineract-accounting/src/main/java/org/apache/fineract/accounting/journalentry/domain/JournalEntry.java
This entity represents a single accounting record.
Key fields on
JournalEntry
Example Journal Entry Code
java
QUBITS OF DPK
This creates the double-entry accounting record.
Accounting Rule Engine
The accounting module does not directly know about loans or savings.
Instead it receives events from other modules.
Example:
Loan module triggers accounting event:
LoanDisbursedEvent
The accounting module maps this to GL entries.
Accounting Mappings
Accounting rules define which GL accounts should be used.
Example mapping
These mappings are stored in accounting configuration tables.
API Layer
Main controller
AccountingApiResource
Example endpoints
java
QUBITS OF DPK
These APIs allow:
- creating GL accounts
- viewing ledger entries
- posting manual journal entries
Read Services
Read services retrieve financial information.
Examples:
- retrieve GL accounts
- retrieve journal entries
- retrieve accounting mappings
These services are used by:
- financial dashboards
- audit systems
- reporting modules
Write Services
Write services create accounting entries.
Example responsibilities:
- create journal entries
- post accounting transactions
- validate debit/credit balance
Important Rule: Accounting Balance
Every journal transaction must balance.
Example
Debit = ₹10,000
Credit = ₹10,000
If they do not match, the system throws an error.
Repository Layer
Exceptions
These protect financial integrity.
How It All Connects (Full Flow)
Example: Loan Disbursement
java
QUBITS OF DPK
Why This Module Matters
The accounting module ensures:
- financial accuracy
- auditability
- regulatory compliance
- financial reporting
Without it, the bank cannot produce balance sheets or financial statements.
One-Sentence Summary
fineract-accounting records all financial transactions in the general ledger using double-entry accounting to ensure the bank’s books remain balanced.