Skip to main content
Technical

Registering Peppol in Odoo (Germany): Step by Step

Peppol registration in Odoo (Germany): prerequisites, demo vs. live, formats, inbound bills in the purchase journal and the Leitweg-ID for B2G invoices.

  • Peppol
  • E-invoicing
  • XRechnung
  • Odoo
, Managing Director · Odoo ConsultantLast updated: 8 min readBeginner

Reviewed by Zakaria, Odoo Consultant · Accounting

Key Takeaways

1Why Peppol – and why not just e-mail
2Prerequisites
3Demo mode or live?
4Registration in Odoo: step by step

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.

PrerequisiteWhat you needNote
VAT IDa valid German VAT ID of the company that issues invoicesRegistration is tied to the VAT ID. In a group, plan one registration per legal entity.
Odoo databaseAccounting installed, company address in GermanyGermany is among the countries for which Odoo offers registration.
EditionCommunity or EnterprisePeppol registration is free and available in the Community edition (Odoo documentation 19.0).
RoleAccounting administratorRegistration, deregistration and journal assignment require administrator rights.
No second access pointno active registration of the same VAT ID with another providerCheck beforehand whether your VAT ID is already registered with another access point.
Recipientat least one customer or sister company with a Peppol identifierFor 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 modeLive
Registration in the networknoyes
IdentifierOdoo Demo IDyour VAT ID
Reception of real invoicesnoyes, several times a day
Usetesting, training, test databaseproduction

Registration in Odoo: step by step

  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. 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).

  7. 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.

  8. 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:

CheckToolBasis
Deliverystatus on the invoice in OdooOdoo documentation 19.0
Formal validity of the XMLKoSIT validator with the current XRechnung configurationFormat errors turn the file into an "other invoice" (BMF circular of 15 Oct 2025, para. 6a)
Business rulesvalidator reportAn empty BT-10 is a business-rule error (para. 6b)
Contentvisual check of the mandatory detailsAll 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

FormatFor whomStatus
XRechnung CIUSGerman business customers and public authoritiesXRechnung 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.0recipients outside Germany in the Peppol networkthe network's base profile built on EN 16931
NLCIUSrecipients in the NetherlandsDutch 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:

RuleFederal GovernmentBaden-Württemberg
Mandatory for invoice issuers since27 Nov 2020 (Section 3(1), Section 11(3) ERechV)1 Jan 2022
Exemptiondirect 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
FormatXRechnung in its current version (Section 4(1) ERechV)XRechnung; ZUGFeRD only in the profiles XRECHNUNG, EN 16931 (COMFORT) or EXTENDED
Leitweg-IDmandatory (Section 5(1) no. 1 ERechV), field BT-10mandatory
PlatformOZG-RE – the federal ZRE was merged into the OZG-RE in September 2025 and shut down at the end of 2025the State's own "Zentraler Rechnungseingang Baden-Württemberg (ZRE)"
ChannelsPeppol among othersweb 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.

The full overview of deadlines, formats and Odoo versions is in the guide E-invoicing with Odoo and on the topic page E-invoicing.

Frequently asked questions

Does Peppol registration in Odoo cost anything?

According to the Odoo documentation, registration is free and available in the Community edition. The documentation does not state per-document fees or volume limits; clarify the terms before going live.

Do I need an additional service provider for Peppol?

No. Odoo itself acts as access point and Service Metadata Publisher (SMP) and is listed by OpenPeppol as certified for both roles. Registration is done from within Odoo.

Do I have to use Peppol to meet the German e-invoicing mandate?

No. The Federal Ministry of Finance 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 for the reception duty in force since 1 January 2025 (para. 40). Peppol is the more robust route, not an obligation.

What if my VAT ID is already registered with another access point?

Then the existing registration has to be ended first; Odoo requires deregistration from the previous access point before its own registration. Ask your previous software vendor or service provider and get the deregistration confirmed in writing.

Which formats can Odoo send via Peppol?

The Odoo documentation names BIS Billing 3.0, XRechnung CIUS and NLCIUS. Choose XRechnung for German business customers and public authorities, BIS Billing 3.0 for recipients in other Peppol countries.

How do inbound invoices arrive in Odoo via Peppol?

Odoo checks for new documents several times a day and imports them automatically as drafts into the purchase journal. XML files do not need OCR credits. Accounting reviews the draft, matches it against the purchase order and posts it.

Do I need a Leitweg-ID for Peppol?

For invoices between companies (B2B), the BMF FAQ states that no Leitweg-ID is generally required. For invoices to public authorities (B2G) it is mandatory (Section 5(1) no. 1 ERechV) and belongs in field BT-10; you receive it from the contracting authority, invoice issuers do not need one of their own.

Can I test Peppol before going live?

Yes. In demo mode Odoo issues an Odoo Demo ID; you can store identifiers, send invoices and follow the status without anything reaching the network. Only the switch to live mode registers your VAT ID.

Sources

  1. Odoo documentation 19.0: Electronic invoicing (Peppol),
  2. Odoo documentation 17.0: Electronic invoicing (format per customer),
  3. OpenPeppol: Peppol Certified Service Providers,
  4. BMF circular of 15 Oct 2024 – introduction of mandatory e-invoicing (IHK mirror),
  5. BMF circular of 15 Oct 2025 – introduction of mandatory e-invoicing,
  6. BMF: FAQ on e-invoicing (as of 23 Mar 2026),
  7. E-Rechnungsverordnung (ERechV) – Sections 3, 4, 5, 11,
  8. E-Rechnung Bund: FAQ on Leitweg-ID, OZG-RE and transmission channels,
  9. E-Rechnung Bund: One year of successful consolidation (ZRE/OZG-RE),
  10. Service-BW: E-invoicing FAQ of the State of Baden-Württemberg,
  11. KoSIT: XRechnung – versions and bundles,
  12. KoSIT: validator-configuration-xrechnung (releases),
  13. Odoo 20.0: account_edi_xml_ubl_xrechnung.py (BT-10 / Leitweg-ID),
  14. DATEV: Introducing e-invoicing in your company (as of 03/2026, German),
  15. Bitkom: Fewer than half of German companies receive e-invoices (German),

Further reading

E-invoicing check

From 1 January 2027, companies with more than €800,000 prior-year turnover must issue e-invoices. Check in four questions whether your system can do it.

From 2028 the obligation applies to all companies. Within one business day you get an answer with your deadline and what your system needs.

Your starting point
Where should we reply?

Only used to handle your enquiry. Details in our privacy policy.

From 1 January 2027, companies with more than €800,000 prior-year turnover must issue e-invoices.

Check in four questions whether your system can do it. From 2028 the obligation applies to all companies.

Answer within one business day · Odoo Silver Partner

Pick a slot