Magento extensions

Peppol e-invoicing for Magento: how it works and who needs it

Belgian businesses have had to exchange structured e-invoices since January 2026, and Peppol is how they do it. What Peppol is, who actually has to use it, what an access point does, and how invoices get from Magento onto the network.

A structured invoice travelling from a seller through two Peppol access points to a buyer's accounting system

In early January a Belgian customer writes to say that your invoice "did not arrive". It did arrive, as a PDF in their accounts inbox, the way it has for years. What they mean is that it did not arrive in their accounting software through Peppol, which is where Belgian companies now expect invoices from other Belgian companies to land. Their bookkeeper has been told that a PDF by e-mail "will no longer be enough", and that is a direct quote from the Belgian tax administration1.

Peppol comes up in every European e-invoicing conversation, usually with a lot of acronyms attached. This post explains what it is in practical terms, who has to use it (fewer merchants than the sales pitches suggest, more than none), how the Belgian rule works, and what it takes to send Peppol invoices from a Magento 2 store. It is written by the team that makes the E-Invoicing: Peppol module, so read the product section with that in mind. It is not tax advice.

What Peppol is, without the acronyms

Peppol is a set of rules plus an open network for exchanging structured business documents, mainly invoices. The Belgian administration compares it to a telephone network: you can send to anyone connected, through a certified service provider of your choice2. Those providers are called access points. OpenPeppol, the non-profit association under Belgian law that runs the framework, describes it as a model in which buyers and suppliers connect "via any Peppol-accredited Service Provider"3.

That is the four-corner model. Corner one is you, the seller, with your Magento store. Corner two is your access point. Corner three is the buyer's access point. Corner four is the buyer's accounting software. You never connect directly to your customer, and you do not have to use the same provider.

Each participant has a Peppol ID, which works like a phone number: a four-digit scheme code and an identifier. In Belgium that is 0208 followed by the company number from the Crossroads Bank for Enterprises2. German public bodies use 0204 plus their Leitweg-ID, and German businesses can use 9930 plus their VAT ID4.

How does your access point know where to deliver? Receivers are registered on a Service Metadata Publisher (SMP), which stores which document types a participant can receive and which access point serves them. The Service Metadata Locator (SML) tells the network which SMP to ask54. A sender does not need to register on an SMP if it only sends4. There is also the public Peppol Directory, a phone book where you can look up participants by name or ID, but not every participant is listed there2.

The document itself, for invoices, is Peppol BIS Billing 3.0: an XML invoice or credit note in UBL syntax. The specification describes itself as a Core Invoice Usage Specification of EN 16931, the European standard for e-invoices, and states that any document compliant with it is compliant with the European standard6. Network participants should at least be able to receive this document type2.

Who actually needs Peppol

This is where marketing and law tend to part ways.

Belgian businesses invoicing Belgian businesses. Since 1 January 2026, all Belgian enterprises liable to VAT must use structured electronic invoices with each other, exchanged between their software systems over Peppol1. It applies to any invoice drawn up, issued or sent from that date, whenever the sale took place7. It also applies to small businesses using the exemption scheme (turnover up to EUR 25,000), at least for receiving7.

Not covered in Belgium: invoices to private individuals, although even a business that only sells to consumers must be able to receive structured invoices from its suppliers1. And, importantly for Magento merchants abroad, VAT-registered persons not established in Belgium and without a permanent establishment there are not subject to the obligation, even if they have a Belgian VAT number. The administration notes that the law is still being amended on this point7.

So a Dutch or German webshop selling to Belgian businesses is, as things stand, not obliged to send them Peppol invoices. Many Belgian customers will still prefer them, and a business registered on Peppol has, under the network's rules, agreed to receive structured invoices that way7. Whether that is worth doing is a commercial question rather than a legal one.

Public bodies. Directive 2014/55/EU requires public contracting authorities across the EU to accept invoices that follow EN 169318, and many of them receive through Peppol. Belgium requires e-invoicing for public contracts published after 1 March 20241. In Germany, the federal OZG-RE portal accepts invoices over Peppol alongside e-mail, upload and web entry4. Rules for public bodies differ by country, and the European Commission's eInvoicing country factsheets are a reasonable starting point (the Commission notes it does not guarantee their accuracy, and the 2026 update was still in progress when we checked)9.

Everyone else, from 2030. The EU's VAT in the Digital Age package, Council Directive (EU) 2025/516, makes e-invoicing the default and brings digital reporting for cross-border B2B transactions from 1 July 20301011. Member States have been able to introduce mandatory domestic e-invoicing since the directive entered into force on 14 April 202510. Which network each country uses for that is a national choice; Peppol is not written into the directive.

What you must do by when

DateWhoWhat
Contracts published after 1 March 2024Suppliers to Belgian public authoritiesElectronic invoicing for public contracts1
1 January 2026Belgian VAT-liable businesses, invoicing each otherStructured e-invoices, in practice over Peppol; PDF by e-mail no longer enough17
1 January to 31 March 2026SameTolerance: no penalties for new-obligation offences if timely, reasonable steps were taken12
Until 30 June 2026Same, for self-billingFlexibility where software could not yet handle self-billing invoices7
2028 (planned)Belgian businessesE-reporting to the administration, in the coalition agreement but not yet in law13
1 July 2030Businesses trading across EU bordersDigital reporting based on e-invoices for intra-EU B2B (ViDA)10

