Aller au contenu

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

PEPPOL-EN16931-P0109 : Coder les biens d'occasion vendus sous le régime de la marge en catégorie E avec VATEX-EU-F

VATEX-EU-F signale une vente sous le régime de la marge pour les biens d'occasion et n'est accepté qu'en catégorie E. La vente de bibliothèque enregistrée était codée O.

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

Sur cette page

La réponse courte

PEPPOL-EN16931-P0109 échoue pour chaque cac:TaxCategory qui porte VATEX-EU-F alors que son cbc:ID n'est pas E. Sous le régime de la marge pour les biens d'occasion, le revendeur acquitte la TVA sur sa marge et n'en fait apparaître aucune sur la facture ; la liste VATEX associe le code à la catégorie exonérée, et Peppol impose cette association.

L'exemple enregistré vend une bibliothèque d'occasion et code la vente O, non soumise à la TVA, avec le code du régime de la marge à côté. Une vente sous le régime de la marge entre dans le champ de la TVA, si bien que O la décrit mal, même si la facture ne montre aucune TVA.

Ce que la règle vérifie

Chaque cac:TaxCategory dont le code d'exonération, mis en majuscules, vaut VATEX-EU-F doit avoir E pour catégorie, sans espaces de bord. La ventilation O enregistrée est le seul constat, car la facture en échec satisfait par ailleurs la catégorie O : sa ligne n'a pas de taux et son vendeur pas d'identifiant TVA.

Changer la seule lettre ne suffit pas. Lors d'un essai, passer la ventilation et la ligne enregistrées de O à E a effacé cette règle et fait apparaître BR-48 (la ventilation exige un taux), BR-E-02 (l'identifiant TVA du vendeur) et BR-E-05 (le taux de la ligne doit valoir 0).

Appliquer le taux zéro à la vente échoue aussi. Lors d'un essai, l'exemple corrigé avec sa ventilation et sa ligne en Z a été signalé par cette règle et par BR-Z-10, qui interdit tout motif d'exonération sur une ventilation au taux zéro.

L'association est tout ce que la règle contrôle. Lors d'un essai, VATEX-EU-O à la place de VATEX-EU-F a fait réussir toutes les étapes au document en échec, ce qui n'est juste que si la vente est réellement hors du champ de la TVA.

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-31Identifiant à la TVA du vendeurcac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID

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 ventes sans TVA sur la facture sont associées par défaut à O, et l'indicateur du régime de la marge ne fixe que le code d'exonération.
  • Un système de magasin ou de caisse qui gère le régime de la marge n'a pas de catégorie exonérée, si bien que les ventes sous ce régime partent comme hors du champ ou au taux zéro.
  • Le code du régime de la marge vient de la fiche article, tandis que la catégorie vient du client ou du montant de TVA de la facture.

Comment corriger le document

  1. Traitez une vente sous le régime de la marge comme exonérée dans la facture électronique : catégorie E dans la ventilation et sur chaque ligne de biens d'occasion, avec le taux 0 aux deux endroits, et gardez VATEX-EU-F.
  2. Indiquez l'identifiant TVA du vendeur dans cac:PartyTaxScheme. BR-E-02 exige un identifiant fiscal du vendeur sur une facture comportant une ligne exonérée, et un revendeur qui applique le régime de la marge est identifié à la TVA : c'est donc son identifiant TVA qu'il faut indiquer.
  3. N'affichez aucune TVA sur la marge : le montant de taxe de la ventilation reste 0.00, et le code d'exonération indique à l'acheteur pourquoi.
  4. Lorsqu'une facture mêle des articles sous le régime de la marge et des articles taxés normalement, donnez à chaque catégorie sa propre ventilation.

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 vente sous le régime de la marge codée non soumise à la TVA, O, sans taux

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>O</cbc:ID>
    <cbc:TaxExemptionReasonCode>VATEX-EU-F</cbc:TaxExemptionReasonCode>
    <cbc:TaxExemptionReason>Margin scheme - Second-hand goods</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>
<!-- totals and the start of the invoice line omitted from this fragment -->
<cac:Item>
  <cbc:Name>Second-hand bookcase</cbc:Name>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>O</cbc:ID>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>

Fragment de la facture corrigée : la même vente en catégorie E, avec le taux 0

<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-F</cbc:TaxExemptionReasonCode>
    <cbc:TaxExemptionReason>Margin scheme - Second-hand goods</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>
<!-- totals and the start of the invoice line omitted from this fragment -->
<cac:Item>
  <cbc:Name>Second-hand bookcase</cbc:Name>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>

Dans la facture en échec, la ventilation et la ligne de la bibliothèque sont en catégorie O sans taux, et le vendeur n'a pas d'identifiant TVA. La facture corrigée a E avec le taux 0 aux deux endroits et l'identifiant TVA du vendeur GB123456789. VATEX-EU-F et son texte de motif sont identiques dans les deux, et le document en échec ne signale que cette règle.

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 portant VATEX-EU-F dans une ventilation au taux zéro a signalé cette règle avec BR-Z-10.
  • Signalée par l'étape Peppol ; dans l'étape EN 16931, BR-CL-22 confirme seulement que VATEX-EU-F figure sur la liste VATEX.
  • Dans une ventilation exonérée, le code n'a pas besoin d'un texte de motif à côté : lors d'un essai, l'exemple corrigé sans son texte a réussi toutes les étapes. Envoyer les deux, comme le fait l'exemple, est permis.

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