Changelog Latest release 7 days ago

New 1
  • Billing Extension > Invoices. New column available: Invoice ID (system ID)
Improved 3
  • Major adjustments to Daily Tasks of Billing Extension
  • Minor tweaks to Electronic Invoices for Organizations
  • Minor tweaks to Conditional Footer Text on Invoices
Fixed 1
  • Under certain conditions Online Contract was redirecting customers to an incorrect URL


Let's talk about (again) Canary Islands and more in general about VAT-free regions that always cause us many problems. Few weeks ago we introduced the possibility to specify state-based Tax Rates. For states like Canary Islands you simply had to set 0%. It gets the job done but everytime you come across Invoices with no tax applied and customers with Tax Exempt turned off, you need minutes to understand that it's all correct. In this release we want this process more comprehensible.

There's a new option that allows you to directly specify VAT-free States (preview). For example as soon as we set Las Palmas as VAT-free state, Billing Extension will automatically turn on Tax Exempt status for all the involved customers. Moreover such changes take into account VIES status and customers with Locked Tax Exempt. This way when you submit changes, you won't cause any hurt to customers with special rules applied. Of course changes will reflect on client registration and updates.

In 2.2.43 we released the module as Bundle but in the end we've been forced to undo this change since there are still some customers running very outdated versions of ionCube.

Similarly we tried to address an issue with Daily Cron Job of WHMCS and Automatic Tasks of Billing Extension. Some customer solved their problems but there are sill people experiencing issues therefore we keep investigating.

New 3
  • Country/State-based Tax Exempt status (also works on ClientAdd and ClientEdit)
  • Changes to Tax Exempt status have immediate effect on selected customers
  • Changes to Tax Exempt status take into account VIES and Lock status
Improved 2
  • Tax Stamp no longer applies when OneInvoice is in use
  • Electronic invoicing. The function that generates XML files is slightly more flexible
Changed 1
  • We'll keep releasing the module with specific packages for PHP 7.2, 7.0, 5.6 and Bundle


Starting from this version we decided to release the module as Bundle only. In other words there will be one download option that is compatible with all versions of PHP 5.6, 7.0 and 7.2. The reason is that even though there is an article that explains all details, many customers keep downloading wrong packages.

Improved 2
  • Daily Cron Job & Billing Extension Automatic Tasks
  • Electronic Invoicing Widget. Additional details depending on the Intermediary in use
Changed 1
  • We're releasing this version as Bundle only. No PHP 5.6, 7.0 and 7.2 provided. Please notice that Bundle works on all PHP versions
Fixed 2
  • Electronic Invoicing. Incorrect warning when issuing XML files with Tax Regimes RF02 and RF19
  • Transactions page (Client Area). Links to Invoices were not clickable


In this version we try to address an issue reported by some customers about Automatic Tasks of Billing Extension not completing with the daily Cron of WHMCS (Scheduled VIES checks, XML generation & inspection...).

New 1
  • In 2.2.39 we introduced version checker for Billing Extension. This version allows to manually check for updates
Improved 1
  • Many small improvements to CSS, HTML, js and translations
Changed 1
  • We changed the way BX performs automatic tasks based on WHMCS Daily Cron Job


This release is crucial if you upload electronic invoices manually to intermediary platforms. We made a change that allows to manage XML lot way more easily. Just take a look at this animated gif. Billing Extension automatically ticks/unticks checkboxes for you in case the invoice you are managing is part of a lot.

Improved 1
  • Massive actions involving XML lot (Invoices page). Ticking/Unticking checkboxes now have effect on the entire XML lot
Fixed 1
  • Some queries involving XML files were using incorrect statements
New 1
  • Tax Rules page. Set Tax Rate and Name globally
Improved 1
  • Electronic Invoicing. Deleting the XML will flush any existing log for that file

Billing Extension supports WHMCS 7.7.x. We had to make some small adjustments.

We've added a new feature for electronic invoicing that has been fully documented here. It's about Letter of Intent and VAT-free exceptions.

New 4
  • The module is compatible with WHMCS version 7.7.x
  • Electronic Invoicing. Letter of intent and VAT-free exceptions
  • The module notifies you when you are running an outdated version
  • Option to display country full name instead of 2 letters ISO code (eg. Italy instead of IT)
Improved 1
  • Data validation for electronic invoices is way more fault-tolerant
Deprecated 1
  • The module no longer forces you to define the Identifier for Credit Notes

Developer notes

We received some reports about Billing Extension not running daily tasks such as VIES Scheduled Checks, Warnings Checks and XML generation for Electronic Invoicing. We're investigating this issue.

Starting from this release you can run VIES check on specific Invoices so that VIES-related information is updated accordingly. There's also a new alert to report conflicts between Tax-Exempt status and VAT-Free invoices.

If you use Electronic Invoices this release will temporarily flush XML status and logs. Don't panic. All information will be updated with next Cron. If you cannot wait just run the check manually from Invoices page.

New 1
  • VIES check can be performed on single invoices
