DeutschlandAnleitung

Differenzbesteuerung an der Odoo-Kasse: Ankauf und Verkauf

Rechtsstand: · Aktualisiert:

Gilt für: Odoo 20.0; App Kassensystem (Point of Sale) in Community und Enterprise; Odoo Online, Odoo.sh, On-Premise; Apps Lager und Einkauf; deutsche Oberfläche

Kurz gesagt

Wiederverkäufer in Deutschland können gebrauchte bewegliche Gegenstände nach § 25a UStG differenzbesteuern, wenn ihnen die Stücke im Gemeinschaftsgebiet ohne Umsatzsteuer oder differenzbesteuert geliefert wurden; die Steuer wird aus der Differenz zwischen Verkaufs- und Einkaufspreis herausgerechnet. Am Tresen erfassen Sie den Ankauf als Einkauf, zahlen ihn per Ein-/Auszahlung aus der Kasse aus und verkaufen mit dem Hinweis Gebrauchtgegenstände/Sonderregelung ohne gesonderten Steuerausweis.

Das Wichtigste

  • § 25a Abs. 1 UStG verlangt einen Wiederverkäufer und Gegenstände, die ihm im Gemeinschaftsgebiet ohne Umsatzsteuer oder differenzbesteuert geliefert wurden.
  • Der Steuersatz ist der allgemeine Satz von 19 Prozent (§ 25a Abs. 5 Satz 1, § 12 Abs. 1 UStG); die Steuer wird aus der Differenz herausgerechnet.
  • In den Fällen der Differenzbesteuerung trägt die Rechnung die Angabe Gebrauchtgegenstände/Sonderregelung; der gesonderte Steuerausweis ist nicht anzuwenden (§ 14a Abs. 6 UStG).
  • Aufzeichnungen je Stück: Verkaufspreis, Einkaufspreis und Bemessungsgrundlage (§ 25a Abs. 6 UStG).
  • Odoo 20.0: Auszahlung mit Grund über Ein-/Auszahlung; die Steuerposition wählen Sie im Auftrag über das Drei-Punkte-Symbol und Steuer.
  • Österreich: Hinweis auf die Differenzbesteuerung in der Rechnung, für Gebrauchtgegenstände etwa die Angabe Gebrauchtgegenstände/Sonderregelung (§ 24 Abs. 7 UStG 1994).

Wer Gebrauchtes am Tresen ankauft, arbeitet an zwei Stellen: Die Ware kommt über den Einkauf in den Bestand, das Geld geht aus der Kasse, verkauft wird über das Kassensystem. Die Schritte gelten für Odoo 20.0 mit den Apps Kassensystem (Point of Sale), Lager, Einkauf und Buchhaltung.

Was Sie vorab brauchen

  • Rechte: Eine Ein- oder Auszahlung darf nur ausführen, wer im Kassensystem mindestens Basiszugriff (basic access) hat.
  • Produkte: Ein Produkt braucht Verfügbar im Kassensystem (Available in POS). Sind Kategorien des Kassensystems im Einsatz, muss es einer zugeordnet sein; sonst erscheint es im Kassenbildschirm nicht.
  • Kennzeichnung: Im Lager Los- & Seriennummern einschalten, am Produkt Nachverfolgung (Tracking) auf Mittels einzigartiger Seriennummer stellen; siehe Chargen und Seriennummern in Odoo.
  • Steuer: Legen Sie eine Steuer mit der Steuerberechnung Steuergruppe (Group of Taxes) ohne Untersätze und ohne Betrag an, Bezeichnung zum Beispiel Gebrauchtgegenstände/Sonderregelung. Sie steht am Produkt als Verkaufssteuer oder ersetzt die allgemeine Verkaufssteuer; dafür trägt sie im Feld Ersetzt (Replaces) die allgemeine Verkaufssteuer und die Steuerposition, in der sie gilt.
  • Kasse: In den Kassensystem-Einstellungen im Abschnitt Buchhaltung Flexible Steuern (Flexible Taxes) einschalten und Standard- und erlaubte Steuerpositionen wählen.
  • Belege und Fiskalisierung: Ankaufsbeleg auf Papier; die technische Sicherheitseinrichtung und die Kassenmitteilung beschreiben Odoo-Kasse und TSE in Deutschland und Kassenmeldepflicht mit Odoo.

