thomaskekeisen.de

Aus dem Leben eines Bildschirmarbyters

Achtung: Diese Seite enthält Partner- und Werbe-Links. Daher ist diese Seite im Gesamten als Werbeanzeige zu verstehen!

Receiptsy

aus Etsy-Bestellungen werden fertige PDF-Rechnungen

Receiptsy: aus Etsy-Bestellungen werden fertige PDF-Rechnungen

Seit einer Weile verkaufe ich unter dem Namen Bastelsaal auf Etsy. Kein Imperium, sondern ein sehr überschaubarer Shop mit einem einzigen Produkt: einem Adapter, der die DJI Osmo Pocket 3 und 4 mit dem Elgato Prompter verbindet. Entstanden ist er, weil ich selbst genau dieses Teil brauchte und es nirgends zu kaufen gab. Also habe ich es konstruiert, im 3D-Druck hergestellt und irgendwann gedacht: Das brauchen bestimmt auch andere.

Was ich dabei völlig unterschätzt habe: Der schwierige Teil an so einem kleinen Shop ist nicht das Produkt. Es ist die Rechnung.

Das Problem: Etsy schreibt keine Rechnungen

Etsy ist ein Marktplatz, keine Buchhaltung. Du bekommst dort keine ordentliche Ausgangsrechnung für deine Verkäufe, die du deiner Steuerberatung hinlegen oder einer Kundin schicken könntest. Was du bekommst, ist eine CSV-Datei: der Export „Bestellte Artikel" (in der Datei heißt er EtsySoldOrderItems), eine Zeile pro verkauftem Artikel, mit Preis, Versand, Rabatt und Lieferadresse. Nützlich, aber eben eine Tabelle und kein Beleg.

Am Anfang habe ich das gemacht, was vermutlich die meisten machen: eine Word-Vorlage, und dann für jede Bestellung Name, Adresse, Artikel, Preis und Versandkosten von Hand abtippen. Das geht bei drei Bestellungen im Monat. Bei dreißig ist es ein Abend deines Lebens, den du nie wiederbekommst - und jedes Mal ist die Chance groß, dass sich irgendwo ein Zahlendreher einschleicht. Das ist genau die Sorte Arbeit, für die Computer erfunden wurden.

Und dann wird es steuerlich interessant

Der Punkt, an dem eine simple Serienbrief-Lösung endgültig auseinanderfällt, ist die Umsatzsteuer. Denn eine Etsy-Rechnung sieht nicht für jede Bestellung gleich aus. Wie sie aussehen muss, hängt davon ab, wohin das Paket geht. Bei mir landen die Adapter in Deutschland, in halb Europa und regelmäßig auch in den USA, in Großbritannien oder in Thailand - und damit habe ich auf einen Schlag vier verschiedene Fälle im selben CSV-Export:

Inland. Lieferung nach Deutschland, 19 % deutsche Umsatzsteuer. Der einfache Fall.

EU unterhalb der Lieferschwelle. Solange du mit deinen Verkäufen an Privatkunden in anderen EU-Staaten unter der Schwelle von 10.000 Euro bleibst, rechnest du auch für die Bestellung nach Amsterdam mit deutscher Umsatzsteuer ab.

EU oberhalb der Lieferschwelle (OSS). Sobald du drüber bist, gilt der Steuersatz des Bestimmungslandes, gemeldet über das One-Stop-Shop-Verfahren. Und die Sätze gehen weit auseinander: 17 % in Luxemburg, 21 % in den Niederlanden, 23 % in Polen, 27 % in Ungarn.

Drittland. Geht das Paket in die Schweiz, nach Großbritannien oder in die USA, ist es eine steuerfreie Ausfuhrlieferung - null Prozent, aber mit dem passenden Hinweis auf der Rechnung.

Vier Rechnungen, ein Export

  • Kleinunternehmer: 0 %
  • Inland: 19 %
  • EU ohne OSS: 19 %
  • EU mit OSS: Zielland
  • Drittland: steuerfrei

Dazu kommt die Kleinunternehmerregelung nach Paragraph 19 UStG: Wer sie nutzt, weist gar keine Umsatzsteuer aus, egal wohin geliefert wird - braucht dafür aber zwingend den entsprechenden Hinweis auf jeder Rechnung. Und noch eine Kleinigkeit, über die ich am Anfang gestolpert bin: Die Preise, die bei Etsy stehen, sind das, was der Käufer bezahlt hat. Es sind also Bruttopreise. Die Steuer muss herausgerechnet werden, nicht obendrauf. Wer das verwechselt, hat auf jeder einzelnen Rechnung einen falschen Betrag stehen.

Spätestens hier war klar: Das mache ich nicht mehr per Hand.

