Aller au contenu principal

Référence

Export Markdown

PEPPOL-EN16931-R130 Le code d’unité de la quantité de base du prix doit être identique à celui de la quantité facturée

Selon la règle Peppol PEPPOL-EN16931-R130, lorsque le code d’unité de mesure de la quantité de base du prix figure dans BT-150 (attribut unitCode sur BaseQuantity), il doit être rigoureusement identique au code d’unité de la quantité facturée dans BT-130 (attribut unitCode sur InvoicedQuantity). L’utilisation d’unités hétérogènes sur une même ligne crée une ambiguïté dans le calcul du prix unitaire.

Description du problème

ERREUR

Règle Peppol BIS Billing 3.0 (OpenPeppol)

Chaîne de validation interactive

Cliquez sur une étape pour voir ce qu’elle contrôle, ou saisissez un identifiant de règle pour trouver l’étape qui la signale.

Essayer:

PEPPOL-EN16931-R130 règle Peppol BIS Billing

Signalée à l’étape 3 : Règles nationales (CIUS).

Niveau erreur : le rapport recommande de rejeter la facture.

Étape 3 · Ce qui est contrôlé

  • L’identifiant de spécification en BT-24 sélectionne le jeu de règles, par exemple XRechnung 3.0 ou Peppol BIS Billing 3.0.
  • XRechnung ajoute les règles allemandes BR-DE : référence acheteur (BT-10), contact du vendeur, instructions de paiement.
  • Peppol ajoute les règles PEPPOL-EN16931 et des règles par pays. XRechnung applique aussi certaines règles PEPPOL-EN16931.

Codes d’exemple

Correction type

Renseignez dans vos données de base les champs exigés par le jeu de règles, comme la Leitweg-ID en BT-10 ou le contact du vendeur.

Un validateur contrôle une facture électronique par étapes. D’abord, le fichier doit être un XML bien formé conforme au schéma UBL ou CII (XSD). Viennent ensuite les règles métier de l’EN 16931 : règles de base BR, calculs BR-CO, listes de codes BR-CL, décimales BR-DEC et règles par catégorie de TVA comme BR-S. Puis les règles nationales ou de réseau sélectionnées par BT-24 : BR-DE pour XRechnung, PEPPOL-EN16931 pour Peppol BIS Billing. Le rapport liste chaque règle en échec : une erreur signifie rejet, des avertissements seuls signifient toujours acceptation. PEPPOL-EN16931-R130 : règle Peppol BIS Billing, étape « Règles nationales (CIUS) ». Jeux de règles : validateur KoSIT 1.6.3 avec la configuration XRechnung du 31 août 2026 (artefacts EN 16931 1.3.16), Peppol BIS Billing 3.0.21.

Contexte et importance

PEPPOL-EN16931-R130 ne s’applique que si cbc:BaseQuantity est présent et compare son unitCode à celui de la quantité facturée. Des unités différentes sur une même ligne rendent le calcul du prix unitaire ambigu, par exemple une quantité en heures avec un prix par pièce. L’erreur survient surtout lorsque la liste de prix utilise une autre unité que la ligne de commande, ou lorsqu’une unité par défaut comme C62 est écrite dans BaseQuantity.

Solution

Dans votre catalogue produits ou vos tables de conversion d’unités, alignez l’unité de la quantité de base du prix (BT-150) sur l’unité de facturation de la ligne (BT-130). En UBL 2.1, vérifiez que <cbc:BaseQuantity unitCode="H87"> porte le même attribut unitCode que <cbc:InvoicedQuantity unitCode="H87">. Si le prix s’entend pour une seule unité, vous pouvez omettre cbc:BaseQuantity.

Actions rapides

Exemples valides

  • InvoicedQuantity unitCode = « H87 » (pièce) et BaseQuantity unitCode = « H87 » (pièce)
  • InvoicedQuantity unitCode = « HUR » (heure) et BaseQuantity unitCode = « HUR » (heure)

Exemples invalides

  • InvoicedQuantity spécifié en « HUR » (heures) tandis que BaseQuantity indique unitCode = « C62 » (unité)
  • InvoicedQuantity spécifié en « KGM » (kilogrammes) tandis que BaseQuantity indique unitCode = « LTR » (litres)

Exemples de code

XML valide
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="H87">100</cbc:InvoicedQuantity>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">50.00</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="H87">100</cbc:BaseQuantity>
  </cac:Price>
</cac:InvoiceLine>
XML invalide
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="H87">100</cbc:InvoicedQuantity>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">50.00</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="C62">100</cbc:BaseQuantity>
  </cac:Price>
</cac:InvoiceLine>

Champs concernés

Outils de validation