Die Kasse rechnet die Steuer nicht aus der Differenz des angekauften Stücks. Odoo 20.0 kennt die Steuerberechnung als Steuergruppe, festen Betrag, Prozentsatz, Prozentsatz der enthaltenen Steuern und benutzerdefinierte Formel; die benutzerdefinierte Formel kann neben dem Einzelpreis auch Felder des Produkts lesen. Eine Steuerberechnung, die den Einkaufspreis des einzelnen angekauften Stücks aus dem zugehörigen Einkauf auswertet, beschreibt die Dokumentation nicht; rechnen Sie die Steuer deshalb je Stück aus und buchen Sie sie. Klären Sie mit Ihrer Steuerberatung, ob Ware und Einkäufe die Voraussetzungen des § 25a Abs. 1 UStG erfüllen; den Buchungsweg beschreibt Differenzbesteuerung nach § 25a UStG in Odoo.

Schritt für Schritt: ein Ankauf und ein Verkauf

Schritt 1: Das Stück aufnehmen und kennzeichnen

Nehmen Sie das Stück an, prüfen Sie es und vereinbaren Sie den Preis. Vergeben Sie eine Stücknummer und kleben Sie sie auf das Stück: Bei einem verfolgten Produkt übernimmt Odoo die Seriennummer beim Hinzufügen in den Warenkorb, und fehlt noch eine Nummer, öffnet sich ein Fenster zum Anlegen. Ergebnis: Lager und Kasse führen dasselbe Stück unter derselben Nummer.

Schritt 2: Den Ankauf erfassen

Die Dokumentation zum Kassensystem beschreibt für Warenbewegungen Verkauf und Erstattung; der Ankauf gehört in den Einkauf. Legen Sie einen neuen Auftrag an, wählen Sie den Lieferanten (zum Beispiel Ankauf privat), tragen Sie das Stück mit Menge 1 und den vereinbarten Preis ein und bestätigen Sie. Die Zeile bleibt ohne Steuer, weil von einer Privatperson keine Umsatzsteuer geschuldet wird; § 25a Abs. 1 Nr. 2 UStG setzt das voraus. Kaufen Sie von einem anderen Wiederverkäufer, greift die zweite Alternative der Nummer 2, weil auf der Vorstufe schon die Differenzbesteuerung angewandt wurde; weist der Lieferer dagegen Umsatzsteuer aus, ist die Differenzbesteuerung für dieses Stück nicht eröffnet. Nach dem Validieren des Wareneingangs liegt das Stück im Bestand. Siehe Einkauf in Odoo und Eingangsrechnungen erfassen.

Schritt 3: Den Kaufpreis aus der Kasse auszahlen

Öffnen Sie im Kassenbildschirm das Menü (Hamburger-Symbol), wählen Sie Ein-/Auszahlung (Cash In/Out) und Auszahlung. Tragen Sie den Betrag und als Grund die Nummer des Ankaufsbelegs ein und bestätigen Sie. Die Dokumentation beschreibt die Funktion ausdrücklich für einen Geldvorgang ohne Verkauf. Ergebnis: Der Betrag fehlt im erwarteten Kassenbestand und ist mit einem Grund belegt.

Schritt 4: Den Ankaufsbeleg aushändigen

Händigen Sie der verkaufenden Person einen Beleg aus; er hält den Einkaufspreis je Stück fest, den § 25a Abs. 6 UStG in Ihren Aufzeichnungen verlangt. Beispieltext:

Zweiradex, Hauptstraße 4, 12345 Musterstadt
Ankaufsbeleg Nr. A-2026-0147
Datum: 17.10.2026
Gegenstand: Trekkingrad, Stücknummer RAD-2026-0147
Ankaufspreis: 60,00 EUR, in bar ausgezahlt
Ankauf von privat, ohne Umsatzsteuer
Name der verkaufenden Person: A. Beispiel
Unterschrift: ______________

Name und Anschrift der verkaufenden Person sind eine redaktionelle Empfehlung; § 25a Abs. 6 UStG verlangt Verkaufspreise, Einkaufspreise und Bemessungsgrundlagen.

Schritt 5: Das Stück verkaufen

Wählen Sie das Produkt im Kassenbildschirm; bei einem verfolgten Produkt steht die Stücknummer danach im Warenkorb. Weicht der Preis von der Vorgabe ab, ändern Sie ihn mit dem Feld Preis (Price). Trägt das Produkt noch die allgemeine Verkaufssteuer, wählen Sie im Auftrag über das Drei-Punkte-Symbol und Steuer (Tax) die Steuerposition, die Ihre Differenzsteuer anwendet. Markieren Sie die Zeile und legen Sie über das Drei-Punkte-Symbol eine Kundennotiz (Customer Note) mit dem Text Gebrauchtgegenstände/Sonderregelung an; Kundennotizen erscheinen nach der Dokumentation auf Belegen und Rechnungen. Ergebnis: Der Warenkorb zeigt den vollen Preis, und die Zeile trägt den Hinweis.

