← Alle Fehlerregeln
warning Class B

BR-DE-20 Pflichtangaben bei Anlagen

Was diese Regel prüft

BR-DE-20 prüft, dass Anlagen auf Dokumentebene (BG-24), die in eine E-Rechnung eingebettet oder referenziert werden, die erforderlichen Metadaten enthalten. Konkret müssen bei einem cac:AdditionalDocumentReference mit eingebettetem oder externem Anhang folgende Attribute vorhanden sein:

  • MIME-Typ (mimeCode-Attribut) — z. B. application/pdf, image/png
  • Dateiname (filename-Attribut) — z. B. rechnung-details.pdf

Diese Attribute werden am Element cbc:EmbeddedDocumentBinaryObject erwartet.

Warum diese Regel existiert

Die GoBD (Grundsatze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern, Aufzeichnungen und Unterlagen in elektronischer Form) verlangen eine revisionssichere Archivierung aller rechnungsrelevanten Dokumente. Wenn Anlagen einer E-Rechnung beigefügt werden:

  • Muss der MIME-Typ bekannt sein, damit empfangende Systeme die Anlage korrekt verarbeiten und anzeigen können
  • Muss der Dateiname vorhanden sein, um die Anlage eindeutig zu identifizieren und zu archivieren
  • Müssen langzeitlesbare Formate verwendet werden (PDF/A wird bevorzugt)

Ohne diese Metadaten:

  • Können ERP-Systeme die Anlage nicht automatisch verarbeiten
  • Ist die Archivierung nicht GoBD-konform
  • Kann der Empfänger die Art des Anhangs nicht erkennen, bevor er ihn öffnet

Was einen Fehler auslöst

Die Warnung wird ausgelöst, wenn:

  1. Eingebettete Anlage ohne mimeCodecbc:EmbeddedDocumentBinaryObject ist vorhanden, aber das mimeCode-Attribut fehlt
  2. Eingebettete Anlage ohne filename — Das filename-Attribut fehlt am cbc:EmbeddedDocumentBinaryObject-Element
  3. Externe Referenz ohne ausreichende Metadaten — Ein cac:ExternalReference verweist auf ein Dokument, aber Typ und Name sind nicht erkennbar

Fehlerhaftes XML-Beispiel

<cac:AdditionalDocumentReference>
  <cbc:ID>ATT-001</cbc:ID>
  <cbc:DocumentDescription>Leistungsnachweis Januar 2024</cbc:DocumentDescription>
  <cac:Attachment>
    <!-- FEHLER: mimeCode und filename fehlen -->
    <cbc:EmbeddedDocumentBinaryObject>
      UEsDBBQAAAAIAGRhbW15LXBkZi1jb250ZW50...
    </cbc:EmbeddedDocumentBinaryObject>
  </cac:Attachment>
</cac:AdditionalDocumentReference>

Die Validierung meldet: BR-DE-20: Das Element “Attached document” (BT-125) muss die Attribute mimeCode und filename enthalten, wenn eine Anlage vorhanden ist.

Die Lösung

Ergänzen Sie die Attribute mimeCode und filename am cbc:EmbeddedDocumentBinaryObject-Element:

<cac:AdditionalDocumentReference>
  <cbc:ID>ATT-001</cbc:ID>
  <cbc:DocumentDescription>Leistungsnachweis Januar 2024</cbc:DocumentDescription>
  <cac:Attachment>
    <cbc:EmbeddedDocumentBinaryObject
      mimeCode="application/pdf"
      filename="leistungsnachweis-2024-01.pdf">
      UEsDBBQAAAAIAGRhbW15LXBkZi1jb250ZW50...
    </cbc:EmbeddedDocumentBinaryObject>
  </cac:Attachment>
</cac:AdditionalDocumentReference>

Alternativ bei externer Referenz:

<cac:AdditionalDocumentReference>
  <cbc:ID>ATT-002</cbc:ID>
  <cbc:DocumentDescription>Technische Spezifikation</cbc:DocumentDescription>
  <cac:Attachment>
    <cac:ExternalReference>
      <cbc:URI>https://example.com/docs/spec-2024.pdf</cbc:URI>
    </cac:ExternalReference>
  </cac:Attachment>
</cac:AdditionalDocumentReference>

Sonderfälle und häufige Fehler

Unterstützte MIME-Typen

Die XRechnung empfiehlt folgende MIME-Typen für Anlagen:

MIME-TypBeschreibungGoBD-konform
application/pdfPDF-DokumentJa (PDF/A bevorzugt)
image/pngPNG-BildJa
image/jpegJPEG-BildJa
text/csvCSV-DateiJa
application/xmlXML-DokumentJa
application/vnd.openxmlformats-officedocument.spreadsheetml.sheetExcel-DateiEingeschränkt

Hinweis: Für die langfristige Archivierung empfiehlt sich PDF/A (ISO 19005). Der MIME-Typ bleibt application/pdf, aber das Dokument sollte dem PDF/A-Standard entsprechen.

Maximale Größe von Anlagen

Die maximale Größe eingebetteter Anlagen ist nicht in der XRechnung spezifiziert, aber:

  • Peppol begrenzt die Gesamtnachricht auf ca. 100 MB
  • Viele Leitweg-ID-Empfänger akzeptieren maximal 10-15 MB pro Rechnung inkl. Anlagen
  • Base64-Kodierung vergrößert die Daten um ca. 33 %

Empfehlung: Halten Sie eingebettete Anlagen so klein wie möglich. Bei großen Dokumenten nutzen Sie externe Referenzen.

Externe Referenzen vs. eingebettete Anlagen

  • Eingebettete Anlagen (cbc:EmbeddedDocumentBinaryObject): Die Datei ist Base64-kodiert in der XML enthalten. Vorteil: alles in einem Dokument. Nachteil: Dateigröße.
  • Externe Referenzen (cac:ExternalReference/cbc:URI): Ein Link auf ein extern gehostetes Dokument. Vorteil: kleine Dateigröße. Nachteil: Link kann brechen, Verfügbarkeit nicht garantiert.

Für die GoBD-konforme Archivierung werden eingebettete Anlagen bevorzugt, da die Vollständigkeit des Dokuments gewährleistet ist.

Base64-Kodierung

Der Inhalt von cbc:EmbeddedDocumentBinaryObject muss gültig Base64-kodiert sein. Häufige Fehler:

  • Zeilenumbrüche innerhalb der Base64-Zeichenkette (in XML erlaubt, aber manche Parser haben Probleme)
  • Abgeschnittene Base64-Daten (Datei wurde nicht vollständig kodiert)
  • Falsche Kodierung (z. B. URL-safe Base64 statt Standard-Base64)

Mehrere Anlagen

Eine Rechnung kann mehrere cac:AdditionalDocumentReference-Blöcke enthalten. Jeder Block mit einer Anlage muss BR-DE-20 einzeln erfüllen. Die cbc:ID muss innerhalb der Rechnung eindeutig sein.

Objektreferenz vs. Anlage

Nicht jeder cac:AdditionalDocumentReference ist eine Anlage. Wenn cbc:DocumentTypeCode den Wert 130 hat, handelt es sich um eine Referenz auf die abgerechnete Vorlage (invoiced object). BR-DE-20 greift nur bei tatsächlichen Anlagen mit cac:Attachment-Unterelement.