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:
- Eingebettete Anlage ohne mimeCode —
cbc:EmbeddedDocumentBinaryObjectist vorhanden, aber dasmimeCode-Attribut fehlt - Eingebettete Anlage ohne filename — Das
filename-Attribut fehlt amcbc:EmbeddedDocumentBinaryObject-Element - Externe Referenz ohne ausreichende Metadaten — Ein
cac:ExternalReferenceverweist 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-Typ | Beschreibung | GoBD-konform |
|---|---|---|
application/pdf | PDF-Dokument | Ja (PDF/A bevorzugt) |
image/png | PNG-Bild | Ja |
image/jpeg | JPEG-Bild | Ja |
text/csv | CSV-Datei | Ja |
application/xml | XML-Dokument | Ja |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | Excel-Datei | Eingeschrä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.