Automatic Sales Receipt

I have an invoice for £81.48
Client paid £132.60 an overpayment of £51.12

I have an invoice for £690
Client paid £575 an underpayment of £115 BUT system has used the £51.12 overpaid automatically against this invoice.

I don’t want the overpayment automatically used against the second invoice as the underpayment is going to be paid in full shortly.

Why is this overpayment of £51.12 so special that it cannot be applied against the next outstanding invoice? Is this overpayment meant for some other invoice that will be issued in future?

Right now, customer is due (£115 - £51.12 = £63.88), so when they pay £115, they will be again £51.12 in credit. I’m trying to understand why it matters that overpayment on older invoice cannot be applied to newer invoice automatically.

The majority of this company’s clients are one-off and there are a few on-going companies. Companies are set up as individual sales customers but the one-offs are all under one name so as not to have hundreds of individual customers listed. As these are paying at time of invoicing it hasn’t caused a problem to date in the seven years of doing their accounts.
In this case the two cases are such that they are two different customers. The first will have their overpayment returned and the second, who was refusing to pay the VAT, is now going to send it.

Any further thoughts please.

I don’t like the idea of creating single “generic” customer as a basket for all once-off credit sales. So it’s something I need to think about and implement some solution to this.

As for fixing the current issue, you can create new liability account called Overpayments or something like that. And allocate the overpaid amount from this customer manually to Overpayments account so there is no overpayment on invoice itself (as not to trigger automatic credit allocation)

Then when this customer is refunded, simply categorize the refund to this account so it will come back to zero.

Thanks for your views they are very welcome. Will do as you suggest for now.