Sur cette page
La réponse courte
PEPPOL-EN16931-R100 échoue lorsqu'un cac:InvoiceLine ou un cac:CreditNoteLine contient plus d'un cac:DocumentReference. Une ligne peut nommer un objet facturé, comme un compteur, un véhicule ou un abonnement : donnez donc à chaque objet sa propre ligne.
La même ligne est aussi signalée sous UBL-SR-52 à l'étape EN 16931, qui fait exactement le même comptage. Les deux sont levés dès que la ligne n'a plus qu'une seule référence.
Ce que la règle vérifie
La règle compte les enfants cac:DocumentReference de chaque ligne et échoue à partir du deuxième. Elle ne regarde pas leur contenu : lors d'un essai, une seconde référence avec le code de type 50 au lieu de 130 a signalé les deux mêmes règles que l'exemple enregistré.
Cette variante n'a pas entraîné PEPPOL-EN16931-R101, la règle qui limite une référence de ligne au type 130, car celle-ci est satisfaite dès qu'une référence de la ligne porte 130. Avec une seule référence sans code de type, PEPPOL-EN16931-R101 a été signalée seule.
La limite s'applique par ligne : des lignes différentes peuvent donc nommer chacune un objet différent.
L'identifiant d'objet facturé du document entier est un autre élément, avec sa propre limite. Lors d'un essai, deux cac:AdditionalDocumentReference de type 130 à la racine ont signalé UBL-SR-04, et non cette règle.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-128 | Identifiant d'objet de la ligne de facture | cac:InvoiceLine/cac:DocumentReference/cbc:ID (cac:CreditNoteLine/cac:DocumentReference/cbc:ID in a credit note) |
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 ligne facture ensemble plusieurs compteurs, appareils ou contrats, et l'export écrit une référence par objet.
- Le mapping utilise aussi la référence de document de la ligne pour d'autres documents, comme un bon de livraison ou une feuille de temps, à côté de l'identifiant d'objet.
- Un enregistrement source répété, comme le même compteur relevé deux fois, produit une référence en double.
Comment corriger le document
- Trouvez la ligne à partir du constat, par exemple
cac:InvoiceLine[1], et listez les références qu'elle porte. - Gardez celle qui identifie l'objet facturé, avec le
cbc:DocumentTypeCodeà130. - Si la ligne couvre plusieurs objets, scindez-la en une ligne par objet, chacune avec sa propre quantité, son propre montant net et son propre
cac:DocumentReference, et recalculez les totaux à partir des nouvelles lignes. - Sortez de la ligne les références qui ne sont pas des objets facturés : un document justificatif relève d'un
cac:AdditionalDocumentReferenceau niveau du document. - Supprimez les simples doublons.
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 : la ligne 1 nomme deux compteurs
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:DocumentReference>
<cbc:ID>METER-001</cbc:ID>
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
</cac:DocumentReference>
<cac:DocumentReference>
<cbc:ID>METER-002</cbc:ID>
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
</cac:DocumentReference>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : la ligne 1 nomme un seul compteur, METER-001
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:DocumentReference>
<cbc:ID>METER-001</cbc:ID>
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
</cac:DocumentReference>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>La facture en échec liste deux compteurs, METER-001 et METER-002, comme références de document sur la ligne 1 ; la facture corrigée ne garde que METER-001 et est identique par ailleurs. Deux constats portent sur cette ligne : PEPPOL-EN16931-R100 à l'étape Peppol et UBL-SR-52 à l'étape EN 16931, qui compte les références de la même façon. Retirer la seconde référence lève les deux ; si les deux compteurs devaient réellement être facturés, chacun aurait besoin de sa propre ligne.
Ce que le validateur a signalé
- La facture en erreur signale
UBL-SR-52et PEPPOL-EN16931-R100. 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 aux documents
InvoiceetCreditNote. Lors d'un essai, uncac:CreditNoteLineavec deux références a signaléPEPPOL-EN16931-R100etUBL-SR-52sur cette ligne. - Une règle Peppol BIS, signalée à l'étape Peppol. Son pendant EN 16931,
UBL-SR-52, n'a pas de page propre dans cette référence. - Le contenu de l'unique référence est contrôlé ailleurs :
PEPPOL-EN16931-R101exige le code de type130, etBR-CL-07vérifie un schéma sur l'identifiant par rapport à UNTDID 1153.
Règles liées
- PEPPOL-EN16931-R101 exige que l'unique référence de la ligne soit un objet facturé, de type 130
- BR-CL-07 vérifie le schéma d'un identifiant d'objet facturé par rapport à UNTDID 1153
- PEPPOL-EN16931-R080 est la limite d'une seule référence de projet sur un avoir
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : How Peppol invoice validation actually works
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 PEPPOL-EN16931-R100 (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.

