Sur cette page
La réponse courte
BR-G-03 échoue lorsqu'un cac:AllowanceCharge avec un cbc:ChargeIndicator à false est en catégorie G et qu'il n'existe aucun identifiant TVA du vendeur ni de son représentant fiscal. L'exportation enregistrée a une remise sur quantité de 2.50 en G et aucun cac:PartyTaxScheme du vendeur ; ajouter GB123456789 sous le régime VAT lève l'erreur.
Le même manque est signalé pour la ligne d'exportation par BR-G-02 : sur une facture d'exportation ordinaire, les deux constats arrivent donc ensemble, et un seul identifiant corrige les deux.
Ce que la règle vérifie
C'est la remise qui déclenche la règle, pas les lignes. Lors d'un essai, une facture au taux normal avec une remise G de 2.50, dont le vendeur n'était immatriculé que sous le régime TAX, a signalé cette règle seule ; BR-S-02 a accepté cette immatriculation pour la ligne au taux normal. Une remise à l'intérieur d'une ligne compte aussi : lors d'un essai, une remise de 0.00 en G placée dans la ligne au taux normal, là encore avec un vendeur seulement sous TAX, a signalé cette règle et l'avertissement UBL-CR-558.
Pour passer, le vendeur a besoin d'un cbc:CompanyID dans un cac:PartyTaxScheme sous cac:AccountingSupplierParty/cac:Party dont le régime fiscal est VAT, ou cac:TaxRepresentativeParty a besoin de la même chose. Lors d'un essai, un représentant fiscal avec un nom, une adresse à Londres et GB987654321 sous VAT a rendu l'exportation remisée valide sans identifiant TVA du vendeur.
Une immatriculation sous TAX n'est pas un identifiant TVA ici. Lors d'un essai, l'exportation remisée dont le cac:PartyTaxScheme du vendeur est passé de VAT à TAX a signalé cette règle et BR-G-02, exactement comme avec l'identifiant supprimé.
Seul le côté vendeur est lu, et l'acheteur à New York n'a d'identifiant TVA dans aucun des deux documents. Le constat est émis une fois, à la racine du document.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-95 | Code de catégorie de TVA de la remise au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID |
| BT-31 | Identifiant à la TVA du vendeur | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID |
| 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 :
- La section TVA du vendeur n'est émise que lorsque le document porte de la TVA, et tout, sur une exportation, est au taux de 0.
- La remise est ajoutée par un module de tarification après la construction de l'en-tête, et l'en-tête provient d'un profil qui omet la section fiscale du vendeur pour les acheteurs hors UE.
- L'immatriculation du vendeur est envoyée sous un code de régime fiscal générique comme
TAX. - La remise reprend la catégorie
Gdes lignes d'exportation tandis que la partie vendeur vient d'un modèle prévu pour des vendeurs sans immatriculation à la TVA.
Comment corriger le document
- Prenez le numéro de TVA de l'entité juridique qui émet la facture, avec son préfixe pays, dans ses paramètres d'entreprise.
- Émettez-le comme
cac:PartyTaxSchemedans la partie vendeur, aprèscac:PostalAddresset avantcac:PartyLegalEntity, avec uncac:TaxScheme/cbc:IDàVAT. - Lorsqu'un représentant fiscal gère la TVA pour le vendeur, envoyez plutôt
cac:TaxRepresentativePartyavec son nom, son adresse postale et sa propre immatriculationVAT. - Laissez la remise en
Gavec un taux de0, comme les lignes d'exportation qu'elle réduit ; ce n'est pas la catégorie qui est en cause dans cette règle.
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 remise de catégorie G, et un vendeur sans identifiant TVA
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address in London, GB, omitted from this fragment -->
<cac:PartyLegalEntity>
<cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
<cbc:CompanyID>12345678</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<!-- buyer in New York, US, omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Volume discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">2.50</cbc:Amount>
<cac:TaxCategory>
<cbc:ID>G</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<!-- tax scheme VAT omitted from this fragment -->
</cac:TaxCategory>
</cac:AllowanceCharge>Fragment de la facture corrigée : l'identifiant TVA du vendeur sous le régime VAT, avec la même remise
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address in London, GB, 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>
<!-- buyer and the discount of 2.50 in G omitted from this fragment -->La facture corrigée donne au vendeur GB123456789 dans un cac:PartyTaxScheme sous VAT ; la facture en échec n'a aucun identifiant TVA du vendeur, et la remise de 2.50 en G est identique dans les deux. Le document en échec signale aussi BR-G-02, car sa ligne est elle aussi en G et exige le même identifiant.
Ce que le validateur a signalé
- La facture en erreur signale BR-G-02 et BR-G-03. 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. Lors d'un essai, un avoir construit à partir de la facture en échec a signaléBR-G-02et cette règle. - Les frais au niveau du document en
Gont la même exigence avecBR-G-04, et la remise elle-même doit avoir un taux de 0 selonBR-G-06. - Aucun pays n'est comparé ici. La règle prend la catégorie
Gtelle quelle ; savoir si les biens quittent réellement l'UE relève de votre détermination fiscale.
Règles liées
- BR-G-02 pose la même exigence pour les lignes d'exportation et est signalée à côté de cette règle
- BR-G-04 est le contrôle correspondant pour des frais au niveau du document en catégorie G
- BR-G-06 exige que la remise G elle-même ait un taux de 0
- 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-G-03 (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.

