The Peppol access point is built into Odoo. How to switch it on, choose the Peppol BIS Billing 3.0 format, test, send and receive, with no third-party software.
In short. Odoo has its own built-in Peppol access point: no third-party software is needed to send and receive electronic invoices. You switch it on in the Accounting settings, by entering your company's Peppol identifier and choosing the Peppol BIS Billing 3.0 format. In Luxembourg it is already the channel for public procurement, and it will be the backbone of the business-to-business obligation from 2028. Here is how to switch it on cleanly, and the pitfalls specific to the Luxembourg context.
The question comes up as soon as a Luxembourg SME starts preparing for the e-invoicing deadline: do you need to buy another module, a connector, one more subscription? With Odoo, no. The Peppol network is reachable natively from the Accounting app. It still has to be configured correctly, because a sloppy connection ends in invoices rejected at the far end of the chain. This guide walks through the setup step by step, on Odoo 19 at the time of writing.
Why Peppol, and why inside Odoo
Peppol is a decentralised exchange network: your access point talks to your customer's, each connected to the network, with no central platform storing the invoices. It is the model Luxembourg has used for public procurement since 18 March 2023, and the one the business-to-business obligation will rely on, in stages between 2028 and 2029. We set out that timetable and its consequences in our piece on e-invoicing in Luxembourg.
The advantage of going through Odoo rather than an external service comes down to one word: continuity. The invoice is not exported to a portal and then re-imported. It is born in your accounting, leaves on Peppol from that same accounting, and the invoices you receive come back into it directly. No double entry, no file passed from hand to hand.
Before you start: what to have ready
Three things make for a successful connection. The first is your company's Peppol identifier, made of a scheme and a number. In Luxembourg, the VAT number (scheme 9938) or the national business ID are commonly used. The second is a complete, accurate company record in Odoo: name, address, VAT number, RCS number. The network rejects inconsistent identities. The third is the choice of sending format: for Luxembourg, Peppol BIS Billing 3.0 in UBL XML, compliant with the European EN 16931 norm.
Switching on Peppol in Odoo, step by step
The configuration lives in the Accounting app, under settings. The principle is always the same, whatever the exact labels from one version to the next.
- Open Accounting, then Configuration, then Settings, and find the section on electronic invoicing.
- Check your company record first: the VAT number and address must be filled in and accurate, because they build your identity on the network.
- Enter your Peppol identifier (the scheme and the number), then register your company on the network from within Odoo.
- Odoo offers a test mode before going live: use it to confirm your company is registered and reachable, then switch to production once the check passes.
- Set the default sending format, Peppol BIS Billing 3.0, and apply it to the customers concerned.
Once that switch is made, your company shows up as a participant on the network. The whole point of this step is data consistency: an identifier that does not match your VAT number, an incomplete address, and registration fails or, worse, ends in an identity your customers cannot find.
Rather have the connection done right the first time? We switch on Peppol in your Odoo and test the sending with you.
Switch on Peppol in my OdooSending an invoice over Peppol
Once the connection is in place, sending blends into your usual flow. When a customer invoice is confirmed, Odoo checks whether the recipient is reachable on the Peppol network. If they are, the structured invoice goes out automatically through that channel, alongside the human-readable PDF. If they are not, Odoo falls back on the usual sending, by email or print. So you do not have to sort your customers by hand: the tool picks the right channel at send time.
The transmission status is visible on the invoice, which removes the "did it actually go out?" doubt. If the network rejects it, the reason comes back into Odoo, and it is almost always a missing piece of data on the customer or the invoice, in the realm of the mandatory invoice details in Luxembourg.
Receiving vendor bills over Peppol
This is the side many overlook, even though it is the first to become mandatory in Luxembourg, from 2028. Once your company is registered on Peppol, the invoices your suppliers issue over the network land directly in Odoo, as draft vendor bills, already structured. No more PDF to download from an email, no more retyping the amount and the VAT rate.
The gain stacks with the automatic reading of the documents you still receive as PDFs. We covered that part in our article on Odoo invoice OCR: Peppol invoices come in structured, the remaining PDFs are read and pre-booked, and all that is left is to validate.
The points to watch in the Luxembourg context
A few settings tie back to the local context and deserve a check. The chart of accounts must be the PCN 2020, and Luxembourg VAT rates must be correctly linked to products and services, otherwise the structured invoice will carry the wrong VAT. For public procurement, bear in mind that MyGuichet.lu remains a fallback if a buyer is not on Peppol, but the network is the normal route. And if your company was not yet configured for Luxembourg, now is the moment: we describe that foundation in our guide to setting up Luxembourg accounting in Odoo.
Who the native setup is not enough for
Let us be honest about the limits. Odoo's built-in access point covers the needs of an SME that invoices and receives at a reasonable volume. If you handle very particular flows, massive volumes, specific sector formats or platform constraints imposed by a large buyer, you will sometimes need a specialised access point or a dedicated connector. Equally, switching it on is simple, but cleaning up the upstream data (customer identities, rates, mandatory details) is the real work: that is where rejections happen, not in the activation button. For the vast majority of Luxembourg SMEs, though, the native option does the job.
Want your Odoo ready for the 2028 deadline with no nasty surprise? We will handle it.
Get my Odoo readyFrequently asked questions
Do you need a paid module to use Peppol in Odoo?
No. Odoo includes a native Peppol access point in the Accounting app. You switch it on in the settings, with no third-party software. Transmission costs may apply depending on the edition and volume, but the connection itself needs no external connector.
Which format should you choose for Luxembourg?
Peppol BIS Billing 3.0 in UBL XML, compliant with the European EN 16931 norm. It is the format accepted for Luxembourg public procurement and the backbone planned for the business-to-business obligation.
How do you know if your customer can receive a Peppol invoice?
Odoo checks automatically at send time: if the customer is registered on the network, the structured invoice goes out over Peppol; otherwise Odoo falls back on email or print. You do not have to check it customer by customer.
Will my suppliers' invoices arrive automatically?
Yes, as soon as your company is registered on Peppol and the supplier issues through that channel. The invoice lands in Odoo as an already-structured draft vendor bill, with no download and no re-entry.
Can you test before going live?
Yes. Odoo offers a test mode to confirm your company's registration and reachability on the network before the switch to production. It is the step not to skip, so you avoid rejections in real conditions.
Further reading
- E-invoicing in Luxembourg: obligations, Peppol and Odoo
- Odoo invoice OCR: ending manual entry of vendor bills
- Setting up Luxembourg accounting in Odoo: PCN, FAIA and eCDF
- Mandatory invoice details in Luxembourg: the full list
- Odoo in Luxembourg: is it the right ERP for your SME?
Why Advena?
We implement Odoo for Luxembourg SMEs and keep their books in the same tool, on a flat fee, from €325 per month. Switching on Peppol, choosing the format, testing before production and cleaning up customer data are part of the setup we put in place at the start. The result: your invoices go out in the right format, your suppliers' invoices arrive structured in your books, and you are ready for the deadline without having thought about it. No traditional accounting firm touches your ERP, no integrator keeps your books: we do both.
Procedure described as at 13 October 2026, based on Odoo 19 and the Odoo e-invoicing documentation. Exact menu labels may vary between versions.
Tell us where your Odoo stands, we will tell you what is left to switch on. No commitment.
Talk about my Odoo