Sur cette page
La réponse courte
UBL-CR-666 est une erreur fatale émise lorsque la référence de l'objet facturé, un cac:AdditionalDocumentReference dont le cbc:DocumentTypeCode est 130, a un cac:Attachment. Seuls les documents justificatifs (BG-24) portent des pièces jointes : retirez-le ici.
Tant que l'élément est présent, le document est invalide : l'étape EN 16931 échoue sur cette règle, et un destinataire peut refuser le document.
Ce que la règle vérifie
La règle examine chaque cac:AdditionalDocumentReference dont le cbc:DocumentTypeCode est 130, l'identifiant de l'objet facturé (BT-18), et vérifie s'il a un cac:Attachment. Les documents justificatifs (BG-24), sans le code de type 130, peuvent en porter un.
Elle s'exécute une seule fois sur l'ensemble du document et ne produit donc qu'un constat, quel que soit le nombre de fois où le document contient l'élément. Ce constat pointe vers la racine du document, et non vers l'élément : cherchez cac:AdditionalDocumentReference/cac:Attachment dans le XML.
Tout ce que contient cac:Attachment disparaît avec lui. Des éléments qu'il contient ont leur propre avertissement (UBL-CR-121, UBL-CR-122, UBL-CR-123, UBL-CR-124, UBL-CR-125, UBL-CR-126, UBL-CR-127, UBL-CR-128, UBL-CR-129 et UBL-CR-130) ; retirer cac:Attachment les fait disparaître aussi.
| Terme | Signification | Élément UBL |
|---|---|---|
| - | Attachment (BT-125 sur un document justificatif, pas sur l'objet facturé) | cac:AdditionalDocumentReference/cac:Attachment |
| BT-18 | Référence de l'objet facturé | cac:AdditionalDocumentReference |
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 :
- Une structure
cac:Attachmententière est reprise d'une fiche de référence ou d'un autre type de document, y compris des parties qu'EN 16931 n'utilise pas. - Une bibliothèque UBL 2.1 générique écrit chaque élément et attribut pour lequel elle a une valeur, qu'EN 16931 l'utilise ou non.
- Un mapping conçu pour un autre document basé sur UBL, comme une commande, un avis d'expédition ou un profil national, est réutilisé pour Peppol BIS Billing.
Comment corriger le document
- Retirez
cac:Attachmentde la référence dont lecbc:DocumentTypeCodeest130. - Envoyez plutôt le fichier comme document justificatif : un
cac:AdditionalDocumentReferencedistinct sans code de type130, avec son proprecbc:IDet lecac:Attachment(BG-24). - Validez à nouveau : le document est valide une fois l'élément retiré.
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 avec l'erreur : Attachment dans la référence de l'objet facturé
<cac:AdditionalDocumentReference>
<cbc:ID schemeID="AAB">OBJECT-001</cbc:ID>
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
<cac:Attachment>
<cac:ExternalReference>
<cbc:URI>https://example.invalid/object-001.pdf</cbc:URI>
</cac:ExternalReference>
</cac:Attachment>
</cac:AdditionalDocumentReference>Fragment de la facture corrigée : les mêmes lignes sans l'élément
<cac:AdditionalDocumentReference>
<cbc:ID schemeID="AAB">OBJECT-001</cbc:ID>
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
</cac:AdditionalDocumentReference>La facture avec l'erreur contient <cac:Attachment> dans la référence de l'objet facturé, et la facture corrigée est le même document sans l'élément. La facture avec l'erreur échoue à l'étape EN 16931 sur cette seule règle ; toutes les autres étapes réussissent.
Ce que le validateur a signalé
- La facture en erreur signale UBL-CR-666. 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 de la même façon aux documents UBL
InvoiceetCreditNote; l'exemple enregistré est une facture. - L'erreur vient des règles de l'étape EN 16931 pour la syntaxe UBL. Dans l'exemple enregistré, l'étape XSD réussit : l'élément est valide en UBL 2.1 et sort seulement du modèle EN 16931.
Règles liées
- UBL-CR-673 : DocumentDescription dans la référence de l'objet facturé
- UBL-CR-121 signale un élément contenu dans Attachment
- UBL-CR-122 signale un élément contenu dans Attachment
- 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-29.1 : source vérifiée le 2026-09-29, explication mise à jour le 2026-09-29.
La définition officielle de UBL-CR-666 (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.

