How apache/fineract works
Apache Fineract is an extensible core-banking platform. Its user-facing workflow is authenticated, tenant-scoped API requests that read or change banking data and return results; the README documents that API workflow, while sampled code exposes selected search, accounting, and end-of-day services. The graph preserves major domain branches visible in the tree and indexed modules. Source evidence is partial, so only directly shown calls are connected; most unsampled domain wiring is intentionally left unspecified.
Main entry points: ClientSearchService.java Client Search · ExternalAssetOwnerSearchService.java Investor Search · PostgreSQLQueryService.java PostgreSQL Metadata · ProgressiveLoanInterestScheduleModelParserService.java Progressive Schedule
Components 31
API and Search
- Client Search
fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/search/ClientSearchService.java - Client Repository
fineract-core/src/main/java/org/apache/fineract/portfolio/client/domain/ClientRepository.java - Client Mapper
fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/search/mapper/ClientSearchDataMapper.java - Ad Hoc Search
fineract-provider/src/main/java/org/apache/fineract/portfolio/search/service/SearchReadService.java - Savings Tx Search
fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/search/SavingsAccountTransactionSearchService.java - Investor Search
fineract-investor/src/main/java/org/apache/fineract/investor/service/search/ExternalAssetOwnerSearchService.java - Investor Repository
fineract-investor/src/main/java/org/apache/fineract/investor/domain/search/SearchingExternalAssetOwnerRepository.java - Investor Mapper
fineract-investor/src/main/java/org/apache/fineract/investor/service/search/mapper/ExternalAssetOwnerSearchDataMapper.java
Banking Operations
- Loan Servicing
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainService.java - Progressive Schedule
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/ProgressiveLoanInterestScheduleModelParserService.java - Interest Schedule Model
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanproduct/calc/data/ProgressiveLoanInterestScheduleModel.java - Loan Rescheduling
fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanReschedulePreviewPlatformService.java - End-of-Day Processing
fineract-cob/src/main/java/org/apache/fineract/cob/service/RetrieveIdService.java - Loan COB IDs
fineract-loan/src/main/java/org/apache/fineract/cob/service/RetrieveLoanIdService.java - Savings COB IDs
fineract-savings/src/main/java/org/apache/fineract/cob/savings/RetrieveSavingsIdService.java - Working Capital
fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/domain/WorkingCapitalLoanWriteOffDomainService.java - Amortization Schedule
fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/ProjectedAmortizationScheduleModelParserService.java - Projected Schedule Model
fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/calc/ProjectedAmortizationScheduleModel.java
Accounting
- General Ledger
fineract-accounting/src/main/java/org/apache/fineract/accounting/glaccount/api/GLAccountsApiResource.java - Journal Entries
fineract-accounting/src/main/java/org/apache/fineract/accounting/journalentry/service/JournalEntryWritePlatformService.java - Periodic Accruals
fineract-accounting/src/main/java/org/apache/fineract/accounting/accrual/service/AccrualAccountingWritePlatformService.java - GL Closures
fineract-accounting/src/main/java/org/apache/fineract/accounting/closure/service/GLClosureWritePlatformService.java - Activity Accounts
fineract-accounting/src/main/java/org/apache/fineract/accounting/financialactivityaccount/service/FinancialActivityAccountWritePlatformServiceImpl.java - Provisioning
fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformService.java
Platform Services
- Database Query Router
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabaseIndependentQueryService.java - PostgreSQL Metadata
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/PostgreSQLQueryService.java - Tenant Database
- Content Storage
fineract-document/src/main/java/org/apache/fineract/infrastructure/contentstore/service/FileContentStoreService.java - S3 Content Store
fineract-document/src/main/java/org/apache/fineract/infrastructure/contentstore/service/S3ContentStoreService.java - Tenant Authentication
fineract-security/src/main/java/org/apache/fineract/infrastructure/security/service/AuthTenantDetailsService.java
Other components
- API Client
Connections 10
- API Client → Client Search: requests search
README.md - Client Search → Client Repository: queries
fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/search/ClientSearchService.java - Client Search → Client Mapper: maps results
fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/search/ClientSearchService.java - Investor Search → Investor Repository: searches
fineract-investor/src/main/java/org/apache/fineract/investor/service/search/ExternalAssetOwnerSearchService.java - Investor Search → Investor Mapper: maps results
fineract-investor/src/main/java/org/apache/fineract/investor/service/search/ExternalAssetOwnerSearchService.java - Loan COB IDs → End-of-Day Processing: extends retrieval
fineract-loan/src/main/java/org/apache/fineract/cob/service/RetrieveLoanIdService.java - Progressive Schedule → Interest Schedule Model: parses into
fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/service/ProgressiveLoanInterestScheduleModelParserService.java - Amortization Schedule → Projected Schedule Model: parses into
fineract-working-capital-loan/src/main/java/org/apache/fineract/portfolio/workingcapitalloan/service/ProjectedAmortizationScheduleModelParserService.java - Database Query Router → PostgreSQL Metadata: dispatches queries
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabaseIndependentQueryService.java - PostgreSQL Metadata → Tenant Database: reads metadata
fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/PostgreSQLQueryService.java