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
1JournalEntry debitEntry =
2    new JournalEntry(glAccount, amount, EntryType.DEBIT);
3
4JournalEntry creditEntry =
5    new JournalEntry(cashAccount, amount, EntryType.CREDIT);
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
1GET  /v1/glaccounts
2POST /v1/glaccounts
3GET  /v1/journalentries
4POST /v1/journalentries
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
1Loan Service
2Loan disbursed
34LoanTransactionProcessor
56AccountingProcessor
78AccountingRuleEngine
9    │ determines GL accounts
1011JournalEntryService
12    │ creates debit/credit entries
1314Database (journal entries table)

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.