DE · AT · CHRatgeber

Rückverfolgbarkeit in Odoo für Audits

Rechtsstand: · Aktualisiert:

Gilt für: Odoo 20.0; App Lager Community und Enterprise; Buchhaltung: Unveränderlichkeitsbericht in Community; Qualität nur Enterprise; Odoo Online, Odoo.sh, On-Premise

Kurz gesagt

Für ein Audit zählt die Kette, nicht die Funktion: In Odoo 20.0 zeigen Sie sie an der Los-/Seriennummer über den Rückverfolgbarkeitsbericht und über die Bewegungshistorie unter Lager ‣ Berichtswesen. Der Nachweis trägt nur, wenn Verfolgung und Vorgangsarten vorher eingerichtet sind und Sie die Daten ausleiten können; die Fristen stehen in § 147 AO, § 132 BAO und Art. 958f OR.

Das Wichtigste

  • Lager ‣ Berichtswesen ‣ Bewegungshistorie zeigt die Buchungen je Los-/Seriennummer; diese Ansicht sehen nur Administratoren.
  • An der Los-/Seriennummer öffnet die Schaltfläche Rückverfolgbarkeit den Weg vom Wareneingang bis zur Lieferung.
  • Ausleiten: Listensicht ‣ Aktionen ‣ Exportieren, als CSV oder XLSX.
  • Aufbewahrung Deutschland: zehn Jahre für Bücher und Aufzeichnungen, acht Jahre für Buchungsbelege (§ 147 Abs. 3 Satz 1 AO).
  • Österreich sieben Jahre (§ 132 Abs. 1 BAO); Schweiz zehn Jahre ab Ablauf des Geschäftsjahres (Art. 958f Abs. 1 OR).
  • Der Bericht zur Unveränderlichkeitsprüfung deckt gesicherte Buchungssätze der App Buchhaltung, nicht Lagerbewegungen.

Wenn eine Partie zurückgerufen wird, zählt die Uhr: Welche Kunden haben Ware aus diesem Los erhalten, und mit welcher Lieferung kam sie ins Haus? Prüfer stellen dieselbe Frage später als Nachweis. Odoo hält die Antwort in den Lagerbuchungen bereit, aber nur, wenn beim Buchen Nummern erfasst wurden.

Was ein Audit verlangt

Für diesen Rückverfolgbarkeitsfall fassen wir den Nachweis in vier Fragen zusammen (redaktionelle Prüfliste dieses Artikels, keine gesetzliche Vorgabe): Ist jede Bewegung einer Nummer erfasst? Verweist jede Bewegung auf einen Beleg? Ist der Bestand zum Stichtag belegbar? Und sind die Daten noch da, wenn der Prüfer kommt?

Diese Kette gibt es nur für Produkte, die auf Los- oder Seriennummernverfolgung stehen. Ein Produkt ohne Verfolgung bucht weiter Bewegungen, aber keine Nummer, und taucht in keiner Abfrage nach einer Nummer auf.

In Deutschland knüpft die Außenprüfung an § 147 der Abgabenordnung (AO) an. Sind die Unterlagen mit einem Datenverarbeitungssystem erstellt, kann die Finanzbehörde nach § 147 Abs. 6 AO Einsicht nehmen, eine maschinelle Auswertung nach ihren Vorgaben verlangen oder die Übertragung in einem maschinell auswertbaren Format. Wer Unterlagen elektronisch aufbewahrt, muss nach § 147 Abs. 2 Nr. 2 AO sicherstellen, dass sie während der Aufbewahrungsfrist jederzeit verfügbar sind, unverzüglich lesbar gemacht und maschinell ausgewertet werden können. Die GoBD fassen das Verfahren zusammen (BMF-Schreiben vom 28. November 2019, 2. Änderung vom 14. Juli 2025); Einzelheiten stehen in GoBD und Odoo.

In Österreich lässt § 132 Abs. 2 BAO die Aufbewahrung auf Datenträgern nur zu, wenn die vollständige, geordnete, inhaltsgleiche und urschriftgetreue Wiedergabe bis zum Fristablauf jederzeit gewährleistet ist; liegen die Unterlagen ausschließlich auf Datenträgern vor, entfällt die Urschriftgetreue (§ 132 Abs. 2 Satz 2 BAO). Die Schweiz erlaubt nach Art. 958f Abs. 3 OR Papier, elektronische oder vergleichbare Aufbewahrung, wenn die Übereinstimmung mit den Geschäftsvorfällen gewährleistet ist und die Aufzeichnungen jederzeit wieder lesbar gemacht werden können.

