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.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-118 | Code de catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-151 | Code 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-95 | Code de catégorie de TVA de la remise au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID |
| BT-102 | Code de catégorie de TVA des charges ou frais au niveau du document | cac: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 à
Kpour 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 lignesKsous une ventilationSouZ. - Des frais au niveau du document sont codés
Ksur une facture par ailleurs nationale, si bien queKapparaît sans aucune ventilation correspondante.
Comment corriger le document
- Comptez les éléments
cac:TaxSubtotaldont lacac:TaxCategory/cbc:IDvautK, et relevez oùKapparaît ailleurs : articles des lignes, remises et frais à la racine. - S'il y en a deux ou plus, fusionnez-les en une seule. Sa base imposable est la somme des montants nets des lignes
Kplus les fraisKmoins les remisesK, son montant de TVA est 0.00, et elle garde le code de motifVATEX-EU-ICet le texte. - S'il n'y en a aucune, vérifiez d'abord si le contenu
Kest juste. Pour une véritable livraison intracommunautaire, ajoutez la ventilationK, et vérifiez la date de livraison ou la période de facturation ainsi que le pays de livraison qu'exigent alorsBR-IC-11etBR-IC-12; pour une ligne ou des frais codésKpar erreur, donnez-leur plutôt la catégorie et le taux du reste du document. - 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é
- La facture en erreur signale BR-IC-01. Le document corrigé passe toutes les étapes de validation sans constat.Télécharger le XML en erreurTélécharger le XML corrigé
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
InvoiceetCreditNote. 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
Ken place, ses montants sont contrôlés parBR-IC-08etBR-IC-09, et sa présence fait intervenirBR-IC-10,BR-IC-11etBR-IC-12.
Règles liées
- BR-IC-08 contrôle la base imposable de l'unique ventilation K par rapport aux lignes, frais et remises K
- BR-AE-01 est le même décompte pour la ventilation en autoliquidation
- BR-IC-09 exige que le montant de TVA de la ventilation K soit nul
- BR-IC-11 demande une date de livraison ou une période de facturation dès qu'une ventilation K est présente
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : Understanding EN 16931 validation errors
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.

