[
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 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}}
{{}}}
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 Rule
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 with least validation possible. However there are
some additional rules.
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 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}}
> {{}}}
>
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)