Sur cette page
La réponse courte
BR-O-10 échoue lorsque la cac:TaxCategory d'une ventilation de la TVA O n'a ni cbc:TaxExemptionReasonCode ni cbc:TaxExemptionReason. Ajoutez VATEX-EU-O comme code, Not subject to VAT ou le texte standard équivalent dans la langue de la facture, ou les deux ; la facture corrigée envoie les deux.
Il n'y a pas de taux dans une ventilation O sur lequel se repérer. Les éléments de motif viennent juste après cbc:ID et avant cac:TaxScheme.
Ce que la règle vérifie
Chaque cac:TaxCategory dont le cbc:ID vaut O et le schéma VAT dans cac:TaxTotal/cac:TaxSubtotal est testée séparément, et un constat pointe sur cet élément. Un enfant code de motif ou un enfant texte de motif la satisfait.
L'un des deux suffit largement. Lors d'un essai, la facture corrigée est restée valide avec seulement VATEX-EU-O, puis avec seulement le texte.
Le libellé n'est pas examiné. Le texte Outside the scope of VAT est passé, tout comme le code sans rapport VATEX-EU-132, sans constat à aucune étape.
Peppol associe certains codes à leurs propres catégories. Sur une ventilation O, VATEX-EU-IC a signalé PEPPOL-EN16931-P0106, VATEX-EU-G a signalé PEPPOL-EN16931-P0104 et VATEX-EU-AE a signalé PEPPOL-EN16931-P0107 lors d'un essai ; VATEX-EU-O sur une ventilation exonérée a signalé PEPPOL-EN16931-P0105.
Un cbc:TaxExemptionReason vide passe cette règle et est intercepté par PEPPOL-EN16931-R008, comme cela s'est produit lors d'un essai.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-118 | Code de catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-120 | Motif d'exonération de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason |
| BT-121 | Code du motif d'exonération de TVA | cac: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 :
- Les champs de motif ne sont générés que pour les ventilations exonérées, et
Opasse par une branche distincte qui écrit la catégorie et rien d'autre. - Le système source n'attribue aucun code de taxe aux montants hors champ, si bien qu'il n'existe aucun endroit où placer un motif.
- La ventilation
Oa été calquée sur celle au taux zéro, qui ne porte pas de motif, et les champs de motif n'ont jamais été ajoutés. - Le motif est enregistré sur la ligne dans les données source et n'est pas reporté dans la ventilation.
Comment corriger le document
- Confirmez que les montants sont réellement hors du champ de la TVA, et le document entier aussi, puisque
One peut pas partager un document avec d'autres catégories. - Dans la
cac:TaxCategoryde la ventilationO, ajoutezcbc:TaxExemptionReasonCodeavecVATEX-EU-O,cbc:TaxExemptionReasonavecNot subject to VATou sa traduction standard, ou les deux. - Placez-les après
cbc:IDet avantcac:TaxScheme, le code avant le texte. Une ventilationOn'a pas besoin d'uncbc:Percententre les deux. - Rattachez le motif à la catégorie
Odans le mapping, afin que chaque ventilation non soumise à la TVA soit écrite avec lui.
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 : la ventilation O ne contient que la catégorie et le schéma
<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>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Fragment de la facture corrigée : code et texte entre la catégorie et le schéma
<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-O</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Not subject to VAT</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>La facture corrigée porte cbc:TaxExemptionReasonCode VATEX-EU-O et cbc:TaxExemptionReason Not subject to VAT dans la catégorie de taxe O ; dans la facture en échec, cette catégorie ne contient que cbc:ID et cac:TaxScheme. Le reste des deux documents est identique, et BR-O-10 est le seul constat signalé par le document en échec.
Ce que le validateur a signalé
- La facture en erreur signale BR-O-10. 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 aux documents UBL
InvoiceetCreditNote. Réécrite en avoir, la facture en échec a signalé cette règle sur la même ventilation lors d'un essai. - Seules les ventilations
Osous le schémaVATsont concernées.BR-E-10,BR-AE-10,BR-IC-10etBR-G-10sont les règles correspondantes pour les ventilations exonérées, en autoliquidation, de livraison intracommunautaire et d'exportation. - Un motif sur la ventilation ne règle pas les autres règles
O: le document ne doit toujours avoir aucun identifiant TVA selonBR-O-02et aucune autre catégorie selonBR-O-11.
Règles liées
- BR-E-10 est la règle de motif pour les ventilations exonérées, où le libellé doit nommer l'exonération
- BR-IC-10 est la règle de motif pour les ventilations de livraison intracommunautaire
- BR-CL-22 rejette un code de motif absent de la liste VATEX
- BR-O-11 exclut toute autre catégorie de TVA d'un document qui a une ventilation O
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : Understanding EN 16931 validation errors
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-24.
La définition officielle de BR-O-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.

