Reversal of overpayments is a weak spot in LedgerSMB 1.3: there’s no way to reverse or “undo” an overpayment incorrectly entered. By consequence this section describes the workaround that’s required to achieve the same effect.
This workaround needs an account which can be used to temporarily book income on.
Please note that the income will immediately be reversed, so technically any account can be used. To be able to assert that the entire process has been executed correctly, it’s advisable to create a separate account, however, since it can be checked to be zero at the end.
With the prerequisites in place, you should execute the following steps - assuming the amount of the overpayment needs to be placed back into a cash account.
Create an AR transaction for the company the overpayment has been entered on
Add a single line to the transaction, with the selected account
Put the overpayment amount to be canceled out in the Amount field for the line
Save and post the transaction
Pay the transaction from the overpayment
Create a “General Journal” transaction debiting the income account and crediting the cash account the overpayment was entered from
Steps 1 trough 4 prepare the Accounts Receivable module with a transaction which allows the overpayment to be used. After step 5, the overpayment has been cleared, but the amount is in the wrong place, since it sits in the income account instead of the cash account, which is what step 6 corrects.
The side-effect from this workaround is an AR transaction registered against a customer which can’t be reversed: doing so, would result in the reversed amount ending up in the AR summary account. Using a dummy company isn’t an option, because overpayments are registered to a specific customer. An overpayment can only be used to clear open items on that specific customer.
Note that the above procedure applies to an AR overpayment. However, the same steps apply to AP overpayments, replacing “customer” with “vendor”, “AR” with “AP”, “Income” with “Expense” and “debit” with “credit”.