Also habe ich mir Receiptsy gebaut

Herausgekommen ist Receiptsy, ein Rechnungstool für Etsy-Verkäufer. Die Idee ist so simpel wie das Problem: Du wirfst deinen Etsy-Export hinein, kontrollierst kurz die Daten, hinterlegst einmalig deine Firmendaten - und bekommst fertige PDF-Rechnungen heraus. Aus dem CSV-Wust wird ein Stapel Belege.

Das Ganze läuft komplett im Browser. Es gibt keinen Upload auf einen fremden Server, keine Warteschlange, keine Registrierung, bevor man überhaupt weiß, ob das Ding taugt. Alle folgenden Screenshots stammen aus einer lokalen Kopie mit anonymisierten Beispieldaten: erfundene Namen, erfundene Adressen, erfundene Firmendaten.

Schritt 1: Der Import

Am Anfang steht eine Drag-&-Drop-Fläche. Du ziehst deine Etsy-Exportdateien hinein, fertig. Mehrere Monate auf einmal sind kein Problem, Receiptsy erkennt anhand der Transaktions-ID, was es schon kennt, und überspringt Duplikate. Du kannst also gefahrlos denselben Export zweimal hochladen, ohne dass die Bestellungen doppelt in der Liste landen.

Import: Etsy-Exportdateien per Drag & Drop, Duplikate werden erkannt

Weil die wenigsten auswendig wissen, wo Etsy diesen Export eigentlich versteckt, ist die Anleitung direkt eingebaut - inklusive Screenshot der richtigen Stelle im Shop-Manager. Und zwar für beide Dateien, die man braucht. Das ist nämlich die zweite Falle: Die Bestell-CSV enthält keine einzige Gebührenspalte. Deine Etsy-Kosten - Transaktionsgebühren, Zahlungsgebühren, Inseratsgebühren, Etsy Ads, Abo - stehen in einem völlig anderen Export, der monatlichen Abrechnung unter „Finanzen". Auch die kannst du in dieselbe Fläche ziehen, Receiptsy erkennt am Dateikopf automatisch, um welche Art Datei es sich handelt.

Eingebaute Anleitung: Umsätze und Gebühren liegen bei Etsy in zwei verschiedenen Exporten

Schritt 2: Deine Firmendaten und die Steuerschalter

