EU-Recht (DE/AT)Anleitung

Peppol mit Odoo: Registrierung, Senden, Empfangen

Rechtsstand: · Aktualisiert:

Gilt für: Odoo 19.0 und 20.0; Community und Enterprise; Hosting laut Dokumentation ohne Einschränkung (Odoo Online, Odoo.sh, On-Premise); App Buchhaltung

Kurz gesagt

Peppol ist ein Netzwerk der OpenPeppol AISBL für strukturierte Geschäftsdokumente, vor allem Rechnungen; Odoo 19.0 und 20.0 treten dabei laut Dokumentation als Access Point und SMP auf. Sie wählen ein Kennungsschema, tragen Endpunkt, E-Mail und Telefonnummer ein und bestätigen; die Freischaltung dauert laut Dokumentation bis zu einen Tag. Prüfen Sie den Ablauf vorher im Demo-Modus, in dem kein Dokument die Datenbank verlässt.

Das Wichtigste

  • Peppol gehört der OpenPeppol AISBL; jeder Teilnehmer braucht einen zertifizierten Access Point.
  • Odoo 19.0 und 20.0 registrieren laut Dokumentation kostenlos und auch in Odoo Community.
  • Die Kennung besteht aus Schema und Wert, etwa 9930 für die deutsche USt-IdNr. (Code-Liste v9.7).
  • Registrierung in Buchhaltung ‣ Konfiguration ‣ Einstellungen, Abschnitt PEPPOL Electronic Invoicing.
  • Testweg: Demo-Modus mit der Kennung Odoo-Demo-ID; dabei verlässt kein Dokument die Datenbank.
  • Der Peppol-Status wird Done, sobald die Rechnung beim Access Point des Empfängers angekommen ist.

Worum es beim Peppol-Netz geht

Im Peppol-Netz tauschen Teilnehmer strukturierte Geschäftsdokumente aus. Eigentümerin ist die OpenPeppol AISBL in Brüssel, getragen von Peppol Authorities und zertifizierten Dienstleistern. Im Vier-Ecken-Modell verbindet je ein Access Point Sender und Empfänger; ein Access Point genügt für alle Teilnehmer. Adressen und Fähigkeiten der Teilnehmer stehen im zentralen Service Metadata Locator (SML) und in den Capability-Lookup-Diensten (SMP).

Nach der Dokumentation zu Odoo 19.0 und 20.0 tritt Odoo in beiden Rollen auf, als Access Point und als SMP. Regeln und Code-Listen setzt OpenPeppol; die Testbed-Plattform richtet sich an Dienstleister, nicht an Endanwender. Ob eine Gegenseite erreichbar ist, zeigen das Peppol Directory und der Peppol Lookup Service; nach der Beschreibung von OpenPeppol erscheint dort nicht jeder registrierte Empfänger.

Was Sie vorab brauchen

  • Odoo 19.0 oder 20.0 mit der App Buchhaltung (Accounting). Die Dokumentation nennt die Registrierung kostenlos und in Odoo Community verfügbar; eine Einschränkung auf eine Hosting-Form nennt sie nicht. Ihre Länderliste enthält unter anderem Deutschland, Österreich und die Schweiz.
  • Ihre Teilnehmerkennung: das Paar aus Kennungsschema und Wert. Die Code-Liste v9.7 der OpenPeppol vom 2. Juli 2026 führt unter anderem:
Land Kennungsschema Wert
Deutschland 9930 (DE:VAT) USt-IdNr.
Deutschland, öffentliche Auftraggeber 0204 (DE:LWID) Leitweg-ID
Österreich 9914 (AT:VAT) UID-Nummer
Schweiz 0183 (CH:UIDB) UID; einzutragen als CHE und neun Ziffern ohne Trennzeichen, Anzeige üblich als CHE-XXX.XXX.XXP
  • Eine E-Mail-Adresse und eine Telefonnummer mit Ländervorwahl.
  • Bestehende Registrierung klären: Pro Kennung kann laut Dokumentation nur eine Empfängerregistrierung aktiv sein. Wer schon über einen anderen Access Point Rechnungen empfängt, meldet sich dort zuerst ab; wer das nicht tut, wird nach dem öffentlichen Community-Quellcode 20.0 mit dieser Kennung bei Odoo nur als Sender registriert (Status Kann senden, aber nicht empfangen).

Schritt für Schritt: Registrierung im Netz

Schritt 1: Empfängerregistrierung beim alten Anbieter abmelden