Schritt 6: Abschließen und den Beleg ausgeben

Klicken Sie Zahlung (Payment), wählen Sie die Zahlungsart und Validieren (Validate). Drucken Sie den vollständigen Beleg (Full Receipt) oder lassen Sie ihn über Automatischer Bondruck (Automatic Receipt Printing) automatisch erstellen. Notieren Sie die Bonnummer in Ihrer Stückliste. Den Tagesabschluss beschreibt Schichtabschluss und Kassenabgleich.

So sieht der Kassenbon aus

Für den Verkauf eines differenzbesteuerten Stücks, Beispieltext:

Zweiradex, Hauptstraße 4, 12345 Musterstadt
Bon 2026-000481                17.10.2026 15:42
Vorgang 15:42:03 bis 15:42:11
1 x Gebrauchtes Trekkingrad (RAD-2026-0147)  129,00
Gebrauchtgegenstände/Sonderregelung (Differenzbesteuerung § 25a UStG)
Steuersatz 19 %, kein gesonderter Steuerausweis
Summe                                       129,00
Bar                                         129,00
Seriennummer Kasse: K-01   TSE: BSI-K-TR-0000-0000
Prüfwert: 4711ABCD   Signaturzähler: 4711

Der Kassenbon muss die Angaben des § 6 Satz 1 KassenSichV tragen: Name und Anschrift des Unternehmers, Datum sowie Beginn und Ende des Vorgangs, Menge und Art der Ware, Transaktionsnummer, Entgelt und Steuerbetrag in einer Summe mit dem anzuwendenden Steuersatz, die Seriennummern von Aufzeichnungssystem und TSE sowie Prüfwert und Signaturzähler. Im Beispiel trägt der Artikelname die Stücknummer.

Der anzuwendende Satz ist bei einer differenzbesteuerten Lieferung der allgemeine Satz, im Belegbeispiel also 19 Prozent (§ 25a Abs. 5 Satz 1, § 12 Abs. 1 UStG). Einen gesonderten Steuerbetrag zeigt der Beleg nicht: § 14a Abs. 6 Satz 2 UStG nimmt den gesonderten Steuerausweis nach § 14 Abs. 4 Satz 1 Nr. 8 UStG für die Fälle des § 25a Abs. 3 und 4 aus, und nach Satz 1 trägt die Rechnung die Angabe Gebrauchtgegenstände/Sonderregelung.

So führen Sie die Aufzeichnung je Stück

§ 25a Abs. 6 UStG verlangt Aufzeichnungen, aus denen sich Verkaufspreise, Einkaufspreise und Bemessungsgrundlagen ergeben; bei zusätzlicher allgemeiner Besteuerung sind getrennte Aufzeichnungen zu führen. Führen Sie deshalb eine Zeile je Stück. Die Beispielrechnung nutzt erfundene Zahlen in Euro:

Angabe Beispiel
Stücknummer RAD-2026-0147
Ankaufsbeleg A-2026-0147 vom 17.10.2026
Einkaufspreis (Ankauf von privat, ohne Umsatzsteuer) 60,00
Verkaufspreis (brutto, Bon 2026-000481 vom 17.10.2026) 129,00
Differenz nach § 25a Abs. 3 Satz 1 UStG 69,00
Umsatzsteuer darin (69,00 ÷ 1,19 × 0,19) 11,02
Bemessungsgrundlage (69,00 − 11,02) 57,98

Der Einkaufspreis steht am Einkauf, der Verkaufspreis am Kassenauftrag, die Stücknummer an beiden. Prüfen Sie nach jedem Vorgang, dass Ankaufsbeleg, Eingangsrechnung und Kassenbon zusammenpassen.

So prüfen Sie das Ergebnis

  • Der Kassenbon trägt bei der differenzbesteuerten Zeile den Hinweis Gebrauchtgegenstände/Sonderregelung, und im Steuerblock steht kein Betrag aus der allgemeinen Steuer.
  • Der Bericht Verkaufsdetails (Sales Details) der Sitzung führt im öffentlichen Community-Zweig 20.0 die Steuern mit Bezeichnung und Betrag auf; prüfen Sie ihn in Ihrer Datenbank.
  • Die Auftragsliste der Sitzung zeigt Bonnummer, Datum, Kasse und Betrag.
  • Prüfen Sie, dass die Stücknummer am Kassenauftrag steht und sich bis zum Wareneingang zurückverfolgen lässt.
  • Ihre Stückliste lässt jede Verkaufsposition auf den Ankauf, die Bonnummer und die Bemessungsgrundlage zurückführen.

