# BR-05 Le code devise de la facture doit être présent

Conformément à la norme européenne EN 16931-1, et donc à toutes ses spécifications d’usage (XRechnung, Peppol BIS, Factur-X), chaque facture électronique doit indiquer le code devise de la facture (BT-5 / DocumentCurrencyCode) au format ISO 4217 à trois lettres (ex. EUR, USD, GBP, CHF). Tous les montants de la facture sont libellés dans cette devise, à l’exception du montant total de TVA en devise de comptabilisation (BT-111), exprimé dans la devise de comptabilisation de la TVA (BT-6).

## Description du problème

> **ERREUR**: Règle métier de la norme EN 16931 (CEN)

> **Où BR-05 est contrôlée**
>
> Un validateur contrôle une facture électronique par étapes. D’abord, le fichier doit être un XML bien formé conforme au schéma UBL ou CII (XSD). Viennent ensuite les règles métier de l’EN 16931 : règles de base BR, calculs BR-CO, listes de codes BR-CL, décimales BR-DEC et règles par catégorie de TVA comme BR-S. Puis les règles nationales ou de réseau sélectionnées par BT-24 : BR-DE pour XRechnung, PEPPOL-EN16931 pour Peppol BIS Billing. Le rapport liste chaque règle en échec : une erreur signifie rejet, des avertissements seuls signifient toujours acceptation. BR-05 : règle de base EN 16931, étape « Règles EN 16931 ».

## Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931. Sans code devise, le destinataire ne peut ni valoriser les montants ni comptabiliser la TVA. BR-05 vérifie seulement que l’élément est présent et non vide ; un symbole comme « € » ou un code inconnu échoue sur la règle de liste de codes BR-CL-04. L’erreur survient surtout lorsqu’un export n’écrit la devise que dans les attributs currencyID des montants et omet l’élément d’en-tête.

## Solution

Dans votre logiciel ERP ou de facturation, définissez la devise de facturation dans l’en-tête de facture. En UBL 2.1, renseignez <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> directement sous <Invoice>. En CII, renseignez <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode> sous <ram:ApplicableHeaderTradeSettlement>. Vérifiez aussi que tous les attributs currencyID des montants reprennent ce code ; seul le montant total de TVA en devise de comptabilisation (BT-111) peut en différer.

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=BR-05)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=BR-05)

## Exemples valides

- L’en-tête de facture contient BT-5 = « EUR » de la liste ISO 4217
- L’en-tête de facture contient BT-5 = « USD » pour la facturation internationale

## Exemples invalides

- L’élément racine omet totalement cbc:DocumentCurrencyCode / ram:InvoiceCurrencyCode
- cbc:DocumentCurrencyCode est présent mais vide (<cbc:DocumentCurrencyCode/>) ; un symbole comme « € » déclenche plutôt BR-CL-04

## Exemples de code

### XML valide
```
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
```

### XML invalide
```
<cbc:ID>INV-2026-001</cbc:ID>
<cbc:IssueDate>2026-02-15</cbc:IssueDate>
```

## Champs concernés

- [BT-5 Code devise de la facture](/resources/xrechnung/bt-5-invoice-currency-code)

## Règles associées

- [BR-CL-04](/resources/kosit-validator-errors/br-cl-04-iso-4217-invoice-currency)
- [BR-53](/resources/kosit-validator-errors/br-53-vat-accounting-currency-total-required)

## Outils de validation

- [Validateur KoSIT officiel](https://github.com/itplr-kosit/validator): Exécutez le validateur officiel du KoSIT avec la configuration XRechnung pour contrôler les règles EN 16931 et XRechnung.
- [Convertir un PDF en XRechnung](/pdf-to-xrechnung): Repérez les erreurs de validation pendant la conversion et vérifiez chaque correction.

## Ressources associées

- [Spécification officielle](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Vue d’ensemble des règles de validation EN 16931, XRechnung et Peppol expliquées ici.