Pro Kennung kann laut Dokumentation nur eine Empfängerregistrierung aktiv sein. Wer schon über einen anderen Access Point Rechnungen empfängt, meldet sich dort zuerst ab; erst danach lässt sich dieselbe Kennung in Odoo zum Empfangen registrieren. Ohne Abmeldung bleibt es beim Senden: Der öffentliche Community-Quellcode 20.0 weist im Registrierungsfenster darauf hin, dass die Firma bei einem Zugangspunkt für den Empfang von Rechnungen eingetragen ist, und registriert sie bei Odoo nur als Sender. Eine Ausnahme nennt die Dokumentation für den belgischen Dienst Hermes (BOSA): Dort läuft der Wechsel automatisch.

Schritt 2: Registrierungsmaske öffnen

Gehen Sie auf Buchhaltung (Accounting) ‣ Konfiguration (Configuration) ‣ Einstellungen (Settings) in den Abschnitt PEPPOL Electronic Invoicing und wählen Sie die Aktivierung (Dokumentation: Activate Electronic Invoicing; Community-Quellcode: Activate Peppol). Odoo öffnet das Fenster Elektronische Rechnungsstellung aktivieren (über Peppol); nach dem öffentlichen Community-Quellcode 20.0 ist es der Gruppe account.group_account_manager vorbehalten, die Registrierung braucht also einen Administrator in der Buchhaltung.

Schritt 3: Kennung, Kontakt und Bestätigung

Wählen Sie im Feld der Peppol-Kennung das passende Kennungsschema und tragen Sie den Wert ein; die Dokumentation nennt dafür die Handelsregister- oder die Umsatzsteuernummer. Ergänzen Sie E-Mail und Telefonnummer mit Ländervorwahl und bestätigen Sie mit Activate Peppol. Ergebnis: Die Einstellungsseite zeigt Ihre Peppol-Kennung; laut Dokumentation wird die Registrierung innerhalb eines Tages automatisch aktiviert.

Schritt 4: Empfangsziel festlegen

Wohin eingehende Rechnungen laufen, stellen Sie auf derselben Seite ein. Die Dokumentation beschreibt Receive in Journal, das jeden Eingang als Entwurf in das Feld Incoming Invoices Journal legt, sowie Receive in Documents für einen Arbeitsbereich der Dokumenten-App (Documents, Enterprise). Der öffentliche Community-Quellcode 19.0 und 20.0 zeigt stattdessen Peppol Participation Role (Senden & Empfangen, Nur senden) und das Feld Incoming Accounting Journal. Ergebnis: Eingänge landen im gewählten Journal; ohne Einkaufsjournal protokolliert der Abruf nur eine Warnung.

Schritt 5: Freischaltung kontrollieren

Aktivieren Sie den Entwicklermodus und öffnen Sie Einstellungen ‣ Technik (Technical) ‣ Geplante Aktionen (Scheduled Actions). Starten Sie die Aktion Peppol: update participant status mit Run Manually. Ergebnis: Der Status wechselt auf Kann senden, ausstehende Registrierung zum Empfangen oder Kann senden und empfangen (deutsche Bezeichnungen der Community-Übersetzung).

Die Testnachricht: im Demo-Modus üben

Bevor die erste echte Rechnung hinausgeht, prüfen Sie den Ablauf ohne Netzkontakt. Die Dokumentation beschreibt dafür den Demo-Modus: Sie wählen als Peppol-Kennung die Odoo-Demo-ID statt eines echten Schemas und aktivieren die Registrierung. Im öffentlichen Community-Quellcode von 19.0 und 20.0 beantwortet Odoo dann alle Aufrufe an den Peppol-Proxy lokal: Ein Versand verlässt die Datenbank nicht, sondern stößt den Abruf an, der einmalig eine Demonstrations-Eingangsrechnung ins Einkaufsjournal legt. Auch die Prüfung einer Gegenstelle liefert dann ein gültiges Ergebnis, sobald Kennungsschema, Wert und Rechnungsformat formal passen; ob die Gegenseite existiert, prüft die Demo nicht.

So gehen Sie vor:

  1. Registrieren Sie wie oben, aber wählen Sie im Kennungsfeld Odoo-Demo-ID.
  2. Öffnen Sie eine gebuchte Ausgangsrechnung, wählen Sie Send mit der Option durch Peppol (by Peppol), dann Send.
  3. Starten Sie im Entwicklermodus unter Einstellungen ‣ Technik ‣ Geplante Aktionen die Aktion Peppol: retrieve new documents, falls der Versand den Abruf nicht schon ausgelöst hat.
  4. Prüfen Sie das Ergebnis: Die Ausgangsrechnung trägt einen Peppol-Status, und im Einkaufsjournal liegt der Entwurf einer Eingangsrechnung.
  5. Trennen Sie danach die Verbindung (Peppol trennen) und registrieren Sie in Produktion.

