# BR-CL-24 Attachment MIME code must be one of the allowed MIME types

The MIME code of an embedded attachment (BT-125-1) must be one of the six MIME types that EN 16931 allows: PDF, PNG, JPEG, CSV, Excel spreadsheet (XLSX) or OpenDocument spreadsheet (ODS).

## Problem Description

> **ERROR**: EN 16931 code-list rule (BR-CL)

## Context and Significance

This restriction comes from EN 16931 itself, not from a national extension. The rule checks cbc:EmbeddedDocumentBinaryObject/@mimeCode in UBL and ram:AttachmentBinaryObject/@mimeCode in CII. It fails for common variants such as "image/jpg" (correct: image/jpeg), "application/x-pdf", "application/octet-stream" or a bare "pdf", and for ZIP, XML or Word attachments. The comparison is exact, so upper-case values also fail. Example: a scanned delivery note is embedded as application/pdf.

## Solution

Use exactly one of these values: application/pdf, image/png, image/jpeg, text/csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet or application/vnd.oasis.opendocument.spreadsheet. Convert other files, such as Word documents or ZIP archives, to PDF before you embed them.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-CL-24)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-CL-24)

## Valid Examples

- BT-125-1 = application/pdf
- BT-125-1 = image/jpeg
- BT-125-1 = text/csv

## Invalid Examples

- BT-125-1 = image/jpg — common variant; the allowed type is image/jpeg
- BT-125-1 = application/zip — not an allowed type
- BT-125-1 = pdf — not a full MIME type

## Code Examples

### Valid XML
```
<cbc:EmbeddedDocumentBinaryObject mimeCode="image/jpeg" filename="delivery-note.jpg">...</cbc:EmbeddedDocumentBinaryObject>
```

### Invalid XML
```
<cbc:EmbeddedDocumentBinaryObject mimeCode="image/jpg" filename="delivery-note.jpg">...</cbc:EmbeddedDocumentBinaryObject>
```

## Affected Fields

- [BT-125-1 Attached document Mime code](/resources/xrechnung/bt-125-attached-document)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