Wenn etwas nicht klappt

Symptom Ursache Behebung
Auf dem Bon steht ein Steuerbetrag Die Zeile trägt noch die allgemeine Verkaufssteuer Im Auftrag die Differenzsteuer wählen; bei ausschließlich differenzbesteuertem Verkauf die Steuer am Produkt ändern
Der Hinweis fehlt auf dem Bon Es wurde keine Kundennotiz gesetzt Kundennotiz an der Zeile oder Text in der Fußzeile des Kassenbons hinterlegen
Die Stücknummer fehlt im Warenkorb Keine Verfolgung am Produkt oder Nummer nicht gewählt Nachverfolgung auf Mittels einzigartiger Seriennummer stellen, Nummer anlegen oder auswählen
Der Ankauf steht nicht im Bestand Wareneingang nicht validiert Wareneingang validieren
Die Auszahlung fehlt im Kassenbestand Vorgang nicht bestätigt oder Recht fehlt Mit Basiszugriff wiederholen und den Grund eintragen

Österreich und die Schweiz

Österreich regelt die Differenzbesteuerung in § 24 UStG 1994 mit eigenen Voraussetzungen. Die Rechnung muss nach Abs. 7 auf die Differenzbesteuerung hinweisen; für Gebrauchtgegenstände nennt die Vorschrift die Angabe Gebrauchtgegenstände/Sonderregelung als Beispiel, und der gesonderte Steuerausweis nach § 11 Abs. 1 UStG 1994 ist nicht anzuwenden. Dazu kommt die Registrierkassenpflicht, siehe Registrierkassa in Österreich mit Odoo.

Die Schweiz beschränkt die Margenbesteuerung in Art. 24a MWSTG auf Sammlerstücke wie Kunstgegenstände und Antiquitäten (in Kraft seit 1. Januar 2018). Für gewöhnliche Gebrauchtwaren nennt die Vorschrift diese Möglichkeit nicht; die Steuer bemisst sich dann nach dem empfangenen Entgelt (Art. 24 Abs. 1 MWSTG). Ob 8,1 Prozent oder 2,6 Prozent gilt, entscheidet nicht das Wort gebraucht, sondern die Ware: Auf Gegenstände, die weder dem reduzierten Satz noch dem Sondersatz für Beherbergung unterliegen, entfällt seit 1. Januar 2024 der Normalsatz von 8,1 Prozent (Art. 25 Abs. 1 MWSTG); für Waren des reduzierten Satzes wie Lebensmittel, Bücher oder Medikamente gilt 2,6 Prozent (Art. 25 Abs. 2 MWSTG). Siehe Odoo-Kasse in der Schweiz.

Wann Sie Hilfe holen sollten

  • Wenn unklar ist, ob Ihre Ware und Ihre Einkäufe unter § 25a Abs. 1 UStG fallen, etwa bei grenzüberschreitenden Einkäufen, für die Abs. 7 Ausnahmen nennt.
  • Wenn Sie neben der Differenzbesteuerung auch die allgemeine Besteuerung anwenden; dann sind getrennte Aufzeichnungen zu führen (§ 25a Abs. 6 Satz 2 UStG).
  • Wenn Sie den Verzicht nach § 25a Abs. 8 UStG prüfen oder statt der Einzelmarge die Gesamtdifferenz eines Zeitraums bilden wollen; die Wahl gehört in die Buchhaltung und in die Voranmeldung.

Häufige Fragen

Darf ich für den Ankauf die Erstattung (Refund) im Kassensystem benutzen?

Für den Ankauf nein. Die Erstattung im Kassensystem ist eine Rückgabe: Odoo 20.0 beschreibt die auftragsbezogene Erstattung, die einen bezahlten Auftrag auswählt und mit dem ursprünglichen Beleg verknüpft, und die eigenständige Erstattung ohne ursprünglichen Auftrag, bei der Sie das Produkt mit negativer Menge erfassen; nach der Validierung entsteht eine Gutschrift. Beide Vorgänge mindern den Umsatz des Kassensystems, während der Ankauf Ware hinzufügt und Geld aus der Kasse nimmt. Erfassen Sie den Ankauf deshalb als Einkauf und das ausgezahlte Geld als Auszahlung aus der Kasse, damit Wareneingang und Kassenbestand stimmen.

Muss ich jedes gebrauchte Stück als eigenes Produkt anlegen?

Nicht zwingend. § 25a Abs. 6 UStG verlangt Einkaufspreis, Verkaufspreis und Bemessungsgrundlage je Stück in Ihren Aufzeichnungen, nicht je Stück einen Produktdatensatz. Ein eigenes Produkt oder eine eigene Los-/Seriennummer passt, wenn Sie Bestand und Einstandspreis im System führen wollen.

