Aus einer Google-Sheet-Zeile eine XRechnung machen und versenden
Was es tut — generiert EN 16931-konforme XRechnung-XML (oder Factur-X, FatturaPA und 11 weitere EU-Formate) aus einem Google Sheet offener Rechnungen und mailt sie an die Käufer. Länder wechseln über countryCode. Setup ~10 Minuten.

Seit Januar 2025 nehmen unsere Kunden aus dem öffentlichen Sektor keine PDF-Rechnungen mehr an — sie wollen XRechnung-XML (EN 16931) oder sie zahlen nicht. Wir sind eine Vier-Personen-Beratung; ich mache den Admin-Kram nebenbei, und ich hatte keine Lust, ein neues Rechnungstool zu lernen, nur um konform zu sein. Unsere ausgehenden Rechnungen liegen seit Jahren in einem Google Sheet: eine Zeile pro Rechnung, ein Tab pro Geschäftsjahr.
Dieser Workflow liest die Zeilen mit status = pending, generiert für jede eine XRechnung-XML über invoice-api.xhub, mailt sie mit kurzem Anschreiben an den Käufer und setzt die Zeile auf status = sent mit Zeitstempel. Ich lasse ihn manuell am 1. und am 15. laufen; den Manual Trigger gegen einen Schedule Trigger zu tauschen ist ein Ein-Klick-Change.
Der Code-Knoten in der Mitte ist der interessante Teil. Er mappt, welchen Spalten-Stil du auch nutzt — invoiceNumber und invoice_number funktionieren beide — auf das JSON, das die API erwartet, und leitet Netto, Umsatzsteuer und Brutto aus Einzelpreis × Menge × Satz ab, damit ich diese Spalten nicht manuell synchron halten muss. Einzeiler passen bequem in eine Zeile; mehrzeilige Fälle brauchen einen kleinen Tweak im Mapper.
Was du brauchst
- Einen invoice-api.xhub-API-Key (kostenlose Sandbox-Keys beginnen mit
sk_test_) - Ein Google Sheet mit den Spalten wie in
02-generate-xrechnung-from-sheets-example.csv— kopier es in einen Tab namensInvoices - Gmail für den Send-Step (jede andere Mail-Integration passt dort, wo heute Gmail steht)
Länder wechseln
Set Config hat die Felder countryCode und format. Standard ist DE / xrechnung. Wechsel auf FR / facturx, IT / fatturapa und so weiter — der Rest des Workflows interessiert sich nicht dafür.
So richtest du den Workflow ein
- 1
Community-Node installieren: n8n → Settings → Community Nodes → Install, Package-Name `n8n-nodes-invoice-api-xhub`.
- 2
Template-JSON herunterladen und in n8n über Workflows → Import from File importieren.
- 3
Credentials verbinden: invoice-api.xhub (API-Key, kostenlose Sandbox verfügbar) plus die jeweils benötigten OAuth-Connections (Gmail, Drive, Sheets, …).
- 4
Im Knoten `Set Config` deine Werte eintragen (Folder-IDs, Spreadsheet-IDs, Absender-Mail, USt-ID, etc.).
- 5
Workflow aktivieren oder manuell ausführen — je nach Template.