Detecting and Preventing Invoice Mistakes in WHMCS

Detecting and Preventing Invoice Mistakes in WHMCS

Back   Posted on 1 september 2018 / Updated on 1 november 2020
Reading time 5 minutes

Billing Errors Dashboard

WHMCS incorporates things like System Health Status (that's nothing exceptional) but offers literally no way to detect and prevent billing mistakes. This is kind of ironic as the main source of problems in this area is WHMCS itself.

As we point out in our MUST read before launching a WHMCS site, it's crystal clear that WHMCS team has no clue of how invoicing should work. Over the years they proved to be unreliable by changing critical billing concepts overnight.

That's the very reason why we started coding our first module Billing Extension. The module prevents most billing mistakes in the bud and also integrates a system that detects billing problems.

When there's something that requires your attention, the module adds the Billing Warnings badge at the very top of WHMCS administration. The widget is also part Billing Extension and brings back Admin Stats that have been removed in v8.

For earlier versions (v7, v6, v5) this same badge appears right next to Tickets Awaiting Reply as follows.

Clicking such links gives you quick access to the integrated billing error dashboard that can also be accessed from Addons > Billing Extension > Invoices > Warnings.

It is worth to remind that Billing Extension distinguish between "hard" and "soft" notices. In subsequent chapters of this article we will explore the purpose of each type of notice.

"Hard" Warnings

This type of notice require your immediate attention as there are questions that should be looked into immediately to avoid further problems. Such notices are colored in red their total number appears in the badge we've previously seen.

Type Description
Invoice gaps Gaps in invoice number sequence (eg. #1, #2, #4)
Duplicated invoices Repeated numbers in invoice number sequence (eg. #1, #2, #2, #3)
Uninvoiced payments

Used for monthly invoicing and manual invoicing based on customizable thresholds on:

  • Pending invoices
  • Pending amount
  • Pending customers
Electronic invoicing requirements Used for Italian electronic invoicing.
Electronic invoicing data Missing, incorrect or invalid details still for Italian electronic invoicing.
Invoice Sync Lost synchronization for sequential invoice numbering

"Haaaaard" Warnings


"Soft" Notices

There's nothing to worry about in this section. Mostly all notices act as a logging. In this case the color we use is yellow and "soft" notices don't show up in any badge.

Hard notices (red) Description
VIES Changes to VIES response, tax exempt status, business type etc.
Invoice Data Snapshot "Orphan" invoice and credit note snapshots
Tax Calculation Method

WHMCS provides two tax calculation modes:

  • Individually per line item
  • Based on collective sum

The first mode is utterly wrong and leads to billing errors. The module automatically switches mode in case you're using the wrong one and provides a notice in this section.

Electronic invoicing profiling

Used for Italian electronic invoicing. Users can be profiled as:

  • Individual
  • Sole proprietorship
  • Company
  • Organization
  • Public Administration

For companies and Public Administration there's also the concept Split Payment. This section logs all changes made to user's detail.

Electronic invoicing Admin log Still used for Italian electronic invoicing. It logs all actions performed by WHMCS administrators on electronic invoices (XML files).


For this reason we decided that it's was time create this handy tool that can save you from numerous invoicing troubles. First off we made a clear distinction between soft and hard warnings. Hard warnings are colored in red and they refer to things or events that should be addressed as soon as possible. They appear next to Tickets Awaiting Reply.


And also in Billing Extension.

As for soft warnings, they are colored in yellow and don't show up next to Tickets Awaiting Reply and in the module. They are not even part of the counting of existing warnings (the number 19 in the above screenshots represents 19 hard warnings).

Invoice Number Gaps

On a daily basis Billing Extension looks for any possible gap in invoice numbering. This check also includes credit notes if in use. Thanks to this report finally you can spot invoicing problems immediately and not after months when it's too late. Not only you can see what numbers are missing but we give you probably the most precious information, the expected date.

Say that you want to recreate invoice #1058 and #1059 of the example above. What dates should they assume? We don't want to recreate invoices with the wrong date otherwise we would simply replace the problem of missing invoices with a new one, invoices with dates that are not sequential. Normally you should manually look for the previous existing invoice (#1057) and use this date. This process is a bit tedious since it should be repeated for each missing invoice. That's where Billing Extension comes to help. We get this value for you!

Duplicated Invoices

This is another interesting report that focuses on immediately giving you information about invoices or credit notes that are duplicated. Stop dealing with such a problem when it's already too late. Now you can fix it as soon as it is occurring.

Uninvoiced Payments

Both OneInvoice and Manual Invoicing postpone invoice generation reducing the number of invoices generated. But what if you forget to invoice your customers? Especially if you are using Manual Invoicing, it can happen more frequently than you think. That's why this report detects 3 different types of events that can occur:
  • Too many customers waiting for invoice
  • The amount of uninvoiced payments is too high
  • The invoice is taking too long to be issued
All these limits are can be arbitrarily set from Addons > Billing Extension > Settings > Logging. Here you will find 3 dedicated options that serve for this purpose. The same settings will be used in Addons > Billing Extension > Billing (the page from which you can review pending unvoices) to create progressively colored information boxes. They're greener when you're far from the limit, redder when you're closer and orange in between.


Every time the Tax Exempt status changes for a client based on VIES check result, Billing Extensionnotifies you such changes so that you can possibly decide to make further investigations. In this section we also notify you the following errors:
  • Invalid data (wrong or missing country code or VAT Number)
  • VIES service unavailable
  • Member State service unavailable
  • Timeout
  • Server busy (high load)

Orphan Snapshots

There's no point in storing snapshots related to invoices, credit notes or proformas that have been removed from WHMCS. They no longer serve any purpose therefore they're removed. Here Billing Extension notifies you about snapshots that have been deleted on a daily basis.

Tax Calculation Method

In this article we talked about a long standing issue of WHMCS that has never been addressed by WHMCS team. For reasons described in the article there's one option of WHMCS that shouldn't be used (Tax Calculation Method: Calculate individually per line item). Billing Extensionensures that this setting is disabled. If it's not it automatically changes this setting and notifies you about this change.


When Invoice Sync is in use, Billing Extension notifies you about any issue occurred during the process of synchronization. Notice that an error on one WHMCS will reflect on others. This way you can easily monitor any error from any system. Be advised that Invoice Sync disables Invoice Numer Gaps checker.

Comments (0)

Speak Your Mind Cancel Reply