Sur cette page
La réponse courte
BR-S-04 échoue lorsqu'un cac:AllowanceCharge marqué comme frais a une cac:TaxCategory égale à S sous le schéma VAT et que le document ne donne ni identifiant fiscal du vendeur, sous quelque schéma que ce soit, ni identifiant TVA de représentant fiscal. Ajoutez le numéro de TVA du vendeur dans un cac:PartyTaxScheme de la partie vendeur ou, lorsque le vendeur est représenté pour la TVA, le numéro du représentant dans cac:TaxRepresentativeParty.
Facturer la TVA au taux normal sur le transport ou l'emballage suppose un vendeur immatriculé à la TVA. Le validateur demande seulement que cette immatriculation figure là où il peut la voir.
Ce que la règle vérifie
Tous frais dont le cbc:ChargeIndicator vaut true et dont la catégorie est au taux normal sous le schéma VAT mettent la règle en jeu. La condition côté vendeur est remplie par n'importe quel cbc:CompanyID dans un cac:PartyTaxScheme du vendeur, ou par un cbc:CompanyID de représentant fiscal dont le schéma fiscal est VAT.
La voie du représentant fiscal fonctionne à elle seule. Lors d'un essai, la facture de transport sans cac:PartyTaxScheme du vendeur mais avec une cac:TaxRepresentativeParty portant GB987654321 sous VAT a passé toutes les étapes.
Le schéma du représentant est vérifié. Passée à GST, la même facture a de nouveau signalé cette règle et BR-S-02, plus BR-56 car le représentant n'avait alors plus d'identifiant TVA.
Le constat vaut par document, non par frais. Lors d'un essai, l'ajout de seconds frais au taux normal, pour l'emballage, à la facture en échec a toujours produit un seul BR-S-04, signalé sur l'élément racine.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-102 | Code de catégorie de TVA des charges ou frais au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID |
| 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 |
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 transport est ajouté par un module d'expédition ou de transporteur qui applique automatiquement le code de taxe au taux normal, tandis que la partie vendeur provient d'une fiche sans numéro de TVA.
- L'export n'inclut
cac:PartyTaxSchemedans la partie vendeur que pour certains types de documents, et ce document a été produit par une autre voie. - Le numéro de TVA du vendeur est enregistré par établissement ou par pays, et l'établissement qui a émis le document n'en a pas.
- Un représentant fiscal est utilisé, et son numéro de TVA est envoyé sous un nom de schéma fiscal local au lieu de
VAT.
Comment corriger le document
- Vérifiez si le vendeur est immatriculé à la TVA pour la livraison ou prestation. Si oui, prenez le numéro, avec son préfixe pays, dans la fiche du vendeur :
GB123456789dans l'exemple enregistré. - Écrivez-le dans la partie vendeur en tant que
cac:PartyTaxScheme/cbc:CompanyIDaveccac:TaxScheme/cbc:IDàVAT, entrecac:PostalAddressetcac:PartyLegalEntity. - Lorsqu'un représentant fiscal déclare la TVA, donnez à
cac:TaxRepresentativePartyuncac:PartyTaxSchemeavec le numéro du représentant sous le schémaVAT. - S'il n'y a aucune immatriculation à indiquer, c'est la catégorie au taux normal des frais et des lignes qu'il faut revoir, avec la personne responsable du paramétrage fiscal, avant toute modification du XML.
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 : des frais de transport 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:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">7.50</cbc:Amount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>Fragment de la facture corrigée : le PartyTaxScheme du vendeur avec son numéro de TVA
<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 avec GB123456789 sous le schéma VAT, absent de la facture en échec ; rien d'autre ne diffère. BR-S-02 est signalé également, car la ligne de facture est au taux normal de 20 et exige le même identifiant. Les frais de transport de 7.50 et la ventilation de 32.50 de base imposable et 6.50 de TVA sont inchangés entre les deux.
Ce que le validateur a signalé
- La facture en erreur signale BR-S-02 et BR-S-04. 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. La version avoir de l'exemple enregistré a signaléBR-S-02etBR-S-04lors d'un essai. - Signalée par l'étape EN 16931 comme constat fatal à la racine du document.
- Les remises ont leur propre version,
BR-S-03, et les frais au taux zéro la leur,BR-Z-04. Un seul identifiant TVA du vendeur satisfait chacune de ces règles. - Le numéro lui-même n'est pas validé ici ;
BR-CO-09vérifie son préfixe pays.
Règles liées
- BR-S-03 demande la même chose pour une remise au niveau du document au taux normal
- BR-S-07 exige que des frais au taux normal portent un taux supérieur à zéro
- BR-56 exige qu'un représentant fiscal porte son propre identifiant TVA
- BR-Z-04 est la version au taux zéro de cette règle sur les frais
- 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-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.
La définition officielle de BR-S-04 (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.

