Sur cette page
La réponse courte
PEPPOL-EN16931-P0110 échoue pour chaque cac:TaxCategory qui porte VATEX-EU-I alors que son cbc:ID n'est pas E. Le code indique que la vente relève du régime de la marge pour les objets d'art, et la liste VATEX, que Peppol applique ici, l'associe à la catégorie exonérée.
Dans l'exemple enregistré, un tableau à l'huile est vendu à un acheteur de New York, et la ventilation et la ligne sont codées G parce que l'acheteur est à l'étranger. Le régime de la marge et l'exonération à l'exportation sont des régimes différents, avec des codes différents : une vente sous le régime de la marge est E avec VATEX-EU-I, une exportation est G avec VATEX-EU-G.
Ce que la règle vérifie
La règle sélectionne les catégories par leur code d'exonération mis en majuscules et exige pour VATEX-EU-I la catégorie E, sans espaces de bord. Les remises et charges au niveau du document sont incluses : lors d'un essai, le code sur une remise de catégorie G a été signalé par cette règle, avec l'avertissement UBL-CR-480, qui déconseille les codes d'exonération sur les remises.
Les catégories des lignes échappent à la règle. Lors d'un essai, VATEX-EU-I dans la cac:ClassifiedTaxCategory d'une ligne d'exportation n'a produit que l'avertissement UBL-CR-600, et rien de cette règle.
Le code qui convient à une ventilation G relève de PEPPOL-EN16931-P0104. Lors d'un essai, le document en échec avec VATEX-EU-G à la place de VATEX-EU-I a réussi toutes les étapes, ce qui n'est le bon résultat que si le tableau est exporté plutôt que vendu sous le régime de la marge.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-121 | Code du motif d'exonération de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode |
| 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 |
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 catégorie est déduite du pays de l'acheteur, si bien que toute vente à un client hors de l'UE devient
G, tandis qu'un indicateur de régime de la marge sur l'article en stock fixe le code d'exonération. - Une galerie applique
VATEX-EU-Ià tout son stock sous le régime de la marge, y compris aux pièces qu'elle traite aussi comme des exportations. - Le régime de la marge est présenté comme une exportation ou comme un taux zéro, parce qu'aucun des deux ne fait apparaître de TVA sur la facture.
Comment corriger le document
- Décidez quel régime s'applique à la vente. Sous le régime de la marge, la facture ne montre aucune TVA et la catégorie est
EavecVATEX-EU-I; si l'objet est exporté et que l'exonération à l'exportation est demandée, la catégorie estGavecVATEX-EU-G. - Pour le régime de la marge, mettez
Edans la ventilation et sur les lignes de l'objet, gardez le taux0et gardezVATEX-EU-I, comme le fait l'exemple corrigé. - Pour une exportation, gardez
Get changez le code enVATEX-EU-G, ou donnez plutôt un texte de motif, queBR-G-10accepte aussi.
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 : un tableau vendu sous le régime de la marge, codé comme exportation, G
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-EU-I</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Margin scheme - Works of art</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>Oil painting</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>Fragment de la facture corrigée : la vente sous le régime de la marge est exonérée, E
<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-I</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Margin scheme - Works of art</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>Oil painting</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>La facture en échec a G là où la facture corrigée a E, dans la ventilation et sur la ligne du tableau ; VATEX-EU-I, le texte de motif et l'adresse de l'acheteur aux États-Unis sont inchangés. Le document en échec ne signale que cette règle, car une ventilation G avec un motif, un taux nul et un identifiant TVA du vendeur satisfait l'étape EN 16931.
Ce que le validateur a signalé
- La facture en erreur signale PEPPOL-EN16931-P0110. 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 à UBL
InvoiceetCreditNote. Lors d'un essai, un avoir portantVATEX-EU-Idans une ventilationGa signalé cette règle. - Un acheteur hors de l'UE n'empêche pas une vente sous le régime de la marge d'être en catégorie
E: l'exemple corrigé garde l'adresse de New York et a réussi toutes les étapes. - Seule l'étape Peppol compare le code à la catégorie ;
BR-CL-22, dans l'étape EN 16931, vérifie que le code figure sur la liste.
Règles liées
- PEPPOL-EN16931-P0104 exige la catégorie G partout où le code d'exportation VATEX-EU-G est utilisé
- PEPPOL-EN16931-P0111 tient le code du régime de la marge pour les antiquités, VATEX-EU-J, à la catégorie E
- BR-G-10 exige un motif sur la ventilation d'exportation si la vente s'avère être une exportation
- BR-E-10 exige un motif sur la ventilation exonérée, que VATEX-EU-I fournit
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : How Peppol invoice validation actually works
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-P0110 (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.

