erpnext
erpnext copied to clipboard
ERPNext only checks Sales/Purchase invoices for negatives
https://discuss.erpnext.com/t/correct-way-to-refund-a-customer-payment/33914/6
Customers make proforma payment against a sales order, then cancel the order before delivery. Currently the process for resolving this is convoluted:
- Issue dummy sales invoice
- Reconcile this invoice against the open payment to clear off the ledger
- Issue return/credit for dummy invoice
- Issue payment to Customer with reference to this credit
I can't cancel the payment as there needs to be record of the funds entering and leaving the bank account.
I would like ERPNext to also check received customer Payment Entries for outstanding balances and allow you to issue a payment against them. This maintains logical consistency as open payments display as negative balances on the ledger.
Given a customer makes proforma payment against a sales order When they cancel the order Then ERPNext should allow payment to be made to the Customer linked to the initial (open) payment received
Basically, ERPNext needs a neat, simple, and logical way to refund payments that have been received from Customers via the Payment Entry form
Currently, as can be understood from the forum thread referenced above, a payment received through the Payment Entry document cannot be refunded in a straightforward manner because:
a) Payment Entry does not have the option of refund b) Using Journal Entry returns the payment in the ledgers but doesn't update the information in the original Payment Entry document. This causes the unallocated value in that payment entry to still show up when pulling advances against that Customer
Thanks
Was this somehow corrected? We are having the same problem; customer overpaid and there's no correct way to keep track of the return that was transferred to the customer.
Here's how I dealt with our problem, which I believe is the correct way to deal with this:
There's a "feature" in payment_entry.py, which incorrectly prevents entering the factually correct information. After correcting the function validate_allocated_amount to 'pass', things worked as intended. I've allocated the factually correct overpayment made by customer, which put the invoice in negative balance, and then entered the factually correct wiretransfer back to the customer and referenced the invoice, which brought it's balance to 0. No errors, no problems.
Why is this correct behavior being prevented is beyond me. :)
I don't believe this has been fixed yet, no. With regards your fix, are you over-allocating the payment on the invoice? Interesting solution, hopefully someone with more experience can confirm this works without breaking anything and release it to core.
@dboobisMF yes. Actually I look at it this way: in this case it's the customer who over-allocated the funds. There are laws here that say you need to obey customer's reference in regards to what they are paying for instead of allocating to whatever you wish/oldest invoice.
But I agree, someone from ERPNext should definitely look at it and:
- determine if the aforementioned "feature" is even needed, or was it just someone being trigger-happy;
- determine if there are no hidden problems with such a "fix".
Facing the same problem when the Customer incorrectly deposited into our account and we need to refund back the money.
No sales invoice involved.
We're experiencing the same issue; refunds issued via journal entry are still appearing in our accounts receivable summary reports. This is an issue which was originally brought up in the community discussions back in November 2017. When can we expect a fix for this?
Agreed, this should be a rather simple process, it happens in our company quite often.
Any update on this issue, this seems like a logical request of a very basic functionality ... We are facing this quite often and we have no direct easy way to refund an advance payment from a customer.
Why has this issue gone stale?
I will submit a PR soon that will put Stripe's charge ID into the Reference No. field since we need this. We'll be adding a quick button for "Stripe Refund" on the Credit Note's page
the same Problem "cannot pay to the customer without any negative outstanding invoice" when pay refund to the customer even we create a Reterun / Credit Note
the same problem here, is there anyway to solve this the right way
Thanks
the same problem here, is there anyway to solve this the right way
Thanks
The current way of solving this is using Journal Entry to mark the refund.
So you'd credit the bank account and debit the account receivable of the same amount. To link to customer, you need to select the partner on that account receivable line (party type = customer, party = customer name/account)
the same problem here, is there anyway to solve this the right way Thanks
The current way of solving this is using Journal Entry to mark the refund.
So you'd credit the bank account and debit the account receivable of the same amount. To link to customer, you need to select the partner on that account receivable line (party type = customer, party = customer name/account)
Will this resolve the Accounts Receivable report? It generally shows 2 transactions, Payment Entry and then Journal Entry
This issue has been automatically marked as inactive because it has not had recent activity and it wasn't validated by maintainer team. It will be closed within a week if no further activity occurs.
This cannot be closed as there are business transactions that violate the book keeping rules and if using JE it creates incorrect report into Accounts Receivable.
+1 for this issue to be solved. Much needed.
This cannot be closed as there are business transactions that violate the book keeping rules and if using JE it creates incorrect report into Accounts Receivable.
@aakvatech can you please explain what is incorrect if Credit Note is made via Journal Entry
@deepeshgarg007, @aakvatech my suggestion here would be to add a field, "is_advance" in payment entry doc and if the payment entry "is_advance" then the function "validate_payment_against_negative_invoice" can be skipped and the GL entries to be modified accordingly.
Request your feedback.
Has there been any development on this? A great suggestion by @harshpwctech. In general refunding prepayments is a common use-case for all webshops. In general any Payment needs to be refundable that has not been recorded with a Sales Invoice/Purchase Invoice, as the against document does not hit the books. A journal entry is pretty error-prone and hence not very user-friendly.
any update here?
any update on this issue , why cannot we allow paying to customer/receivable account?!
erpnext payment entry must allow pay to customer with adding a check on custiomer master that enable paying to that special customer and only allow some role to enable it It is really top required and most annoying problem we faced .
Thanks
any update?
If you take advance money against sales order, then 'cancel' the sales order from upper right corner. It will give an error message like the following one:
Cannot delete or cancel because Sales Order [SAL-ORD-2023-0008] is linked with Payment Entry [ACC-PAY-2023-00011] at Row: 1
Then click to link of payment entry. Cancel this payment entry from upper right corner. After that go back to sales order and cancel it. There will be no effect of journal or cash balance.
Looks like https://github.com/frappe/erpnext/pull/37828 closes this issue.