The Belgian tolerance period has ended. The administration was explicit that it would not grant a general postponement and that each case would be assessed individually12.

Belgian rules that affect how you set up a store

A few answers from the Belgian FAQ are worth knowing before you configure anything72.

You should not have to ask customers for their Peppol ID. In Belgium, every company on Peppol must be registered with its company number (scheme 0208), and access points are contractually obliged to do so. As a supplier you can deliver to the company number by default, which is why the Belgian administration tells businesses not to chase Peppol IDs72.

A PDF copy is optional. The recipient cannot reject an invoice because no PDF was attached7.

Attachments go in the same channel. Supporting documents belong inside the UBL invoice, not in a separate e-mail7.

If the customer is not ready, you may use another method, but an electronic alternative needs their agreement, and you should not resend structured invoices retroactively once they are set up7.

Delivery is not instant. Most Peppol invoices arrive within minutes to a couple of hours; if one takes more than a working day, ask your software supplier2.

What a Magento store needs

Magento has no Peppol connection and does not produce UBL invoices. To send Peppol invoices you need three things: software that turns Magento invoices and credit memos into valid BIS Billing 3.0 files, a contract with an access point provider, and a way to hand files from one to the other. You also need your own Peppol ID, which your provider registers for you; you cannot register on Peppol directly2.

The simplest setup for a small Belgian shop may be its accounting package: many have Peppol built in, and if invoices are already re-entered there, sending from there is fine. It is when Magento is where invoices are made, and there are enough of them that re-entry hurts, that a connection from Magento itself pays off.

Step by step: Peppol from Magento

This is how our E-Invoicing: Peppol module works on Magento 2.4.7 to 2.4.9, following its product page and user guide1415.

  1. Choose an access point provider that the module supports: e-invoice.be, Recommand or Storecove. Sign a contract and get API credentials, and ideally a sandbox account first. Your provider registers your Peppol ID.
  2. Install commercegears/module-e-invoicing-peppol with Composer. It brings the free E-Invoicing Core module. Magento's cron must run.
  3. Enter your seller details and provider credentials in the admin, choose sandbox, and click Test Connection. Keys are stored encrypted.
  4. Check the rules. The suggested rules send Peppol BIS invoices to Belgian and Dutch business buyers; add rules for other countries.
  5. Check the checkout. Business buyers give their VAT ID and, if they know it, their Peppol ID (for example 0208:0123456789). When the Peppol ID is empty the module derives it: in Belgium 0208 plus the enterprise number, elsewhere the VAT scheme from the Peppol code list.
  6. Invoice as usual. Cron builds the BIS document and checks the XML schema, the EN 16931 rules, Peppol rules for electronic addresses and references, the Belgian enterprise number and the total against Magento.
  7. The buyer is looked up before sending. The module does what an access point does: it finds the buyer's SMP through the SML and asks which document types the buyer receives. A buyer who is not registered, or does not receive BIS invoices, stops with a clear message instead of failing on the network.
  8. Track the result. The admin shows status, network message ID, checksums and an audit trail of every API call with keys masked. A delivered document is never sent twice.

Credit memos become BIS credit notes that refer to the original invoice. Customers can download the XML in My Account on Luma and Hyvä. The same Peppol connection also delivers XRechnung UBL files from our German e-invoicing module, addressed with the Leitweg-ID as Peppol ID 0204.

Now the part we want to be plain about. The documents are the tested part: in our tests every invoice and credit note passed the OpenPeppol BIS Billing 3.0 schematron and the CEN EN 16931 UBL rules without errors or warnings, and the sample files are on the product page for you to run through any validator. The access point connections are beta. e-invoice.be was tested end to end with an e-invoice.be sandbox company; a sandbox company never delivers on Peppol, it e-mails the file instead, so no real Peppol delivery has been made with the module yet. Recommand and Storecove were built from their API documentation and tested against simulated answers, not with a real account. Storecove reports delivery status to your Storecove account, which the module does not read. Test with your provider's sandbox before you switch to production, and talk to us first if your provider is not one of these three.