Dazu kommen Branchenpflichten: Die Verordnung (EG) Nr. 178/2002 gilt für alle Produktions-, Verarbeitungs- und Vertriebsstufen von Lebensmitteln und Futtermitteln im EU-Binnenmarkt, also in Deutschland und Österreich (Art. 1 Abs. 3); für die Schweiz folgt daraus keine Inlandspflicht. Art. 18 verlangt die Rückverfolgbarkeit auf allen Stufen (Abs. 1) und die Feststellung des Lieferanten jeder Partie (Abs. 2) sowie der Unternehmen, an die geliefert wurde (Abs. 3), auf Aufforderung der zuständigen Behörde.

Die Nachweiskarte: Anforderung und Auswertung

Die Tabelle ordnet jeder Anforderung die Auswertung zu, mit der Sie sie in Odoo 20.0 zeigen; die rechte Spalte sagt, was der Nachweis enthält.

Anforderung im Audit Nachweis in Odoo 20.0 Was der Nachweis zeigt
Vollständige Kette je Nummer Lager ‣ Berichtswesen ‣ Bewegungshistorie, gruppiert nach Los-/Seriennummer je Buchung Datum, Referenz, Produkt, Los-/Seriennummer, Von, Nach, Menge, Einheit und Status
Richtung: vorwärts zu den Kunden, rückwärts zum Wareneingang Lager ‣ Produkte ‣ Los-/Seriennummern, Nummer öffnen, Schaltfläche Rückverfolgbarkeit alle Lagerbuchungen dieser Nummer mit Referenzbeleg in einer Liste
Bestand am Stichtag und je Lagerplatz Lager ‣ Berichtswesen ‣ Bestand und Detaillierter Bestand (dafür Lagerorte einschalten) Menge je Lagerort; der detaillierte Bericht führt Los-/Seriennummer und Lagerort je Zeile
Belegbezug: Bestellung, Wareneingang, Lieferauftrag Referenzspalte der Bewegungshistorie; Beleg über die Schaltflächen am Vorgang öffnen Vorgangsnummern wie WH/IN/00012 und WH/OUT/00012 und der Weg zum Ursprungsbeleg
Verfügbarkeit und Dauer gespeicherte Filter (Favoriten) und eigene Ablage der Exporte Deutschland zehn Jahre für Bücher und Aufzeichnungen, acht Jahre für Buchungsbelege (§ 147 Abs. 3 Satz 1 AO); Österreich sieben Jahre (§ 132 Abs. 1 BAO); Schweiz zehn Jahre ab Ablauf des Geschäftsjahres (Art. 958f Abs. 1 OR)
Datenzugriff des Prüfers: Übertragung in einem maschinell auswertbaren Format (Deutschland, § 147 Abs. 6 Satz 1 Nr. 3 AO) Listensicht ‣ Aktionen ‣ Exportieren, als CSV oder XLSX eine Datei mit den Spalten der Auswertung; was im Exportdialog ausgewählt ist, steht in der Datei
Branchenpflicht Lebensmittel im EU-Binnenmarkt (Deutschland und Österreich): eine Stufe zurück, eine Stufe vor (Art. 18 Abs. 2 und 3 VO (EG) Nr. 178/2002) Los-/Seriennummer am Wareneingang und auf dem Lieferschein (dafür die Option Los- & Seriennummern auf Lieferscheinen anzeigen setzen) von welchem Lieferanten die Partie kam und an welche Kunden sie ging
Qualitätsnachweis je Nummer (App Qualität, laut Editionsvergleich nur Enterprise) Kontrollen (Quality ‣ Quality Control ‣ Quality Checks) mit dem Feld Los-/Seriennummer das Prüfergebnis zur geprüften Nummer
Unveränderbarkeit gesicherter Buchungssätze (App Buchhaltung) Buchhaltung ‣ Konfiguration ‣ Einstellungen, Abschnitt Berichtswesen: Bericht über die Unveränderlichkeitsprüfung von Daten Hash-Kette und Lückenkontrolle der gesicherten Buchungssätze; Lagerbewegungen erfasst der Bericht nicht

Ein Beispiel: eine Partie vom Eingang bis zum Kunden

Beispielrechnung mit erfundenen Nummern und Mengen. Ein Betrieb erhält am 3. März 2026 1.200 Beutel eines verfolgten Produkts (Los L-2026-041), liefert die Partie über drei Wochen aus und verschrottet einen Rest.

