Sur cette page
La réponse courte
PEPPOL-EN16931-P0100 échoue lorsque cbc:InvoiceTypeCode contient un code hors de la liste Peppol BIS Billing. Envoyez 380 pour une facture commerciale, ou un autre code de cette liste qui décrit réellement le document, comme 386 pour une facture d'acompte ou 383 pour une note de débit.
Un code peut être un vrai code de facture UNTDID 1001, accepté par BR-CL-01, et échouer quand même ici. Le 325 enregistré est une facture pro forma, qui ne réclame pas de paiement ; Peppol BIS Billing n'a pas de code pour elle, et la recoder en 380 présenterait comme une demande de paiement un document qui ne demande rien.
Ce que la règle vérifie
La règle lit cbc:InvoiceTypeCode, retire les espaces autour et le compare à 26 codes : 71, 80, 82, 84, 102, 218, 219, 326, 331, 380, 382, 383, 384, 386, 388, 393, 395, 553, 575, 623, 780, 817, 870, 875, 876 et 877.
EN 16931 autorise davantage de codes de facture. Lors d'un essai, 325, 389 (facture d'autofacturation) et 130 ont chacun réussi BR-CL-01 et échoué à cette seule règle.
Elle ne s'applique que lorsque cbc:ProfileID est un identifiant de processus métier que les règles Peppol reconnaissent. Sous un identifiant de processus non reconnu, 325 a produit PEPPOL-EN16931-R007 et aucun constat de cette règle lors d'un essai : corriger l'identifiant de processus peut donc faire apparaître cette règle ensuite.
Figurer sur la liste ne suffit pas toujours. 326 (facture partielle) et 384 (facture rectificative) sont listés, mais PEPPOL-EN16931-P0112 les limite ensuite aux factures entre deux parties allemandes ; lors d'un essai, 326 sur l'exemple britannique a signalé cette règle.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-3 | Code de type de facture | cbc:InvoiceTypeCode |
| BT-23 | Type de processus métier | cbc:ProfileID |
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 table de codes a été construite à partir de la liste UNTDID 1001 complète, ou du sous-ensemble EN 16931, au lieu du sous-ensemble Peppol.
- Les brouillons, factures pro forma ou devis passent par le même export que les factures définitives et gardent leur propre code de type.
- Les factures d'autofacturation, codées
389, sont envoyées par le processus Billing ordinaire. - Un numéro de type de document interne se trouve être un code UNTDID 1001 valide ayant un autre sens.
Comment corriger le document
- Déterminez ce qu'est le document. S'il s'agit d'une demande de paiement ordinaire pour des biens ou des services, utilisez
380. - Pour les autres types de facture, choisissez le code correspondant dans la liste Peppol ci-dessus, pas dans la liste UNTDID 1001 complète. S'il s'agit de
326ou384, vérifiez aussi la condition des parties allemandes. - Si le document ne réclame pas de paiement, comme une facture pro forma, empêchez son envoi en tant que facture Peppol plutôt que de le recoder.
- Restreignez la table de codes de votre mapping à la liste Peppol, afin qu'un code non pris en charge soit détecté dès la création du document.
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 : un processus Billing reconnu avec le code de type 325, facture pro forma
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>EXAMPLE-INV-001</cbc:ID>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<cbc:DueDate>2026-10-08</cbc:DueDate>
<cbc:InvoiceTypeCode>325</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>Fragment de la facture corrigée : code de type 380, facture commerciale
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>EXAMPLE-INV-001</cbc:ID>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<cbc:DueDate>2026-10-08</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>Seul cbc:InvoiceTypeCode diffère : 325 dans la facture en échec, 380 dans la facture corrigée. Le document en échec ne signale que PEPPOL-EN16931-P0100 ; l'étape EN 16931 réussit, car 325 figure sur la liste plus large que contrôle BR-CL-01. La valeur corrigée convient à cet exemple, qui est une facture ordinaire ; ce n'est pas une recette pour recoder une vraie facture pro forma.
Ce que le validateur a signalé
- La facture en erreur signale PEPPOL-EN16931-P0100. 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 uniquement à UBL
Invoice. UnCreditNoteportecbc:CreditNoteTypeCode, quePEPPOL-EN16931-P0101contrôle par rapport à sa propre liste. - La même liste s'applique sous chaque identifiant de processus reconnu, y compris
urn:peppol:bis:billing_with_response: lors d'un essai,325a aussi échoué avec cet identifiant. - Un code qui ne figure sur aucune des deux listes, comme
999, ou un élément vide, est signalé ici et parBR-CL-01ensemble.
Règles liées
- BR-CL-01 contrôle le même élément par rapport à la liste EN 16931 plus large
- PEPPOL-EN16931-P0101 applique la restriction Peppol aux codes de type d'avoir
- PEPPOL-EN16931-R007 doit réussir en premier, car cette règle ne s'exécute que pour un processus métier reconnu
- BR-04 signale un code de type totalement absent
- 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-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.
La définition officielle de PEPPOL-EN16931-P0100 (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.

