Aller au contenu

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

BR-S-07 : Indiquer un taux de TVA supérieur à zéro sur des frais au niveau du document au taux normal

Des frais au niveau du document dans la catégorie de TVA S exigent un taux positif dans cbc:Percent. Omettre le taux échoue, tout comme un taux de 0.

EN 16931Erreur : le document n'est pas valideTVARemises et frais

Sur cette page

La réponse courte

BR-S-07 échoue sur chaque ensemble de frais dont la cac:TaxCategory a un cbc:ID égal à S sous le schéma VAT mais aucun cbc:Percent positif. Écrivez le taux normal auquel les frais sont imposés ; les frais de transport de l'exemple enregistré avaient entièrement perdu leur taux, et la facture corrigée indique 20.

Sans taux, les frais ne peuvent être rattachés à aucune ventilation au taux normal, si bien que la base imposable à 20 ne tombe plus juste non plus.

Ce que la règle vérifie

La règle parcourt chaque cac:TaxCategory égale à S sous le schéma VAT dans un cac:AllowanceCharge dont le cbc:ChargeIndicator vaut true, y compris dans une ligne de facture : lors d'un essai, des frais de ligne avec leur propre catégorie S à 0 ont signalé cette règle sur cac:InvoiceLine[1]/cac:AllowanceCharge[1]/cac:TaxCategory[1], avec l'avertissement UBL-CR-558.

Un cbc:Percent absent n'est pas supérieur à zéro et échoue donc, comme dans l'exemple enregistré. Les frais de transport au taux 0 ont échoué de la même façon lors d'un essai, là encore avec BR-S-08.

Un cbc:Percent vide n'arrive jamais jusque-là. Lors d'un essai, <cbc:Percent></cbc:Percent> sur les frais de transport a été rejeté par l'étape XSD, et les étapes EN 16931 et Peppol ont été sautées.

La comparaison se fait seulement avec zéro. Un taux de frais écrit sous forme de fraction, 0.2, a passé cette règle lors d'un essai, et BR-S-08 a signalé à la place la ventilation à 20, car les frais n'étaient plus à ce taux.

TermeSignificationÉlément UBL
BT-102Code de catégorie de TVA des charges ou frais au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID
BT-103Taux de TVA des charges ou frais au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:Percent

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 module d'expédition ou de transporteur qui ajoute le transport enregistre une catégorie de taxe mais aucun taux, et l'export n'écrit que la catégorie.
  • Les taux ne sont recherchés que pour les articles, et des frais au niveau du document n'ont pas de fiche article où en trouver un.
  • Les frais sont exportés avec cbc:Percent à 0 parce que la redevance est considérée comme hors TVA, alors que la catégorie reste S.
  • Un champ de taux vide dans la source est supprimé par le sérialiseur au lieu d'être signalé, si bien que la lacune atteint le document.

Comment corriger le document

  1. Retrouvez les frais à partir de l'emplacement du constat, cac:AllowanceCharge[1] dans l'exemple enregistré. L'index compte chaque cac:AllowanceCharge sous la racine, remises et frais ensemble.
  2. Établissez le taux de TVA des frais à partir de leur code de taxe. Les frais de transport au taux normal de l'exemple enregistré sont imposés à 20.
  3. Écrivez le taux dans cbc:Percent, juste après cbc:ID dans la cac:TaxCategory des frais et avant cac:TaxScheme.
  4. Si les frais ne sont pas réellement au taux normal, donnez-leur la catégorie applicable, avec le taux qu'exige cette catégorie, et déplacez-les vers cette ventilation.
  5. Vérifiez que la ventilation au taux normal pour ce taux inclut les frais dans sa base imposable, ce que contrôle BR-S-08.

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 : les frais de transport indiquent S mais aucun taux

<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>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">32.50</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">6.50</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <!-- tax scheme omitted from this fragment -->
  </cac:TaxCategory>
</cac:TaxSubtotal>

Fragment de la facture corrigée : les frais de transport sont au taux normal de 20

<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>

La facture en échec n'a pas de cbc:Percent dans la cac:TaxCategory des frais de transport ; la facture corrigée y a 20, et rien d'autre ne diffère. BR-S-08 est signalé également : des frais sans taux ne comptent pas à 20, si bien que le contenu au taux normal à ce taux se réduit à la ligne de 25.00, face à une base imposable de 32.50. Rétablir le taux lève les deux constats.

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 tiré de l'exemple enregistré a signalé BR-S-07 et BR-S-08 lors d'un essai.
  • L'étape EN 16931 la signale comme fatale, sur la cac:TaxCategory des frais, pour chaque ensemble de frais fautif.
  • Des frais sans aucune cac:TaxCategory sont interceptés par BR-37 à la place. Les frais au taux zéro exigent un taux d'exactement 0 selon BR-Z-07.
  • Les remises sont couvertes de la même manière par BR-S-06.

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-07 (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.