Référence
Export MarkdownPEPPOL-EN16931-R046 Le prix net de l’article doit être égal au prix brut diminué de la remise sur prix
Selon la règle Peppol PEPPOL-EN16931-R046, lorsqu’une ligne de facture indique un prix brut dans BT-148 (GrossPrice) et une remise sur prix dans BT-147 (PriceAllowance), le prix net dans BT-146 (PriceAmount) doit respecter l’égalité exacte: PrixNet = PrixBrut - RemiseSurPrix. Les moteurs Peppol appliquent une tolérance stricte pour éviter tout écart d’arrondi.
Description du problème
Selon la règle Peppol PEPPOL-EN16931-R046, lorsqu’une ligne de facture indique un prix brut dans BT-148 (GrossPrice) et une remise sur prix dans BT-147 (PriceAllowance), le prix net dans BT-146 (PriceAmount) doit respecter l’égalité exacte: PrixNet = PrixBrut - RemiseSurPrix. Les moteurs Peppol appliquent une tolérance stricte pour éviter tout écart d’arrondi.
ERREUR
XRechnung 3.0
Contexte et importance
Tout écart entre prix brut, remise unitaire et prix net déclenche PEPPOL-EN16931-R046. Le calcul de la remise sur prix doit être mathématiquement exact.
Solution
Dans le calcul de prix de votre ERP, assurez-vous que le prix net unitaire est égal au prix brut déduction faite de la remise unitaire. En UBL 2.1, dans <cac:Price>, vérifiez que <cbc:PriceAmount> correspond au prix brut diminué de <cac:AllowanceCharge><cbc:Amount>. En CII, appliquez la même soustraction dans les structures NetPrice et GrossPrice.
Actions rapides
Exemples valides
Utilisez ces points comme contrôles pratiques pour cette section.
- Prix brut BT-148 = 100.00 EUR, Remise sur prix BT-147 = 20.00 EUR, Prix net BT-146 = 80.00 EUR
- Prix brut BT-148 = 50.00 EUR, Remise sur prix BT-147 = 5.00 EUR, Prix net BT-146 = 45.00 EUR
Exemples invalides
Utilisez ces points comme contrôles pratiques pour cette section.
- Prix brut 100.00 EUR moins remise 20.00 EUR exporté avec Prix net = 85.00 EUR (Erreur de calcul)
- Remise déclarée à 10.00 EUR mais le Prix net est égal au Prix brut sans déduction
Exemples de code
<cac:Price>
<cbc:PriceAmount currencyID="EUR">80.00</cbc:PriceAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">20.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
</cac:AllowanceCharge>
</cac:Price><cac:Price>
<!-- 100.00 - 20.00 must equal 80.00, not 85.00 -->
<cbc:PriceAmount currencyID="EUR">85.00</cbc:PriceAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">20.00</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
</cac:AllowanceCharge>
</cac:Price>