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ée doit ê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%