Skip to main content

Cbe - v9.194

This page contains the following releases for v9.194:

v9.194

Release Dates

  • Sandbox: 12.08.2026

Features

Credit Arrangements

Enhanced refund handling for revolving credit accounts

Revolving credit products now support a FORWARD_ONLY refund recalculation method that treats refunds as principal-only repayments, reducing outstanding balances while preserving billed interest and fees, with excess amounts automatically routed to the account's credit balance.

Improved overflow handling for forward-only refunds

The FORWARD_ONLY refund method now seamlessly handles excess refund amounts by automatically routing overflow to the revolving account's Credit Balance when refunds exceed the remaining principal balance.

Time-based refund restrictions for revolving products

Revolving credit products can now enforce refund policies through a new Max Number of Days for Refund setting that automatically rejects refund requests outside the configured time window from the original disbursement date.

Penalty application after loan maturity

Resolved an issue preventing penalty applications after a loan's maturity date on products using the Outstanding Principal × # of Late Days × Penalty Rate calculation method.

Deposits

Improved transaction audit tracking

Deposit transactions now properly capture user, branch, centre, and product type information for enhanced audit trails and access control compliance.

Additional work

  • Internal cash outflow distribution engine implementation.

Notifications

Groundwork for upcoming features

  • Notification templates for forward-only refund workflows on revolving credit accounts.

Data

Additional work

  • Cloud service account provisioning specifications.

Improvements

Accounting

Automated General Ledger support for forward-only refund workflows

The core banking engine now automatically records accounting journal entries for REFUND_FORWARD_ONLY transactions and REFUND_FORWARD_ONLY_ADJUSTMENT transactions on revolving credit products, ensuring financial data is properly logged and tracked in the ledger.

Lending

Decimal manual fees now supported on whole unit rounding loan products

Manual fees with decimal amounts are now correctly processed on Declining Balance Discounted loan accounts using ROUND_TO_NEAREST_WHOLE_UNIT repayment rounding, resolving an issue where such fees previously failed silently.

Enhanced security validation for loan product ID patterns

