Feature Requests
Share ideas, discuss and vote on requests from other users in community

Prevent invoices from being changed

Fredrik G shared this idea 6 years ago

Once an invoice has been "issued" accounting practice in some countries does not allow for the invoice to be modified.

I know from a technical perspective that it's almost always possible to change a invoice as long as it's stored electronically, however lawmakers are not technical people and certain leeway is generally accepted in the implementation of this law. Usually the legal system accepts as a good enough solution a system that does not facilitate the change, even if it does not make it completely impossible.

Today's implementation of invoicing in WHMCS however does not just facilitate the changing of sent invoices, it actually makes it itself. Client data needs to be stored with the invoice data, today the invoice data just points to the client ID, if the client data is changed then so is the invoice data for historical invoices. This is not ok.

The usual implementation is system is to have a "invoice sent to client flag" and once that is set the invoice is saved in it's total and can not be changed easily though the system. Some system enables you to "uncheck" the flag and then change the invoice.

I know there are some workaround for this by saving the PDFs of the invoices in a 3rd place or by using the fixed PDF data plugin available as a addon, but they are workarounds and does not solve the basic problem in the system.

Comments (18)


Reading up on this I don't agree that proforma invoices are to be considered fiscal documents. It's description of 'asking to pay' is spot on but your legal grounds to chase a customer are limited and sometimes non-existent. Proforma invoices are not final. They are often used when dealing with customs.

To be honest I don't have much problems with the fact that you can change invoices. It would be better if you can't, but training can do a lot here. Being able to send proper credit notes would be a welcome addition but my main concern is WHMCS changing invoices without our intervention. This should be changed first. WHMCS shouldn't be allowed to make changes unless you allow it to.

Companies in the US wouldn't treat WHMCS the same as companies from Europe. A toggle to switch this on and off would therefore be useful. If an invoice is changed we need a full audit trail, what happened, when and why. European law requires a reliable audit trail and I think that this would be useful for anyone, either way.


I totally agree. There really should be a way to make WHMCS NOT change an invoice after it has been created. This is a major problem even if it is possible to write custom addons that tries to stop this. It would be so much easier if WHMCS had a policy NOT to change invoices. 95% of our customers does not pay with cards and they must also follow european law. They find themselves in a total mess sometimes when their invoices are changed or even cancelled from our system. Our customer support would be so much relieved if this was prevented.


yes profroma invocies ARE NO fiscal document. repeat after me 50 times, a proforma invoice is not an invoice.

its more of an estimate and not a proper way to request any kind of money.

the only within the EU (and US at least bigger comapnys do it the same way) legal way is

-invocies are final

-onyl invocies are a proepr way to request payment

-wrong invoices (to be corrected) or canceling invoices are to be corrects via

- first a credit invoice to cancel old one out (or part of it)

- new invoice


1x ssl for 500€

__credit invoice would be ___

-1x ssl for -500€

__new invoice___

1xssl for 400€

also invocies should not be marked as unpaid or paid.

you CAN add transactions and stuff, thats nice for the customer and perfectly legal addon but not required

transaction /payment reciets are complete different thing

an invocie can combine both but dont have too. a payment reciet is made by the payment provider / bankstatement whatever

together with the invoice it will create a valid document for tax deduction

transactions on a invoice is just a nice infromation for the customer but not elgally valid for that reason

so the customer need anyway alawys the statement of payment in soem form togehter with the invoice


Please consider it for inclusion in the next update or at least within a reasonable time. The reason can be found on https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32006L0112

(look for Article 246 and then especially look at "In respect of the

invoices referred to in the second subparagraph of Article 233(1), the

details they contain may not be altered and must remain legible

throughout the storage period."). Is there a full list available of all

situations where WHMCS alters invoices without an admin doing it?


this wont happen eher in whmcs.

resons is, whmcs is badly structured, to a point where we face a dead end.

problem is that everythign relys on altering invoices in the past.

for example, transaction fees, or domains that wiont be renewed and expire (domains will then be deleted from invoices)

even worse for the dependence on invoices - prodcuts and renew cycles are actually linked to the invoice !!!

thats pure insanity, sorry dev team but it is what it is.

normaly, you would track everything related to a service within the service record.

but for some reason someone decided to instead track it within the invoices., at least some things related to autorenew domains on payment

to change all that would mean a huge rewrite of large junks of the program. very large junks.

but then a lot of addon devolper would scream cause aloen that invocie mess is subject to a dozent addons.

whmcs is the only programm that has an audit addon to track changes and lsot invoices, thats pure insity for a billing program. seriously... you had one job......

no whmcs is an automation tool, its a selling tool, its not a billing tool.

and peopel scream for changes over at least 4 years (what ive seen in the forums)

so i gave up on that

right now im evoluating other options cause i cant work like this ever