What it does not include: the access point contract itself, receiving purchase invoices (your provider's inbox does that), and Peppol documents other than invoices and credit notes, such as orders or despatch advice.

Checklist

  1. Work out whether you are obliged: a Belgian establishment invoicing Belgian businesses, or a public-sector customer that requires Peppol. If neither, it is a service decision.
  2. Make sure your business can receive Peppol invoices if you are established in Belgium, even if you only sell to consumers.
  3. Choose an access point provider and get a sandbox account.
  4. Register your own Peppol ID through the provider (0208 plus your company number in Belgium).
  5. Collect business customers' VAT IDs at checkout; Peppol IDs can usually be derived.
  6. Validate sample BIS files before the first live invoice.
  7. Look up buyers before sending, so unregistered buyers get an e-mailed invoice by agreement instead of a failure.
  8. Put attachments inside the UBL file, not in a separate e-mail.
  9. Handle refunds as credit notes referring to the original invoice.
  10. Keep the structured invoice for the full retention period, plus a readable form.

Frequently asked questions

Is Peppol mandatory in Belgium?

Since 1 January 2026, structured e-invoices are compulsory between Belgian VAT-liable enterprises, and Peppol is the network the Belgian administration describes for it1. Invoices to private individuals are not covered.

I am not established in Belgium. Do I have to send Peppol invoices to Belgian customers?

According to the Belgian FAQ, VAT-registered persons not established in Belgium and without a permanent establishment there are not subject to the obligation; the law is still being amended on this point7. Your customers may still prefer Peppol.

What is a Peppol access point?

A certified service provider that connects you to the Peppol network and delivers documents to the buyer's access point2. You need a contract with one; software like ours connects Magento to it but is not an access point itself.

Do I need to ask Belgian customers for their Peppol ID?

No. Belgian companies on Peppol are registered under 0208 plus their company number, so you can deliver to that by default2.

What is Peppol BIS Billing 3.0?

The invoice and credit note format used on Peppol, in UBL syntax. It is a Core Invoice Usage Specification of EN 16931, so a compliant BIS invoice is also compliant with the European standard6.

Can I send to German public bodies over Peppol?

Yes, the federal OZG-RE portal accepts Peppol. The receiver ID is 0204 plus the Leitweg-ID4. The file is usually an XRechnung.

Also selling into Poland? See KSeF for Magento 2. For VAT numbers from business customers only, see asking business customers for a VAT number. The E-Invoicing: Peppol page has sample BIS files, and the user guide lists every setting.

Sources

  1. FPS Finance Belgium, "Structured electronic invoices between companies are compulsory since 2026" (with related article "E-invoicing to the government"), https://einvoice.belgium.be/en/article/structured-electronic-invoices-between-companies-are-compulsory-2026, checked 22 October 2026. ↩1 ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
  2. FPS Finance Belgium, FAQ "General questions about Peppol", questions 2 to 6 and 9, https://einvoice.belgium.be/en/FAQ/general-questions-about-peppol, checked 22 October 2026. ↩1 ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
  3. OpenPeppol, "About", https://peppol.org/about/, checked 22 October 2026. ↩
  4. E-Rechnung-Bund, FAQ, sections "Peppol participant ID", "How is the Peppol participant ID connected to the buyer reference" and transmission methods, https://e-rechnung-bund.de/en/faq/, checked 22 October 2026. ↩1 ↩2 ↩3 ↩4 ↩5
  5. OpenPeppol, eDelivery documentation (SML, SMP, AS4 and Peppol Directory specifications), https://peppol.org/documentation/technical-documentation/edelivery-documentation/, checked 22 October 2026. ↩
  6. OpenPeppol, "Peppol BIS Billing 3.0" (May 2026 release), section 1, https://docs.peppol.eu/poacc/billing/3.0/bis/, checked 22 October 2026. ↩1 ↩2
  7. FPS Finance Belgium, FAQ "General questions about the B2B obligation", questions 2, 7 to 9, 11, 12, 14, 15, 19 and 23 (updated 6 May 2026), https://einvoice.belgium.be/en/FAQ/general-questions-b2b, checked 22 October 2026. ↩1 ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12
  8. Directive 2014/55/EU of 16 April 2014 on electronic invoicing in public procurement, https://eur-lex.europa.eu/eli/dir/2014/55/oj, checked 22 October 2026. ↩
  9. European Commission, "2026 eInvoicing Country factsheets", https://ec.europa.eu/digital-building-blocks/sites/spaces/einvoicingCFS/pages/956171270/2026+eInvoicing+Country+factsheets, checked 22 October 2026. ↩
  10. European Commission, Taxation and Customs Union, "VAT in the Digital Age (ViDA)", https://taxation-customs.ec.europa.eu/taxation/vat/vat-digital-age-vida_en, checked 22 October 2026. ↩1 ↩2 ↩3
  11. Council Directive (EU) 2025/516 of 11 March 2025 amending Directive 2006/112/EC as regards VAT rules for the digital age, https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32025L0516, checked 22 October 2026. ↩
  12. FPS Finance Belgium, "Period of tolerance during the first three months of 2026", 18 December 2025, https://einvoice.belgium.be/en/news/period-tolerance-during-first-three-months-2026, checked 22 October 2026. ↩1 ↩2
  13. FPS Finance Belgium, FAQ "General questions on the future e-reporting obligation", questions 1 to 3, https://einvoice.belgium.be/en/FAQ/general-questions-about-e-reporting, checked 22 October 2026. ↩
  14. CommerceGears, "E-invoicing: Peppol" product page, version 2.2.0, https://commercegears.com/magento-2-extensions/e-invoicing-peppol/, checked 22 October 2026. ↩
  15. CommerceGears, E-Invoicing: Peppol user guide, https://commercegears.com/user-guides/magento-2-extensions/e-invoicing-peppol/, checked 22 October 2026. ↩

From our shop

Related Products

Keep reading

All posts