Quick verdict: Odoo is a certified Peppol access point and SMP; registration is free and available in the Community edition. You need your VAT ID, an Odoo database and certainty that your identifier is not registered with another access point. You send XRechnung and BIS Billing 3.0 and receive inbound invoices several times a day as drafts in the purchase journal.
Why Peppol – and why not just e-mail
Peppol transfers structured business documents between registered participants, each connected through an access point. A Service Metadata Publisher (SMP) records which document types a recipient supports. The sender uses the recipient’s identifier, and the network handles delivery.
Peppol is not mandatory for e-invoicing in Germany. The Federal Ministry of Finance (BMF) names e-mail, an electronic interface, a shared storage location and a download portal as permitted transmission channels (BMF circular of 15 Oct 2024, para. 36). An e-mail inbox is enough to meet the reception duty in force since 1 January 2025 (para. 40).
So why Peppol? Three reasons that matter in daily operations:
- Delivery without media breaks. The XML file arrives directly in your system, not in an inbox someone has to copy it out of. In its guide (as of 03/2026), DATEV describes sending e-invoices by e-mail as "anfällig" (vulnerable).
- Traceability. Sender and recipient are identified through registered identifiers; delivery is logged.
- Access to public-sector business. The invoice intake platforms of the Federal Government and of the State of Baden-Württemberg accept XRechnung via Peppol (more below).
A Bitkom survey dated 3 December 2024 recorded the position at that time: 45 percent of German companies could receive e-invoices and 5 percent used XRechnung.
Prerequisites
OpenPeppol lists Odoo SA as a certified access point and SMP. Registration takes place directly in Odoo without an additional provider. This guide follows the Odoo 19 documentation; menu layouts may differ in earlier versions.
| Prerequisite | What you need | Note |
|---|---|---|
| VAT ID | a valid German VAT ID of the company that issues invoices | Registration is tied to the VAT ID. In a group, plan one registration per legal entity. |
| Odoo database | Accounting installed, company address in Germany | Germany is among the countries for which Odoo offers registration. |
| Edition | Community or Enterprise | Peppol registration is free and available in the Community edition (Odoo documentation 19.0). |
| Role | Accounting administrator | Registration, deregistration and journal assignment require administrator rights. |
| No second access point | no active registration of the same VAT ID with another provider | Check beforehand whether your VAT ID is already registered with another access point. |
| Recipient | at least one customer or sister company with a Peppol identifier | For the test invoice. |
Demo mode or live?
Demo mode provides an “Odoo Demo ID”. You can use it to enter customer identifiers, send invoices and follow their status without joining the live network. Use this mode for testing and training.
Switching to live mode registers your VAT ID in the Peppol network. Other participants can then reach you, including suppliers sending invoices. Prepare the production database and receiving purchase journal before making this switch.
| Demo mode | Live | |
|---|---|---|
| Registration in the network | no | yes |
| Identifier | Odoo Demo ID | your VAT ID |
| Reception of real invoices | no | yes, several times a day |
| Use | testing, training, test database | production |
Registration in Odoo: step by step
-
Check the company master data. Company name, address, country and VAT ID must be complete and correct in the company record. These details go to the network with the registration.
-
Rule out an earlier registration. Find out whether your VAT ID is already registered with another access point – through a previous invoicing tool, a provider for public-sector invoices or a test registration from an old project. If so, end that registration first (next section).
-
Enable demo mode and rehearse the flow. In the Accounting settings, enable electronic invoicing via Peppol in demo mode. Create a test customer with an identifier, send an invoice and see where Odoo shows the status.
-
Register live. Switch from demo mode to live and register the company with its VAT ID. Odoo acts as access point and SMP. Record who in the company owns the registration.
-
Prepare customers for Peppol. Store the Peppol identifier and the invoice format on the customer; the format is set per customer on the Accounting tab (Odoo documentation 17.0). Choose XRechnung CIUS for German business customers and public authorities, BIS Billing 3.0 for recipients in other Peppol countries, NLCIUS for the Netherlands.
-
Send a test invoice and validate it. Send a first invoice to a recipient that demonstrably receives via Peppol – a customer who has confirmed it, or a second company of your own. Follow the delivery status on the invoice. Validate the generated XML with the KoSIT validator as well (version 1.6.3 with the XRechnung configuration of 31 Aug 2026), because Odoo ships no validation report of its own. Keep the report (BMF circular of 15 Oct 2025, para. 35a).
-
Set up reception. Choose the purchase journal in which inbound Peppol documents arrive as drafts. Odoo fetches new documents several times a day. Decide who reviews and approves the drafts.
-
Add public-sector customers. For public authorities, store the buyer's Leitweg-ID; it belongs in field BT-10 of the XRechnung. Odoo 20 takes the Leitweg-ID from the contact into BT-10 when the addressing scheme 0204 is set. In versions 17 to 19, Odoo fills BT-10 with "N/A" when nothing is entered; check there before sending that the Leitweg-ID ends up in the structured part.
Deregistering from a previous access point
An existing registration with another access point must be ended before registering in Odoo (Odoo documentation 19.0). Check this early, even if the previous connection has not been used for some time.
Typical cases:
- A previous invoicing tool had its own Peppol connection and registered the VAT ID during setup.
- A service provider submitted public-sector invoices via Peppol using the company's identifier.
- A test registration from an earlier project was never ended.
Ask the previous provider to confirm in writing whether your VAT ID is registered and, if needed, confirm its deregistration. Allow several working days for this before go-live.
What to check after the test invoice
A delivered invoice is not yet a proper invoice. Check three levels:
| Check | Tool | Basis |
|---|---|---|
| Delivery | status on the invoice in Odoo | Odoo documentation 19.0 |
| Formal validity of the XML | KoSIT validator with the current XRechnung configuration | Format errors turn the file into an "other invoice" (BMF circular of 15 Oct 2025, para. 6a) |
| Business rules | validator report | An empty BT-10 is a business-rule error (para. 6b) |
| Content | visual check of the mandatory details | All mandatory details must sit in the structured part; a link to an external source is not enough (para. 35) |
Validation does not replace the recipient's own duty to check the invoice; the recipient may, however, rely on the technical result, and keeping the validation report is the recommended evidence (para. 35a).
Receiving via Peppol
Once your identifier is live, suppliers can deliver invoices to you via Peppol. Odoo checks for new documents several times a day and imports them automatically as drafts into the purchase journal (Odoo documentation 19.0). Accounting reviews the draft, matches it against the purchase order and posts it. XML files do not consume OCR credits.
Peppol does not replace the e-mail inbox. Suppliers without a Peppol connection keep sending by e-mail; an e-mail alias in Odoo turns attached PDF and XML files into drafts as well. Invoices for small amounts up to EUR 250, tickets and invoices from small businesses (Kleinunternehmer) may permanently be issued as "other invoices" (BMF circular of 15 Oct 2025, para. 22) – these need a route into the system too. How to bring all three channels into one process is covered in Automating incoming invoices with Odoo.
Formats: BIS Billing 3.0, XRechnung CIUS, NLCIUS
| Format | For whom | Status |
|---|---|---|
| XRechnung CIUS | German business customers and public authorities | XRechnung 3.0.2 (release of 31 Aug 2026); version 3.0 stays in force until at least 31 Jul 2027, 4.0 is expected in spring 2027 |
| Peppol BIS Billing 3.0 | recipients outside Germany in the Peppol network | the network's base profile built on EN 16931 |
| NLCIUS | recipients in the Netherlands | Dutch specialisation of EN 16931 |
ZUGFeRD – a PDF with embedded XML – is not among these sending formats; in Odoo it goes out as an attachment by e-mail. When XRechnung and when ZUGFeRD is the right choice is covered in XRechnung or ZUGFeRD? A decision guide for Odoo.
Limits and open points
So that you do not run into them mid-project:
- One registration per VAT ID. Registration is tied to the identifier. Check beforehand whether your VAT ID is already registered with another access point, and plan each legal entity of a group separately.
- Fees. The Odoo documentation names no per-document fees and no volume limits. Clarify the terms before going live.
- No built-in validation report. Odoo produces no KoSIT validation report; validate externally and file the report.
- Leitweg-ID by version. Automatic mapping into BT-10 is verified in Odoo 20; in versions 17 to 19, check the field before every public-sector dispatch.
Peppol and B2G: Leitweg-ID, OZG-RE and the ZRE Baden-Württemberg
Between companies (B2B), the BMF FAQ (as of 23 Mar 2026) states that no Leitweg-ID is generally required for e-invoices. Invoices to public authorities are different:
| Rule | Federal Government | Baden-Württemberg |
|---|---|---|
| Mandatory for invoice issuers since | 27 Nov 2020 (Section 3(1), Section 11(3) ERechV) | 1 Jan 2022 |
| Exemption | direct orders up to EUR 1,000 (Section 3(3) no. 1 ERechV) | up to EUR 1,000 net until 31 Dec 2026; from 1 Jan 2027 only up to EUR 250 gross |
| Format | XRechnung in its current version (Section 4(1) ERechV) | XRechnung; ZUGFeRD only in the profiles XRECHNUNG, EN 16931 (COMFORT) or EXTENDED |
| Leitweg-ID | mandatory (Section 5(1) no. 1 ERechV), field BT-10 | mandatory |
| Platform | OZG-RE – the federal ZRE was merged into the OZG-RE in September 2025 and shut down at the end of 2025 | the State's own "Zentraler Rechnungseingang Baden-Württemberg (ZRE)" |
| Channels | Peppol among others | web upload, e-mail, Peppol |
Three points that cause confusion in practice:
- The Leitweg-ID identifies the recipient. It consists of a coarse address, a fine address and a check digit (example: 991-1234512345-06) and belongs in field BT-10 of the XRechnung. Invoice issuers do not need a Leitweg-ID of their own; you receive it from the contracting authority.
- Today the abbreviation "ZRE" denotes the State platform of Baden-Württemberg. The federal platform of the same name no longer exists; the federal route is called OZG-RE.
- The federal states regulate e-invoicing to their administrations themselves; anyone supplying several states checks the rule per state.
In Odoo, store the Leitweg-ID on the authority’s contact record and select XRechnung. Send through Peppol or one of the channels offered by the receiving platform.
Next step
Ruetech uses e-invoicing for its own billing and has configured it in Odoo for clients in Germany and abroad.
- You want to see the flow yourself: create an Odoo test database and rehearse demo mode.
- You want to know where your company stands: complete the readiness check – twelve questions, result shown on the page right away.
- You want to plan the rollout with us: request an e-invoicing consultation. What the rollout covers is described under E-invoicing with Odoo.
The full overview of deadlines, formats and Odoo versions is in the guide E-invoicing with Odoo and on the topic page E-invoicing.