Thanks Mohammed, you can go ahead please. 
In terms of naming convention, I think we should use "force debit" because its 
a banking terminology:
API: withdrawal-force-debit

Permissions: WITHDRAW SAVINGSACCOUNT FORCE DEBIT, WITHDRAW SAVINGSACCOUNT FORCE 
DEBIT CHECKER System configuration: allow-force-debit-on-savings-account, 
force-debit-on-savings-account-limit OR 
allow-negative-balance-on-savings-account, 
negative-balance-on-savings-account-limit
Regards
Anu Omotayo

    On Friday, February 6, 2026 at 05:39:58 AM GMT+1, Mohammed Saifulhuq 
<[email protected]> wrote:  
 
 
Hi Ayush,

Thank you for sharing that real-world scenario. That is exactly the 'silent 
failure' risk we want to avoid.

It seems we are converging on the 'Negative Balance with Limits' approach as 
the most robust solution because:
   
   -    
Accounting: It respects GAAP/IFRS liability recognition immediately (General 
Ledger accuracy).

   -    
Transparency: As you noted, it prevents the 'missing money' confusion for the 
end-user.

   -    
Safety: The proposed min-overdraft-limit configuration prevents the infinite 
debt risk I mentioned earlier.


@Anu / @Paul — seeing as we have consensus on both the technical and functional 
sides, are you happy for me to proceed with drafting the implementation plan 
for the Negative Balance with Configurable Limits model?

Best,Mohammed Saifulhuq

On Thu, Feb 5, 2026 at 10:07 PM AYUSH SINGH <[email protected]> wrote:

Hi everyone,
The discussion regarding "user confusion" vs. "accounting accuracy" is very 
relevant. I recently saw a real-world case where a user didn't maintain a 
minimum balance, resulting in a -₹3,000 state due to bank charges.When they 
eventually deposited funds, the money was "auto-deducted" to cover the debt. 
Because the system didn't make the negative balance transparent, the user was 
left confused, thinking their deposit had simply disappeared until they 
contacted the bank.
This supports Mohammad's point about the importance of General Ledger accuracy 
and transparency. If we use a "shadow" or "pending" balance as Alberto 
suggested, we might actually increase user support tickets because the debt 
isn't visible to the customer until their new deposit vanishes.
I suggest we prioritize a model that reflects the true liability on the user's 
dashboard to avoid this "missing money" experience.
Best,Ayush Singh

On Thu, Feb 5, 2026, 9:37 PM Mohammed Saifulhuq <[email protected]> 
wrote:

Hi Alberto,That is an interesting approach, but I see a few architectural risks 
with a 'Pending Transaction' model versus a true 'Negative Balance' model for 
this specific use case:Regulatory Reality: When a 'Force Post' occurs (e.g., a 
tax levy or regulatory fee), the liability is often immediate. The customer is 
in debt to the bank at that exact second. Keeping the balance at 0 and hiding 
the debt in a 'pending' state might misrepresent the actual General Ledger (GL) 
position of the bank.Interest Calculation: If the account is effectively 
overdrawn, the bank usually needs to accrue interest on that debt immediately. 
Fineract's existing interest engine handles negative balances (overdrafts) 
naturally. If we use a 'pending' queue, we would need to rebuild the interest 
calculation logic to look at the 'shadow' balance, which adds significant 
complexity.Complexity on Deposit: Your approach requires a new event listener 
on every deposit to 'sweep' the pending queue. This introduces concurrency 
challenges.I believe the 'Negative Balance with Limits' approach stays closer 
to standard GAAP/IFRS accounting principles where a liability is recognized 
immediately on the ledger.Thoughts?
Best,Mohammed Saifulhuq
On Thu, 5 Feb, 2026, 9:27 pm Jose Alberto Hernandez, <[email protected]> 
wrote:

Hello!

I would like to propose a more robust method:

