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.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-110 | Montant total de la TVA de la facture | cac:TaxTotal/cbc:TaxAmount (currencyID equal to cbc:DocumentCurrencyCode) |
| BT-111 | Montant total de la TVA de la facture dans la devise de comptabilisation | cac:TaxTotal/cbc:TaxAmount (currencyID equal to cbc:TaxCurrencyCode) |
| BT-6 | Code de devise de comptabilisation de la TVA | cbc: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
- Prenez le total de TVA dans la devise de la facture dans le
cac:TaxTotalqui porte la ventilation. - Convertissez ce chiffre, signe compris, dans la devise de comptabilisation au taux qu'exige votre comptabilité de TVA, et arrondissez à deux décimales.
- Écrivez le résultat dans le
cbc:TaxAmountdu total de taxe sans ventilation, avec uncurrencyIDégal àcbc:TaxCurrencyCode. - 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é
- La facture en erreur signale PEPPOL-EN16931-R055. 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 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:TaxCurrencyCodene relève pas de cette règle. C'estPEPPOL-EN16931-R054qui le signale.
Règles liées
- BR-53 exige le total de TVA en devise de comptabilisation dont cette règle vérifie le signe
- PEPPOL-EN16931-R054 exige exactement un total de taxe sans ventilation pour la devise de comptabilisation
- BR-CO-14 vérifie le total de TVA dans la devise de la facture par rapport à sa ventilation
- PEPPOL-EN16931-R005 exige que la devise de comptabilisation diffère de la devise de la facture
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : How Peppol invoice validation actually works
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.

