Changelog Latest release 2 days ago

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.

As we anticipated in our Lab, this release focuses on adding support to CUP/CIG codes for electronic invoices towards Public Administration.

The module will automatically add a new column on Invoice View that lets you set those codes when needed. Click on the provided icon (the small toggle inside CUP/CIG column) to open a modal from which it is possible to define both codes and eventually turn on the option to make them recurring on subsequent invoices.

New 5
  • CUP/CIG codes support for electronic invoicing toward the Public Administration
  • CUP/CIG codes can be set as recurring for specific invoice items
  • CUP/CIG support automatically shows up only on invoices toward the Public Administration
  • In line with what has been introduced in 2.2.29, ImportoTotaleDocumento and Causale are now available in the XML
  • System Requirement check for Electronic Invoicing now validates also PrefissoProgressivo
Improved 1
  • Tweaks to XML validations


Some of you found quite strange that the XML files generated by BX always have a Due Amount equal to zero. This is perfectly fine.

First off the node that contains Due Amount is not mandatory. It is used when you still need to collect payments from customers. As you probably already know, in WHMCS XML files are issued only when invoices get paid therefore there's no need to specify a Due Amount.

Some customers in fact could find confusing that you are asking to pay an invoice that has already been paid in WHMCS. Not to mention that when Due Amount is specified some other fields become mandatory.

That said, it is also true the opposite namely that customers see AliquotaIVA, ImponibileImporto, Imposta but not Due Amount and they think that it's an error.

What to do now? Who is right? What is the correct approach? As usual no one knows therefore it's up to us. Considering the feedbacks we received, we go for the second option. From now on Electronic Invoices will have Due Amount even though it wouldn't be necessary.

New 1
  • Added DatiPagamento node
Improved 2
  • Tax and VAT ID validations for Organizations and Public Administration are more flexible
  • We made the function that checks Electronic Invoicing configuration more visible converting it into a button instead of a link
Fixed 1
  • Invoice Created notification for Proformas was interrupted by OneInvocie (manual send)


The documentation has been updated to provide information about the use of Electronic Invoice among multiple installations of WHMCS and/or stores (e.g. Magento, Prestashop, physical stores...).

Generally speaking in this release we added many new checks, validations and messages that will help you configuring Electronic Invoicing. Moreover sole proprietorship customers can now find new options to properly issue electronic invoices.

New 3
  • Electronic Invoicing. Added many new validations, checks and error messages to help you filling all the required information in line with requirements
  • New fields available for sole proprietorship using Electronic Invoicing in WHMCS
  • New option to escape special characters stored inside CDATA nodes for Intermediari platforms that do not fully support CDATA
Changed 2
  • CapitaleSociale input type changed from Text to Number
  • Updated descriptions and filed names in line with recent changes
Fixed 1
  • VIES panel was no longer visible in backend due to a jQuery error


In this release we changed the way Natura and RiferimentoNormativo nodes on XML files are added. Both fields are required when AliquotaIVA is equal to zero.

Before this release, we were forcing Natura and RiferimentoNormativo based on intra/extra EU status and on the fact that WHMCS is used to provide services.

In the end we realised that this was an hypercorrection also because we found out that some of our customers are using WHMCS not to sell services but for things like rentals that follow a different legislation. That said, from now on BX will be more flexible to use.

Improved 3
  • Email address (PEC) is no longer capitalized
  • Even though we support only the official templates of WHMCS (backend), we improved our JS/CSS so that BX is usable also with Lara Admin
  • Due to a weird glitch we found on one of our customer's WHMCS, we added a feature that makes sure that "p" namespace in the XML is always added as prefix to FatturaElettronica node
Changed 1
  • Natura and RiferimentoNormativo are no longer based on intra/extra EU status

We fixed some issues described here in our Lab. If you had problems importing some XML files due to the following reasons:

  • Lowercase Provincia and CodiceFiscale
  • Credit Balance applied on invoices
  • Coupon Codes applied on invoices or items with negative amounts
Simply delete the XML in question from Invoice View and reissue it.

New 1
  • Special characters in XML files are stored in CDATA instead of UTF8 encoding
Improved 4
  • Credit usage on Invoices reflects on Electronic Invoices
  • Coupon codes and items with negative amounts reflects on Electronic Invoices
  • Invoices page. Order by Electronic Invoicing is more accurate
  • Codice Fiscale and Provincia properly formatted
Fixed 2
  • EsigibilitaIVA node not showing for Intra-EU individuals on XML files
  • On systems with Enable Proforma Invoicing Disabled BX was reissuing Invoice Numbers incorrectly


Invoices with discounts, promotions and coupon codes applied need to be handled in a particular way according to the specifications of Electronic Invoicing.

We noticed that in some occasions such lines could not be detected as discounts therefore we changed a bit the script involved. It's a bit complicated to explain but the short version is that from now on BX will double-check data and will not blindly trust WHMCS to detect discounts.

Improved 2
  • Coupons and discounts for Electronic Invoicing are detected more accurately
  • Backward compatibility for FontAwesome icons on Assisted Profilation page


Till now we considered Codice Destinatario a mandatory filed for companies because many of you requested us to do so. In reality this field is not strictly necessary.

Yes, an italian company that doesn't even have a PEC address to use as Codice Destinatario sounds pretty strange but let's face it. Even though customers could provide details from an handy page, there's no guarantee that they will care.

People are lazy. Many will simply ignore the newsletter that you are probably already sending about Electronic Invoicing until they realize that they can't get the invoice that they wanted leaving you with tens of tickets to handle.

For this reason and to save you from headache, we are making the following change. From now on Codice Destinatario is an optional field also for companies. For PA it's still required.

That said, don't panic. It will change nothing for you. Revenue Agency in fact allows the sending of XML files with '0000000' in place of Codice Destinatario for companies. It's just that the Agency will not deliver the invoice to the end user on his PEC address or Intermediario. Such clients will need to manually retreive invoices directly from the website of Revenue Agency.

People that still want to use Codice Destinatario as a mandatory field need to contact us. We will provide you a workaround even though you should probably reconsider your decision. There's no need to be so rigorous. The only thing you'll get from this are lot of tickets from customers complaining.

Changed 1
  • Codice Destinatario is now an optional field

Developer notes

We know that for some of you it could be frustrating to see so many updates in such a short time. Right now we're focusing on delivering you the best possible solution so that you can start the new year without fighting so much against Electronic Invoicing. We promise you that we will slow down as soon as we can.


This release was scheduled for yesterday late in the afternoon but we've gone a little bit further to fix and improve as much as possible till late night.

Improved 5
  • Many improvements to Assisted Profilation feature
  • Assisted Profilation. Backward compatibility for systems running an outdated version of WHMCS and FontAwesome
  • WebService for electronic invoicing now runs slightly faster
  • Settings page. Many descriptions have been updated
  • Some improvements to Install/Uninstall functions of BX and of its Plugins
Changed 1
  • Proforma Number Format. For new installations BX will use {ID} instead of {NUMBER}
Fixed 3
  • Under certain conditions VIES check wasn't working properly
  • English notation with thousands separator causing an error generating XML files
  • Incorrect calculation of totals for Credit Notes on systems with Inclusive taxes
Improved 1
  • Small CSS improvement in Settings page of BX
Fixed 1
  • Billing page of BX. Error due to ONLY_FULL_GROUP_BY option enabled on MySQL
Improved 1
  • BX Invoices page. Added natural sorting for Invoice Number column
Fixed 2
  • The "Show on Invoice" option for Client Custom Fields was ignored by Snapshots
  • BX Payments page. Reference column was showing values incorrectly