Compte
Français

PEPPOL-EN16931-R051: currencyID différent de la devise de facture

Règle Peppol BIS Billing 3.0 · Erreur · UBL

NormePeppol BIS Billing 3.0 (OpenPeppol)GravitéErreur: la facture est rejetéeSyntaxeUBLTermes métier
  • BT-5 Invoice currency code
  • BT-111 Invoice total VAT amount in accounting currency
S'applique àFactures et avoirs transmis via le réseau Peppol (UBL) et, XRechnung reprenant ces règles, toute XRechnung.

Texte officiel de la règle

[PEPPOL-EN16931-R051] All currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).

Le texte normatif est en anglais ; il est cité tel quel.

Pourquoi cette erreur apparaît

Dans une facture Peppol UBL, tous les montants doivent être exprimés dans la devise de facture (BT-5) ; la seule exception est le total de TVA dans la devise de comptabilisation (BT-111). La règle vérifie que l'attribut currencyID de chaque cbc:Amount, cbc:BaseAmount, cbc:PriceAmount, cbc:TaxAmount, cbc:TaxableAmount, cbc:LineExtensionAmount et de tous les montants de cac:LegalMonetaryTotal est égal à cbc:DocumentCurrencyCode. Elle se déclenche lorsqu'un modèle code en dur currencyID="EUR" alors que la devise du document est différente, ou lorsque les prix sont exportés dans la devise du fournisseur sur une facture en devise étrangère.

Comment corriger

Générez chaque currencyID à partir de la valeur de cbc:DocumentCurrencyCode au lieu de le coder en dur. Pour une facture en devise étrangère, convertissez tous les prix et montants dans cette devise avant l'export. Si BT-6 est utilisé, conservez exactement un cac:TaxTotal sans sous-totaux dans la devise de comptabilisation ; tous les autres montants, y compris les prix de ligne, restent dans la devise du document. Cette règle s'applique uniquement à UBL.

Exemple (valide)

<cbc:DocumentCurrencyCode>SEK</cbc:DocumentCurrencyCode>
...
<cbc:LineExtensionAmount currencyID="SEK">1000.00</cbc:LineExtensionAmount>
<cbc:PriceAmount currencyID="SEK">500.00</cbc:PriceAmount>

Ce que le validateur vérifie

Élément vérifié (contexte):

UBL

cbc:Amount | cbc:BaseAmount | cbc:PriceAmount | cac:TaxTotal[cac:TaxSubtotal]/cbc:TaxAmount | cac:TaxSubtotal/cbc:TaxAmount | cbc:TaxableAmount | cbc:LineExtensionAmount | cbc:TaxExclusiveAmount | cbc:TaxInclusiveAmount | cbc:AllowanceTotalAmount | cbc:ChargeTotalAmount | cbc:PrepaidAmount | cbc:PayableRoundingAmount | cbc:PayableAmount

Test (XPath):

@currencyID = $documentCurrencyCode

Vérifier votre facture

Déposez votre XML ou PDF dans le validateur : chaque règle en échec renvoie vers sa page ici. Gratuit, sans compte, le fichier n'est pas conservé.

Vérifier votre facture →

La même vérification par API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Règles liées

Questions fréquentes

Que signifie PEPPOL-EN16931-R051 ?

PEPPOL-EN16931-R051 est une règle peppol bis billing 3.0 : All currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).

Ma facture sera-t-elle rejetée à cause de PEPPOL-EN16931-R051 ?

Oui. PEPPOL-EN16931-R051 est classée « bloquante » ; les validateurs (plateformes agréées, points d'accès Peppol, KoSIT, KSeF) rejettent la facture tant qu'elle n'est pas corrigée.

À quels formats s'applique PEPPOL-EN16931-R051 ?

Factures et avoirs transmis via le réseau Peppol (UBL) et, XRechnung reprenant ces règles, toute XRechnung. Syntaxe : UBL.

Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue généré à partir des jeux de règles officiels le 2026-10-15.