[
https://issues.apache.org/jira/browse/FINERACT-1573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
John Woodlock updated FINERACT-1573:
------------------------------------
Description:
This transaction records an overpaid amount that has been returned to the
customer.
If Periodic Accruals is chosen as the accounting option at loan product level
then
Debit: Loans Receivable
Credit: Over Payments
Reversal/Adjustment is required (using existing api
loans/\{loanId}/transactions/\{transactionId})
*Main Rules*
The loan must be in Overpaid status and the refund Amount must be >0 and <= the
loan total_overpaid_derived amount
If the refund is partial the loan will remain in Overpaid status and the loan
total_overpaid_derived reduced accordingly.
For a full refund (amount = loan total_overpaid_derived) the loan status will
be changed to Closed Obligation Met.
*Other Rules*
The intention is to record the refund transaction with the least validation
possible. Holiday/Working Days restrictions are not considered. Nor is the
active/inactive status of the client/group.
However, the Refund Date being After the Last Repayment is enforced.
*API Definition* is:
{{POST /loans/\{loanID}/transactions?command=creditBalanceRefund{color:#7a869a}
{color}}}
{\{{}}
{{ "transactionAmount": "1394.06",}}
{{ "transactionDate": "09 March 2022",}}
{{ "locale": "en",}}
{{ "dateFormat": "dd MMMM yyyy",}}
{{ }}
{{ "externalId": "ext43434343" #optional}}
{{ }}
{{ #payment details not supported}}
{{}}}
{{ }}
The template (for UI convenience) is
GET /loans/\{loanId}/transactions/template?command=creditBalanceRefund
{\{{}}
{{ "type": {}}
{{ "id": 20,}}
{{ "code": "loanTransactionType.creditBalanceRefund",}}
{{ "value": "Credit Balance Refund",}}
{{ "disbursement": false,}}
{{ "repaymentAtDisbursement": false,}}
{{ "repayment": false,}}
{{ "contra": false,}}
{{ "waiveInterest": false,}}
{{ "waiveCharges": false,}}
{{ "accrual": false,}}
{{ "writeOff": false,}}
{{ "recoveryRepayment": false,}}
{{ "initiateTransfer": false,}}
{{ "approveTransfer": false,}}
{{ "withdrawTransfer": false,}}
{{ "rejectTransfer": false,}}
{{ "chargePayment": false,}}
{{ "refund": false,}}
{{ "refundForActiveLoans": false,}}
{{ "creditBalanceRefund": true}}
{{ },}}
{{ "date": [}}
{{ 2022,}}
{{ 4,}}
{{ 12}}
{{ ],}}
{{ "currency": {}}
{{ "code": "USD",}}
{{ "name": "US Dollar",}}
{{ "decimalPlaces": 2,}}
{{ "inMultiplesOf": 0,}}
{{ "displaySymbol": "$",}}
{{ "nameCode": "currency.USD",}}
{{ "displayLabel": "US Dollar ($)"}}
{{ },}}
{{ "amount": 5000.000000,}}
{{ "manuallyReversed": false,}}
{{ "numberOfRepayments": 0}}
{{}}}
was:
This transaction records an overpaid amount that has been returned to the
customer.
If Periodic Accruals is chosen at loan product level then
Debit Loans Receivable
Credit Over Payments
Reversal is required (using existing api
loans/\{loanId}/transactions/\{transactionId})
*Main Rules*
The loan must be in Overpaid status and the refund Amount must be >0 and <= the
loan total_overpaid_derived amount
If the refund is partial the loan will remain in Overpaid status and the loan
total_overpaid_derived reduced.
For a full refund (amount = loan total_overpaid_derived) the loan status will
be changed to Closed Obligation Met.
*Other Rules*
The intention is to record the refund transaction with the least validation
possible. Holiday/Working Days restrictions are not considered. Nor is the
active/inactive status of the client/group.
However, the Refund Date being After the Last Repayment is enforced.
*API Definition* is:
{{POST /loans/\{loanID}/transactions?command=creditBalanceRefund{color:#7a869a}
{color}}}
{\{{}}
{{ "transactionAmount": "1394.06",}}
{{ "transactionDate": "09 March 2022",}}
{{ "locale": "en",}}
{{ "dateFormat": "dd MMMM yyyy",}}
{{ }}
{{ "externalId": "ext43434343" #optional}}
{{ }}
{{ #payment details not supported}}
{{}}}
{{ }}
The template (for UI convenience is
GET /loans/\{loanId}/transactions/template?command=creditBalanceRefund
{\{{}}
{{ "type": {}}
{{ "id": 20,}}
{{ "code": "loanTransactionType.creditBalanceRefund",}}
{{ "value": "Credit Balance Refund",}}
{{ "disbursement": false,}}
{{ "repaymentAtDisbursement": false,}}
{{ "repayment": false,}}
{{ "contra": false,}}
{{ "waiveInterest": false,}}
{{ "waiveCharges": false,}}
{{ "accrual": false,}}
{{ "writeOff": false,}}
{{ "recoveryRepayment": false,}}
{{ "initiateTransfer": false,}}
{{ "approveTransfer": false,}}
{{ "withdrawTransfer": false,}}
{{ "rejectTransfer": false,}}
{{ "chargePayment": false,}}
{{ "refund": false,}}
{{ "refundForActiveLoans": false,}}
{{ "creditBalanceRefund": true}}
{{ },}}
{{ "date": [}}
{{ 2022,}}
{{ 4,}}
{{ 12}}
{{ ],}}
{{ "currency": {}}
{{ "code": "USD",}}
{{ "name": "US Dollar",}}
{{ "decimalPlaces": 2,}}
{{ "inMultiplesOf": 0,}}
{{ "displaySymbol": "$",}}
{{ "nameCode": "currency.USD",}}
{{ "displayLabel": "US Dollar ($)"}}
{{ },}}
{{ "amount": 5000.000000,}}
{{ "manuallyReversed": false,}}
{{ "numberOfRepayments": 0}}
{{}}}
> Credit Balance Refund loan transaction
> --------------------------------------
>
> Key: FINERACT-1573
> URL: https://issues.apache.org/jira/browse/FINERACT-1573
> Project: Apache Fineract
> Issue Type: New Feature
> Components: Loan
> Affects Versions: 1.7.0
> Reporter: John Woodlock
> Assignee: John Woodlock
> Priority: Major
>
> This transaction records an overpaid amount that has been returned to the
> customer.
> If Periodic Accruals is chosen as the accounting option at loan product level
> then
> Debit: Loans Receivable
> Credit: Over Payments
> Reversal/Adjustment is required (using existing api
> loans/\{loanId}/transactions/\{transactionId})
>
> *Main Rules*
> The loan must be in Overpaid status and the refund Amount must be >0 and <=
> the loan total_overpaid_derived amount
> If the refund is partial the loan will remain in Overpaid status and the loan
> total_overpaid_derived reduced accordingly.
> For a full refund (amount = loan total_overpaid_derived) the loan status will
> be changed to Closed Obligation Met.
>
> *Other Rules*
> The intention is to record the refund transaction with the least validation
> possible. Holiday/Working Days restrictions are not considered. Nor is the
> active/inactive status of the client/group.
> However, the Refund Date being After the Last Repayment is enforced.
>
> *API Definition* is:
> {{POST
> /loans/\{loanID}/transactions?command=creditBalanceRefund{color:#7a869a}
> {color}}}
> {\{{}}
> {{ "transactionAmount": "1394.06",}}
> {{ "transactionDate": "09 March 2022",}}
> {{ "locale": "en",}}
> {{ "dateFormat": "dd MMMM yyyy",}}
> {{ }}
> {{ "externalId": "ext43434343" #optional}}
> {{ }}
> {{ #payment details not supported}}
> {{}}}
> {{ }}
>
> The template (for UI convenience) is
> GET /loans/\{loanId}/transactions/template?command=creditBalanceRefund
> {\{{}}
> {{ "type": {}}
> {{ "id": 20,}}
> {{ "code": "loanTransactionType.creditBalanceRefund",}}
> {{ "value": "Credit Balance Refund",}}
> {{ "disbursement": false,}}
> {{ "repaymentAtDisbursement": false,}}
> {{ "repayment": false,}}
> {{ "contra": false,}}
> {{ "waiveInterest": false,}}
> {{ "waiveCharges": false,}}
> {{ "accrual": false,}}
> {{ "writeOff": false,}}
> {{ "recoveryRepayment": false,}}
> {{ "initiateTransfer": false,}}
> {{ "approveTransfer": false,}}
> {{ "withdrawTransfer": false,}}
> {{ "rejectTransfer": false,}}
> {{ "chargePayment": false,}}
> {{ "refund": false,}}
> {{ "refundForActiveLoans": false,}}
> {{ "creditBalanceRefund": true}}
> {{ },}}
> {{ "date": [}}
> {{ 2022,}}
> {{ 4,}}
> {{ 12}}
> {{ ],}}
> {{ "currency": {}}
> {{ "code": "USD",}}
> {{ "name": "US Dollar",}}
> {{ "decimalPlaces": 2,}}
> {{ "inMultiplesOf": 0,}}
> {{ "displaySymbol": "$",}}
> {{ "nameCode": "currency.USD",}}
> {{ "displayLabel": "US Dollar ($)"}}
> {{ },}}
> {{ "amount": 5000.000000,}}
> {{ "manuallyReversed": false,}}
> {{ "numberOfRepayments": 0}}
> {{}}}
>
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)