Was gilt, wenn ich ein Stück billiger verkaufe, als ich es eingekauft habe?

Dann übersteigt der Verkaufspreis den Einkaufspreis nicht; nach dem Wortlaut des § 25a Abs. 3 Satz 1 UStG entsteht kein positiver Betrag, aus dem eine Steuer zu rechnen wäre. Die Aufzeichnungen nach Abs. 6 führen Sie trotzdem. Ob eine Verrechnung möglich ist, hängt von der gewählten Methode ab.

Gilt die Differenzbesteuerung auch für Schmuck und Gold?

Für Edelsteine und Edelmetalle aus den Zolltarifpositionen, die § 25a Abs. 1 Nr. 3 UStG nennt, gilt sie nicht. Ob ein einzelnes Stück darunter fällt und wie der Einkauf zu beurteilen ist, klären Sie mit Ihrer Steuerberatung.

Quellen

  1. Umsatzsteuergesetz (UStG), § 25a DifferenzbesteuerungBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  2. Umsatzsteuergesetz (UStG), § 14a Zusätzliche Pflichten bei der Ausstellung von Rechnungen in besonderen FällenBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  3. Umsatzsteuergesetz (UStG), § 12 SteuersätzeBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  4. Umsatzsteuergesetz (UStG), Vollzitat und Stand der Fassung (zuletzt geändert durch Artikel 5 des Gesetzes vom 29. Juni 2026, BGBl. 2026 I Nr. 197)Bundesministerium der Justiz, Gesetze im Internet · abgerufen am
  5. Kassensicherungsverordnung (KassenSichV), § 6 Anforderungen an den BelegBundesministerium der Justiz, Gesetze im Internet · abgerufen am
  6. Umsatzsteuergesetz 1994, § 24 Differenzbesteuerung, Fassung vom 13. Oktober 2026, gültig ab 1. Jänner 2025, zuletzt geändert durch BGBl. I Nr. 113/2024Bundeskanzleramt der Republik Österreich, Rechtsinformationssystem des Bundes (RIS) · abgerufen am
  7. Bundesgesetz über die Mehrwertsteuer (Mehrwertsteuergesetz, MWSTG), SR 641.20, konsolidierte Fassung vom 31. März 2025 (Art. 24 Bemessungsgrundlage, Art. 24a Margenbesteuerung, Art. 25 Steuersätze)Schweizerische Eidgenossenschaft, Fedlex (amtliches PDF) · abgerufen am
  8. Workflow (Point of Sale), Abschnitte Sell products, Return and refund products, Manage the cash register, Close the POS register, Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  9. Receipts (Point of Sale), Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  10. Products (Point of Sale), Abschnitte Product creation, Stock management, Serial numbers and lots, Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  11. Pricing features (Point of Sale), Abschnitt Flexible taxes (fiscal positions), Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  12. Reporting (Point of Sale), Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  13. Fiscal positions (tax and account mapping), Abschnitte Configuration und Tax mapping, Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  14. Tax computation, Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  15. One-step receipt and delivery, Abschnitte Configuration und Receive goods directly (1 step), Odoo 20.0Odoo S.A., Dokumentation · abgerufen am
  16. Odoo-Editionen im Vergleich (Zeile Point of Sale, Spalten Community und Enterprise)Odoo S.A. · abgerufen am
  17. Deutsche Übersetzung des Moduls point_of_sale, Zweig 20.0 (addons/point_of_sale/i18n/de.po), Quelle der deutschen MenünamenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  18. Quellcode des Moduls point_of_sale, Zweig 20.0 (views/res_config_settings_views.xml und models/res_config_settings.py: Einstellung Flexible Taxes über das Feld tax_regime_selection), Beleg nur für Community-VerhaltenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  19. Quellcode des Moduls point_of_sale, Zweig 20.0 (receipt/pos_order_receipt.xml und receipt/pos_sale_details_receipt.xml: Steuerblock des Belegs und Steuerzeilen des Sitzungsberichts), Beleg nur für Community-VerhaltenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  20. Quellcode des Moduls account, Zweig 20.0 (models/account_tax.py: Steuerberechnungsarten und Feld Ersetzt für Ersatzsteuern) mit deutscher Übersetzung (i18n/de.po), Beleg nur für Community-VerhaltenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  21. Deutsche Übersetzung des Moduls stock, Zweig 20.0 (addons/stock/i18n/de.po: Los- & Seriennummern, Nachverfolgung), Beleg nur für Community-VerhaltenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am

Weiterverwenden: frei mit Quellenangabe und Link – so geht's