Aller au contenu

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

PEPPOL-EN16931-R055 : Donner au total de TVA en devise de comptabilisation le même signe que le total de TVA de la facture

Les totaux de TVA dans la devise de la facture et dans la devise de comptabilisation de la TVA ne doivent pas être de part et d'autre de zéro. Zéro va avec tout signe.

Peppol BIS BillingErreur : le document n'est pas valideTVATotaux

Sur cette page

La réponse courte

PEPPOL-EN16931-R055 échoue lorsqu'un document avec cbc:TaxCurrencyCode indique son total de TVA dans la devise de la facture et dans la devise de comptabilisation avec des signes opposés. Tous deux sont des éléments cbc:TaxAmount placés directement sous un cac:TaxTotal, distingués par leur currencyID. Convertissez à nouveau le total de TVA de la facture en conservant son signe : dans l'exemple enregistré, 5.00 GBP de TVA étaient indiqués comme -5.80 EUR.

La règle échoue aussi lorsque l'un des deux montants est introuvable, c'est pourquoi elle accompagne BR-53 lorsque le total en devise de comptabilisation manque.

Ce que la règle vérifie

Sans cbc:TaxCurrencyCode, la règle passe immédiatement. Avec lui, elle repère le montant de total de taxe dont le currencyID est la devise de comptabilisation et celui dont le currencyID est la devise de la facture, en retirant les espaces autour des deux codes mais sans changer leur casse.

Elle passe lorsque les deux montants sont tous deux inférieurs ou égaux à zéro, ou tous deux supérieurs ou égaux à zéro. Zéro d'un côté est donc compatible avec n'importe quel signe de l'autre : lors d'un essai, 0.00 EUR face à 5.00 GBP a passé toutes les étapes.

Seuls les signes sont comparés. Le montant converti lui-même, et le taux de change qui le sous-tend, ne sont vérifiés ni par cette règle ni par aucune autre.

Un montant introuvable fait échouer la règle. Si aucun total de taxe ne porte la devise de comptabilisation, parce que le montant a été omis ou écrit avec un autre currencyID, il n'y a rien à comparer et le constat apparaît.

Un document négatif passe lorsque les deux totaux sont négatifs. Lors d'un essai, une facture avec -5.00 GBP et -5.80 EUR de TVA était valide, et la même facture avec 5.80 EUR a signalé cette règle.

TermeSignificationÉlément UBL
BT-110Montant total de la TVA de la facturecac:TaxTotal/cbc:TaxAmount (currencyID equal to cbc:DocumentCurrencyCode)
BT-111Montant total de la TVA de la facture dans la devise de comptabilisationcac:TaxTotal/cbc:TaxAmount (currencyID equal to cbc:TaxCurrencyCode)
BT-6Code de devise de comptabilisation de la TVAcbc:TaxCurrencyCode

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 montant converti est repris d'une écriture comptable, où la TVA collectée est tenue comme un crédit négatif, alors que le total de TVA de la facture est écrit comme un chiffre positif.
  • Un avoir ou une correction est produit en inversant les signes, et l'inversion est appliquée aux montants dans la devise de la facture mais pas au total de TVA converti, ou l'inverse.
  • Le chiffre converti est calculé à partir d'une valeur absolue : une facture négative se retrouve donc avec un total positif en devise de comptabilisation.
  • Le chiffre converti manque ou porte un mauvais currencyID, si bien que la règle ne trouve qu'un seul des deux montants.

Comment corriger le document

  1. Prenez le total de TVA dans la devise de la facture dans le cac:TaxTotal qui porte la ventilation.
  2. Convertissez ce chiffre, signe compris, dans la devise de comptabilisation au taux qu'exige votre comptabilité de TVA, et arrondissez à deux décimales.
  3. Écrivez le résultat dans le cbc:TaxAmount du total de taxe sans ventilation, avec un currencyID égal à cbc:TaxCurrencyCode.
  4. Si c'est le total dans la devise de la facture dont le signe est faux, corrigez-le plutôt à la source, et recalculez la ventilation et les totaux qui en dépendent.

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 : 5.00 de TVA en GBP, mais -5.80 dans la devise de comptabilisation EUR

<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode>
<!-- buyer reference and parties omitted from this fragment -->
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
  <!-- VAT breakdown omitted from this fragment -->
</cac:TaxTotal>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">-5.80</cbc:TaxAmount>
</cac:TaxTotal>

Fragment de la facture corrigée : les deux totaux de TVA sont positifs

<cbc:DocumentCurrencyCode>GBP</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode>
<!-- buyer reference and parties omitted from this fragment -->
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
  <!-- VAT breakdown omitted from this fragment -->
</cac:TaxTotal>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">5.80</cbc:TaxAmount>
</cac:TaxTotal>

Seul le montant en EUR diffère : -5.80 dans la facture en échec, 5.80 dans la facture corrigée. Le document en échec signale cette règle et rien d'autre, car aucune autre règle EN 16931 ou Peppol n'examine la valeur du total en devise de comptabilisation. Le chiffre de 5.80 est illustratif, et rien ne le relie aux 5.00 en GBP.

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. Lors d'un essai, un avoir avec -5.80 EUR face à 5.00 GBP a signalé cette règle.
  • Signalée par l'étape Peppol ; l'étape EN 16931 passe sur l'exemple enregistré.
  • Un total égaré en devise de comptabilisation dans un document sans cbc:TaxCurrencyCode ne relève pas de cette règle. C'est PEPPOL-EN16931-R054 qui le signale.

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