Bewegung Beleg Menge in Beuteln Bestand des Loses in Beuteln
Wareneingang, 3. März 2026 WH/IN/00187 +1.200 1.200
Sieben Lieferungen, 5. bis 24. März 2026 WH/OUT/00211 bis WH/OUT/00217 −1.020 180
Verschrottung, 25. März 2026 WH/SCR/00012 −40 140
Bestand am 31. März 2026 – – 140

Die Probe geht auf: 1.200 minus 1.020 minus 40 ergibt 140. Der Prüfer sieht die sieben Lieferungen einzeln mit ihrer Nummer, dazu Verschrottung und Restbestand. Rückwärts führt der Weg vom Lieferauftrag über Detaillierte Vorgänge und die Rückverfolgbarkeit zum Wareneingang WH/IN/00187.

Korrekturen bleiben sichtbar: Der Community-Zweig 20.0 verweigert das Stornieren einer erledigten Lagerbuchung mit Ausnahme der Buchungen auf einen Inventur-Lagerort und verweist auf eine Rückgabe (Modul stock, Datei models/stock_move.py); eine Korrektur wird damit zu einer neuen Buchung. Für Enterprise, Odoo Online und Odoo.sh belegt der Community-Code diese Regel nicht.

Typische Fehler

  • Verfolgung erst nach dem Wareneingang eingeschaltet: Vorhandener Bestand liegt ohne Nummer; die Dokumentation beschreibt als Weg eine Bestandsanpassung, also Menge auf null und Neuerfassung mit Nummer.
  • Die Vorgangsart nimmt Ware ohne Nummer an: Solche Buchungen erscheinen in keiner Abfrage nach der Nummer. Wo die Haken sitzen, zeigt Chargen und Seriennummern in Odoo.
  • Nur die eigene Nummer statt der Lieferantencharge: Rückwärts fehlt die Verbindung zum Lieferanten; seine Nummer gehört in die Interne Referenz der Nummer.
  • Qualitätskontrolle auf Ebene des ganzen Vorgangs: Das Feld Los-/Seriennummer erscheint laut Dokumentation nur bei den Ebenen Produkt und Menge, die Kontrolle lässt sich der Partie dann nicht zuordnen (App Qualität, Enterprise).
  • Export erst am Prüfungstag geübt: Die Berichte im Lager sehen Administratorrechte vor, und der Exportdialog entscheidet über die Spalten der Datei. Ohne Export liegt der Nachweis allein in der Datenbank.

So gehen Sie vor

Die Schritte 1 und 2 brauchen Administratorrechte in der App Lager; die Auswertungen sehen laut Dokumentation ebenfalls nur Benutzer mit Administratorzugang.

  1. Verfolgung prüfen: Haken Los- & Seriennummern in Lager ‣ Konfiguration ‣ Einstellungen; am Produkt das Feld Nachverfolgung auf Mittels Los oder Mittels einzigartiger Seriennummer. Ergebnis: Das Produkt wird nur mit Nummer gebucht.
  2. Vorgangsarten festlegen: neue Nummern am Eingang erlauben, am Lieferauftrag bestehende wählen. Ergebnis: Kein Beleg wird ohne Nummer validiert, wo Ihre Kette sie braucht.
  3. Testpartie durchbuchen: Wareneingang, Umlagerung, Lieferung, Verschrottung. Ergebnis: Die Rückverfolgbarkeit zeigt alle vier Buchungen mit Referenz.
  4. Auswertungen als Favoriten speichern: Bewegungshistorie nach Los-/Seriennummer gruppiert, dazu Bestand je Lagerort; auf Wunsch für weitere Benutzer freigegeben. Ergebnis: Die Ansichten stehen beim nächsten Termin bereit.
  5. Export üben: Listensicht ‣ Aktionen ‣ Exportieren, Spalten kontrollieren. Ergebnis: Eine Datei mit Nummer, Beleg, Menge und Datum liegt in Ihrer Ablage.
  6. Fristen und Ablage festhalten: Notieren Sie die Frist an Ihrem Sitz und den Ablageort der Exporte. Ergebnis: Der Nachweis bleibt auffindbar. Die Länderfristen behandeln Aufbewahrung in Deutschland, Aufbewahrung in Österreich und Aufbewahrung in der Schweiz.

Häufige Fragen

