There is something I must be missing… ERPNext allows adjusting upward the amount accounted in a sales invoice via a debit note with qty = 0. This allows us to correct the price of an item (or various items). But there is no symmetrical behaviour with credit notes.
A common and very simple use case in Spain is when the seller makes a mistake pricing an item. Let’s say they charge the client 100 € for an item, submit the sales invoice, then realize it should have been just 90 € for that particular item. What is the recommended approach in ERPNext?
In Spain, this is normally fixed by creating a rectificative invoice with:
One row with the original item at the original price (with negative qty/rate to cancel it)
Another row with the same item at the corrected price (positive values)
The net result is -10 €. Since the grand total is negative, this seems like a use case for a credit note, but in ERPNext, credit note row quantities must ALL be negative (each of them individually).
Each has different legal implications. For example, you can’t cancel an invoice once it has been paid, but you can issue a rectificative invoice to correct it.
As far as I can see, invoice cancellation (in Spanish legal terms) is provided in ERPNext out of the box via the “Cancel” button. Invoice rectification could potentially be mapped to Debit Notes and Credit Notes with some adjustments, but I’m trying to understand why they are treated in a different manner in ERPNext.
Can you issue the Credit Note and uncheck Update Stock?
If you leave the item quantity as negative and change the rate to the difference amount of the price discrepancy, you’ll then be able to make a payment entry against the Credit Note to return funds to the customer.
One thing that confuses the heck out of me is this wording:
Update Outstanding for Self
Credit Note will update it's own outstanding amount, even if 'Return Against' is specified.
Yes, you’re right, but there are some important limitations to this approach.
Even with “Update Stock” unchecked, ERPNext still tracks the quantities that have been “returned” at the item level. Here’s a concrete example:
You invoice a client 100 € for an item, then realize it should be 90 €. You create a credit note with qty: -1 and rate: 10 €. So far, so good.
But if you later realize the correct price is actually 80 € (not 90 €), and try to issue another credit note against the same item with qty: -1 and rate: 10 €, ERPNext will block you with: “Cannot return more than 0.0 for Item ITEMNAME”.
ERPNext maintains item-level validations that limit the available operations, even when stock is not being updated.
Beyond this technical constraint, there’s also a conceptual issue: sometimes it’s more intuitive to think “the new price for this item should be X” rather than “apply a reduction of Y euros”. Ideally, you’d create a credit note with two rows:
One row: qty -1 at the original rate (reversal)
Another row: qty +1 at the new rate (recharge)
However, ERPNext’s row-level validations don’t allow positive quantities in credit notes.
Regarding “Update Outstanding for Self”: this field controls how payments against the original invoice are handled. In our example, if you uncheck it on the 10 € credit note, the original invoice will show as “Partially Paid” rather than reducing the outstanding amount.
Hope this clarifies the limitations.
Besides that, I’m still confused on why ERPNext treats Credit and Debit Notes in such a different way.