Aller au contenu

Ironfang Finance - Référence des règles

PEPPOL-EN16931-R001 : Ajouter l'identifiant de processus métier manquant

Le document n'a pas de cbc:ProfileID. Ajoutez-le directement sous la racine, après cbc:CustomizationID, avec l'identifiant du processus Peppol Billing.

Peppol BIS BillingErreur : le document n'est pas valideProcessus et références

Sur cette page

La réponse courte

PEPPOL-EN16931-R001 échoue lorsque la racine Invoice ou CreditNote n'a pas d'enfant cbc:ProfileID. Ajoutez l'élément juste après cbc:CustomizationID et donnez-lui l'identifiant du processus Peppol Billing, urn:fdc:peppol.eu:2017:poacc:billing:01:1.0.

Le même document signalera aussi PEPPOL-EN16931-R007. Cette règle contrôle la valeur de l'identifiant, et un élément absent n'a aucune valeur approuvée. Ajouter l'élément avec la bonne valeur lève les deux.

Ce que la règle vérifie

La règle est un contrôle de présence sur un seul élément : cbc:ProfileID en tant qu'enfant direct de la racine du document. Elle ne lit pas la valeur.

Comme seule la présence est testée, un cbc:ProfileID vide ne signale pas cette règle. Il signale à la place PEPPOL-EN16931-R007 pour la valeur et PEPPOL-EN16931-R008 pour l'élément vide.

Un élément présent avec un identifiant que l'artefact Peppol ne reconnaît pas signale PEPPOL-EN16931-R007 seul. Les espaces avant ou après un identifiant reconnu sont ignorés par ce contrôle.

TermeSignificationÉlément UBL
BT-23Type de processus métiercbc: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 :

  • Le mapping a été construit pour EN 16931 seul, où le type de processus métier est facultatif, et l'élément n'a jamais été ajouté pour Peppol.
  • L'identifiant de processus est conservé comme paramètre par client ou par route et il est vide pour ce destinataire, si bien que le sérialiseur omet l'élément.
  • L'identifiant a été écrit par erreur dans cbc:CustomizationID, ou les deux identifiants ont été fusionnés en un seul champ dans le système source.
  • Un modèle d'avoir a été copié du modèle de facture sans les identifiants d'en-tête.

Comment corriger le document

  1. Produisez cbc:ProfileID comme deuxième enfant de la racine, immédiatement après cbc:CustomizationID. Le schéma UBL impose cet ordre.
  2. Donnez-lui la valeur urn:fdc:peppol.eu:2017:poacc:billing:01:1.0. Traitez-la comme une constante du profil Billing, et non comme une donnée qui varie selon le client.
  3. Faites de même pour les documents CreditNote ; le nom et la position de l'élément sont identiques.

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 : l'en-tête passe de l'identifiant de spécification directement au numéro de facture

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ID>EXAMPLE-INV-001</cbc:ID>
<cbc:IssueDate>2026-09-08</cbc:IssueDate>
<!-- rest of the document omitted from this fragment -->

Fragment de la facture corrigée : l'identifiant de processus métier suit l'identifiant de spécification

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<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>
<!-- rest of the document omitted from this fragment -->

La seule différence est la ligne cbc:ProfileID. Le document en échec signale deux constats, tous deux dans l'étape Peppol : PEPPOL-EN16931-R001 parce que l'élément est absent, et PEPPOL-EN16931-R007 parce que cette règle déduit le processus de l'identifiant et, faute de quoi lire, le traite comme inconnu. L'étape EN 16931 réussit, puisque la norme de base n'exige pas l'élément.

Ce que le validateur a signalé

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 aussi bien à UBL Invoice qu'à CreditNote. Un avoir sans cbc:ProfileID signale les deux mêmes règles.
  • C'est une exigence Peppol qui s'ajoute à EN 16931. Un document peut réussir l'étape EN 16931 et échouer quand même ici.
  • La règle ne regarde pas cbc:CustomizationID. Cet identifiant est contrôlé séparément et doit lui aussi être présent.

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-20.

La définition officielle de PEPPOL-EN16931-R001 (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.