BR-CL-01: Unbekannte Rechnungsart

Der Code der Rechnungsart (BT-3) muss aus den Rechnungs- und Gutschriftcodes der Liste UNTDID 1001 stammen.

Regelwerk
EN 16931 (CEN)
Syntax
UBL und CII
Betroffene Felder
–

Offizieller Regeltext

The document type code MUST be coded by the invoice and credit note related code lists of UNTDID 1001.

Regeltext aus den Validierungsartefakten zu EN 16931 in Version 1.3.16 (CEN/TC 434, veröffentlicht von ConnectingEurope), Lizenz EUPL 1.2; enthalten in der XRechnung-Validatorkonfiguration 2026-08-31.

Schweregrad

Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.

Typische Ursachen

Interne Belegarten oder Tippfehler werden als Code übertragen.

So behebst du den Fehler

Einen gültigen Code verwenden, zum Beispiel 380 (Rechnung), 381 (Gutschrift), 384 (Korrekturrechnung) oder 326 (Teilrechnung).

Zusätzlich gibt der Validator die Warnung BR-DE-17 aus, weil XRechnung nur bestimmte Codes empfiehlt.

Geprüftes Beispiel: falsch und richtig

Die Auszüge stammen aus vollständigen, synthetischen Rechnungen des E-Rechnungs-Testkorpus. Geänderte Zeilen sind hervorgehoben. Beide Dateien werden in den automatischen Tests mit dem KoSIT-Validator geprüft.

Beispiel in UBL

Änderung gegenüber der gültigen Rechnung: Rechnungsart (BT-3) mit unbekanntem Code 999.

Falsch – ab Zeile 6
<cbc:IssueDate>2026-10-01</cbc:IssueDate>
<cbc:DueDate>2026-10-15</cbc:DueDate>
<cbc:InvoiceTypeCode>999</cbc:InvoiceTypeCode>
<cbc:Note>TESTDATEN: synthetische Rechnung aus dem E-Rechnungs-Testkorpus (Claw Labs). Keine echte Forderung, keine echten Firmen oder Personen.</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
Richtig – ab Zeile 6
<cbc:IssueDate>2026-10-01</cbc:IssueDate>
<cbc:DueDate>2026-10-15</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:Note>TESTDATEN: synthetische Rechnung aus dem E-Rechnungs-Testkorpus (Claw Labs). Keine echte Forderung, keine echten Firmen oder Personen.</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-CL-01 The document type code MUST be coded by the invoice and credit note related code lists of UNTDID 1001. Fundstelle: /Invoice[1]/InvoiceTypeCode[1]

Vollständige Dateien im Testkorpus: br-cl-01-unbekannte-rechnungsart_ubl.xml (falsch) und standard_ubl.xml (richtig).

Beispiel in CII

Änderung gegenüber der gültigen Rechnung: Rechnungsart (BT-3) mit unbekanntem Code 999.

Falsch – ab Zeile 11
<rsm:ExchangedDocument>
  <ram:ID>TEST-2026-0001</ram:ID>
  <ram:TypeCode>999</ram:TypeCode>
  <ram:IssueDateTime>
    <udt:DateTimeString format="102">20261001</udt:DateTimeString>
Richtig – ab Zeile 11
<rsm:ExchangedDocument>
  <ram:ID>TEST-2026-0001</ram:ID>
  <ram:TypeCode>380</ram:TypeCode>
  <ram:IssueDateTime>
    <udt:DateTimeString format="102">20261001</udt:DateTimeString>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-CL-01 The document type code MUST be coded by the invoice and credit note related code lists of UNTDID 1001. Fundstelle: /CrossIndustryInvoice[1]/ExchangedDocument[1]/TypeCode[1]

Vollständige Dateien im Testkorpus: br-cl-01-unbekannte-rechnungsart_cii.xml (falsch) und standard_cii.xml (richtig).

Testdateien zu BR-CL-01

Technische Details: Kontext und Prüfausdruck aus dem Schematron

CII

Kontext:

rsm:ExchangedDocument/ram:TypeCode

Prüfausdruck:

((not(contains(normalize-space(.), ' ')) and contains(' 71 80 81 82 83 84 102 130 202 203 204 211 218 219 261 262 295 296 308 325 326 331 380 381 382 383 384 385 386 387 388 389 390 393 394 395 396 420 456 457 458 471 472 473 500 501 502 503 527 532 553 575 623 633 751 780 817 870 875 876 877 935 ', concat(' ', normalize-space(.), ' '))))

UBL

Kontext:

cbc:InvoiceTypeCode | cbc:CreditNoteTypeCode

Prüfausdruck:

(self::cbc:InvoiceTypeCode and ((not(contains(normalize-space(.), ' ')) and contains(' 71 80 81 82 84 102 130 202 203 204 211 218 219 295 325 326 331 380 382 383 384 385 386 387 388 389 390 393 394 395 456 457 471 472 473 500 501 527 553 575 623 633 751 780 817 870 875 876 877 935 ', concat(' ', normalize-space(.), ' '))))) or (self::cbc:CreditNoteTypeCode and ((not(contains(normalize-space(.), ' ')) and contains(' 81 83 261 262 296 308 381 396 420 458 502 503 532 ', concat(' ', normalize-space(.), ' ')))))

Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.