Aller au contenu

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

BR-AE-10 : Ajouter le motif d'autoliquidation à la ventilation de la TVA

Une ventilation de la TVA en autoliquidation doit indiquer pourquoi aucune TVA n'est facturée, par un texte de motif d'exonération, un code de motif, ou les deux.

EN 16931Erreur : le document n'est pas valideTVA

Sur cette page

La réponse courte

BR-AE-10 échoue lorsqu'une ventilation de la TVA de catégorie AE n'a ni cbc:TaxExemptionReason ni cbc:TaxExemptionReasonCode dans son cac:TaxCategory. Ajoutez le motif : le texte Reverse charge, ou la formule standard équivalente dans la langue de la facture, ou le code de motif qui signifie autoliquidation, VATEX-EU-AE. Il est permis d'envoyer les deux.

La catégorie n'est pas le problème. Si l'opération relève de l'autoliquidation, AE reste et la mention manquante est ajoutée.

Ce que la règle vérifie

La règle sélectionne chaque cac:TaxCategory dont le cbc:ID vaut AE sous le schéma fiscal VAT, dans cac:TaxTotal/cac:TaxSubtotal sous la racine du document. Elle passe lorsque cet élément a un enfant cbc:TaxExemptionReason, un enfant cbc:TaxExemptionReasonCode, ou les deux.

Un code seul suffit. Le fichier d'exemple valide en autoliquidation, dont le texte est remplacé par un cbc:TaxExemptionReasonCode valant VATEX-EU-AE, passe toutes les étapes.

Seule la présence est contrôlée, pas le sens. Un texte quelconque passe, tout comme a passé un code sans rapport issu de la même liste, VATEX-EU-132, sur une ventilation en autoliquidation. Un résultat sans erreur ne prouve donc pas que le motif indiqué est le bon ; cela reste votre responsabilité.

Un code doit tout de même provenir de la liste de codes VATEX. Un code absent de la liste satisfait cette règle mais est rejeté par BR-CL-22.

Un élément cbc:TaxExemptionReason vide compte ici comme présent, puis est rejeté par PEPPOL-EN16931-R008, qui interdit les éléments vides.

La règle ne lit que la ventilation de la TVA. La catégorie d'une ligne, ou d'une remise ou de frais au niveau du document, n'est pas l'endroit où ce motif est cherché.

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

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 système source imprime la mention d'autoliquidation en pied de page du PDF, et rien ne la reporte dans les données fiscales structurées.
  • Le motif est rattaché au code de taxe et l'export ne lit que la catégorie et le taux.
  • Le mapping écrit les motifs d'exonération pour la catégorie E et n'a jamais été étendu à AE.
  • Les chaînes vides sont supprimées avant la sérialisation, et le champ du motif était vide pour ce code de taxe.
  • Le motif a été écrit ailleurs que dans la ventilation de la TVA.

Comment corriger le document

  1. Établissez à partir de la détermination de la TVA que l'opération relève réellement de l'autoliquidation. Si c'est le cas, gardez la catégorie AE. Changer la catégorie pour faire disparaître le constat fausserait la description de l'opération.
  2. Dans le cac:TaxCategory de la ventilation AE, ajoutez cbc:TaxExemptionReason avec la formule d'autoliquidation, ou cbc:TaxExemptionReasonCode avec VATEX-EU-AE, ou les deux.
  3. Respectez l'ordre UBL dans cac:TaxCategory : cbc:ID, cbc:Percent, cbc:TaxExemptionReasonCode, cbc:TaxExemptionReason, puis cac:TaxScheme. Si le texte est placé avant le code, l'étape XSD rejette le document et les étapes EN 16931 et Peppol ne s'exécutent pas.
  4. Rattachez le motif au code de taxe dans le système source afin que chaque document en autoliquidation le reçoive, plutôt que de corriger les factures une à une.

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 : une ventilation en autoliquidation sans motif

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

Fragment de la facture corrigée : le texte du motif se place entre le taux et le schéma fiscal

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>AE</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReason>Reverse charge</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

La facture corrigée a cbc:TaxExemptionReason avec le texte Reverse charge dans la catégorie de taxe AE ; la facture en échec n'a aucun élément de motif. Rien d'autre ne diffère, et le document en échec ne signale que BR-AE-10.

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 à UBL Invoice et CreditNote. Un avoir en autoliquidation sans le motif signale la même règle.
  • Seule la catégorie AE sous le schéma fiscal VAT est concernée. Les ventilations exonérées ont la règle parallèle BR-E-10.
  • Les autres règles d'autoliquidation s'appliquent toujours : BR-AE-09 se déclenche lorsque la ventilation porte un montant de taxe, et BR-AE-02 lorsque l'identifiant TVA du vendeur manque. Ajouter le motif ne les règle pas.

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-20.

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