Sur cette page
La réponse courte
UBL-DT-07 échoue pour chaque pièce jointe intégrée, un cbc:EmbeddedDocumentBinaryObject, qui n'a pas d'attribut filename. Ajoutez, à côté de son mimeCode, le nom sous lequel le fichier doit être enregistré, par exemple filename="timesheet.pdf".
Le schéma laisse passer ce cas, car UBL rend le nom de fichier facultatif alors qu'il rend le code MIME obligatoire. La syntaxe EN 16931 comble cette lacune, afin que le destinataire dispose d'un nom sous lequel enregistrer et ouvrir le fichier.
Ce que la règle vérifie
La règle examine chaque élément dont le nom se termine par BinaryObject, de sorte que chaque pièce jointe est contrôlée séparément. Lors d'un essai avec deux documents justificatifs sans nom de fichier, elle a signalé deux fois, une fois sur chaque cbc:EmbeddedDocumentBinaryObject.
L'attribut doit seulement être présent. Lors d'un essai, filename="", un nom de trois espaces et un nom sans extension, timesheet, ont tous passé toutes les étapes ; le nom de fichier n'est donc contrôlé ni sur son contenu ni sur sa forme.
Une pièce jointe donnée par adresse ne compte pas. Lors d'un essai, un document justificatif dont le cac:Attachment ne contenait que cac:ExternalReference/cbc:URI a réussi, car il ne contient aucun objet binaire.
L'endroit où se trouve la pièce jointe n'importe pas. Lors d'un essai, un PDF joint sans nom de fichier à une référence de document sur une ligne de facture a signalé cette règle là aussi, avec l'avertissement UBL-CR-544, car les fichiers n'ont pas leur place sur une ligne, et PEPPOL-EN16931-R101, car cette référence n'avait pas de code de type 130.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-125-2 | Nom de fichier du document joint | cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject/@filename |
| BT-125 | Document joint | cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject |
Comment une intégration en arrive là
Causes possibles, déduites de la forme de la règle et non d'une utilisation mesurée :
- La pièce jointe est construite à partir du contenu du fichier et de son type de contenu, et le nom de fichier d'origine n'est pas transmis.
- Les pièces jointes générées à la volée, comme une feuille de temps rendue, n'ont jamais eu de nom de fichier à transmettre.
- Le mapping n'écrit
filenameque lorsqu'un champ de la gestion documentaire est rempli, et les anciens enregistrements le laissent vide.
Comment corriger le document
- Repérez chaque pièce jointe indiquée dans les constats ; il y a un constat par pièce jointe sans nom.
- Ajoutez un attribut
filenamecontenant le nom du fichier, avec une extension cohérente avec lemimeCode, par exemple.pdfpourapplication/pdf. - Lorsqu'il n'existe pas de nom d'origine, déduisez-en un de la référence du document justificatif, comme
TIMESHEET-001.pdf, plutôt que d'écrire une valeur vide qui satisfait la règle mais n'aide personne. - Faites du nom de fichier un élément obligatoire de chaque pièce jointe dans votre export, à côté du code MIME.
Valider votre facture corrigée
Avant et après
Ce sont des extraits, pas des documents complets. Les documents synthétiques complets dont ils proviennent sont liés ci-dessous.
Fragment de la facture en échec : le PDF de la feuille de temps est joint sans nom de fichier
<cac:AdditionalDocumentReference>
<cbc:ID>TIMESHEET-001</cbc:ID>
<cbc:DocumentDescription>Timesheet</cbc:DocumentDescription>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf">JVBERi0xLjQK</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>Fragment de la facture corrigée : la même pièce jointe nommée timesheet.pdf
<cac:AdditionalDocumentReference>
<cbc:ID>TIMESHEET-001</cbc:ID>
<cbc:DocumentDescription>Timesheet</cbc:DocumentDescription>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="timesheet.pdf">JVBERi0xLjQK</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>La seule différence est l'attribut filename : absent dans la facture en échec, timesheet.pdf dans la facture corrigée ; la référence, la description, le code MIME et le contenu sont identiques. Le document en échec ne signale que UBL-DT-07, sur le cbc:EmbeddedDocumentBinaryObject, à l'étape EN 16931 ; les étapes XSD et Peppol l'ont accepté.
Ce que le validateur a signalé
- La facture en erreur signale UBL-DT-07. Le document corrigé passe toutes les étapes de validation sans constat.Télécharger le XML en erreurTélécharger le XML corrigé
Enregistré avec phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, le moteur du validateur gratuit, sur des données synthétiques. Un résultat enregistré est une preuve de non-régression pour ces documents ; ce n'est pas une certification.
Où la règle s'applique
- S'applique à
Invoiceet àCreditNote. Lors d'un essai, un avoir avec une pièce jointe sansfilenamea signalé cette règle de la même façon. - Le code MIME relève d'autres contrôles : sa valeur de
BR-CL-24etPEPPOL-EN16931-CL001, sa présence du schéma UBL lui-même. Lors d'un essai, une pièce jointe sansmimeCodea échoué à l'étape XSD, si bien qu'aucune règle métier ne s'est exécutée. - Lors d'un essai, une pièce jointe sans nom de fichier et déclarée
application/octet-streama signalé ensembleUBL-DT-07,BR-CL-24etPEPPOL-EN16931-CL001; chacun demande sa propre correction.
Règles liées
- BR-52 exige la référence du document justificatif dont cet attribut nomme le fichier
- BR-CL-24 contrôle le code MIME qui se trouve à côté du nom de fichier
- PEPPOL-EN16931-R101 réserve les références de document de ligne aux objets facturés, si bien qu'un fichier a sa place dans une référence au niveau du document
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : Understanding EN 16931 validation errors
Portée et source
Rédigé pour Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, tel qu'appliqué aux documents Invoice et CreditNote en UBL 2.1. D'autres profils, syntaxes et versions peuvent définir cet identifiant autrement. Version du catalogue d'aide 2026-09-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.
La définition officielle de UBL-DT-07 (en anglais) contient le texte normatif et le test. Cette page en est notre explication, pas une copie.
Cette aide ne modifie pas le verdict du moteur. Corriger ce constat ne signifie pas que le document passe toutes les étapes de validation, et la validation ne certifie pas la conformité juridique ou fiscale et ne transmet aucun document via Peppol.

