Aller au contenu

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

BR-IC-01 : Envoyer exactement une ventilation de la TVA intracommunautaire

Un document comportant un contenu intracommunautaire (catégorie K) doit avoir une ventilation de la TVA de catégorie K : ni aucune, ni deux.

EN 16931Erreur : le document n'est pas valideTVA

Sur cette page

La réponse courte

BR-IC-01 échoue lorsque la catégorie K apparaît n'importe où dans le document, sur une ligne, une remise ou des frais au niveau du document, ou une ventilation de la TVA, et que le cac:TaxTotal racine ne contient pas exactement un cac:TaxSubtotal dont la catégorie de taxe est K. L'exemple enregistré écrit deux fois la ventilation intracommunautaire ; supprimez la copie.

Lorsqu'il n'y a aucune ventilation K, ajoutez-en une : la base imposable du contenu K, un montant de TVA de 0.00, un taux de 0 et le motif VATEX-EU-IC.

Ce que la règle vérifie

La règle s'exécute une fois, à la racine du document. Elle cherche K sous le schéma VAT dans tout cac:ClassifiedTaxCategory ou toute cac:TaxCategory, compte ensuite les catégories de taxe K dans la ventilation de la TVA racine, et ne passe que si ce nombre vaut 1.

Deux ventilations K identiques échouent alors que chacune correspond à la ligne. Cette règle a été le seul constat de l'exemple enregistré, car BR-IC-08 compare chaque ventilation à la somme K complète et les deux contenaient les 25.00 entiers.

Une répartition échoue plus bruyamment. Lors d'un essai sur une facture avec des frais de transport en K, une ventilation K de 25.00 pour la ligne et une autre de 6.00 pour le transport ont signalé cette règle et BR-IC-08 sur chaque ventilation.

Une remise ou des frais suffisent à déclencher la règle. Lors d'un essai, une facture au taux normal avec des frais de transport codés K et sans ventilation K a signalé cette règle, et aussi BR-IC-04, puisque cet acheteur n'avait pas d'identifiant TVA.

Une ventilation K sans contenu K derrière elle passe, car la ventilation est elle-même l'occurrence de K et le nombre vaut 1. Lors d'un essai avec l'unique ligne recodée Z, la ventilation restante a été signalée par BR-IC-08 et la ligne par BR-Z-01, pas par cette règle.

Recoder la ventilation dans une autre catégorie fait aussi taire les contrôles de livraison, car BR-IC-11 et BR-IC-12 cherchent une ventilation K. Lors d'un essai avec la ventilation recodée Z au-dessus de la ligne K, le document n'a signalé que cette règle et BR-Z-08.

TermeSignificationÉlément UBL
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
BT-151Code de catégorie de TVA de l'article facturécac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note)
BT-95Code de catégorie de TVA de la remise au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID
BT-102Code de catégorie de TVA des charges ou frais au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID

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 une fois à partir des lignes puis ajoutée de nouveau après un recalcul, sans que la première soit supprimée.
  • Les ventilations sont regroupées par code de taxe plutôt que par catégorie, et deux codes de taxe, un pour les marchandises et un pour le transport, correspondent tous deux à K.
  • La catégorie de la ligne passe à K pour les clients de l'UE alors que la ventilation est toujours générée à partir du code de taxe national, si bien que le document a des lignes K sous une ventilation S ou Z.
  • Des frais au niveau du document sont codés K sur une facture par ailleurs nationale, si bien que K apparaît sans aucune ventilation correspondante.

Comment corriger le document

  1. Comptez les éléments cac:TaxSubtotal dont la cac:TaxCategory/cbc:ID vaut K, et relevez où K apparaît ailleurs : articles des lignes, remises et frais à la racine.
  2. S'il y en a deux ou plus, fusionnez-les en une seule. Sa base imposable est la somme des montants nets des lignes K plus les frais K moins les remises K, son montant de TVA est 0.00, et elle garde le code de motif VATEX-EU-IC et le texte.
  3. S'il n'y en a aucune, vérifiez d'abord si le contenu K est juste. Pour une véritable livraison intracommunautaire, ajoutez la ventilation K, et vérifiez la date de livraison ou la période de facturation ainsi que le pays de livraison qu'exigent alors BR-IC-11 et BR-IC-12 ; pour une ligne ou des frais codés K par erreur, donnez-leur plutôt la catégorie et le taux du reste du document.
  4. Regroupez les ventilations par catégorie de TVA et par taux, jamais par code de taxe, module source ou ligne, pour que le doublon ne revienne pas.

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 : deux ventilations de la TVA de catégorie K, chacune pour les 25.00 entiers

<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: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>

Fragment de la facture corrigée : une seule ventilation K

<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>
      <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>
</cac:TaxTotal>

La facture en échec a deux éléments cac:TaxSubtotal pour la catégorie K, chacun avec une base imposable de 25.00 ; la facture corrigée en a un. Le document en échec ne signale que BR-IC-01, et son total de TVA de 0.00 et ses autres montants sont inchangés.

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. Lors d'un essai, la facture en échec convertie en avoir a signalé le même constat unique.
  • Signalée par l'étape EN 16931 une fois par document, à la racine, quel que soit le nombre de ventilations K.
  • L'autoliquidation a la même exigence d'une ventilation unique selon BR-AE-01.
  • Une fois l'unique ventilation K en place, ses montants sont contrôlés par BR-IC-08 et BR-IC-09, et sa présence fait intervenir BR-IC-10, BR-IC-11 et BR-IC-12.

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-01 (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.