Sur cette page
La réponse courte
BR-S-02 échoue lorsqu'une ligne a la catégorie de TVA S mais que la partie vendeur n'a pas de cac:PartyTaxScheme/cbc:CompanyID et qu'aucun identifiant TVA de représentant fiscal n'est fourni non plus. Ajoutez le numéro de TVA du vendeur dans cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID, avec cac:TaxScheme/cbc:ID défini à VAT.
Utilisez la véritable immatriculation du vendeur. Si le vendeur n'a pas de numéro de TVA propre, la réponse est soit son représentant fiscal, soit un nouvel examen de la question de savoir si la TVA au taux normal a sa place sur la facture.
Ce que la règle vérifie
La règle est déclenchée par une cac:ClassifiedTaxCategory dont le cbc:ID vaut S sous le schéma VAT, c'est-à-dire la catégorie d'un article de ligne. Les remises et frais au niveau du document relèvent d'autres règles : lors d'un essai, des frais au niveau du document au taux normal sans identifiant TVA du vendeur ont été signalés comme BR-S-04, et une remise au niveau du document au taux normal comme BR-S-03, et non comme cette règle.
Côté vendeur, un cbc:CompanyID dans n'importe quel cac:PartyTaxScheme de la partie vendeur suffit, quel que soit le schéma fiscal que nomme cet élément. C'est ainsi que l'identifiant d'immatriculation fiscale du vendeur (BT-32) est admis. Lors d'un essai, un cac:PartyTaxScheme du vendeur avec le schéma TAX au lieu de VAT a passé cette règle et toutes les autres étapes.
L'autre façon de passer est cac:TaxRepresentativeParty/cac:PartyTaxScheme/cbc:CompanyID, et là, le schéma doit être VAT. Lors d'un essai, une facture valide avec représentant fiscal est restée valide après le retrait de l'identifiant du vendeur ; avec le schéma du représentant passé lui aussi à TAX, elle a signalé cette règle et BR-56.
L'identifiant d'immatriculation légale du vendeur dans cac:PartyLegalEntity/cbc:CompanyID ne joue aucun rôle. La facture en échec y garde son 12345678 et échoue quand même.
Seule la présence de l'élément est testée. Un cbc:CompanyID du vendeur vide a passé cette règle lors d'un essai et a été signalé à la place par PEPPOL-EN16931-R008.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-31 | Identifiant à la TVA du vendeur | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (tax scheme VAT) |
| BT-32 | Identifiant d'enregistrement fiscal du vendeur | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (a tax scheme other than VAT) |
| BT-63 | Identifiant à la TVA du représentant fiscal du vendeur | cac:TaxRepresentativeParty/cac:PartyTaxScheme/cbc:CompanyID |
| BT-151 | Code de catégorie de TVA de l'article facturé | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note) |
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 numéro de TVA du vendeur se trouve dans des paramètres d'entreprise que l'export ne lit pas, ou il est vide pour une entité juridique ou un environnement.
- La partie vendeur est construite à partir du même modèle que la partie acheteur, qui n'a pas de
cac:PartyTaxScheme. - Le numéro de TVA est écrit dans
cac:PartyLegalEntity/cbc:CompanyIDoucac:PartyIdentification/cbc:ID, où il ne compte pas comme identifiant TVA. - Un vendeur qui passe par un représentant fiscal envoie
cac:TaxRepresentativePartysans soncac:PartyTaxScheme. - Le sérialiseur supprime tout le
cac:PartyTaxSchemelorsque le champ du numéro de TVA est vide, si bien qu'une lacune dans les données de référence arrive sans bruit dans le document.
Comment corriger le document
- Lisez le numéro de TVA du vendeur, avec son préfixe pays, dans la fiche entreprise du vendeur. Dans l'exemple enregistré, il s'agit de
GB123456789. - Écrivez-le dans
cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyIDet donnez à cecac:PartyTaxSchemeuncac:TaxScheme/cbc:IDégal àVAT. - Respectez l'ordre UBL dans
cac:Party:cac:PartyTaxSchemevient aprèscac:PostalAddresset avantcac:PartyLegalEntity. Placé aprèscac:PartyLegalEntity, il a fait échouer l'étape XSD lors d'un essai, et les étapes EN 16931 et Peppol ont été sautées. - Si le vendeur est représenté pour la TVA, envoyez
cac:TaxRepresentativePartyavec le nom, l'adresse postale et lecac:PartyTaxScheme/cbc:CompanyIDdu représentant sous le schémaVAT. - S'il n'y a ni numéro de TVA du vendeur ni représentant, n'empruntez pas un autre identifiant pour combler le vide. Réglez avec la personne responsable du paramétrage fiscal la question de savoir si les lignes doivent porter la TVA au taux normal.
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 ligne au taux normal, et une partie vendeur sans PartyTaxScheme
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address omitted from this fragment -->
<cac:PartyLegalEntity>
<cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
<cbc:CompanyID>12345678</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- quantity and line amount omitted from this fragment -->
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : l'identifiant TVA du vendeur entre l'adresse postale et l'entité juridique
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address omitted from this fragment -->
<cac:PartyTaxScheme>
<cbc:CompanyID>GB123456789</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
<cbc:CompanyID>12345678</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>La facture corrigée a un cac:PartyTaxScheme du vendeur contenant GB123456789 sous le schéma VAT, et la facture en échec n'a aucun cac:PartyTaxScheme dans la partie vendeur. Le document en échec ne signale que BR-S-02. BR-CO-26 reste silencieux car l'identifiant d'immatriculation légale du vendeur est toujours là ; une fois celui-ci retiré aussi, BR-CO-26 a également été signalé.
Ce que le validateur a signalé
- La facture en erreur signale BR-S-02. 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. Un avoir avec unecac:CreditNoteLineau taux normal et sans identifiant du vendeur a signalé la même règle lors d'un essai. - L'étape EN 16931 la signale comme constat fatal à la racine du document, une fois par document quel que soit le nombre de lignes au taux normal.
- Les autres catégories ont leur propre version de cette exigence, comme
BR-Z-02pour les lignes au taux zéro,BR-E-02pour les lignes exonérées etBR-AE-02pour l'autoliquidation. Un seul identifiant TVA du vendeur les satisfait toutes. - Le format du numéro n'est pas examiné ici.
BR-CO-09vérifie qu'un identifiant TVA commence par un préfixe pays.
Règles liées
- BR-CO-09 vérifie le préfixe pays de l'identifiant TVA du vendeur que demande cette règle
- BR-56 exige qu'un représentant fiscal, lorsqu'il est envoyé, porte son propre identifiant TVA
- BR-AE-02 est l'équivalent pour l'autoliquidation, qui exige aussi un identifiant de l'acheteur
- BR-CO-26 s'ajoute à cette règle lorsque le vendeur n'a pas non plus d'identifiant d'immatriculation légale
- 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-S-02 (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.

