Sur cette page
La réponse courte
PEPPOL-EN16931-P0108 échoue pour chaque cac:TaxCategory qui porte VATEX-EU-D alors que son cbc:ID n'est pas E. Le code indique que la TVA sur un moyen de transport d'occasion, comme une voiture d'occasion, a été traitée selon le régime transitoire propre à ces véhicules, et la liste VATEX ne l'admet qu'avec la catégorie exonérée.
L'exemple enregistré vend une voiture d'occasion à un acheteur de Berlin et code la ventilation et la ligne en K, livraison intracommunautaire. Le nom du code sur la liste VATEX commence par "Intra-Community acquisition", ce qui fait paraître K correct, mais Peppol associe VATEX-EU-D à E et à rien d'autre.
Ce que la règle vérifie
La règle met le code d'exonération en majuscules avant la comparaison, puis exige la catégorie E, sans espaces de bord. Lors d'un essai, vatex-eu-d dans la ventilation K a été signalé exactement comme le code en majuscules.
L'échec enregistré se limite à cette règle, car le reste du document satisfait la catégorie K : les deux identifiants TVA, une date de livraison et un pays de livraison sont présents, et un motif est donné. Avec VATEX-EU-IC à la place de VATEX-EU-D, le même document a réussi toutes les étapes lors d'un essai.
Le taux zéro ne convient pas non plus. Lors d'un essai, la ventilation et la ligne de la voiture d'occasion codées Z avec VATEX-EU-D ont signalé cette règle et BR-Z-10.
| 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 :
- Le code est choisi d'après son nom sur la liste VATEX, "Intra-Community acquisition from second hand means of transport", et associé à la catégorie intracommunautaire.
- Un système de concessionnaire fixe la catégorie d'après le pays de l'acheteur et le code d'après la fiche du véhicule, si bien qu'un véhicule d'occasion vendu dans un autre État membre reçoit
KavecVATEX-EU-D. - Les ventes de véhicules sans TVA sur la facture sont associées au taux zéro.
Comment corriger le document
- Vérifiez comment la vente est imposée. Si le véhicule est vendu selon le régime des moyens de transport d'occasion, la catégorie est
EetVATEX-EU-Dreste. - Mettez
cbc:IDàEdans la ventilation et sur les lignes qu'elle couvre, avec le taux0. L'exemple corrigé n'a eu besoin de rien d'autre :Eexige un identifiant fiscal du vendeur, et son identifiant TVA était présent ; le code vaut motif au sens deBR-E-10. - Si la vente est réellement une livraison intracommunautaire, gardez
Ket remplacez le code parVATEX-EU-IC, comme l'attendPEPPOL-EN16931-P0106.
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 voiture d'occasion codée comme livraison intracommunautaire, K
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>K</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-EU-D</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Second-hand means of transport</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>Used car</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>K</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 voiture d'occasion est exonérée, E, avec le même code
<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-D</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Second-hand means of transport</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>Used car</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 K là où la facture corrigée a E, dans la ventilation et sur la ligne de la voiture d'occasion ; VATEX-EU-D, le texte de motif, les deux identifiants TVA et les données de livraison sont identiques dans les deux. Seule cette règle Peppol est signalée, car une ventilation K avec un motif et les données intracommunautaires réussit l'étape EN 16931.
Ce que le validateur a signalé
- La facture en erreur signale PEPPOL-EN16931-P0108. 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-Ddans une ventilation d'exportation, catégorieG, a signalé cette règle. - Seule l'étape Peppol contrôle l'association ; EN 16931 accepte
VATEX-EU-Ddans n'importe quelle catégorie viaBR-CL-22. - Une ventilation exonérée portant ce code n'a besoin ni d'identifiant TVA de l'acheteur ni de données de livraison, mais ils peuvent rester : l'exemple corrigé les garde et a réussi toutes les étapes.
Règles liées
- PEPPOL-EN16931-P0109 associe le code du régime de la marge pour les biens d'occasion, VATEX-EU-F, à la catégorie E
- PEPPOL-EN16931-P0106 régit le code qui a bien sa place en catégorie K, VATEX-EU-IC
- BR-E-10 exige un motif sur la ventilation exonérée, que VATEX-EU-D fournit
- BR-Z-10 ajoute un second constat lorsque le véhicule est codé au taux zéro avec ce code
- 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-P0108 (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.

