Référence
Export MarkdownPEPPOL-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)
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
<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><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>