Hello Team,


I’d like to propose significant improvements to the Teller module in
alignment with FINERACT-204
<https://issues.apache.org/jira/browse/FINERACT-204>.

While global financial services are increasingly shifting toward cashless
transactions — with account-to-account transfers becoming the norm — the
reality remains that branch banking is still widely practiced, especially
in emerging markets. As such, cash handling and teller operations continue
to be critical components of day-to-day banking.

Most mature core banking platforms offer robust teller modules that support
cash management, reconciliation, and audit trails. By strengthening
Fineract’s teller capabilities, we can:

   - Better support institutions operating in cash-heavy environments
   - Improve adoption rates by offering parity with commercial systems
   - Increase conversion from legacy platforms to Fineract

I believe this enhancement aligns with the broader goal of making Fineract
more versatile and enterprise-ready. If the community supports this
direction, I’m committed to contributing the necessary improvements to
deliver a more mature and feature-complete Teller module.



The following outlines the backend enhancement plan for the Teller Module





   1. We maintain the m_tellers entity in the code base and christen it as
   branch vaults, then modify it to have attached to it a dedicated GL cash
   account - users can set it up as a multi-branch GL like all other GLs or a
   dedicated Vault  Cash GL per branch
   2. We Maintain the m_cashiers entity and christen it as Teller Tills,
   then modify it to have attached to it dedicated GL cash account - this
   means that each teller can have a dedicated GL account
   3. At the moment, there's a setup in the accounting module to link
   Teller and Cashier to GL accounts but the associated transactions in the
   journal entries entity cannot be directly linked to cash allocation and
   settlement transactions performed by cashiers making tracking of branch
   cash balances and overages/shortages impossible
   4. The platform also doesn't even provide for other cash transactions
   other than movement and settlement of cash between cashier and teller.
   5. We will include the transaction types to enable us to perform cash
   deposit and cash withdrawal at the branches.
   6. The m_cashier_transaction entity will be modified to include
   debit_account and credit_account to capture a cash deposit or withdrawal
   transaction
   7. For cash deposit, accounting entry will be - CREDIT the customer
   account and DEBIT the GL associated with the Till performing the transaction
   8. For cash withdrawal, the accounting entry will be - DEBIT the
   customer account and CREDIT the GL associated with the Till performing the
   transaction
   9. Each branch will have one vault (which means one GL for the branch
   vault) but multiple tills can be created and associated with this vault for
   the branch - this means multiple Cash GLs, one for each cashier in the
   branch
   10. A till with its associated GL account can either be for a human
   teller or an ATM machine
   11. Cash should be transferred into the tills (the associated GL account
   should have a positive balance) before withdrawals are performed against
   the tills - this will be simpler if we maintain balances for these GL
   accounts (more on balance maintenance in another proposal)
   12. Balance update for both the tills, vault, customer accounts are
   going to be online
   13. Till cash can be transferred back to the vault after the day's
   transactions
   14. At any point, the total cash in the branch will reflect the sum of
   balances on all cashier tills in the branch and the balance on the branch
   vault account - this is essential to cash position management and therefore
   risk management at the branches
   15. Branch cash position management implies we have to introduce the
   concept of interbranch entries - at any point in time the sum of all inter
   branch balances must be zero
   16. We can also enable denomination management to enhance cashier cash
   balancing procedures for those working with denominations
   17. There will be overage/shortage accounts in the branch that will hold
   cash in the branch that would have been recorded in the system but cannot
   be accounted for
   18. With this, financial institutions can ensure some controls by
   requiring that all cashier till balances are zero at the close of each
   working day
   19. We will also introduce mandates on accounts. Mandate is a regulatory
   requirement in many countries. Introduction of mandates will make it easier
   to support joint accounts
   20. At the moment, we could use the groups feature to handle joint
   accounts once mandates are available





Front-end Changes

   1. We'll rework the teller management screens within the *Organization*
   setup menu to reflect the changes
   2. We'll have a dedicated screen for teller transactions - precisely,
   cash deposit and cash withdrawal - cheques will come in later
   3. The dedicated screen will have a lazy list of all accounts with
   search criteria to enable tellers search for specific accounts
   4. The details displayed on the account should include the available
   balance on the account, the status of the account, the last few
   transactions on the account, and most importantly the mandate on the account
   5. We will also include an option to verify the identity of the
   originator of the transaction. In here, we can show the image of the
   account owner, their signature or do biometric verification if there is an
   integration into an external verification service or all of the above
   6. A withdrawal transaction without corresponding balance on the cashier
   till account will fail
   7. Each cashier can print their call over report at any point in time
   8. This dedicated cashier screen will only show up in the menus of  users
   who have been designated and setup as cashiers


Please let me know what you think.

regards,

Jamal

Reply via email to