Aller au contenu

Ironfang Finance - Référence des règles

BR-S-02 : Ajouter l'identifiant TVA du vendeur lorsque des lignes sont au taux normal

Un document comportant une ligne au taux normal doit identifier le vendeur à la TVA, par son propre identifiant fiscal ou par l'identifiant TVA d'un représentant fiscal.

EN 16931Erreur : le document n'est pas valideTVAParties et adresses

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.

TermeSignificationÉlément UBL
BT-31Identifiant à la TVA du vendeurcac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (tax scheme VAT)
BT-32Identifiant d'enregistrement fiscal du vendeurcac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (a tax scheme other than VAT)
BT-63Identifiant à la TVA du représentant fiscal du vendeurcac:TaxRepresentativeParty/cac:PartyTaxScheme/cbc:CompanyID
BT-151Code 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:CompanyID ou cac:PartyIdentification/cbc:ID, où il ne compte pas comme identifiant TVA.
  • Un vendeur qui passe par un représentant fiscal envoie cac:TaxRepresentativeParty sans son cac:PartyTaxScheme.
  • Le sérialiseur supprime tout le cac:PartyTaxScheme lorsque 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

  1. 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.
  2. Écrivez-le dans cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID et donnez à ce cac:PartyTaxScheme un cac:TaxScheme/cbc:ID égal à VAT.
  3. Respectez l'ordre UBL dans cac:Party : cac:PartyTaxScheme vient après cac:PostalAddress et avant cac:PartyLegalEntity. Placé après cac:PartyLegalEntity, il a fait échouer l'étape XSD lors d'un essai, et les étapes EN 16931 et Peppol ont été sautées.
  4. Si le vendeur est représenté pour la TVA, envoyez cac:TaxRepresentativeParty avec le nom, l'adresse postale et le cac:PartyTaxScheme/cbc:CompanyID du représentant sous le schéma VAT.
  5. 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é

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 Invoice et CreditNote. Un avoir avec une cac:CreditNoteLine au 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-02 pour les lignes au taux zéro, BR-E-02 pour les lignes exonérées et BR-AE-02 pour l'autoliquidation. Un seul identifiant TVA du vendeur les satisfait toutes.
  • Le format du numéro n'est pas examiné ici. BR-CO-09 vérifie qu'un identifiant TVA commence par un préfixe pays.

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.