[
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 any accounting option is chosen 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 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}}
{{}}}
> 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 any accounting option is chosen 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.7#820007)