Peppol BIS Billing 3.0 - Arrondis et calculs
Traduction française des chapitres 9 et 10 de la documentation officielle
Source : https://docs.peppol.eu/poacc/billing/3.0/bis/
9. Arrondis
Pour minimiser les risques de différences dues aux arrondis, les règles suivantes s'appliquent :
- Tous les montants au niveau document doivent être arrondis à deux décimales pour la comptabilité
- Le montant net de ligne de facture doit être arrondi à deux décimales
- Les résultats des calculs impliquant des montants déjà arrondis ne sont pas soumis à l'arrondi, comme les montants payables et les montants totaux TTC.
Voir également le chapitre Calculs pour les détails sur le calcul des différents montants.
10. Calculs
10.1. Calcul des totaux
Les formules de calcul des totaux sont les suivantes :
| ID terme métier | Nom du terme | Calcul |
|---|---|---|
| BT-106 | Somme des montants nets des lignes de facture | somme(BT-131: Montant net de ligne de facture) |
| BT-107 | Somme des remises au niveau document | somme(BT-92: Montant de remise au niveau document) |
| BT-108 | Somme des frais au niveau document | somme(BT-99: Montant de frais au niveau document) |
| BT-109 | Montant total de la facture hors TVA | BT-106 - BT-107 + BT-108 |
| BT-110 | Montant total de TVA de la facture | somme(BT-117: Montant de TVA par catégorie) |
| BT-112 | Montant total de la facture TTC | BT-109 + BT-110 |
| BT-115 | Montant dû | BT-112 - BT-113 (Montant payé) + BT-114 (Montant d'arrondi) |
10.1.1. Formules de calcul en syntaxe UBL
Les éléments suivants représentent les totaux monétaires légaux pour une facture ou un avoir :
| Élément | Formule |
|---|---|
<cbc:LineExtensionAmount> |
somme(cac:InvoiceLine/cbc:LineExtensionAmount) |
<cbc:AllowanceTotalAmount> |
somme(cac:AllowanceCharge[ChargeIndicator='false']/cbc:Amount) |
<cbc:ChargeTotalAmount> |
somme(cac:AllowanceCharge[ChargeIndicator='true']/cbc:Amount) |
<cbc:TaxExclusiveAmount> |
cac:LegalMonetaryTotal/cbc:LineExtensionAmount - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount |
<cbc:TaxInclusiveAmount> |
cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + cac:TaxTotal/cbc:TaxAmount |
<cbc:PrepaidAmount> |
Non applicable |
<cbc:PayableRoundingAmount> |
Non applicable |
<cbc:PayableAmount> |
cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount - cac:LegalMonetaryTotal/cbc:PrepaidAmount + cac:LegalMonetaryTotal/cbc:PayableRoundingAmount |
10.1.2. Élément pour le montant d'arrondi : PayableRoundingAmount
Il est possible d'arrondir le montant payable attendu.
L'élément cac:LegalMonetaryTotal/cbc:PayableRoundingAmount est utilisé à cet effet et est spécifié au niveau en-tête. Cette valeur doit être ajoutée à la valeur de cac:LegalMonetaryTotal/cbc:PayableAmount.
Exemple : Montant 999.81 arrondi à 1000. PayableRoundingAmount = 0.19
10.2. Calcul au niveau ligne
10.2.1. Prix net de l'article (BT-146)
Si le prix brut et la remise existent, le prix net de l'article doit être égal au prix brut de l'article moins la remise sur le prix de l'article.
Formule de calcul :
Prix net de l'article = Prix brut de l'article (BT-148) - Remise sur prix de l'article (BT-147)
Exemple UBL de prix net d'article :
<cac:Price>
<cbc:PriceAmount currencyID="EUR">410</cbc:PriceAmount> <!-- (3) -->
<cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">40</cbc:Amount> <!-- (2) -->
<cbc:BaseAmount currencyID="EUR">450</cbc:BaseAmount> <!-- (1) -->
</cac:AllowanceCharge>
</cac:Price>
| Réf | Description |
|---|---|
| (1) | Prix brut de l'article |
| (2) | Remise sur prix de l'article |
| (3) | Prix net de l'article = Prix brut - Remise |
10.2.2. Montant net de ligne de facture (BT-131)
Le montant net de ligne de facture (BT-131) est, comme son nom l'indique, le montant net hors TVA, et incluant les remises et frais au niveau ligne.
La formule de calcul du montant net de ligne de facture est :
Montant net de ligne = ((Prix net de l'article (BT-146) / Quantité de base du prix (BT-149))
x Quantité facturée (BT-129))
+ Montant de frais de ligne (BT-141)
- Montant de remise de ligne (BT-136)
Note : Comme le montant net de ligne doit être arrondi à deux décimales, veuillez noter que les différentes parties du calcul doivent être arrondies séparément.
C'est-à-dire que le résultat de
(Prix net de l'article / Quantité de base du prix) x Quantité facturéedoit être arrondi à deux décimales, et les montants de remise/frais sont également arrondis séparément.
Exemple UBL de montant net de ligne sans remise/frais de ligne :
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity> <!-- (3) -->
<cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount> <!-- (4) -->
<!-- Code omis pour clarté -->
<cac:Price>
<cbc:PriceAmount currencyID="EUR">200</cbc:PriceAmount> <!-- (1) -->
<cbc:BaseQuantity unitCode="C62">2</cbc:BaseQuantity> <!-- (2) -->
</cac:Price>
| Réf | Description |
|---|---|
| (1) | Prix net de l'article |
| (2) | Quantité de base du prix |
| (3) | Quantité facturée |
| (4) | Montant net de ligne = (Prix net / Quantité de base) x Quantité facturée |
Exemple UBL de montant net de ligne avec remise et frais de ligne :
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity> <!-- (4) -->
<cbc:LineExtensionAmount currencyID="EUR">900.00</cbc:LineExtensionAmount> <!-- (5) -->
<!-- Code omis pour clarté -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Charge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>1</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">1</cbc:Amount> <!-- (2) -->
<cbc:BaseAmount currencyID="EUR">100</cbc:BaseAmount>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">101</cbc:Amount> <!-- (3) -->
</cac:AllowanceCharge>
<!-- Code omis pour clarté -->
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100</cbc:PriceAmount> <!-- (1) -->
</cac:Price>
| Réf | Description |
|---|---|
| (1) | Prix net de l'article |
| (2) | Montants de frais de ligne |
| (3) | Montant de remise de ligne |
| (4) | Quantité facturée |
| (5) | Montant net de ligne = (Prix net x Quantité facturée) + Frais de ligne - Remise de ligne |
10.3. Calcul du montant de remise/frais
Les remises et frais au niveau document et ligne comportent des éléments contenant des informations sur le montant de base et le pourcentage de remise/frais. Ceux-ci sont, s'ils sont présents dans l'instance de facture, utilisés pour calculer le montant de remise/frais.
Si le montant de base est présent, le pourcentage doit également être présent, et si le pourcentage est présent, le montant de base doit également être présent, et le calcul du montant doit être :
Montant = Montant de base x (Pourcentage / 100)
Exemple UBL de calculs de remises et frais avec montant de base et pourcentage :
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Nettoyage</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>20</cbc:MultiplierFactorNumeric> <!-- (2) -->
<cbc:Amount currencyID="EUR">200</cbc:Amount> <!-- (3) -->
<cbc:BaseAmount currencyID="EUR">1000</cbc:BaseAmount> <!-- (1) -->
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
| Réf | Description |
|---|---|
| (1) | Montant de base, à utiliser avec le pourcentage pour calculer le montant |
| (2) | Pourcentage de frais |
| (3) | Montant de base x (Pourcentage / 100) = Montant |
Exemple UBL de calculs de remises et frais sans montant de base ni pourcentage :
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Remise</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">200</cbc:Amount> <!-- (1) -->
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
| Réf | Description |
|---|---|
| (1) | Montant de remise sans calculs basés sur le montant de base et le pourcentage |
10.4. Calcul de la TVA
Une ventilation TVA doit être fournie pour chaque combinaison distincte de code de catégorie TVA et de taux de TVA trouvée soit dans les informations TVA de ligne, soit dans les remises ou frais au niveau document.
Pour chaque combinaison distincte de code de catégorie TVA et de taux de TVA, les calculs sont :
Base imposable de catégorie TVA (BT-116) = somme(Montants nets de ligne de facture (BT-131))
+ Montant de frais au niveau document (BT-99)
- Montant de remise au niveau document (BT-92)
Montant de TVA de catégorie (BT-117) = Base imposable de catégorie TVA (BT-116)
x (Taux de TVA (BT-119) / 100)
Note : Pour les ventilations TVA où la catégorie TVA est "Non soumis à la TVA" (O), le montant de TVA de catégorie doit être zéro.
Exemple UBL de calculs de ventilation TVA :
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Nettoyage</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">200</cbc:Amount> <!-- (1) -->
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Remise</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">100</cbc:Amount> <!-- (2) -->
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">1250.00</cbc:TaxAmount>
<cac:TaxSubtotal> <!-- (3) -->
<cbc:TaxableAmount currencyID="EUR">5000.0</cbc:TaxableAmount> <!-- (4) -->
<cbc:TaxAmount currencyID="EUR">1250</cbc:TaxAmount> <!-- (5) -->
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal> <!-- (6) -->
<cbc:TaxableAmount currencyID="EUR">2000.0</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReason>Motif d'exonération de taxe</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:Note>Note de test au niveau ligne</cbc:Note>
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">4000.00</cbc:LineExtensionAmount>
<!-- code omis pour clarté -->
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25.0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:InvoiceLine>
<cac:InvoiceLine>
<cbc:ID>2</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">2000.00</cbc:LineExtensionAmount>
<!-- code omis pour clarté -->
<cac:ClassifiedTaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0.0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:InvoiceLine>
<cac:InvoiceLine>
<cbc:ID>3</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">900.00</cbc:LineExtensionAmount>
<!-- code omis pour clarté -->
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25.0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:InvoiceLine>
| Réf | Description |
|---|---|
| (1) | Montant de frais au niveau document pour catégorie S et taux 25% |
| (2) | Montant de remise au niveau document pour catégorie S et taux 25% |
| (3) | Ventilation TVA pour catégorie S et taux = 25% |
| (4) | Base imposable = somme des montants de ligne (lignes 1 et 3) + montant de frais - montant de remise où catégorie = S et taux = 25% |
| (5) | Montant de TVA = Base imposable x (Taux de TVA / 100) |
| (6) | Ventilation TVA pour catégorie E et taux = 0% |