XRechnung und ZUGFeRD: Formate, Prüfung, API
XRechnung erstellen und ZUGFeRD-Rechnungen ausgeben, in der Oberfläche, über die Kommandozeile tm oder die REST-API.
Formate
- ZUGFeRD (Factur-X), Profil EN 16931: PDF/A-3b mit eingebettetem CII-XML (factur-x.xml). Standardformat neuer Kunden.
- XRechnung 3.0 als reines XML, Syntax CII. Auf Wunsch UBL für Empfänger, die es verlangen.
- Rechnung (Typ 380) und Rechnungskorrektur (Typ 384) beim Storno, mit Verweis auf die Originalrechnung.
- Steuerfälle: Regelbesteuerung, steuerbefreit mit Grund, Kleinunternehmer nach § 19 UStG, Reverse Charge in der EU und an Empfänger außerhalb der EU.
- Einheiten nach UN/ECE Recommendation 20. E-Rechnungen nur in Euro.
Prüfung vor dem Stellen
- Im Entwurf: Pflichtangaben werden vorab geprüft, jede Lücke mit dem Ort, an dem du sie behebst (Dokumentvorlage, Kunde, Rechnung, Positionen).
- Beim Stellen: Das XML wird gegen das XSD (UN/CEFACT CII D16B) und das Schematron der EN 16931 geprüft, bei XRechnung zusätzlich gegen die KoSIT-Regeln für XRechnung 3.0.2.
- Mit Mängeln bleibt die Rechnung Entwurf. Wer bewusst ohne E-Rechnung stellen will, wählt das Format „keins“.
- Der Download einer XRechnung wird vorher gegen die XRechnung-Regeln geprüft, auch bei einer als ZUGFeRD gestellten Rechnung.
Was die XRechnung zusätzlich verlangt
- Leitweg-ID bzw. Käuferreferenz, beim Kunden hinterlegt
- E-Mail-Adresse des Empfängers
- E-Mail-Adresse und Telefonnummer des Absenders in der Dokumentvorlage
- IBAN als Zahlungsanweisung (bei ZUGFeRD nur empfohlen)
E-Rechnung über die Kommandozeile
- Stell den Kunden auf XRechnung um
tm customers edit <kunden-id> --einvoice-format xrechnung --buyer-reference <leitweg-id> - Prüf die E-Rechnung vor dem Stellen
tm invoices show <rechnungs-id> --validate --json - Stell die Rechnung
tm invoices finalize <rechnungs-id> --yes - Lade das ZUGFeRD-PDF
tm invoices export <rechnungs-id> --output rechnung.pdf - Lade die XRechnung in UBL
tm invoices export <rechnungs-id> --format xrechnung --syntax ubl --output rechnung.xml
npx -y @time-momentum/cli installAgentenbedienung ist Teil von Pro.
E-Rechnung über die REST-API
- GET /api/v1/invoices/{id}?validate=true: Vorprüfung im Entwurf (einvoice_readiness), mit validate zusätzlich XSD und Schematron.
- PATCH /api/v1/invoices/{id} mit status final: stellt die Rechnung. Mängel der E-Rechnung führen zu 422 mit den Befunden in details.
- GET /api/v1/invoices/{id}/export?format=pdf: das ZUGFeRD-PDF. Der Header X-EInvoice: embedded bestätigt das eingebettete XML.
- GET /api/v1/invoices/{id}/export?format=xrechnung: XRechnung als CII, mit syntax=ubl als UBL. format=zugferd-xml liefert das eingebettete XML.
- einvoice_format am Kunden und an der Rechnung: none, zugferd oder xrechnung.
Häufige Fragen
Welche ZUGFeRD-Profile werden erzeugt?
Das Profil EN 16931 (in ZUGFeRD auch Comfort genannt). Andere Profile wie Basic oder Extended erzeugt Time Momentum nicht.
CII oder UBL für die XRechnung?
Standard ist CII, dieselbe Syntax wie das XML im ZUGFeRD-PDF. UBL gibt es beim Download für Empfänger, die es ausdrücklich verlangen.
Lässt sich eine gestellte Rechnung noch als XRechnung ausgeben?
Ja, wenn sie mit E-Rechnung gestellt wurde und die Angaben für XRechnung vollständig sind. Fehlt etwa die Leitweg-ID, bleibt das ZUGFeRD-PDF die gültige E-Rechnung, denn an einer gestellten Rechnung lässt sich nichts mehr ergänzen.