Der öffentliche Community-Quellcode 20.0 kennt außerdem einen Modus Test für das Test-Peppol-Netz; sichtbar ist die Schaltfläche nur, wenn der Systemparameter account_peppol.edi.mode auf test steht. Der Demo-Modus ersetzt ihn nicht: Er prüft Abläufe in Odoo, nicht die Erreichbarkeit der Gegenseite.

Testweg (Odoo 19.0 und 20.0) Was Odoo tut Was Sie danach prüfen
Demo-Modus über die Kennung Odoo-Demo-ID Antworten des Peppol-Proxy kommen lokal (Community-Quellcode 20.0, tools/demo_utils.py); kein Dokument verlässt die Datenbank, eine Demonstrations-Eingangsrechnung wird einmalig eingelesen Die Ausgangsrechnung trägt einen Peppol-Status, im Einkaufsjournal liegt ein Entwurf
Modus Test (nur im Community-Quellcode belegt) Versand über das Test-Peppol-Netz Der Versand gelingt; Eingang nur, wenn auch die Gegenseite im Testnetz registriert ist

Rechnungen senden und Eingangsrechnungen abholen

Hinterlegen Sie beim Kunden im Reiter Accounting das E-Rechnungsformat und die Peppol-Kennung. Im Entwicklermodus prüft Verify den Kontakt gegen das Netz; die Dokumentation nennt das Ergebnis Valid, die deutsche Übersetzung zeigt im Feld Peppol-Status Werte wie Partner ist bei Peppol. Gebuchte Rechnungen finden Sie über den Filter Peppol bereit (Peppol Ready) oder die Spalte Peppol-Status; der Versand läuft über Send mit der Option durch Peppol, einzeln oder gesammelt. Den Status Done setzt Odoo, sobald die Rechnung beim Access Point der Gegenseite angekommen ist.

Eingehende Rechnungen holt Odoo automatisch ab: Die Dokumentation schreibt mehrmals täglich, der öffentliche Community-Quellcode 20.0 lässt die geplante Aktion Peppol: retrieve new documents alle vier Stunden laufen. Sie legt Entwürfe im gewählten Einkaufsjournal an. Den Weg über die Dokumenten-App beschreibt E-Rechnung empfangen und verarbeiten in Odoo.

Welche Rechnung im Netz zulässig ist

Für den Versand nennt die Dokumentation BIS Billing 3.0, XRechnung CIUS und NLCIUS. Peppol BIS Billing 3.0 ist nach der Spezifikation der OpenPeppol (Fassung 3.0.21) eine CIUS der europäischen Norm EN 16931; eine Rechnung, die ihr genügt, genügt der Norm.

In Deutschland verlangt § 14 Abs. 1 Satz 6 UStG ein strukturiertes elektronisches Format, das der Norm und der Syntaxliste nach der Richtlinie 2014/55/EU entspricht, oder ein zwischen den Parteien vereinbartes, in ein normkonformes Format extrahierbares Format; für eine Leistung an einen anderen Unternehmer für dessen Unternehmen ist die Rechnung als E-Rechnung auszustellen, wenn der Umsatz nicht nach § 4 Nr. 8 bis 29 UStG steuerfrei ist und beide im Inland oder in einem Gebiet nach § 1 Abs. 3 UStG ansässig sind (§ 14 Abs. 2 Satz 2 Nr. 1 UStG); Rechnungen über Kleinbeträge bis 250 Euro mit den Angaben nach § 33 Satz 1 UStDV dürfen abweichend davon immer als sonstige Rechnung übermittelt werden (§ 33 Satz 4 UStDV); nach § 33 Satz 3 UStDV gilt das nicht für Rechnungen über Leistungen im Sinne der §§ 3c, 6a und 13b UStG. Dasselbe gilt für Fahrausweise (§ 34 UStDV) und für Rechnungen über nach § 19 Abs. 1 UStG steuerfreie Kleinunternehmerumsätze (§ 34a UStDV). § 27 Abs. 38 Nr. 1 UStG lässt Rechnungen über 2025 und 2026 ausgeführte Umsätze bis zum 31. Dezember 2026 noch auf Papier oder mit Zustimmung des Empfängers in einem anderen elektronischen Format zu; für 2027 ausgeführte Umsätze gilt das nach Nr. 2 bis zum 31. Dezember 2027, wenn der Gesamtumsatz des Vorjahres höchstens 800.000 Euro betrug. Die Pflichtstufen stehen in E-Rechnung in Deutschland: Pflicht und Odoo-Umsetzung, die Formate in E-Rechnung senden in Odoo: XRechnung und ZUGFeRD.

