Integrations-Guide
Word- und Excel-Rechnungen: der Feldabgleich
Welche Angabe auf einer Word- oder Excel-Rechnung in welchem Feld der E-Rechnung landet, welche Felder EN 16931 erzwingt und was passiert, wenn eine fehlt. Vollständige Zuordnungstabelle mit BT-Nummern, dazu die typischen Vorlagenfehler.
Kurze Antwort: Eine Word- oder Excel-Rechnung wird zur E-Rechnung, indem die Angaben auf dem Dokument in die Felder der EN 16931 überführt werden. Die Zuordnung steht unten vollständig. Die einzige Regel, die Sie sich merken müssen: was ins XML soll, muss auf dem Dokument stehen. Belegschmied erfindet keine Inhalte, sondern lehnt lieber ab.
Dieser Guide richtet sich an alle, deren Rechnungen in einer Vorlage entstehen: kleine Betriebe ohne ERP genauso wie Fachabteilungen großer Häuser, in denen die Restmenge neben SAP oder einem anderen führenden System anfällt. Für die Zuordnung macht das keinen Unterschied, weil sie am Dokument ansetzt.
Wie die Umwandlung abläuft
Fünf Schritte, davon vier ohne Zutun:
- Extraktion. Die Rechnungsdaten werden aus der PDF gelesen.
- Überlagerung der Stammdaten. Wo im Arbeitsbereich etwas zur eigenen Firma hinterlegt ist, gewinnt dieser Wert gegen den aus dem Dokument gelesenen. Ist dort nichts hinterlegt, bleibt der Dokumentwert stehen.
- Selbstprüfung. Pflichtfelder, Rechenwege und Plausibilität. Jeder Befund senkt den Confidence-Wert um 0,15.
- Deterministische Checks. Rechnungsnummer im Dokumenttext, Arithmetik, Validierung gegen EN 16931.
- Erzeugung und Versand. ZUGFeRD-PDF mit eingebettetem XML oder XRechnung als eigenständige XML-Datei.
Bleibt der Confidence-Wert unter dem Schwellwert des Arbeitsbereichs (Standard 0,85), geht die Rechnung in die Freigabe statt raus.
Was aus den Stammdaten kommt und was vom Dokument
Das ist die wichtigste Unterscheidung dieses Guides, weil sie festlegt, was Sie in der Vorlage nachbessern müssen und was nicht.
Aus den Stammdaten des Arbeitsbereichs, sofern dort gefüllt: Name, Straße, PLZ, Ort, Land, USt-IdNr., Steuernummer und Bankverbindung des Rechnungsstellers. Diese Angaben sind für alle Ihre Rechnungen gleich, deshalb sind sie dort besser aufgehoben als in jeder einzelnen Vorlage. Wer sie hinterlegt, ist gegen Vorlagen abgesichert, die die USt-IdNr. nur als Bildbestandteil in der Fußzeile tragen.
Vom Dokument, ausnahmslos: alles Übrige. Rechnungsnummer, Datum, Empfänger, Positionen, Beträge, Steuersätze, Leistungsdatum, Befreiungsgründe, Referenzen, Zahlungsbedingungen.
Der Grund für die harte Trennung: Ein Default für einen Inhalt wäre eine Behauptung über einen Geschäftsvorfall, den wir nicht kennen. Ein falsches Leistungsdatum im XML ist ein Steuerthema, eine abgelehnte Rechnung nur ein Arbeitsschritt.
Der Feldabgleich
Die BT-Nummern sind die Feldbezeichner der EN 16931. Sie tauchen in Prüfberichten und Fehlermeldungen auf, deshalb stehen sie hier mit.
Rechnungskopf
| Angabe auf der Rechnung | Feld | Pflicht | Wenn es fehlt |
|---|---|---|---|
| Rechnungsnummer | BT-1 | ja | MISSING_INVOICE_NUMBER, Verarbeitung bricht ab |
| Rechnungsdatum | BT-2 | ja | MISSING_INVOICE_DATE, Verarbeitung bricht ab |
| Belegart: Rechnung, Gutschrift, Korrektur | BT-3 | ja | Wird als Rechnung (380) behandelt |
| Währung | BT-5 | ja | Standard des Arbeitsbereichs, in der Regel EUR |
| Leistungsdatum | BT-72 | eines von beiden | EN-16931-Ablehnung |
| Leistungszeitraum von/bis | BT-73 / BT-74 | eines von beiden | EN-16931-Ablehnung |
| Fälligkeitsdatum | BT-9 | nein | — |
| Zahlungsbedingungen als Text | BT-20 | nein | — |
| Verwendungszweck | BT-83 | nein | — |
| Freitext, Hinweise | BT-22 | nein | — |
| Leitweg-ID (nur bei Behörden) | BT-10 | bei B2G | BR-DE-15, XRechnung wird abgelehnt |
| Bestellnummer des Kunden | BT-13 | nein | — |
| Vertragsnummer | BT-12 | nein | — |
| Lieferscheinnummer | BT-16 | nein | — |
| Projektnummer | BT-11 | nein | — |
| Bezug auf Vorrechnung bei Gutschrift oder Korrektur | BT-25 / BT-26 | bei 381/384 | Prüfregel-Ablehnung |
Rechnungssteller
| Angabe auf der Rechnung | Feld | Pflicht | Wenn es fehlt |
|---|---|---|---|
| Firmenname | BT-27 | ja | MISSING_SUPPLIER_NAME, sofern auch die Stammdaten leer sind |
| Straße, PLZ, Ort, Land | BT-35, BT-38, BT-37, BT-40 | ja | EN-16931-Ablehnung |
| USt-IdNr. | BT-31 | eines von beiden | MISSING_SUPPLIER_TAX_ID |
| Steuernummer | BT-32 | eines von beiden | MISSING_SUPPLIER_TAX_ID |
| Handelsregisternummer | BT-30 | nein | — |
| Rechtliche Pflichtangaben | BT-33 | nein | — |
| Ansprechpartner, Telefon, E-Mail | BT-41, BT-42, BT-43 | nein | — |
Die USt-IdNr. wird gegen das Muster Ländercode plus mindestens acht Zeichen geprüft. DE123456789 läuft durch, DE 123 456 789 löst INVALID_SUPPLIER_VAT_ID aus. Schreiben Sie sie ohne Leerzeichen und ohne Bindestriche.
Rechnungsempfänger
| Angabe auf der Rechnung | Feld | Pflicht | Wenn es fehlt |
|---|---|---|---|
| Firmenname | BT-44 | ja | MISSING_CUSTOMER_NAME |
| Straße, PLZ, Ort, Land | BT-50, BT-53, BT-52, BT-55 | ja | EN-16931-Ablehnung |
| USt-IdNr. des Kunden | BT-48 | bei Reverse Charge und innergemeinschaftlicher Lieferung | Prüfregel-Ablehnung |
| Kundennummer | BT-46 | nein | — |
| E-Mail-Adresse | BT-49 | nein | Ohne Adresse auf dem Dokument und ohne recipient_email wird die Rechnung nur gespeichert, nicht versendet |
| Abweichende Lieferanschrift | BG-13 | nein | Wird nur übernommen, wenn sie vollständig ist |
Positionen
Jede Zeile braucht mindestens Bezeichnung, Menge, Einzelpreis und Steuersatz. Ohne erkennbare Positionstabelle bricht die Verarbeitung mit NO_LINE_ITEMS ab.
| Angabe auf der Rechnung | Feld | Pflicht | Anmerkung |
|---|---|---|---|
| Bezeichnung der Leistung | BT-153 | ja | — |
| Menge | BT-129 | ja | — |
| Einheit | BT-130 | ja | Freitext wie „Pauschale" wird auf einen gültigen UN/ECE-Code abgebildet |
| Einzelpreis netto | BT-146 | ja | — |
| Steuersatz der Position | BT-152 | ja | — |
| Positionsrabatt | BG-27 / BT-136 | nein | Nur positiv und höchstens bis zur Zeilensumme |
| Zeilensumme netto | BT-131 | ja | Wird immer neu gerechnet, nie übernommen |
| Artikelnummer | BT-155 | nein | — |
Die Zeilensumme wird als Menge × Einzelpreis minus Positionsrabatt neu berechnet, auch wenn auf dem Dokument ein anderer Wert steht. Grund: die Erzeugung rechnet ebenso, und eine Abweichung zwischen der Anzeige in der App und dem XML wäre der schwerere Fehler.
Summen und Steuer
| Angabe auf der Rechnung | Feld | Pflicht | Wenn es nicht aufgeht |
|---|---|---|---|
| Summe der Positionen | BT-106 | ja | NET_TOTAL_MISMATCH |
| Nachlässe auf Dokumentebene | BT-107 | nein | — |
| Zuschläge auf Dokumentebene | BT-108 | nein | — |
| Gesamtbetrag netto | BT-109 | ja | NET_TOTAL_MISMATCH |
| Gesamtbetrag Steuer | BT-110 | ja | VAT_TOTAL_MISMATCH |
| Gesamtbetrag brutto | BT-112 | ja | GROSS_TOTAL_MISMATCH |
| Steueraufstellung je Satz | BG-23, BT-116 bis BT-119 | ja | VAT_BREAKDOWN_MISMATCH |
| Befreiungsgrund bei 0 Prozent | BT-120 | bei 0-Prozent-Positionen | BR-S-02, BR-S-05 |
| Bereits gezahlte Abschläge | BT-113 | bei Schlussrechnungen | PREPAID_MISMATCH |
| Zahlbetrag | BT-115 | nein | Dient als Gegenprobe zu den Abschlägen |
Die Arithmetik wird mit einer Toleranz von einem Cent nachgerechnet, in drei Richtungen: Positionssumme gegen Gesamt-Netto, Netto mal Satz gegen die ausgewiesene Steuer je Satz, und Netto plus Steuer gegen Brutto.
Bankverbindung
| Angabe auf der Rechnung | Feld | Pflicht | Anmerkung |
|---|---|---|---|
| IBAN | BT-84 | nein | Kommt bevorzugt aus den Stammdaten |
| BIC | BT-86 | nein | Kommt bevorzugt aus den Stammdaten |
| Kontoinhaber | BT-85 | nein | — |
Die fünf Vorlagenfehler, die tatsächlich auftreten
1. Kein Leistungsdatum
Die häufigste Lücke. Viele Vorlagen tragen nur ein Rechnungsdatum, weil das jahrzehntelang gereicht hat. EN 16931 verlangt zusätzlich, wann geleistet wurde: entweder ein Leistungsdatum (BT-72) oder ein Leistungszeitraum (BT-73/BT-74).
Abhilfe: eine Zeile in die Vorlage, „Leistungsdatum: …" oder „Leistungszeitraum: … bis …". Steht auf der Rechnung sinngemäß „Leistungsdatum entspricht Rechnungsdatum", reicht das ebenfalls, weil die Angabe dann auf dem Dokument steht.
2. 0-Prozent-Positionen ohne Befreiungsgrund
Reverse Charge, innergemeinschaftliche Lieferung, Kleinunternehmerregelung: Wer mit 0 Prozent abrechnet, muss den Grund auf die Rechnung schreiben. Ohne ihn werden diese Positionen als regulär besteuert eingestuft, und die Validierung lehnt mit BR-S-02 und BR-S-05 ab.
Abhilfe: den Befreiungstext ausschreiben, etwa „Steuerschuldnerschaft des Leistungsempfängers (Reverse Charge)" oder „Innergemeinschaftliche Lieferung, steuerfrei nach § 4 Nr. 1b UStG". Der Text wird als BT-120 übernommen.
3. Positionen ohne Einzelpreis
Eine Zeile mit Bezeichnung und Gesamtbetrag, aber ohne Menge und Einzelpreis, ist für EN 16931 keine Position. Typisch bei Pauschalen und bei Rechnungen, die aus einem Fließtext bestehen.
Abhilfe: Menge 1, Einheit „Pauschale", Einzelpreis gleich Gesamtbetrag. Damit ist die Zeile vollständig, ohne dass sich am Erscheinungsbild etwas ändert.
4. Rabatte als Fließtext neben der Summe
„abzüglich 3 % Treuerabatt" unter der Summenzeile ist für einen Menschen klar und für die Zuordnung nicht. Die Positionssumme geht dann gegen das Gesamt-Netto nicht auf, Ergebnis ist NET_TOTAL_MISMATCH.
Abhilfe: Rabatte als eigene Position mit negativem Betrag oder als ausgewiesenen Nachlass auf Dokumentebene darstellen, mit Betrag und zugehörigem Steuersatz.
5. Mehrere Rechnungen in einer PDF
Sammel-PDFs werden bewusst abgelehnt (MULTIPLE_INVOICES), weil eine E-Rechnung genau eine Rechnung abbildet. Ohne Abbruch würde die Extraktion würfeln, welche Rechnung im Ergebnis landet, und das Ergebnis wäre formal gültig und inhaltlich falsch.
Abhilfe: eine PDF je Rechnung einliefern.
Die Vorlage einmal prüfen
Zehn Minuten, ohne Konto: eine echte Rechnung durch PDF zu ZUGFeRD schicken. Das Werkzeug extrahiert, erzeugt die E-Rechnung und validiert das Ergebnis. Was durchläuft, läuft auch im Betrieb; was hängen bleibt, zeigt die Lücke, bevor sie ein Kunde meldet.
Der Validator beantwortet diese Frage nicht. Er prüft eine bereits strukturierte Datei gegen EN 16931 und setzt damit voraus, was Sie gerade erst erzeugen wollen. In einer gewöhnlichen Word-PDF findet er kein Profil.
Prüfen Sie mit einer Rechnung, die typisch ist, nicht mit der einfachsten: gemischte Steuersätze, ein Rabatt, eine 0-Prozent-Position. Genau dort liegen die Lücken.
Danach: automatisieren
Sobald die Vorlage trägt, ist die Frage nur noch, auf welchem Weg die PDFs ankommen. Für Microsoft-365-Häuser ist das ein Flow auf einen beobachteten Ordner, für alles Programmatische die REST-API, und für Abteilungen ohne IT-Beteiligung eine Mail an die Versandadresse oder das CC-Feld. Die Übersicht aller Wege steht auf der Integrationsseite.
Häufige Fragen
Kann Belegschmied fehlende Angaben ergänzen?
Nur bei der eigenen Identität. Anschrift, USt-IdNr., Steuernummer, Handelsregisternummer und Bankverbindung des Rechnungsstellers kommen aus den Stammdaten des Arbeitsbereichs, wo sie hinterlegt sind. Alles andere – Positionen, Beträge, Leistungsdatum, Empfänger, Befreiungsgründe – muss auf dem Dokument stehen. Inhalte werden nicht geraten, weil eine erfundene Angabe schlimmer ist als eine abgelehnte Rechnung.
Muss die Vorlage umgebaut werden?
Meistens nicht. Die üblichen Lücken sind drei: kein Leistungsdatum oder Leistungszeitraum, kein Befreiungsgrund bei 0-Prozent-Positionen, und Positionen ohne Einzelpreis. Das sind Ergänzungen in der Vorlage, kein Umbau.
Wie teste ich eine Vorlage, ohne ein Konto anzulegen?
Über /tools/pdf-zu-zugferd. Das Werkzeug extrahiert, erzeugt die E-Rechnung und validiert sie gegen EN 16931. Der Validator unter /tools/validieren ist dafür das falsche Werkzeug: er prüft eine bereits strukturierte Datei und findet in einer gewöhnlichen Word-PDF kein Profil.
Funktioniert das auch mit gescannten Rechnungen?
Nicht zuverlässig. Vor der Erzeugung wird geprüft, ob die Rechnungsnummer wortwörtlich im Text der PDF vorkommt. Ein Scan hat keine Textschicht, die Prüfung schlägt mit INVOICE_NUMBER_NOT_IN_PDF fehl. Liefern Sie die digital erzeugte PDF statt eines eingescannten Ausdrucks.
Weitere Integrations-Guides
SAP anbinden: die Rechnungen, die SAP nicht abbildet
Wie Sie die Restmenge neben SAP – Rechnungen aus Word, Excel und Fachanwendungen – ohne SAP-Projekt in ZUGFeRD oder XRechnung überführen. Mit REST-API-Aufrufen, Statusabfrage, Feldabgleich und den Fehlerbildern, die bei hohem Volumen tatsächlich auftreten.
Microsoft 365 anbinden: Power Automate und Graph API
Einen SharePoint-Ordner per Power Automate an die E-Rechnungs-Konvertierung anbinden, mit und ohne Premium-Lizenz, und den Versand über die Graph API aus dem eigenen Postfach einrichten. Mit Flow-Schritten, HTTP-Body, Entra-Berechtigungen und den Fehlerbildern 401 und 403.
DATEV anbinden: Belege an die Kanzlei übergeben
Was im DATEV-Export von Belegschmied tatsächlich drin ist, wie die Begleitliste aufgebaut ist, welche Spalten sie trägt und wie die Kanzlei das Paket importiert. Mit Spaltentabelle, Steuerschlüsseln und den Grenzen des Exports.
Anbindung besprechen
Sagen Sie uns, welches System die Rechnungen erzeugt und wie sie heute verschickt werden. Wir sagen Ihnen, welcher Weg passt und was er kostet.