Input validation now prevents Cross-Site Scripting vulnerabilities in loan product ID pattern fields by restricting input to authorized template characters (# for numbers, @ for letters, $ for alphanumeric).

Groundwork for upcoming features

  • Custom repayment allocation capabilities for Fixed Term loans.

Additional work

  • Internal lending team development workflow improvements.

Deposits

Improved transaction processing stability

Architectural guardrails have been implemented to prevent mutability issues in singleton service classes within the deposits transaction processing path, enhancing system stability through strict compile-time validation and state immutability enforcement.

Groundwork for upcoming features

  • Next-generation deposit transaction processing with API v2 compatibility.

Developer

Additional work

  • Internal development tooling maintenance.

Bug fixes

Lending

Installment fee tax residuals resolved for Dynamic Term Loans

We resolved an issue where settling taxable fees across multiple payments on Dynamic Term Loans could leave a 1-cent tax residual, causing installments to show as Paid while displaying incorrect negative Fees Due amounts. The fee tax calculation engine now handles split fee repayments cleanly without leaving rounding residuals.

Backdated repayments complete successfully on Declining Balance loans

Backdated repayments on Dynamic Term Loans using Declining Balance Equal Installments with Round Remainder into Last Repayment now complete successfully. Previously, the operation could fail with an inconsistency error when the rounding adjustment could not be absorbed by the last non-zero installment alone.

Payment holidays can be added without grace period validation errors

We resolved an issue where adding a payment holiday to a dynamic-term loan's repayment schedule was incorrectly rejected by the system's grace-period validation logic. The system now safely bypasses unreliable post-compute grace-period validation when modifying schedules for payment holidays.

Advance payment installment status preserved during tax rate changes

We resolved an issue where applying a tax rate change could retroactively alter the status of installments previously settled by advance payments. Installments covered by advance payments now reliably maintain their Paid status when subsequent tax rate changes take effect on the schedule.

Schedule penalty totals now match installment-level amounts

The total Penalty Due displayed at the bottom of the schedule now matches the sum of penalty amounts shown on each installment. Previously, the total could include taxes while the per-installment amounts excluded them, causing Custom Repayments to fail with Excess Payment errors.

Clear error messages for Reduce Penalty Due adjustments

Attempting to adjust a Reduce Penalty Due transaction now returns a clear message explaining that this transaction type must be adjusted manually. Previously, the operation failed with a generic internal error with no indication of the next step.

Custom Repayment principal amounts now display correctly on Schedule screen

We resolved a display inconsistency where applying a Custom Repayment split between principal and a fee balance did not update the Schedule screen properly. The Schedule screen now accurately reflects the principal amount paid for Custom Repayments involving fee balance allocations.

Interest Rate Changes preserve completed installment status

We resolved an issue where applying an Interest Rate Change with an effective date falling prior to an already PAID installment could incorrectly revert the installment status to unpaid. The system now guarantees that retroactive or backdated IRC updates will not modify completed, PAID installments.

Prepayment interest calculations corrected for zero-day grace periods

We resolved an issue on Dynamic Term Loan accounts where entering a prepayment could result in an installment incorrectly showing more interest paid than was actually due. This occurred specifically with Declining Balance Equal Installments, Reduce Amount per Installment, and Interest Forgiveness grace periods set to exactly zero days.

Transaction adjustments now select correct transactions by entry date

We resolved an issue where adjusting a loan transaction could incorrectly pull in unrelated transactions that had an earlier entry date but a later creation date. Transaction adjustment now strictly filters and selects affected transactions by their entry date instead of their system creation timestamp.

Backdated payments succeed with unique custom fields

We resolved an issue where processing a backdated payment failed if the operation required the system to adjust and reapply subsequent downstream transactions that contained unique custom fields. The transaction reapplication logic has been corrected to safely process downstream records without triggering unique constraint conflicts.

Interest transaction adjustments work after delayed EOD processing

We resolved an issue where interest applied transactions could not be adjusted if they were posted following a missed or delayed End-of-Day process. The entry date assignment logic has been corrected to handle delayed EOD processing windows accurately.

End-of-day processing no longer crashes for Payment Holiday Interest Accrual

We fixed an issue where end-of-day cron jobs failed unexpectedly during interest accrual processing for loan products utilizing the Payment Holiday Interest Accrual feature but lacking the corresponding General Ledger account mapping configuration. The system's interest accrual processing has been corrected to prevent these unhandled crashes.

Large prepayments no longer leave accounts permanently in arrears

We resolved an issue where a large early prepayment on Dynamic Term Loans using Declining Balance Equal Instalment with the Reduce Amount Per Installment recalculation method could leave the account permanently in arrears. The system now forces outstanding residual principal into the final installment so the schedule fully amortizes.

Pay-off previews exclude penalties during arrears tolerance period

We resolved an issue where the loan pay-off preview API incorrectly included late-payment penalties for installments that were still within their arrears tolerance period. Pay-off calculations now evaluate and apply the arrears tolerance period consistently with the repayment schedule.

Schedule due-date edits preserve paid installments

We resolved an issue where editing repayment schedule due dates on Dynamic Term Loans could leave trailing installments empty and improperly reopen previously paid installments. The schedule engine now correctly recalculates installment payment amounts whenever due dates are modified while preserving installments already marked as paid.

Document templates preserved during loan product updates

We resolved an issue where updating a loan product via the API inadvertently deleted attached document templates from the database. The loan product update logic has been corrected to preserve all linked document templates and their content during product configuration changes.

Due date edits now save successfully for weekly-aligned loans

We resolved an issue where editing an installment due date via the loan schedule API would return a success response but silently fail to save the change on weekly-based repayment schedules not linked to a meeting center. The schedule modification logic has been corrected to successfully apply and save changes.

Schedule edits properly redistribute principal across remaining installments

We resolved an issue where editing the repayment schedule of a Dynamic Term Loan could result in the final installments becoming empty instead of properly redistributing the outstanding principal. The schedule recalculation engine now ensures that any freed principal is accurately redistributed across the remaining installments.

Loan product updates work with adjustable interest rate settings

We resolved an issue where the PATCH /loanproducts/{key} API endpoint failed when updating loan products configured with the new-style interestRateSettings array used for adjustable interest rate sources. The partial update logic has been corrected to properly handle the interestRateSettings array.

Loan search API now filters correctly by risk level

When searching for loan accounts via the API using a risk level filter, the filter was being ignored and all loan accounts were returned instead of only those matching the specified risk level. The loan search API now correctly filters results by risk level, consistent with the UI.

Deposits

Fee details now included in deposit transaction journal entries

The GET /v2/gljournalentries API response now includes a feeDetails object for GL journal entries originating from deposit fee transactions, containing the transaction type, fee amount, fee name, and fee type. Additionally, four new columns are now available in the Accounting → Journal Entries UI table: Fee Name, Fee Type, Fee Amount, and Fee Transaction Type.

Developer

Streaming API subscription timestamps use tenant timezone

We resolved an issue in the Streaming API where subscription creation responses returned created_at and updated_at timestamps in UTC offset, bypassing the tenant's organization timezone settings. The timestamps in Streaming API subscription responses are now formatted using the tenant's configured organization timezone offset.


For more information, see Mambu Release Cycle.