Aller au contenu

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

BR-CL-22 : Utiliser un code VATEX comme code du motif d'exonération de TVA

cbc:TaxExemptionReasonCode doit contenir un code de la liste VATEX, comme VATEX-EU-132. Les codes inventés sont rejetés ; envoyez un texte de motif si aucun code ne convient.

EN 16931Erreur : le document n'est pas valideTVAListes de codes

Sur cette page

La réponse courte

BR-CL-22 échoue lorsqu'un cbc:TaxExemptionReasonCode contient une valeur absente de la liste de codes VATEX, et le constat pointe vers cet élément. Remplacez la valeur par le code VATEX du fondement juridique réel de l'exonération, ou supprimez le code et indiquez le motif dans cbc:TaxExemptionReason si aucun code ne convient.

L'exemple enregistré utilise VATEX-EU-EXEMPT, qui suit le modèle des vrais codes mais n'existe pas.

Ce que la règle vérifie

La règle s'exécute sur chaque cbc:TaxExemptionReasonCode du document et recherche sa valeur dans la liste VATEX dont dispose le validateur : les codes d'articles de l'UE comme VATEX-EU-132 et VATEX-EU-143-1A, les codes de catégorie VATEX-EU-AE, VATEX-EU-IC, VATEX-EU-G et VATEX-EU-O, les codes du régime de la marge VATEX-EU-D, VATEX-EU-F, VATEX-EU-I et VATEX-EU-J, et un ensemble de codes français VATEX-FR-.

La valeur est débarrassée de ses espaces de début et de fin et mise en majuscules avant la recherche : vatex-eu-132 a donc été accepté lors d'un essai. Un espace à l'intérieur de la valeur ou un préfixe manquant échoue : VATEX EU 132 et 132 ont tous deux été rejetés.

Un élément vide fait échouer cette règle et, lors d'un essai, il a aussi entraîné PEPPOL-EN16931-R008.

Un code qui échoue ici compte quand même comme motif d'exonération pour BR-E-10. Lors d'un essai, VATEX-EU-EXEMPT seul, sans texte de motif, a signalé cette règle et rien d'autre.

Seule l'appartenance à la liste est contrôlée. Savoir si un code de la liste convient à la catégorie relève de Peppol, avec PEPPOL-EN16931-P0106 et les règles voisines.

TermeSignificationÉlément UBL
BT-121Code du motif d'exonération de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode
BT-120Motif d'exonération de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason

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 :

  • Le code est assemblé selon un modèle, VATEX-EU- suivi d'un libellé, au lieu d'être choisi dans la liste.
  • Un code d'exonération interne ou une référence juridique nationale est écrit dans l'élément de code, où seuls les codes VATEX sont acceptés.
  • Le numéro d'article de loi est écrit sans le préfixe VATEX-EU-.

Comment corriger le document

  1. Retrouvez le fondement juridique de l'exonération dans votre détermination fiscale.
  2. Recherchez le code VATEX de ce fondement, par exemple VATEX-EU-132 pour une exonération au titre de l'article 132 de la directive TVA, et écrivez-le exactement comme dans la liste.
  3. Si aucun code ne correspond, supprimez cbc:TaxExemptionReasonCode et indiquez le fondement dans cbc:TaxExemptionReason. Une ventilation exonérée a besoin de l'un ou de l'autre au titre de BR-E-10.
  4. Si vous envoyez les deux, placez le code avant le texte. Lors d'un essai, le code placé après le texte a échoué à l'étape XSD.

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 : la ventilation exonérée porte un code d'exonération absent de la liste VATEX

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReasonCode>VATEX-EU-EXEMPT</cbc:TaxExemptionReasonCode>
    <cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Fragment de la facture corrigée : le code non valide a disparu et le texte du motif reste

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

La facture en échec a <cbc:TaxExemptionReasonCode>VATEX-EU-EXEMPT</cbc:TaxExemptionReasonCode> avant son texte de motif ; la facture corrigée n'a que le texte. Le document en échec ne signale que BR-CL-22 : le texte maintient BR-E-10 satisfaite, et aucune autre règle ne lit un code inconnu. La correction présentée supprime le code, mais un vrai code VATEX au même endroit, comme VATEX-EU-132, a aussi passé toutes les étapes lors d'un essai. Le texte Exempt from VAT est une formulation d'exemple générique ; une vraie facture doit nommer le fondement réel.

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 à Invoice et CreditNote en UBL. Lors d'un essai, un avoir exonéré avec VATEX-EU-EXEMPT a signalé cette règle seule.
  • Signalée par l'étape EN 16931. L'étape Peppol vérifie ensuite que les codes propres à une catégorie sont utilisés avec leur catégorie.
  • Les ventilations au taux normal et au taux zéro ne peuvent porter aucun motif d'exonération, valide ou non ; BR-S-10 et BR-Z-10 le rejettent à cet endroit.

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-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.

La définition officielle de BR-CL-22 (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.