So prüfen Sie das Ergebnis

  • Die Einstellungsseite zeigt Ihre Peppol-Kennung und den Status Kann senden und empfangen oder Kann senden, ausstehende Registrierung zum Empfangen.
  • Der Demo-Versand hat den Peppol-Status der Ausgangsrechnung gesetzt und einen Entwurf im Einkaufsjournal erzeugt.
  • Die Kennung der Gegenseite ist geprüft und lautet Partner ist bei Peppol; nach der ersten echten Rechnung steht deren Status auf Done.

Wenn etwas nicht klappt

Symptom Ursache nach Dokumentation 19.0/20.0 oder Community-Quellcode 20.0 Abhilfe
Registrierung bleibt ausstehend Die Freischaltung dauert laut Dokumentation bis zu einen Tag; die geplante Statusabfrage lief noch nicht Die Aktion Peppol: update participant status im Entwicklermodus manuell starten
Odoo meldet, Ihre Firma sei bei einem Zugangspunkt schon für den Rechnungsempfang registriert Die Kennung ist dort als Empfänger eingetragen; laut Dokumentation kann pro Kennung nur eine Empfängerregistrierung aktiv sein Dort abmelden (beim belgischen Hermes (BOSA) entfällt dieser Schritt) und in Odoo erneut registrieren; ohne Abmeldung registriert Odoo Sie nur als Sender
Keine eingehenden Dokumente Kein Einkaufsjournal gesetzt oder die Registrierung steht noch aus Einkaufsjournal wählen, Abruf im Entwicklermodus manuell starten
Partner ist nicht bei Peppol Schema oder Wert weichen von der Angabe der Gegenseite ab, oder die Gegenstelle ist im Netz nicht als Empfänger eingetragen Kennung abgleichen und den Peppol Lookup Service nutzen
Partner kann Format nicht empfangen Die Gegenseite unterstützt das gewählte Format nicht Eines der von der Dokumentation genannten Formate vereinbaren: BIS Billing 3.0, XRechnung CIUS oder NLCIUS

Wann Sie Hilfe holen sollten

Holen Sie Ihren Odoo-Partner oder den Odoo-Support dazu, wenn die Registrierung abgelehnt wurde, wenn Sie eine selbst betriebene Datenbank anbinden, bei mehreren Firmen oder bei wiederkehrenden Formatfehlern eines Empfängers. Steuerliche Fragen zur E-Rechnung klären Sie mit Ihrer Steuerberatung.

Häufige Fragen

Kostet die Peppol-Registrierung in Odoo etwas?

Nach der Dokumentation zu Odoo 19.0 und 20.0 ist sie kostenlos und auch in Odoo Community möglich; für die Registrierung selbst nennt sie keine Kosten. Im öffentlichen Community-Quellcode 20.0 lässt sich die Teilnahmerolle auf Nur senden stellen, ohne Empfängerregistrierung im SMP.

Kann ich meine bestehende Peppol-Registrierung von einem anderen Anbieter übernehmen?

Für den Empfang nein: Pro Kennung kann laut Dokumentation nur eine Empfängerregistrierung aktiv sein. Sie melden sich beim bisherigen Access Point zuerst ab und registrieren danach dieselbe Kennung mit der neuen Verbindung; ohne Abmeldung registriert Odoo Sie nach dem öffentlichen Community-Quellcode 20.0 nur als Sender (Status Kann senden, aber nicht empfangen). Für den belgischen Dienst Hermes (BOSA) nennt die Dokumentation eine Ausnahme: Dort läuft die Migration automatisch, ohne eigenes Abmelden.

Genügt der Demo-Modus als Nachweis?

Nein. Im Demo-Modus beantwortet Odoo nach dem öffentlichen Community-Quellcode 20.0 alle Aufrufe an den Peppol-Proxy lokal, überträgt also kein Dokument, und die Kontaktprüfung meldet ein gültiges Ergebnis, sobald Kennungsschema, Wert und ein unterstütztes Rechnungsformat formal passen; ob die Gegenstelle im Netz existiert, prüft sie dort nicht. Er zeigt, dass Ihre Abläufe in Odoo greifen, aber nicht, dass die Gegenseite Ihre Rechnung erreicht.

Muss ich Peppol nutzen, wenn ich in Deutschland E-Rechnungen stellen muss?