Improved 1
  • Some general improvements. Nothing particular
Fixed 1
  • Electronic Invoicing (Digiting). The Logs and status of some XML files were incorrect

If you manually import XML files of electronic invoices, this release is pure gold for you. With 2.2.36 we introduced the possibility to customize "Sent" and "Not Sent" directories to match the ones used by your Intermediary. But if you handle the entire process manually, we have great news for you!

Invoices page has been improved to the point that you can perform 14 massive actions on Invoices 6 of which are specificaly made for electronic invoices.

You can download multiple XML files on the fly. Billing Extension will prompt you to download a Zip file that contains all the requested files but there's much more! We received many feedback about intermediary platform not allowing to import individual Invoices and lot together. That's why in the Zip we automatically divide them in two separate folders so that you can easily import them without any hussle.

Similarly you can delete multiple XML files in one click and change their status to "Sent", "Rejected" and "Pending". This feature is ideal for example when you need to mark many Invoices as "Sent". You will no longer need to connect to the FTP node to move files. Billing Extension handles the entire process automatically!

Last but not least it is now possible to trigger the function that automatically issues XML files for all pending Invoices by simply clicking a button that will also double-check the status of all your files.

New 5
  • Download and delete Electronic invoices massively
  • All the downloaded XML files are split automatically in two directories. One for Lot and one for single invoices
  • Manual Intermediary. The status of XML files can be updated massively
  • The massive update of XML files reflects also on the structure of FTP node
  • Button to check the status of existing XML files and simultaneously issue new ones for pending invoices

Thanks to the many feedback we received, we managed to spot a new type of overpayment that we didn't yet covered in Billing Extension. We are going to describe you all the possible scenarios that can lead to an overpayment.

1st scenario. Overpayment based on an Unpaid proforma. The total due is 10 euro but your customer pays 20 euro. The overpayment is added as a new line on the same document. This way we have a correct Invoice with a balance of 20 euro.

2nd scenario. Let's suppose that your customer pays 10 more euro on this same invoice of the previous example. We can no longer update this document since it is a real invoice therefore we issue a new invoice for the overpayment.

3rd scenario. There's a paid invoice. At some point your customer pays it causing an overpayment. We issue a new invoice so that the original invoice doesn't change.

Our module was already addressing the first two scenarios but not the third one. Starting from this release it does. We would also like to mention these other improvements: Custom Directories for Electronic Invoices, Missing State/Region from proformas.

New 5
  • Overpayments. This feature now handles a new type of overpayment that was not covered yet by the module
  • Customizable Sent and Not Sent directories for XML files on FTP node for manual electronic invoicing
  • Invoices page. New button available to request a check for all your XML files
  • Client Display Format on Invoices for companies: Full name only, Company name only, Full name & Company name
  • Digiting Intermediary. BX Widget now reports the total number of sent invoices so that you can see when you're reaching limit
Improved 2
  • Various improvements for Manual electronic invoicing
  • Tax Rules page. It was not possible to save states with comma in their names (eg. PALMAS, LAS)
Changed 1
  • Few releases ago we added function that for security reasons prevent Admins from deleting Sent XML files. We understand that it's a bit too limiting for people who use Manual Intermediary therefore we rever this change
Fixed 3
  • Missing State/Region value from proformas
  • Invoices page. Massive actions not working when using select all checkbox
  • XML lot. Incorrect ImponibileImporto

In this release we take a step forward to help you applying correct tax rates for regions with special tax regime. For more details read the project published on our Lab.

New 2
  • Additional Tax Rules can be specified for regions / states (Level 1 and Level 2)
  • SdI Intermediary. Digital signature and encryption of electronic invoices
Improved 1
  • Digiting Intermediary. Small improvements
Fixed 1
  • Overpayments. A wrong condition was causing problems with Invoice numbering and possibly "holes" in Sequential Numbering

As you probably already know, Invoices page of Billing Extension uses our SorTables technology that allows you to add, remove, move, collapse and filter up to 37 columns. This page clearly is way more powerful than the standard one of WHMCS. The problem is that it didn't support massive actions but there's a good news.

With this release Invoices page can be used not only to perform actions like Mark Paid, Mark Cancelled, Mark Unpaid, Send Reminder, Delete but also Snapshot as Invoice, Create Snapshot, Convert to Invoice and Convert to Credit Note. In other words converting multiple proformas into invoices now requires one click!

The second feature we add is very useful if you happen to have a lot of customers from regions and states with special tax regimes like Canary Islands, Liviglio and so on. For them you can finally lock their Tax Exempt status so that it never changes.

New 3
  • Tax Exempt status can be locked or unlocked for specific customers in order to preserve its value. This way you can solve billing issues with regions like Canary Island and Liviglio
  • Option to remove unused and unnecessary Configurable Options from Invoice descriptions (e.g. 0 x SSD, Antivirus: No, Backup: Not today)
  • BX Invoices page. The following actions can be performed massively: Mark Paid, Mark Unpaid, Mark Cancelled, Send Reminder, Snapshot as Invoice, Create Snapshot, Convert to Invoice, Convert to Credit Note
