[
https://issues.apache.org/jira/browse/FINERACT-2938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18127569#comment-18127569
]
Sonigra Bhavya Hemendrabhai commented on FINERACT-2938:
-------------------------------------------------------
Hi Adam, I'd like to work on this ticket (and the follow-up FINERACT-2939). Are
you already working on it, or is it OK if I take it?
> Introduce "Down payment fee" charge type
> ----------------------------------------
>
> Key: FINERACT-2938
> URL: https://issues.apache.org/jira/browse/FINERACT-2938
> Project: Apache Fineract
> Issue Type: New Feature
> Components: Charges
> Affects Versions: 1.15.0
> Reporter: Adam Saghy
> Assignee: Adam Saghy
> Priority: Major
>
> *Summary:* Support a Down payment fee charge on loans, calculated on and due
> with the down payment period
> h4. Background
> Fineract already supports *Disbursement fee* charges
> (ChargeTimeType.DISBURSEMENT), either as a flat amount or as a percentage of
> the disbursed amount.
> h4. Goal
> Add a new charge time type, {*}Down payment fee{*}, that works like the
> Disbursement fee but is linked to the down payment period and the down
> payment amount.
>
> h4. Acceptance criteria
> # *Charge definition*
> * A charge can be created with the new charge time type *"Down payment fee"*
> (for example ChargeTimeType.DOWN_PAYMENT). It applies to loan charges only.
> * Supported calculation types:
> ** *Flat*
> ** *Percentage of the down payment amount* (a new calculation type such as
> PERCENT_OF_DOWN_PAYMENT_AMOUNT, or an agreed reuse of an existing one)
> * Validation rejects the charge type on non-loan products, on loan products
> without down payment enabled, and with unsupported calculation types.
> # *Automatic creation at disbursement*
> * When the loan has a Down payment fee and a disbursement creates a down
> payment period:
> ** the fee is calculated after the down payment amount is known (flat, or %
> of the down payment amount),
> ** the fee is added to the down payment period (like a disbursement fee on
> the disbursement period),
> ** the charge is {*}due on the due date of the down payment period{*}.
> * With multiple disbursements, each down payment period gets its own fee.
> # *Automatic down payment repayment*
> * If enableAutoRepaymentForDownPayment is on, the automatic down payment
> transaction also covers the Down payment fee, so the fee is paid together
> with the down payment principal.
> # *Skipping the fee at disbursement*
> * The disbursement API accepts a flag (for example skipDownPaymentFee) that
> tells the system *not* to create the Down payment fee automatically, so it
> can be added manually later.
> # *Adding the fee manually*
> * A Down payment fee can be added to an existing loan through the Add loan
> charge API.
> * The charge is matched to the right down payment period by {*}charge due
> date + charge type{*}. Validation fails if no down payment period exists on
> that date.
> * If enableAutoRepaymentForDownPayment is on, adding the fee *adjusts the
> automatic down payment transaction* so it includes the new fee amount
> (through reverse-replay or an equivalent mechanism).
> * *Multiple* Down payment fees can be added to the same loan and down
> payment period.
> # *Repayment allocation*
> * The fee sits in the down payment period, so it is paid {*}first, together
> with the down payment principal{*}.
> * The allocation order inside that period follows the configured allocation
> rules of the transaction that pays it (advanced payment allocation /
> transaction processing strategy).
> # *Lifecycle and existing charge features*
> The Down payment fee behaves like any other loan charge:
> * *Accrual:* the accrual transaction is created by the EOD job, as for all
> charges.
> * *Charge adjustment:* the fee can be adjusted through the charge adjustment
> functionality.
> * *Waive:* an unpaid fee can be waived.
> * *Charge-off:* the fee takes part in loan charge-off processing and
> accounting.
> * *Reverse-replay / undo:* backdated transactions, undo disbursement and
> undo of the down payment recalculate or remove the fee as expected.
> # *Accounting and reporting*
> * Journal entries for accrual, payment, waiver, adjustment and charge-off
> use the fee income / fee receivable mappings, as for other fees.
> * The fee shows up on the repayment schedule (down payment period fee
> column), in charge details and in loan summary totals.
> * Business events are raised for charge creation and changes, as for
> existing charges.
> *Testing*
> * Integration tests and E2E tests cover:
> ** flat and percentage fees
> ** automatic and manual creation
> ** the skip flag
> ** auto down payment adjustment
> ** multiple fees
> ** multi-disbursement
> ** waive
> ** charge adjustment
> ** charge-off
> ** accrual
> ** reverse-replay scenarios
> h4. Out of scope
> * Fee refund on Merchant issued refund and Payout refund (covered by the
> follow-up story).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)