A standard WHMCS install does not send structured e-invoices. WHMCS documents an E-Invoicing addon module that exports published invoices to a third-party service in Peppol BIS Billing 3.0 format, but it is a limited release: invite only, self-hosted only, and Belgium only. Everyone else under the Belgian, French or Polish mandate needs a third-party product or a custom module.
E-invoicing is the exchange of structured invoice data straight between the seller's finance system and the buyer's, in a machine-readable format such as UBL XML. A PDF, a scan or an emailed image is not an e-invoice, because nothing in it can be posted automatically on the other side. WHMCS e-invoicing therefore means taking the invoice WHMCS already produces and publishing it as that structured document on a network or a government platform.
This is not legal or tax advice. Every date below comes from a government or EU page I read on 30 October 2026 and linked. Confirm your position with an accountant.
What counts as an e-invoice, and why is a PDF not one?
An e-invoice is structured data, not a document that happens to be digital. The UK Roadmap for e-invoicing implementation, published on 28 October 2026, says that "formats such as PDF, word-processed documents, image files such as JPEG, HTML invoices on a web page or email ... do not count as e-invoices". Belgium puts it in one line: "Sending a PDF invoice by e-mail or via a platform will no longer be enough."
Two delivery models exist, and they change what you build.
- Network model. The invoice travels over Peppol, which the UK roadmap names its "core interoperability framework". Your software connects to a certified Access Point, your buyer's connects to another, and the two exchange the document.
- Clearance model. The invoice goes to a government system first, and that system passes it on. Poland's KSeF assigns "a unique number identifying each issued invoice". France requires an approved platform plus separate e-reporting.
Which countries require e-invoices from hosting companies in 2026?
Belgium, France and Poland already do, on different models and dates.
| Country | What applies | Date | How it travels |
|---|---|---|---|
| Belgium | Structured e-invoices between Belgian VAT-liable enterprises. B2C is out of scope, but you must still be able to receive. | Since 1 January 2026 | Peppol |
| France | Companies established in France and liable to French VAT. All must be able to receive; large and mid-size companies (ETI) must also issue and send e-reporting data. | Since 1 September 2026 | Approved platform |
| France, phase two | Small and medium companies and micro-enterprises must issue and send e-reporting data. | 1 September 2027 | Approved platform |
| Poland | Receiving through KSeF from the first date. Issuing from the first date for taxpayers whose 2024 sales with tax passed 200 million zloty, from the second for everyone else. | 1 February 2026, then 1 April 2026 | KSeF |
| United Kingdom | VAT invoices must be issued and received as e-invoices unless an exemption applies. | 1 April 2029 | Peppol |
| EU cross-border | Digital Reporting Requirements for cross-border B2B supplies, then alignment of domestic systems. | 1 July 2030, then 1 January 2035 | Set by ViDA |
Sources, in order: the Belgian federal page on compulsory structured invoices, the French tax authority's answer on the reform calendar and its introduction to the reform and approved platforms, the Polish Ministry of Finance on the scope of mandatory KSeF, the UK roadmap above, and the European Commission on VAT in the Digital Age. ViDA entered into force on 14 April 2025, and since then member states can impose e-invoicing without a Council derogation, which is why national dates arrived so fast.
Other EU countries run their own schemes on their own timetables. I left out any date I did not read on a government page today.
Does WHMCS send e-invoices on its own?
Not in the core billing code, nor in a standard install. The Billing and Invoicing section covers invoice configuration and management, custom PDF invoices built from template files in the active system theme, credit and debit notes and quotes. Tax Configuration holds the Tax/VAT ID Number, which prints under the company address in the Client Area and on PDF invoices, plus inclusive or exclusive tax and custom invoice numbering. None of that produces UBL XML or talks to Peppol.
There is a separate E-Invoicing addon module in the 9.1 documentation. It exports each published invoice to a third-party service, which generates a Peppol BIS Billing 3.0 (UBL/XML) document, exchanges it with the tax authority and returns status updates through a webhook. The limits matter more: WHMCS does not include it by default, WebPros invites users by email, you buy and upload it yourself, WHMCS Cloud does not support it, and it covers installations in Belgium only.
It also skips invoices it cannot handle: Draft status, a zero total, no tax, or a client you have not enabled, and cannot re-export an invoice once sent. The matching Add Electronic invoicing request page, read on 30 October 2026, shows In Progress with 423 votes and an Official Response from three weeks earlier describing the same limited release. Read that as a direction, not a general release date.
Do you have to comply if your company is not in that country?
Often not. These are scope rules from the authorities' own pages.
- Belgium. The federal B2B questions page says VAT-registered persons not established in Belgium, without a permanent establishment there, "are not subject to the obligation", and adds that "the law is still being amended on this point".
- Poland. The KSeF scope page excludes taxpayers with no seat and no fixed establishment in Poland, and those whose Polish establishment takes no part in the supply. They may still issue voluntarily.
- United Kingdom. The roadmap treats non-established taxable persons the same as UK businesses, and says e-invoices are not required for cross-border transactions because a UK VAT invoice is not required there.
Even when you need not issue, your Belgian and Polish business customers must receive, and will ask for a Peppol address.
What are the routes to WHMCS e-invoicing?
Five answers, and the right one depends on how many countries you bill and whether WHMCS is your book of record. Two mean building nothing yet.
The same four questions in words. No VAT-registered business clients abroad: monitor the dates only. No live mandate over those invoices yet: plan for 2027 to 2029. WHMCS is not your system of record: send from your accounting tool. One or two countries and simple invoices: one hook into an access point API. Anything wider: an addon module with a retry queue. The table adds the build detail and the third-party option.
| Route | What you build | Good when | What to watch |
|---|---|---|---|
| Wait for the WHMCS E-Invoicing addon | Nothing | Deadline is 2029, one country | Invite only, self-hosted, Belgium only |
| Third-party module or service | Configuration only | A product covers your country and format | Who holds the Access Point contract, and your archive if you leave |
| Export to your accounting system | Scheduled export, or the WHMCS API | Your accountant files through an approved platform | Numbers and credit notes must match both sides |
| Custom WHMCS addon module | Hook, queue, admin page, API client | Several countries, odd line items, or you need the audit trail in WHMCS | You own the retries, logs and every format change |
How do you add e-invoicing to WHMCS with a custom module?
As an addon module that hooks invoice events and sends from a queue. The Addon Modules documentation explains the shape: an addon module can be an admin page, hooks, or both, managed from the Addon Modules page under Configuration > System Settings with access control per administrator role. You need both halves here, the background job and a page where staff can see what failed. The build order I follow:
- Choose the access point or approved platform first. You do not connect to Peppol directly, and the provider's API decides half your design.
- Collect the missing fields. Add client custom fields for the buyer's electronic address and any reference the format requires.
- Hook the right event. Queue on
InvoiceCreated, not onInvoiceCreation. - Queue, do not send inline. One row per invoice with a status, payload, document id and retry count, drained from a cron hook, so a slow API never blocks invoice generation.
- Map the fields once, in one class. Invoice number, dates, currency, each line with its tax rate and category code, seller and buyer identifiers, payment means.
- Show it in the admin area. One page listing invoice, status, last response and a resend button saves more support time than the rest of the module.
The invoice hook names and parameters below come from the WHMCS Invoices and Quotes hooks reference, and the two cron hooks from the Cron hooks reference.
| Hook | When it fires | Use it for |
|---|---|---|
InvoiceCreation | When an invoice is first created, before it is finalized and delivered. Line items can still be changed and totals are recalculated after the hook. | Adding a required line item or reference. Not for sending. |
InvoiceCreated | When the invoice has left Draft status and is available to the client, after the Invoice Created email. Gives source (adminarea, api or autogen), user, invoiceid and status. | Queueing the e-invoice. |
AddInvoicePayment, InvoicePaid | When a payment is applied, including partial payments, and when the invoice finally reaches Paid. | Payment status messages where the country asks for them. |
InvoiceCancelled, InvoiceRefunded | Cancellation or refund of an invoice. | Raising the credit note document. |
AfterCronJob, DailyCronJob | Each cron call, and the end of the daily run. | Draining the send queue and retrying failures. |
An invoice an admin raised by hand and one the cron generated can need different handling, which is what source is for. My WHMCS hooks guide covers hook files, priority and debugging.
What data does a structured e-invoice need that WHMCS may not hold?
More than a PDF needs, and the gaps sit in client records, not the invoice.
- Your own tax identifier, in the Tax/VAT ID Number field at Configuration > System Settings > Tax Configuration.
- A validated VAT number on every business client, not a free-text note. My WHMCS tax setup guide covers VAT Mode and VAT number validation.
- An electronic address for the buyer, such as a Peppol participant identifier, with its scheme.
- A buyer reference, where the receiving system rejects invoices without one.
- A tax category code per line, not just a percentage, with reason codes for reverse charge and exempt lines.
- Numbers that never repeat and never run backwards. Tax Configuration warns you to only increase Next Invoice Number, Auto Reset Numbering fires when the cron runs on the last day of the month or year, and credit notes are numbered separately.
- Payment means and bank details, which many templates carry only as free text. My invoice template guide shows where those live.
What goes wrong, and when should you not build this?
The common failures are about numbering, duplicates and testing, not XML.
- Duplicate sends. With no unique constraint on the invoice id, a retry sends the document twice and the buyer gets two payables. Make the queue idempotent first.
- Regenerated invoices. Editing a published invoice does not recall the e-invoice. WHMCS treats non-draft invoices as immutable and expects credit and debit notes instead, which is what the tax side expects too.
- Sandbox pointed at production. A live install sending test documents to a real tax authority is a bad week.
- Relief that expires. Poland lets taxpayers keep issuing electronic or paper invoices until the end of 2026 where the monthly total is 10,000 zloty or less.
- Six countries at once. Ship one country and one access point, in production, before you abstract anything.
Do not build at all if WHMCS is not where your invoices legally live, if your accountant already files through an approved platform and needs only a clean export, or if you sell only to consumers.
What do people ask about WHMCS e-invoicing?
Does WHMCS have a Peppol module?
There is one, but almost nobody can use it yet. The 9.1 documentation describes an E-Invoicing addon module that sends Peppol BIS Billing 3.0 documents through a third-party service, in a limited release that covers invited, self-hosted installations in Belgium only. Third-party modules exist; check that the one you pick covers your country, your format and your credit notes.
Do I need a Peppol ID for Belgian clients?
You need an electronic address on the Peppol network to send or receive there, and your software or service provider connects you to it. Belgium tells businesses to use software designed to work via Peppol and to ask their software supplier, and says you need not ask your customer for a Peppol ID because the network publishes registered recipients.
What does the French 1 September 2026 date require?
Every company established in France and liable to French VAT, whatever its size, must be able to receive electronic invoices from that date. Large and mid-size companies must also issue through an approved platform, which the tax authority defines as a private company registered by the state, and transmit transaction and payment data. Small and medium companies and micro-enterprises have until 1 September 2027.
When does UK e-invoicing start?
1 April 2029 for VAT invoices, with Peppol as the core interoperability framework. The detailed requirements land between October 2027 and April 2028, after a technical consultation on standards in spring 2027, so the design you would build against does not exist yet.
Can I keep sending PDF invoices to consumers?
For B2C invoices the mandates I read today do not apply. Belgium states the obligation does not cover supplies to private individuals, and the UK roadmap puts consumer sales in the group where no e-invoice is sent.
If you want this built and supported inside your install, I take it on as WHMCS custom module development alongside the rest of my WHMCS work, with a free scoping call of about 30 minutes and a written quote within one business day.
Last reviewed 30 October 2026. Disclosure: I sell WHMCS and web development work, including the kind of module described here, so I am not neutral. I am CTO at ElySpace, a freelance developer for Marmaids LLC, and founder of WHMCSPilot and MagizAI. Nothing here is legal or tax advice.