Zum Inhalt springen

BR-DE-22: Zwei Anhänge mit demselben Dateinamen

Jede in die XRechnung eingebettete Datei braucht im Attribut filename einen eigenen Namen. BR-DE-22 ist eine Fehlerregel und schlägt an, sobald zwei Anhänge gleich heißen.

Stand:

BR-DE-22· XRechnung-Schematron 2.6.0 (XRechnung 3.0.2, Validator-Konfiguration XRechnung 2026-08-31)
[BR-DE-22] Das "filename"-Attribut aller "EmbeddedDocumentBinaryObject"-Elemente muss eindeutig sein

Betroffen:BG-24BT-125

Was die Regel prüft

Betroffen sind die rechnungsbegründenden Unterlagen (BG-24) mit eingebettetem Anhangsdokument (BT-125). Verglichen wird dessen Dateiname, in der Visualisierung „Name des Anhangsdokuments“: in UBL cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject/@filename, in CII ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject/@filename.

Der Validator vergleicht jede Belegreferenz mit den vorhergehenden auf derselben Ebene. Trägt eine Referenz denselben filename wie eine frühere, ist die Zahl der eindeutigen Referenzen kleiner als die Gesamtzahl und die Regel schlägt an. Referenzen ohne eingebettete Datei, etwa nur mit Kennung oder externer URL, stören nicht.

Zur Schreibweise widersprechen sich Regelwerk und Spezifikation: Abschnitt 12.6 der Spezifikation XRechnung 3.0.2 verlangt eindeutige Namen „(nicht case-sensitiv)“. Das Schematron 2.6.0 vergleicht dagegen exakt, Anhang.pdf und anhang.pdf lösen dort keinen Fehler aus. Für einen Empfänger, der Anhänge unter ihrem Namen ablegt, sind solche Dateien trotzdem nicht unterscheidbar.

Die CII-Fassung der Meldung ist englisch: „[BR-DE-22] Not all filename attributes of the embeddedDocumentBinaryObject elements are unique“.

Typische Ursachen

  • Das Programm vergibt für jeden Anhang denselben festen Namen, zum Beispiel anhang.pdf oder document.pdf.
  • Dateinamen werden aus einem Pfad gekürzt: 2026-10/stundennachweis.pdf und 2026-11/stundennachweis.pdf werden beide zu stundennachweis.pdf.
  • Dieselbe Datei wurde zweimal angehängt, etwa weil der Lieferschein automatisch und zusätzlich von Hand beigefügt wurde.
  • Die Rechnungskopie als PDF heißt genauso wie ein weiterer Anhang, beide zum Beispiel Rechnung_4711.pdf.
  • Bei einer Sammelrechnung bringt jeder zugrunde liegende Auftrag einen Anhang mit dem Standardnamen seiner Vorlage mit.

Beispiel aus der KoSIT-Testsuite

Die umfassende Testdatei 01.01 enthält zwei eingebettete PDF-Anhänge. Die Dateinamen 01_15_Anhang_01.pdf und 01_15_Anhang_02.pdf unterscheiden sich, deshalb ist die Datei gültig. Die Beschreibung (BT-123) ist bei beiden gleich; das ist erlaubt, denn BR-DE-22 vergleicht nur filename. Der Base64-Inhalt ist in den Auszügen mit „…“ gekürzt.

UBL: zwei Anhänge mit unterschiedlichem filename (Base64 gekürzt)
<cac:AdditionalDocumentReference>
  <cbc:ID>01_15_Anhang_01.pdf</cbc:ID>
  <cbc:DocumentDescription>Aufschlüsselung der einzelnen Leistungspositionen</cbc:DocumentDescription>
  <cac:Attachment>
    <cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="01_15_Anhang_01.pdf">JVBERi0xLjUNCiW1tbW1…</cbc:EmbeddedDocumentBinaryObject>
    <cac:ExternalReference>
      <cbc:URI>https://xeinkauf.de/xrechnung/</cbc:URI>
    </cac:ExternalReference>
  </cac:Attachment>
</cac:AdditionalDocumentReference>
<cac:AdditionalDocumentReference>
  <cbc:ID>01_15_Anhang_02.pdf</cbc:ID>
  <cbc:DocumentDescription>Aufschlüsselung der einzelnen Leistungspositionen</cbc:DocumentDescription>
  <cac:Attachment>
    <cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="01_15_Anhang_02.pdf">JVBERi0xLjUNCiW1tbW1…</cbc:EmbeddedDocumentBinaryObject>
    <cac:ExternalReference>
      <cbc:URI>https://xeinkauf.de/xrechnung/</cbc:URI>
    </cac:ExternalReference>
  </cac:Attachment>
</cac:AdditionalDocumentReference>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/technical-cases/cius/01.01_comprehensive_test_ubl.xml (Apache 2.0)

CII: erster Anhang, Dateiname im Attribut filename von ram:AttachmentBinaryObject
<ram:AdditionalReferencedDocument>
  <!-- BT-122 -->
  <ram:IssuerAssignedID>01_15_Anhang_01.pdf</ram:IssuerAssignedID>
  <!-- BT-124 -->
  <ram:URIID>https://xeinkauf.de/xrechnung/</ram:URIID>
  <!-- BT-122 -->
  <ram:TypeCode>916</ram:TypeCode>
  <!-- BT-123 -->
  <ram:Name>Aufschlüsselung der einzelnen Leistungspositionen</ram:Name>
  <!-- BT-125, BT-125-1, BT-125-2 -->
  <ram:AttachmentBinaryObject mimeCode="application/pdf" filename="01_15_Anhang_01.pdf">JVBERi0xLjUNCiW1tbW1…</ram:AttachmentBinaryObject>
</ram:AdditionalReferencedDocument>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/technical-cases/cius/01.01_comprehensive_test_uncefact.xml (Apache 2.0)

Lösung

In der Rechnungssoftware

  1. Benennen Sie Anhänge sprechend und eindeutig, etwa mit Rechnungsnummer und laufender Nummer: R2026-0815_Stundennachweis_01.pdf.
  2. Entfernen Sie doppelt angehängte Dateien vor dem Versand.

Im XML

  1. Bilden Sie filename aus einer eindeutigen Quelle, zum Beispiel aus der Kennung BT-122 plus Dateiendung.
  2. Prüfen Sie vor dem Schreiben, ob der Name schon vergeben ist, und vergleichen Sie dabei ohne Rücksicht auf Groß- und Kleinschreibung, wie es die Spezifikation verlangt.
  3. Lassen Sie die Dateiendung zum mimeCode passen, also .pdf zu application/pdf.
  4. Prüfen Sie die Datei erneut mit XRechnung prüfen. Die Meldung erscheint je Rechnung nur einmal, auch wenn mehrere Namen doppelt vorkommen; kontrollieren Sie daher alle Anhänge.

XRechnung prüfen

Quellen

  1. XRechnung-Schematron 2.6.0 (Release v2.6.0, kompatibel mit XRechnung 3.0)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026
  2. Spezifikation XRechnung 3.0.2 (CIUS und Extension), Abschnitt 11.2 „Gruppe ADDITIONAL SUPPORTING DOCUMENTS“ und Abschnitt 12.6KoSIT (xeinkauf.de), 20. Juni 2024 · geprüft am 7. November 2026
  3. XRechnung-Testsuite 2026-08-31 (Release v2026-08-31)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026

Weiterlesen

Grundlage: EN 16931 und XRechnung-Schematron 2.6.0 (XRechnung 3.0.2, Validator-Konfiguration XRechnung 2026-08-31). Stand .