So sieht eine XRechnung von innen aus
Eine XRechnung ist „nur“ eine XML-Datei — aber eine mit strengen Regeln. Wer einmal verstanden hat, wie die Datei aufgebaut ist, kann Fehlermeldungen von Validatoren viel leichter einordnen. Hier ist der Aufbau, Feld für Feld.
Der Kopf: Was für eine Rechnung ist das?
Jede XRechnung beginnt mit der CustomizationID — sie sagt dem Empfängersystem, nach welchem Regelwerk die Datei gebaut ist (z. B. „…xrechnung_3.0“). Danach folgen Rechnungsnummer (cbc:ID), Rechnungsdatum (cbc:IssueDate), der Rechnungstyp 380 und die Währung. Die Käuferreferenz (cbc:BuyerReference) ist in Deutschland Pflicht — bei Behörden steht hier die Leitweg-ID.
Die Parteien: Verkäufer und Käufer
Der Block AccountingSupplierParty enthält Ihre Daten: Name, Anschrift, USt-IdNr. und — deutsche Besonderheit — einen vollständigen Kontakt mit Name, Telefon und E-Mail (BR-DE-2). Der Block AccountingCustomerParty enthält die Daten des Empfängers.
Zahlung, Steuern, Summen
PaymentMeans transportiert die Zahlungsart (Code 58 = SEPA-Überweisung) und die IBAN. TaxTotal schlüsselt die Umsatzsteuer je Satz auf: Bemessungsgrundlage (TaxableAmount) und Steuerbetrag (TaxAmount) je Kategorie. LegalMonetaryTotal enthält die vier Summen — Positionssumme, Netto, Brutto, Zahlbetrag — und alle müssen exakt zusammenpassen: Validatoren rechnen nach.
Die Positionen
Jede InvoiceLine hat eine Nummer, Menge mit Einheitencode (C62 = Stück, HUR = Stunde), den Zeilen-Nettobetrag, die Artikelbezeichnung, die Steuerkategorie der Position und den Einzelpreis. Der Zeilenbetrag muss Menge × Einzelpreis entsprechen — Rundungsfehler sind der Klassiker unter den Validierungsfehlern.
Selbst bauen oder generieren lassen?
Für Entwickler ist das Format gut dokumentiert und mit unserer API automatisierbar. Für alle anderen gilt: Ein Formular, das die Regeln kennt, ist schneller als jede Handarbeit — und das Ergebnis können Sie hier sofort gegenprüfen.
Erst erstellen, dann direkt validieren — beides gibt es hier.
XRechnung erstellen