Aller au contenu

Ironfang Finance - Référence des règles

BR-IC-08 : Inclure les frais et remises intracommunautaires dans la base imposable K

La base imposable de la ventilation K doit être égale aux montants nets des lignes K, plus les frais K, moins les remises K au niveau du document, sans tolérance.

EN 16931Erreur : le document n'est pas valideTVATotaux

Sur cette page

La réponse courte

BR-IC-08 échoue lorsque le cbc:TaxableAmount de la ventilation K diffère du contenu intracommunautaire du document : montants nets des lignes K, plus les frais K à la racine, moins les remises K à la racine. L'exemple enregistré envoie 25.00, la ligne seule, et oublie les frais de transport de 6.00 en K ; le montant correct est 31.00.

Reconstruisez la ventilation à partir des mêmes remises et frais qui alimentent déjà le total hors TVA, qui vaut aussi 31.00 dans l'exemple.

Ce que la règle vérifie

Pour chaque cac:TaxCategory dont le cbc:ID vaut K et le schéma VAT dans le cac:TaxTotal racine, la règle compare son cac:TaxSubtotal/cbc:TaxableAmount à une somme calculée sur tout le document, et signale le constat sur cette catégorie de taxe.

Les lignes comptent quand la catégorie de leur article est K, et les éléments cac:AllowanceCharge à la racine quand leur cac:TaxCategory est K ; leurs taux ne jouent aucun rôle. Le transport à 19, par exemple, a continué de compter dans les 31.00 lors d'un essai, et seule BR-IC-07 l'a relevé.

La correspondance doit être exacte. Lors d'un essai, 31.01 a échoué, là où la règle du taux normal BR-S-08 laisserait passer un écart inférieur à 1.00.

Les totaux ne font pas partie de la comparaison. La facture en échec garde un total hors TVA de 31.00, correct selon BR-CO-13, et rien n'est signalé à son sujet.

Plusieurs ventilations K sont chacune comparées à la somme complète. Lors d'un essai, une ventilation de 25.00 pour la ligne et une autre de 6.00 pour le transport ont toutes deux échoué à cette règle, et BR-IC-01 a relevé qu'il y en avait deux.

TermeSignificationÉlément UBL
BT-116Base imposable de la catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
BT-131Montant net de ligne de facturecac:InvoiceLine/cbc:LineExtensionAmount (cac:CreditNoteLine/cbc:LineExtensionAmount in a credit note)
BT-99Montant des charges ou frais au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = true]/cbc:Amount
BT-92Montant de la remise au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = false]/cbc:Amount

Comment une intégration en arrive là

Causes possibles, déduites de la forme de la règle et non d'une utilisation mesurée :

  • La ventilation est construite à partir des seules lignes, et le transport ou l'emballage ajoutés au niveau du document ne l'atteignent jamais, comme dans l'exemple enregistré.
  • Les frais sont codés K mais rattachés à une autre ventilation, car le regroupement utilise leur code de taxe plutôt que leur catégorie.
  • Une remise intracommunautaire est soustraite du total hors TVA mais pas de la ventilation K.
  • La base imposable est reprise de la commande, et les frais ajoutés à la facturation sont oubliés.

Comment corriger le document

  1. Additionnez cbc:LineExtensionAmount de chaque ligne dont le cac:Item/cac:ClassifiedTaxCategory/cbc:ID vaut K.
  2. Ajoutez les montants des frais à la racine de catégorie K et soustrayez ceux des remises à la racine de catégorie K. Les remises et frais de ligne sont déjà inclus dans les montants des lignes.
  3. Écrivez le résultat dans le cbc:TaxableAmount de l'unique cac:TaxSubtotal K : 25.00 + 6.00 = 31.00 dans l'exemple enregistré. Le montant de TVA reste 0.00.
  4. Construisez chaque ventilation à partir de la même liste de lignes, remises et frais que celle qui produit cbc:TaxExclusiveAmount, pour que les deux ne divergent pas.

L'exemple enregistré a une ligne intracommunautaire et des frais de transport en K, sans remise.

Montant net de la ligne intracommunautaire : 25.00
Frais de transport en K : + 6.00
Remises en K : aucune
Base imposable attendue : 25.00 + 6.00 = 31.00
Envoyé : 25.00, sans le transport, donc la règle échoue

Valider votre facture corrigée

Avant et après

Ce sont des extraits, pas des documents complets. Les documents synthétiques complets dont ils proviennent sont liés ci-dessous.

Fragment de la facture en échec : des frais de transport de 6.00 en K, et une base imposable K de 25.00

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight to Berlin</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">6.00</cbc:Amount>
  <!-- tax category K at 0 omitted from this fragment -->
</cac:AllowanceCharge>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>K</cbc:ID>
      <!-- rate 0, VATEX-EU-IC, reason text and tax scheme VAT omitted from this fragment -->
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="GBP">31.00</cbc:TaxExclusiveAmount>
  <!-- other totals omitted from this fragment -->
</cac:LegalMonetaryTotal>

Fragment de la facture corrigée : 25.00 + 6.00 = 31.00 dans la ventilation K

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">31.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>K</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReasonCode>VATEX-EU-IC</cbc:TaxExemptionReasonCode>
    <cbc:TaxExemptionReason>Intra-community supply</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

La base imposable K vaut 25.00 dans la facture en échec et 31.00 dans la facture corrigée ; les frais de transport, la ligne et les totaux sont identiques dans les deux. Le document en échec ne signale que BR-IC-08.

Ce que le validateur a signalé

Enregistré avec phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, le moteur du validateur gratuit, sur des données synthétiques. Un résultat enregistré est une preuve de non-régression pour ces documents ; ce n'est pas une certification.

Où la règle s'applique

  • S'applique aux documents UBL Invoice et CreditNote, en additionnant les montants des cac:CreditNoteLine dans un avoir. Lors d'un essai, la facture en échec convertie en avoir a signalé le même constat.
  • Signalée par l'étape EN 16931 sur chaque ventilation K dont la base imposable est fausse.
  • Le montant de TVA K à côté doit être 0 selon BR-IC-09, et une seule ventilation K est autorisée selon BR-IC-01.

Portée et source

Rédigé pour Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, tel qu'appliqué aux documents Invoice et CreditNote en UBL 2.1. D'autres profils, syntaxes et versions peuvent définir cet identifiant autrement. Version du catalogue d'aide 2026-09-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.

La définition officielle de BR-IC-08 (en anglais) contient le texte normatif et le test. Cette page en est notre explication, pas une copie.

Cette aide ne modifie pas le verdict du moteur. Corriger ce constat ne signifie pas que le document passe toutes les étapes de validation, et la validation ne certifie pas la conformité juridique ou fiscale et ne transmet aucun document via Peppol.