Aller au contenu

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

PEPPOL-EN16931-P0105 : Réserver le code de non-soumission à la TVA VATEX-EU-O aux ventilations de catégorie O

VATEX-EU-O indique qu'une livraison est hors du champ de la TVA et n'a sa place qu'en catégorie de taxe O. L'exemple enregistré l'a mis dans une ventilation en autoliquidation, AE.

Peppol BIS BillingErreur : le document n'est pas valideTVAListes de codes

Sur cette page

La réponse courte

PEPPOL-EN16931-P0105 échoue pour chaque cac:TaxCategory qui porte VATEX-EU-O alors que son cbc:ID n'est pas O. Le code affirme que la livraison n'est pas du tout soumise à la TVA, ce que signifie la catégorie O ; à côté de toute autre catégorie, il contredit le traitement que cette catégorie déclare.

L'exemple enregistré est une facture en autoliquidation à un acheteur doté d'un identifiant TVA allemand : catégorie AE, texte de motif Reverse charge, et en plus VATEX-EU-O. Un service transfrontalier peut sembler hors du champ du point de vue du vendeur, mais lorsque le client acquitte la TVA, le traitement est l'autoliquidation, dont le code est VATEX-EU-AE.

Ce que la règle vérifie

La règle repère une cac:TaxCategory par son code d'exonération après mise en majuscules, si bien qu'une casse mélangée n'y échappe pas : lors d'un essai, Vatex-EU-o dans la ventilation en autoliquidation a été signalé. La catégorie doit alors valoir exactement O, sans espaces de bord.

Elle échoue quelle que soit l'autre catégorie. Lors d'un essai, VATEX-EU-O dans une ventilation d'exportation, catégorie G, n'a été signalé que par cette règle, comme dans la ventilation AE enregistrée.

Remplacer le code règle le cas enregistré : avec VATEX-EU-AE à la place de VATEX-EU-O, la facture en autoliquidation a réussi toutes les étapes lors d'un essai.

Changer la catégorie est la modification la plus lourde. Lors d'un essai, passer la ventilation et la ligne de l'exemple enregistré en O a effacé cette règle mais fait apparaître BR-O-02, parce qu'un document avec une ligne O ne peut porter aucun identifiant TVA, et BR-O-05, parce qu'une ligne O ne peut porter aucun taux.

TermeSignificationÉlément UBL
BT-121Code du motif d'exonération de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode
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

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 :

  • Les services transfrontaliers entre entreprises sont paramétrés comme hors du champ dans le système du vendeur, parce que le lieu de prestation est à l'étranger, tandis que la catégorie de la facture suit les règles de l'autoliquidation.
  • Un code d'exonération par défaut VATEX-EU-O est écrit dans chaque ventilation sans TVA.
  • La catégorie est choisie d'après le type de client et le code d'exonération d'après le produit, et les deux paramètres n'ont jamais été alignés.

Comment corriger le document

  1. Décidez quel traitement s'applique. O concerne les livraisons totalement hors du champ de la TVA ; si le client acquitte la TVA par autoliquidation, le traitement est AE.
  2. Pour une livraison en autoliquidation, gardez AE et indiquez VATEX-EU-AE, un texte de motif, ou les deux, comme l'exige BR-AE-10. L'exemple corrigé garde le texte Reverse charge et supprime le code.
  3. Pour une livraison réellement non soumise à la TVA, passez la ventilation et chaque ligne qu'elle couvre en O et gardez VATEX-EU-O. Supprimez les taux de TVA des lignes, que BR-O-05 interdit, et les identifiants TVA du vendeur et de l'acheteur, que BR-O-02 interdit.

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 portant le code de non-soumission à la TVA

<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:TaxExemptionReasonCode>VATEX-EU-O</cbc:TaxExemptionReasonCode>
    <cbc:TaxExemptionReason>Reverse charge</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Fragment de la facture corrigée : la ventilation en autoliquidation indique son motif sous forme de texte

<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 en échec ajoute <cbc:TaxExemptionReasonCode>VATEX-EU-O</cbc:TaxExemptionReasonCode> à sa ventilation en autoliquidation ; la facture corrigée garde la catégorie AE avec le seul texte Reverse charge. Seule cette règle Peppol est signalée : le texte satisfait BR-AE-10, et VATEX-EU-O est un code de la liste pour BR-CL-22.

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. Lors d'un essai, un avoir exonéré portant VATEX-EU-O a signalé cette règle.
  • Signalée uniquement par l'étape Peppol. La règle EN 16931 des ventilations de catégorie O, BR-O-10, y demande un motif quelconque mais ne regarde pas les codes placés dans d'autres catégories.
  • Le code est lu dans la ventilation de la TVA et dans les remises et charges au niveau du document. Les catégories des lignes sont des éléments cac:ClassifiedTaxCategory et restent hors de la règle.

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 PEPPOL-EN16931-P0105 (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.