Improved 3
  • Fattura Elettronica Sicura Intermediary. New fields (username and password) for API connection
  • SdI Intermediary. Added descriptions, colors and log viewer (experimental)
  • Fallback to Detach XML files when they're not found on the FTP Node

You can now choose your Intermediary platform in one click:

We changed color schemes for buttons and icons of electronic invoices. Colors reflects the effective status of XML files like follows:
  • Orange to generate XML
  • Blue for XML not yet transmitted
  • Green for successfull transmissions
  • Red for errors and rejections
  • White for missing files in FTP node

Moreover the status can be reviewed, filtered and even exported on spreadsheet from Invoice View, Invoices page and also from a new Widget. You can find previews of all these additions in the gallery of this changelog.

Client Custom Fields can now be added as column in Invoices page. Of course this column can be filtered and exported on spreadsheet.

Last but not least we managed to solve long standing issue that was causing troubles to some of our new customers. BX was incorrectly detecting invoices as proformas. For more details about this feature read documentation.

New 9
  • Select Intermediary Platform for Electronic Invoicing
  • Fattura Elettronica Sicura (Intermediary platform) fully integrated and 100% automatic including XML notifications
  • Sistema di Interscambio (Intermediary platform) support for Digital Signature and encryption
  • Conditional System Requirements for Electronic Invoicing based on the Intermediary in use
  • Scheduled task that on a daily basis automatically checks and updates the status of transmitted XML files
  • XML status can be checked from Invoice View, Invoices page and Widget
  • Download XML buttons. Color schemes reflect the actual status of invoices
  • Invoices page. Client Custom FIelds column addable, filterable and exportable on spreadsheet
  • Feature to manually fix invoices incorrectly mistaken as proformas
Improved 6
  • A conflict between VIES & Split Payment was incorrectly changing Tax Exempt status. It wasn't a bug but an incorrect decision
  • Split Payment not available for Minimum Taxpayer Regime
  • Changing Tax Regime to Minimum Taxpayer Regime automatically removes existing Split Payment rules
  • Exporting invoices on spreadsheet now produces more accurate information for Invoice ID column
  • All links to documenation have been updated in line with recent changes
  • Some improvements to Lara Admin & v4 even though we do not officially support these templates
Changed 2
  • VAT Number for Public Administration is no longer a required field
  • Settings page. Logging section renamed to Utilities
Deprecated 1
  • Removed DatiPagamento node since it's unnecessary and confusing. For more information read the changelog of 2.2.29
Fixed 1
  • One title and one description missing in italian language file

Developer notes

We updated our documentation for Electronic Invoicing. Please, read it in full before opening tickets.

We understand that it's a long article but it provides a lot of useful information and we would like to spend time developing new features instead of answering to the same questions about Electronic Invoicing :)

Thanks for your understanding.


We continue to improve and add new features based on your feedback in the daily use of Electronic Invoicing.

New 3
  • When Electronic Invoicing for foreing countries is disabled the "Generate XML" button no longer appears for non-italian customers
  • We've added some new validations for Electronic Invoicing
  • XML files can't be issued for Draft invoices
Improved 3
  • More accurate descriptions for the options of Electronic Invoicing
  • Some refinements to RappresentanteFiscale XML node
  • Encoding for clientsdetails in PDF
Changed 1
  • Quality of life change. Restrict mode is no longer used for Draft Invoices
Deprecated 1
  • Rappresentante Fiscale > IdPaese removed from Settings. This value - when in use - is always equal to "IT" therefore there's no need to set it
Fixed 1
  • IscrizioneREA XML node now produces correct sub-nodes for partnerships

Developer notes

In the upcoming releases we'll focus on implementing Digital Signature of XML files for transmission to SdI.


In addition to PHP 7.2+, 7.1+ and 5.6+, it is now possible to download the module as Bundle. For more information read Choosing package for download. As for the rest this release includes some small improvements and changes.

New 2
  • Billing Extension can be downloaded as Bundle (PHP 5.6 and onward support in the same package)
  • DataRiferimentoTerminiPagamento node in XML
Improved 1
  • Invoice PDF. Conditional footer no longer shows HTML entities in TCPDF
Changed 2
  • Electronic Invoicing validations. Firstname and Lastname are required only when Company Name is empty
  • We changed "Guess my business type" function to be less restrictive

Developer notes

In this release we continue to add new unnecessary nodes to XML files due to Intermediaries. Yes, we're a bit saracstic :)

Our initial goal was to generate XML files as "small" as possible to ease transmissions and save disk space for Conservazione Sostitutiva that usually costs depending on space used. We were focusing on adding only the mandatory nodes and values but Intermediaries seem to love to scare people with unnecessary validations and put emphasis on nodes that are not needed.

We kind of give up. We'll keep adding all nodes they want even though they're completely useless.