Das UStG verlangt ein strukturiertes elektronisches Format nach § 14 Abs. 1 Satz 6 UStG und für eine Leistung an einen anderen Unternehmer für dessen Unternehmen die Ausstellung als E-Rechnung, wenn der Umsatz nicht nach § 4 Nr. 8 bis 29 UStG steuerfrei ist und beide im Inland oder in einem Gebiet nach § 1 Abs. 3 UStG ansässig sind (§ 14 Abs. 2 Satz 2 Nr. 1 UStG); Rechnungen über Kleinbeträge bis 250 Euro mit den Angaben nach § 33 Satz 1 UStDV dürfen abweichend davon immer als sonstige Rechnung übermittelt werden (§ 33 Satz 4 UStDV); nach § 33 Satz 3 UStDV gilt das nicht für Rechnungen über Leistungen im Sinne der §§ 3c, 6a und 13b UStG. Dasselbe gilt für Fahrausweise (§ 34 UStDV) und für Rechnungen über nach § 19 Abs. 1 UStG steuerfreie Kleinunternehmerumsätze (§ 34a UStDV). In § 14, § 27 Abs. 38 UStG und den §§ 33, 34, 34a UStDV ist kein Übermittlungsweg vorgeschrieben; Peppol ist ein möglicher Weg neben anderen.

Wie lange dauert die Aktivierung?

Laut Dokumentation wird die Registrierung innerhalb eines Tages automatisch aktiviert; die Seite zeigt den Status bis dahin als ausstehend. Läuft sie nicht um, starten Sie im Entwicklermodus die geplante Aktion Peppol: update participant status manuell, wie es die Dokumentation als Tipp beschreibt.

Quellen

  1. Electronic invoicing (EDI), Abschnitt Peppol (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  2. Electronic invoicing (EDI), Abschnitt Peppol (Odoo 19.0)Odoo S.A., Dokumentation · abgerufen am
  3. Odoo documentation, Versionsliste bis 20.0 (aktueller Zweig)Odoo S.A. · abgerufen am
  4. Peppol (For End Users), Vier-Ecken-Modell und Rolle der Service ProviderOpenPeppol AISBL · abgerufen am
  5. Peppol Interoperability Framework: Governance, Access Points, SML, SMP, PKIOpenPeppol AISBL · abgerufen am
  6. Peppol Testbed (Konformitätstests für Service Provider)OpenPeppol AISBL · abgerufen am
  7. Peppol DirectoryOpenPeppol AISBL · abgerufen am
  8. Peppol Lookup ServiceOpenPeppol AISBL · abgerufen am
  9. OpenPeppol eDEC Code Lists, Version 9.7 vom 2. Juli 2026OpenPeppol AISBL · abgerufen am
  10. Peppol Code Lists – Participant identifier schemes v9.7 (HTML), unter anderem 9930 DE:VAT, 0204 DE:LWID, 9914 AT:VAT, 0183 CH:UIDBOpenPeppol AISBL · abgerufen am
  11. Peppol BIS Billing, Fassung 3.0.21 (CIUS der EN 16931)OpenPeppol AISBL · abgerufen am
  12. § 14 UStG, Ausstellung von RechnungenBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  13. § 27 Abs. 38 UStG, Übergangsregelung zur E-RechnungBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  14. § 33 UStDV, Rechnungen über Kleinbeträge (bis 250 Euro; Satz 3 nimmt Rechnungen über Leistungen nach §§ 3c, 6a und 13b UStG aus)Bundesministerium der Justiz, Gesetze im Internet · abgerufen am
  15. § 34 UStDV, Fahrausweise als Rechnungen (als sonstige Rechnung)Bundesministerium der Justiz, Gesetze im Internet · abgerufen am
  16. § 34a UStDV, Rechnungen von Kleinunternehmern (als sonstige Rechnung)Bundesministerium der Justiz, Gesetze im Internet · abgerufen am
  17. Quellcode account_peppol, Zweig 20.0: res_company.py, res_partner.py, res_config_settings.py, wizard/peppol_registration.py (Registrierung, Kennungsschemen, Demo-Modus)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  18. Quellcode account_peppol, Zweig 20.0 (Mechanik in 19.0 gegengeprüft): tools/demo_utils.py (lokale Antworten im Demo-Modus, Demonstrations-Eingangsrechnung)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  19. Quellcode account_peppol, Zweig 20.0: data/cron.xml (Abruf alle vier Stunden) und views/res_config_settings_views.xml (Einstellungsseite)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  20. Deutsche Übersetzung des Moduls account_peppol, Zweig 20.0 (Oberflächenbezeichnungen)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am