1. Keep the Savings Account as is, don't update the allowed overdraft or 
something else,2. Generate a new transaction type that will be applied once the 
account has some balance, this can be added to the Savings Account with a new 
command
3. Include a new Balance amount, similar as we have now, totalBalance amount 
and available amount, to include those transactions, this new balance usually 
will be negative when the Savings Account has these transactions to be applied
The idea of this new transaction type is to record the different pending stuff 
to be applied the next time the account has some deposit
What do you think?
Thanks and regardsAlberto
On Wed, Feb 4, 2026 at 8:09 PM Mohammed Saifulhuq 
<[email protected]> wrote:

Hi Anu and Campbell,This is a critical feature for regulatory compliance, 
especially for institutions handling automated service charges or tax 
deductions where rejecting the debit is not a legal option.I agree with Anu's 
architectural approach, particularly separating this into a distinct API 
command (withdrawal-force-post). Mixing this logic into the standard withdrawal 
flow could create dangerous loopholes where overdrafts happen accidentally.One 
additional consideration:If we enable allow-negative-balance, we should also 
consider if this requires a 'Limit' configuration (e.g., 'Max Overdraft 
Amount'). Allowing infinite negative balance might pose a risk if a force-post 
API is abused or looped.I am happy to pick up the implementation of the Global 
Configuration and the Permission structure if we have consensus on the 
design.Best,Mohammed Saifulhuq
On Thu, 5 Feb, 2026, 6:08 am Anu Omotayo via dev, <[email protected]> 
wrote:

Hello,
I had a similar discussion with my colleague on savings account with negative 
balance about two weeks ago. The ask was to debit customer savings accounts for 
regulatory reasons even if the account balance is 0.
Also, I had a negative balance in my account with a commercial bank days ago 
due to a bank charge that I wasn't expecting.
Below is a suggestion on how I think this feature can be implemented in 
fineract.
1. An "allow-negative-balance-on-savings-account" can be added to the global 
configuration to enable/disable this feature.
2. It should be implemented as a separate API due to its sensitive nature e.g 
(e.g 
~/fineract-provider/api/v1/savingsaccounts/14/transactions?command=withdrawal-force-post).
 The "allow-negative-balance-on-savings-account" setting should be checked 
before the transaction is posted.
3. New permissions such as WITHDRAW SAVINGSACCOUNT FORCE DEBIT, WITHDRAW 
SAVINGSACCOUNT FORCE DEBIT CHECKER should be created and used for the new API.  
  
Regards
Anu Omotayo

 

    On Sunday, January 11, 2026 at 01:12:07 AM GMT+1, Campbell Burgess 
<[email protected]> wrote:  
 
  
Paul.... Very well laid out.  Thank you.
 
Bottom line... negative consumer deposit (savings accounts in Fineract) 
routinely go negative, with and without, formal arrangements and with (but also 
without) account holder opt-in.
 
If what I am now guessing is correct, that Fineract does not readily support a 
force-post, what is the best path forward.
 
Again, we are happy to do all the lifting and contribute the work product to 
the community, of course, expecting independent review and oversight.
 
Campbell
 

 
 On 1/10/2026 10:37 AM, Paul wrote:
  
Regulation E (Electronic Fund Transfers): For one-time debit card and ATM 
transactions, banks cannot charge an overdraft fee unless the consumer has 
explicitly opted in. However, even without an opt-in, a bank is legally 
permitted to pay the transaction (creating a negative balance) as long as it 
does not charge a fee.
 -- 
  
Herring BANCORP  ®
 
C. Campbell Burgess
 President/CEO
 Office: (806) 373-3921 | Direct: (806) 242-3704
 
[email protected]
 
 
 Herring Bancorp
 2201 Civic Circle, Suite 1000
 Amarillo, TX 79109
 
 www.herringbank.com
 
CONFIDENTIALITY NOTE: This e-mail is intended only for the use of the 
individual or entity to which it is addressed and may contain information that 
is privileged, confidential and exempt from disclosure under applicable law. If 
the reader of this e-mail message is not the intended recipient, or the 
employee or agent responsible for delivery of the message to the intended 
recipient, you are hereby notified that any dissemination, distribution or 
copying of this communication is prohibited. If you have received this e-mail 
in error, please notify us immediately by telephone at (303) 565-7001 and also 
indicate the sender's name. Thank you.
 
 
 
 
 
 
 
 
  

    




  

Reply via email to