# 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)

## 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.