Reicht die Bewegungshistorie als Nachweis für die Steuerprüfung?

Nur für die Vorgänge, die dort gebucht sind. Ohne Los-/Seriennummer am Wareneingang bleibt die Bewegung in der Bewegungshistorie, trägt aber keine Nummer; eine Abfrage nach der später vergebenen Nummer verbindet sie nicht, und die Kette hat an dieser Stelle eine Lücke. Prüfen Sie die Mengen je Nummer gegen Wareneingang, Lieferungen, Verschrottung und Bestand, bevor der Prüfer kommt.

Kann ich eine Charge nachträglich zuordnen?

Für Ware, die ohne Nummer im Lager liegt, beschreibt die Odoo-Dokumentation den Weg über eine Bestandsanpassung: Menge auf null setzen und mit Nummer neu erfassen. Die früher gebuchten Bewegungen bleiben ohne Nummer; eine Verbindung zwischen alter Bewegung und neuer Nummer entsteht dadurch nicht.

Gilt der Bericht zur Datenunveränderbarkeit auch für Lagerbewegungen?

Nein. Die Hash-Kette schreibt die gesicherten Buchungssätze der App Buchhaltung fest; gesichert wird über eine Option am Journal oder den Assistenten in der Buchhaltung, und nur gesicherte Einträge sind danach unveränderlich. Lagerbuchungen und Los-/Seriennummern erfasst der Bericht nicht. Für Lagerdaten stützt sich der Nachweis auf die Auswertungen, auf die Benutzerrechte und auf die Ausleitung in eine Datei.

Welche Frist gilt, wenn ich in mehreren Ländern liefere?

Jedes der drei Länder hat eine eigene Frist: Deutschland zehn Jahre für Bücher und Aufzeichnungen und acht Jahre für Buchungsbelege (§ 147 Abs. 3 Satz 1 AO), Österreich sieben Jahre (§ 132 Abs. 1 BAO), die Schweiz zehn Jahre ab Ablauf des Geschäftsjahres (Art. 958f Abs. 1 OR). Welche Regelung Ihr Unternehmen trifft, klären Sie mit Ihrer Steuerberatung.

Quellen

  1. Abgabenordnung (AO), § 147 Ordnungsvorschriften für die Aufbewahrung von UnterlagenBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  2. Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern, Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff (GoBD), 2. Änderung, BMF-Schreiben vom 14. Juli 2025, GZ IV D 2 - S 0316/00128/005/088Bundesministerium der Finanzen, amtliche Kopie des Bayerischen Landesamts für Steuern · abgerufen am
  3. Bundesabgabenordnung (BAO), § 132 Aufbewahrungspflicht, Fassung vom 13. Oktober 2026Bundesministerium für Finanzen, Rechtsinformationssystem des Bundes (RIS) · abgerufen am
  4. Obligationenrecht (OR), Art. 957 Pflicht zur Buchführung und Rechnungslegung und Art. 958f Führung und Aufbewahrung der Geschäftsbücher, konsolidierte Fassung vom 1. Oktober 2026 (SR 220)Schweizerische Eidgenossenschaft, Fedlex · abgerufen am
  5. Verordnung (EG) Nr. 178/2002 des Europäischen Parlaments und des Rates vom 28. Januar 2002, Art. 1 Anwendungsbereich und Art. 18 Rückverfolgbarkeit (Amtsblatt der Europäischen Gemeinschaften L 31 vom 1.2.2002)Amt für Veröffentlichungen der Europäischen Union (CELLAR), amtliche Amtsblatt-Fassung · abgerufen am
  6. Moves history report (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  7. Stock report (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  8. Detailed Stock report (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  9. Product tracking (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  10. Lot numbers (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  11. Reassign lot/serial numbers (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  12. Quality checks (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  13. Data inalterability check report (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  14. Export and import data (Odoo 20.0)Odoo S.A., Dokumentation · abgerufen am
  15. Compare Editions (Zeilen Inventory, Quality, Accounting)Odoo S.A. · abgerufen am
  16. Modul stock, Datei models/stock_move.py, Zweig 20.0 (Storno einer erledigten Lagerbuchung)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  17. Modul account, Dateien report/account_hash_integrity_templates.py und models/company.py (_check_hash_integrity), Zweig 20.0 (Hash-Kette und Integritätsbericht)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  18. Deutsche Übersetzung des Moduls stock, Zweig 20.0 (addons/stock/i18n/de.po), Quelle der deutschen Menü- und FeldnamenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am