[ 
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)

Reply via email to