EN 16931 akzeptiert zwei XML-Syntaxen, und CII ist diejenige im Zentrum der deutschen E-Rechnung. Die Cross-Industry Invoice (CII) ist die UN/CEFACT-Syntax im Kern von ZUGFeRD und XRechnung. Wenn Sie eine ZUGFeRD-Rechnung ausstellen, liest eine Behörde, Ihr B2B-Partner oder ein System wie DATEV tatsächlich das eingebettete CII-XML, nicht die PDF-Seite. Dieses XML vor dem Versand zu validieren ist der sicherste Weg, eine abgelehnte X-Rechnung oder eine stillschweigend verworfene ZUGFeRD-Datei zu vermeiden.
Was dieser CII-Validator prüft
Eine CII-Rechnung muss zwei getrennte Schichten bestehen. Dieser Validator führt beide aus und meldet sie getrennt, sodass Sie genau sehen, wo eine XRechnung- oder ZUGFeRD-Nutzlast scheitert.
Das XSD-Schema CII D16B - prüft das XML gegen das UN/CEFACT-Schema Cross-Industry Invoice D16B. Strukturelle Probleme zeigen sich hier zuerst: fehlende Pflichtelemente, falsche Datentypen bei Geld- oder Mengenbeträgen, Datumsangaben, die keine gültigen YYYYMMDD-Werte sind, und fehlerhafte Namespace-Deklarationen. Was am Schema scheitert, erreicht die Geschäftsregelstufe nie, daher läuft diese Schicht immer zuerst.
EN 16931 Schematron: die Geschäftsregeln - hier entstehen die meisten abgelehnten Rechnungen. Die Regeln prüfen die MwSt.-Arithmetik (BR-CO-14: die Gesamt-MwSt. der Rechnung muss der Summe der MwSt.-Kategoriebeträge entsprechen), die MwSt.-Kategorielogik (BR-S-08: eine Zeile zum Normalsatz braucht einen Satz über null), Pflichtinhalte (BR-01: Spezifikationsbezeichner, BR-06: Verkäufername) und Zahlungsdaten (BR-61: eine IBAN ist bei Zahlungsart 30 oder 58 erforderlich). Ihr Spezifikationsbezeichner deklariert das Profil, von MINIMUM bis EXTENDED, und dieses Profil entscheidet, welche Regeln verpflichtend sind. Die XRechnung-CIUS legt weitere deutsche Regeln darüber.
CII-Fehler, die wir am häufigsten sehen
Diese Verstöße treten bei deutschem CII-XML immer wieder auf. Wenn Ihre Datei fehlschlägt, beginnen Sie hier.
BR-01 - Fehlender Spezifikationsbezeichner
Das Element GuidelineSpecifiedDocumentContextParameter/ID ist leer oder fehlt. Jede CII-Rechnung muss ihr EN-16931-Profil benennen (zum Beispiel urn:cen.eu:en16931:2017 oder eine ZUGFeRD-URN wie urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended). Ohne ihn kann der Validator keinen Regelsatz wählen und lehnt die Datei sofort ab.
BR-CO-14 - MwSt.-Summe stimmt nicht mit der Aufschlüsselung überein
Die Gesamt-MwSt. der Rechnung entspricht nicht der Summe der MwSt.-Kategoriebeträge. Das tritt meist auf, wenn die Rundung zwischen Zeilen- und Kopfebene um einen Cent abweicht. Leiten Sie die Kopf-MwSt. aus der Aufschlüsselung ab, statt sie eigenständig zu berechnen.
BR-S-08 - Zeile zum Normalsatz trägt einen Satz von null
Eine Zeile ist als MwSt.-Kategorie S (Normalsatz) markiert, zeigt aber 0 %. Wenn Sie wirklich null meinen, verwenden Sie stattdessen Kategorie Z (Nullsatz) oder E (steuerbefreit).
BR-AE-05 - Reverse-Charge-Zeile hat einen Satz ungleich null
Bei MwSt.-Kategorie AE (Reverse Charge / Steuerschuldnerschaft des Leistungsempfängers) muss der Satz genau null sein: der Empfänger schuldet die Steuer.
XSD - Falsches Datumsformat
Ein Datum trägt ein anderes Format als 102 oder einen Wert, der keine gültige YYYYMMDD-Zeichenkette ist. CII schreibt Datumsangaben als DateTimeString mit Format 102, was strenger ist als der ISO-Stil von UBL.
XSD - Elemente in der falschen Reihenfolge
CII ist reihenfolgeabhängig: Kindelemente müssen genau in der vom Schema definierten Reihenfolge erscheinen. Ein Element, das vor einem Geschwister steht, dem es folgen sollte, scheitert am XSD, selbst wenn jeder Wert korrekt ist. Daran scheitert fast jeder, der CII von Hand schreibt.
CII, ZUGFeRD und XRechnung: wie sie zusammenhängen
ZUGFeRD (Deutschland) und Factur-X (Frankreich) sind keine unterschiedlichen XML-Formate: beide verpacken dasselbe CII-XML in einen PDF/A-3-Container, und XRechnung kann ebenfalls als CII versendet werden. Eine CII-Datei, die hier besteht, ist genau das, was Sie einbetten, um eine konforme ZUGFeRD-PDF zu erstellen oder als eigenständige X-Rechnung zu versenden. Sie haben ein eigenständiges XML? Validieren Sie es, dann betten Sie es ein. Sie haben bereits eine ZUGFeRD-PDF? Legen Sie sie hier ab, und wir validieren das eingebettete CII für Sie.
CII ist außerdem eine der beiden Syntaxen, die Peppol BIS Billing 3.0 transportiert, neben UBL, und der von vielen deutschen Versendern auf Peppol genutzte Weg. Das CII zuerst zu validieren gibt Ihnen eine saubere Quelle vor jeder Konvertierung.