How can we improve WHMCS?

Share, discuss and vote for what you would like to see added to WHMCS

Updating Client Currency on Account - Invoicing Retained with Old Currency.

  • PretecsChris shared this idea 11 years ago
  • Admin Area
  • 41 Comments


165 Votes
Login to Vote
If a client requests us to switch their currency on their account, that all previous invoicing remain in the old currency and new invoices will be shown in the new currency. From an accounting purpose, this is a huge issue with the archived information not matching what currency they paid in, and this should be retained for perpetuity.

It would also be helpful if the client could set on a product level, not on a client level, what currency they wish to pay in.
Merged Ideas
    currency per invoice - add field to database determine the payment currency type
    Hello,We have customers that they pay sometimes with eur, sometimes with usd. To set the currency to the invoice, not to the customer will be best update and will finish the currency problemsThank you

60 Comments

Login to post a comment.

I agree. You can't change invoices once emitted. Actually, that is the law everywhere. I don't know anywhere, US, Europe, or any other country where that is actually allowed.

The strange thing is that I don't understand why WHMCS is even doing this. Its extremely easy just to apply the new currency to new invoices, and leave the past ones alone because WHMCS does not actually update the amount on the old invoices, it just updates the currency symbol on them. This is not a rocket science and I had to disable the currency feature for this reason as well.
Retaining the currency alone is not sufficient. Past invoices have to be retained exactly as they were sent out. In many countries this is simply the law, not something up for debate.

Currently we can't allow a customer to change their currency or their address without either breaking the law (because it modifies past invoices!) or creating an entirely new profile for them.

IMHO the inability to be compliant with the law without creating a new profile is a serious bug, not a missing feature.
Just another demonstration of how extremely poor this functionality is thought out:
If you have taken steps to change the currency to, for example, EUR: you already had to jump through multiple hoops due to WHMCS not allowing people to switch currency (as it pretends they always paid in that currency, which already is a huge flaw). So you had to run some queries to fix the currency values...Next up: you have to retain the USD packages and create new EUR packages for new orders right? That way, your existing clients keep paying in USD, and your new clients finally get the new currency...Well... To make that story even better: that ensures that everyone who once paid in USD and has their account set to USD: they can't place new orders anymore because the system won't allow them to order in EUR! I'm not even joking... Their entire order will be thrown out, or when they're logged in: it will not throw an error during order but just show blank boxes... Great going WHMCS... This function is so very *very* messed up for a billing "solution", it's really extraordinary ridiculous. To make it this flawed requires really quite some skill.
Guys, these problems can be prevented by using our Cached invoices module.

It saves all the necessary data about each created invoice to the database, including the currency and even it's number format. The module even displays the right currency for the invoice while you're viewing it from the admin area.
So, in a nutshell...the process looks like this:

invoice gets generated -> data gets written to a database thus preventing stupid changes for all of the older invoices if the user decides to use a different currency after that -> if invoice is paid, module creates a PDF file locally (optional) thus preventing ANY changes in the future...invoice stays the same forever, even if you change your WHMCS theme and the user gets the same invoice data, no matter when he tries to view/download it. So, you're happy, your accountant is happy...
You can even edit the data for each saved invoice and change the currency afterwards if you want, among other things.

Check out the WHMCS forums thread -> http://forum.whmcs.com/showthread.php?95294-M-BIT-Cached-Invoices-Addon-Module-for-WHMCS-Keep-your-invoices-intact-forever!


We're open to all sugestions, don't be shy.
As I have already said in my previous comment, it's possible to fix this issue with a custom modification (addon module + hook + few lines of code in invoice PDF). I don't think that WHMCS is interested in fixing this because on paper it's not a bug. It's how WHMCS is meant to be used. Sad but true :)
Agreed.
This is a *HUGE* mess.

Changing the currency for a client resulting in all past invoices (paid or not) going to that currency as well is ridiculous. It shouldn't work like that at all, and it is a bit strange for an accounting tool to have such a major bug inside of it.

If a client moves from USA to Europe for example, or vice versa, and now wants to pay in that currency: it should be possible! Without all the trouble.
It also causes issues for business owners within the EU as they will have to do a currency conversion for every payment not received in EUR by clients living within the eurozone and having to pay taxes...

This must be fixed.
How did you blocked it?

As far as I know, this feature can be implemented if the PHP code checks for the value on invoices "Unpaid" and the issue is solved. WHMCS should only change them on this invoices and not others. All other invoices with a status which is not "Unpaid" should be skipped and its currency symbol untouched.
I forgot to update this open feature request. I managed to fix this issue "blocking" particular values on my invoices such as name, lastname, vat id and of course currency symbol too. Now clients can freely change their default currency. All invoices keep the "original" currency value.
Absolutely. This is a huge mess. Its not uncommon for a customer to request his account to be changed to another currency. Example, you have customers in Europe but just now you started to offer products in Euros. Its only normal for this customers which where paying in your default currency to want to change to Euros now.

Another example is someone moving to another country. Lets say they move from Europe to the states and want now their current account in USD.

Said this, currently its a major accounting mess.

Changing the currency changes the currency symbol on past invoices which is a bug. Since if the customers paid 120$ in one invoice, and 12$ in another invoice, you changed his account to Euros and now it says he paid 120EUR and 12EUR.

This is a major bug. Paid invoices [u]should not have their symbol changed[/u] and problem solved. Open invoices would change to the current new EUR value in this example but PAID/CANCELED invoices should not be touched. It seems rather than a feature request this is a WHMCS bug. It changes the currency symbol on all the invoices for that customer.

How hard can it be to make a pre-check on the PHP code that runs this?All it needs to do is skip the invoices that have the status PAID/REFUNDED/CANCELLED.
On a side note i forgot to say that if you are using tools like this (http://blog.whmcs.com/?t=67990) you'll frequently have to face to this very serious problem. Just think about one of your client traveling around the world.

Let's suppose that he pays from Italy an invoice of [u]1000 EUR[/u]. Now he moves to UK and the invoice becomes of 1000 GBP which is [u]1176 EUR[/u]. Next month he goes to Japan and his invoice becomes of 1000 YEN which is [u]8 EUR[/u], in China [u]124 EUR[/u], in Chile [u]2 EUR[/u], in Iran [u]0.06 EURO[/u].

It's absurde! A Japanese could order a service of 1000 YEN then download the invoice via proxy from Italy and voilà. Now he gets an invoice of 1000 EUR which is 992 EUR higher!
We're using you Invoice Fix addon in our WHMCS. I've also made a script to import into mod_invoicedata table all data coming from invoices made before the installation of this addon. Everything is working fine but I think that there's a big problem on your side. Let me explain.
Let's suppose that i'm a client and that i place an order of 1.000 USD. As soon as i pay i get my invoice of 1.000 USD. Then i pay for another service 2.000 USD. Now i have 2 invoices with a total amount of 3.000 USD.
+++ Individual income tax return +++
I change the currency of my account to EUR so that WHMCS replace $ with € in all my invoices. Now i can report that i've spent 3.000 EUR instead of 3.000 USD. With the current change rate i'll report that i've spent 3.938 USD! I though that with Invoice Fix i would be able to fix this issue since in "mod_invoicedata.clientsdetails" i can see that you keep a track of currency ID but i was wrong. Why don't you use it?
This is a really dangerous problem because clients can fake their individual income tax return by editing our invoices and we can get serious problems. It's not acceptable that clients can freely change the amount paid on their existing invoices.
Do you have any workaround? When do you plan to fix this very big problem?