Einmal hinterlegst du, wer du bist: Firmenname, Anschrift, Kontaktdaten, Steuernummer, USt-IdNr., Bankverbindung, optional ein Logo und ein freier Rechnungshinweis („Vielen Dank für deine Bestellung!"). Das war's, danach steht es auf jeder Rechnung.

Steuerlich gibt es genau zwei Schalter, und die entscheiden alles. Der erste ist die Kleinunternehmerregelung. Ist sie an, wird nie Umsatzsteuer ausgewiesen und der Paragraf-19-Hinweis erscheint automatisch auf dem PDF. Der zweite ist die EU-Lieferschwelle: Hast du die 10.000 Euro überschritten und bist am OSS-Verfahren, schaltest du ihn ein - und ab dann rechnet Receiptsy Lieferungen in andere EU-Staaten mit dem Steuersatz des Bestimmungslandes ab. Ist er aus, bleibt es bei den deutschen 19 %. Hinterlegt sind die Standard-Steuersätze aller 27 EU-Staaten, und darunter steht ehrlich dabei, von wann dieser Stand ist.

Steuereinstellungen: Kleinunternehmerregelung und OSS-Schalter bestimmen jede Rechnung

Schritt 3: Die Bestellliste - und was die Steuerspalten verraten

Nach dem Import landest du in einer Tabelle, in der jede Zeile eine Bestellung ist. Alles darin ist editierbar: Artikelbezeichnung, Menge, Preis, Rabatt, Versand, Empfänger, Adresse. Praktisch ist das öfter, als man denkt - Käufer vertippen sich in ihrer Adresse, oder du willst den 47 Zeichen langen Etsy-Titel auf der Rechnung kürzer haben.

Der eigentlich spannende Teil sind aber die drei Spalten ganz rechts: Besteuerung, MwSt.-Satz und MwSt. Dort siehst du für jede einzelne Zeile, wie sie eingeordnet wurde, bevor du irgendetwas exportierst. „Inland · Deutschland" mit 19 %, „EU (OSS) · Ungarn" mit 27 %, „Drittland" mit 0 % - Bestellung für Bestellung nachvollziehbar. Fehlt bei einer Bestellung das Lieferland, wird die Zelle rot hervorgehoben und oben erscheint eine Warnung, statt stillschweigend null Prozent anzunehmen.

Bestellliste: Besteuerung, Steuersatz und Steuerbetrag pro Bestellung auf einen Blick

Über der Tabelle sitzt die Rechnungsnummern-Konfiguration. Entweder fortlaufend mit frei wählbarem Präfix und optionaler Jahreszahl (RE-2026-0001, RE-2026-0002, …), wobei der Zähler nach jedem Export automatisch weiterläuft. Oder du nimmst direkt die Etsy-Bestellnummer als Rechnungsnummer, wenn dir das für die Zuordnung lieber ist. Eine kleine Vorschau zeigt sofort, wie die nächste Nummer aussehen wird.

Rechnungsnummern: Fortlaufend mit Präfix und Jahr - oder direkt die Etsy-Bestellnummer

Schritt 4: Die fertigen PDF-Rechnungen

Jetzt der Teil, für den das Ganze überhaupt existiert. Du hakst die Bestellungen an, die du brauchst, und klickst auf Exportieren. Eine einzelne Bestellung kommt als PDF, mehrere als ZIP-Archiv mit einer Datei pro Rechnung. Bei mir ist ein guter Monat damit ein Klick und ein Dutzend fertige Belege.

Und hier zahlt sich die ganze Steuerlogik aus, denn dieselbe Vorlage produziert je nach Lieferland ein anderes Dokument. Links die Rechnung in die Niederlande: Netto-Zeilen, 21 % niederländische Umsatzsteuer, darunter der Hinweis auf das One-Stop-Shop-Verfahren. Rechts dieselbe Bestellung, aber in die USA: keine Steuerzeile, dafür der Hinweis auf die steuerfreie Ausfuhrlieferung nach Paragraph 4 Nr. 1a i. V. m. Paragraph 6 UStG. Beides ohne mein Zutun, allein anhand des Lieferlands aus der CSV.

EU mit OSS: 21 % niederländische Umsatzsteuer plus OSS-Hinweis
Drittland: Keine Umsatzsteuer, dafür der Ausfuhr-Hinweis

Auf dem PDF steht alles, was auf eine Rechnung gehört: dein Briefkopf mit Logo, die Anschrift des Käufers, Rechnungsnummer und -datum, dazu Etsy-Bestellnummer und Transaktions-ID für die Zuordnung, die Positionen mit Einzel- und Gesamtpreis, Zwischensumme, Rabatt, Versand, die Steuerzeile, der Gesamtbetrag, deine Bankverbindung und dein Rechnungshinweis. Falls Etsy für eine Bestellung selbst Verkaufssteuer einbehalten hat - das passiert bei US-Lieferungen -, wird die als eigene Zeile durchgereicht und sauber von deiner Umsatzsteuer getrennt.

Ein Detail, das mich mehr Nerven gekostet hat, als es sollte: Etsy-Käufernamen kommen in jeder erdenklichen Schrift. Kyrillisch, Griechisch, Japanisch, Thai. Die Standardschriften in PDFs können das schlicht nicht darstellen, da steht dann Kauderwelsch in der Empfängeradresse. Receiptsy schaut sich deshalb vor dem Export an, welche Zeichen überhaupt vorkommen, und lädt bei Bedarf eine passende Schrift nach.

Bonus: die Monatsübersicht

Was als reines Rechnungstool angefangen hat, hat unterwegs noch eine Funktion bekommen, die ich inzwischen fast lieber mag als die Rechnungen selbst: die Monatsübersicht als XLSX. Eine Zeile pro Monat, mit Umsatz brutto, Umsatz netto und den Etsy-Kosten aus der monatlichen Abrechnung, dazu eine Gesamtsumme. Genau die Zahlen, die man für die Umsatzsteuervoranmeldung und für das Gespräch mit der Steuerberatung braucht - und genau die Zahlen, die man sich sonst mühsam aus zwei verschiedenen Etsy-Exporten zusammensucht.

Zwei Dinge sind mir dabei wichtig gewesen. Erstens berücksichtigt die Übersicht immer alle importierten Bestellungen, egal was du in der Liste gerade angehakt hast - eine Umsatzaufstellung über eine zufällige Teilmenge wäre schlicht falsch. Zweitens: Für Monate, in denen kein Gebührenauszug importiert wurde, bleibt die Kostenspalte leer statt auf null zu stehen. Fehlende Daten sollen nicht wie „keine Gebühren" aussehen.

Monatsübersicht: Umsatz brutto, Umsatz netto und Etsy-Kosten je Monat als XLSX

Deine Daten bleiben bei dir

Das war mir von Anfang an nicht verhandelbar. In so einem Etsy-Export stehen die vollständigen Namen und Wohnadressen deiner Kundinnen und Kunden. Diese Datei lädt man nicht mal eben irgendwo hoch. Receiptsy verarbeitet deshalb alles lokal im Browser: Das CSV wird auf deinem Rechner geparst, das PDF auf deinem Rechner erzeugt, die Daten liegen im Speicher deines Browsers. Kein Upload, kein Tracking, keine Cookies, keine Analyse-Tools. Mit einem Klick auf „Alle löschen" ist alles wieder weg.

Ein Konto brauchst du nicht. Es gibt eins, aber nur, wenn du willst: Wer die Pro-Version nutzt, kann seine Firmendaten in der Cloud ablegen, um sie am Laptop und am Rechner in der Werkstatt zu haben. Die Bestelldaten bleiben auch dann immer lokal. Und weil ich selbst ungern die Katze im Sack kaufe, sind die ersten zehn Rechnungen kostenlos - ohne Registrierung, ohne Funktionseinschränkung. Die Bedienoberfläche und die erzeugten PDFs gibt es auf Deutsch und auf Englisch.

Wie es gebaut ist

Technisch ist Receiptsy bewusst schlank gehalten. Das Frontend ist eine Single-Page-Anwendung mit React 19, gebaut mit Vite 7, dazu ESLint 9 als Linter. Bewusst ohne UI-Framework und ohne State-Management-Bibliothek: Für vier Tabs, eine Tabelle und ein Formular braucht es weder Redux noch eine Komponenten-Sammlung, das erledigen React-Hooks und eine einzige handgeschriebene CSS-Datei.

Die eigentliche Arbeit machen vier kleine Bibliotheken, und alle vier laufen im Browser: Papa Parse liest die Etsy-CSVs (inklusive der Eigenheiten, die Etsy je nach Shop-Sprache in die Kopfzeilen schreibt), jsPDF zeichnet die Rechnung Position für Position, JSZip schnürt beim Sammelexport das ZIP-Archiv und FileSaver.js schiebt das Ergebnis in deinen Download-Ordner. Genau deshalb muss nichts hochgeladen werden.

Serverseitig ist absichtlich fast nichts los. Supabase liefert Postgres, die Anmeldung und drei Edge Functions, die ausschließlich Konto und Abo betreffen: Checkout starten, Stripe-Webhook entgegennehmen, Auth-Mails verschicken. Gehostet wird das Ganze auf Vercel. Kein Bestelldatensatz und keine Kundenadresse berührt jemals einen dieser Dienste - die Rechnungserzeugung passiert vollständig auf deinem Rechner, weshalb das Ding auch dann noch funktioniert, wenn das WLAN in der Werkstatt mal wieder Pause macht.

Und ja: Ein großer Teil davon ist mit KI-Unterstützung entstanden. Genau wie bei dem Rechnungstool für unsere Hausbaugemeinschaft gilt aber auch hier - die schwierigen Teile waren nicht die React-Komponenten, sondern die Fragen dahinter: Was steht eigentlich in so einem Etsy-Export drin? Welche Steuerregel gilt für welches Land? Und was passiert, wenn ein Feld leer ist? Diese Entscheidungen nimmt einem kein Modell ab.

Eine Bitte in eigener Sache: keine Steuerberatung

Das steht auch im Tool selbst an mehreren Stellen, und ich schreibe es hier gerne noch einmal hin: Receiptsy leistet keine Steuerberatung. Die hinterlegten Steuersätze und Regeln sind eine Hilfestellung und ersetzen keine fachliche Prüfung. Ermäßigte Steuersätze werden zum Beispiel bewusst nicht angewendet, weil der Etsy-Export gar keine Information darüber enthält, in welche Steuerklasse ein Produkt fällt - das kann nur ein Mensch entscheiden. Lass deine ersten Rechnungen von deiner Steuerberatung anschauen, bevor du sie rausschickst. Danach ist es ein Klick.

Probier es aus - und erzähl mir, was fehlt

Entstanden ist Receiptsy aus meinem eigenen, sehr kleinen Etsy-Shop. Aber das Problem hat jeder, der dort verkauft: Etsy liefert Tabellen, das Finanzamt will Belege, und dazwischen sitzt man mit einer Word-Vorlage. Wenn dir das bekannt vorkommt, schau es dir einfach an - die ersten zehn Rechnungen kosten nichts und du musst dich für nichts anmelden.

Und wenn dir etwas fehlt, wenn dein Fall anders liegt als meiner, oder wenn du in deinem Export eine Konstellation hast, die schiefgeht: schreib mir. Fast alles, was in den letzten Monaten dazugekommen ist - der Gebührenimport, die Monatsübersicht, die Schriften für nicht-lateinische Namen - ist entstanden, weil jemand über genau diese Stelle gestolpert ist. Ich freue mich über jede Nachricht.

Teilen

Kommentare