Aller au contenu

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

PEPPOL-EN16931-R005 : Supprimer une devise de comptabilisation de la TVA qui répète la devise de la facture

cbc:TaxCurrencyCode ne sert qu'à une TVA comptabilisée dans une devise autre que celle de la facture. Omettez-le lorsque les deux seraient identiques.

Peppol BIS BillingErreur : le document n'est pas valideTVAChamps de base

Sur cette page

La réponse courte

PEPPOL-EN16931-R005 échoue lorsque cbc:TaxCurrencyCode indique la même devise que cbc:DocumentCurrencyCode, et le constat pointe vers cbc:TaxCurrencyCode. Si la TVA est comptabilisée dans la devise de la facture, supprimez cet élément ; le total de TVA dans la devise de la facture le couvre déjà.

N'envoyez cbc:TaxCurrencyCode que lorsque le vendeur doit comptabiliser la TVA dans une autre devise, et ajoutez alors le total de TVA dans cette devise sous la forme d'un total de taxe distinct.

Ce que la règle vérifie

La règle s'exécute sur cbc:TaxCurrencyCode directement sous la racine, s'il existe, et compare son texte à celui de cbc:DocumentCurrencyCode. Les espaces en début et en fin sont d'abord retirés, si bien qu'un GBP entouré d'espaces face à GBP échoue quand même ; lors d'un essai, ce code entouré d'espaces a été signalé ici.

La casse n'est pas normalisée. Lors d'un essai, gbp sur une facture en GBP n'a pas signalé cette règle. Il a signalé à la place BR-CL-05, car gbp n'est pas un code de devise valide, ainsi que BR-53, PEPPOL-EN16931-R054 et PEPPOL-EN16931-R055, qui n'ont trouvé aucun total dans la devise de comptabilisation.

Lorsque cbc:TaxCurrencyCode est absent, la règle n'a rien à tester. Elle ne juge jamais si la devise de comptabilisation est la bonne pour le vendeur, seulement qu'elle diffère de la devise de la facture.

TermeSignificationÉlément UBL
BT-6Code de devise de comptabilisation de la TVAcbc:TaxCurrencyCode
BT-5Code de devise de la facturecbc:DocumentCurrencyCode

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 :

  • L'export renseigne cbc:TaxCurrencyCode à partir de la devise de base de l'entreprise sur chaque document, y compris ceux émis dans cette même devise.
  • Le mapping copie la devise de la facture dans cbc:TaxCurrencyCode parce que les deux champs sont libellés comme une devise dans le modèle source.
  • Un modèle conçu pour les factures en devise étrangère, qui a besoin de l'élément, est réutilisé pour les factures nationales.

Comment corriger le document

  1. Comparez la devise de la facture avec la devise dans laquelle le vendeur comptabilise la TVA.
  2. Si elles sont identiques, supprimez cbc:TaxCurrencyCode, ainsi que tout cac:TaxTotal supplémentaire ajouté uniquement pour porter la TVA dans cette devise. Sans le code, un total de taxe sans ventilation est lui-même une erreur au titre de PEPPOL-EN16931-R054.
  3. Si elles diffèrent, le code était faux plutôt qu'inutile : écrivez la vraie devise de comptabilisation et ajoutez un cac:TaxTotal ne contenant que cbc:TaxAmount dans cette devise, comme l'exige BR-53.
  4. Faites décider l'export, à partir des deux paramètres de devise, s'il doit écrire l'élément, au lieu de l'écrire sur chaque document.

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 facture en GBP déclare GBP comme devise de comptabilisation de la TVA

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>GBP</cbc:TaxCurrencyCode>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>

Fragment de la facture corrigée : la devise de comptabilisation de la TVA est omise

<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>BUYER-REF-001</cbc:BuyerReference>

La facture en échec a <cbc:TaxCurrencyCode>GBP</cbc:TaxCurrencyCode> après sa devise de document GBP ; la facture corrigée n'a pas cet élément et est identique par ailleurs. Le document en échec signale aussi PEPPOL-EN16931-R054, car une devise de comptabilisation déclarée exige exactement un total de taxe sans ventilation, et cette facture n'en a aucun. Supprimer le code lève les deux. L'étape EN 16931 réussit : BR-53 trouve le total de taxe en GBP existant, dont la devise correspond au code déclaré.

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 à UBL Invoice et CreditNote. Lors d'un essai, un avoir avec un cbc:TaxCurrencyCode GBP sur un document en GBP a signalé cette règle et PEPPOL-EN16931-R054.
  • Signalée uniquement par l'étape Peppol ; l'étape EN 16931 accepte l'exemple enregistré.
  • Ajouter un second total de taxe dans la devise de la facture ne permet pas de la contourner. Lors d'un essai, cela a levé PEPPOL-EN16931-R054, mais laissé cette règle et ajouté BR-CO-15, qui attend exactement un total de TVA dans la devise de la facture.
  • La validité du code cbc:DocumentCurrencyCode lui-même est contrôlée par BR-CL-04.

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 PEPPOL-EN16931-R005 (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.