# BR-CL-03 L’attribut de devise doit contenir un code ISO 4217 (alpha-3)

L’attribut currencyID des éléments de montant doit contenir un code à trois lettres de la norme ISO 4217 (alpha-3).

## Description du problème

> **ERREUR**: Règle de liste de codes EN 16931 (BR-CL)

## Contexte et importance

En UBL, chaque élément de montant (par exemple cbc:LineExtensionAmount, cbc:TaxAmount ou cbc:PayableAmount) porte un attribut currencyID ; en CII, seul ram:TaxTotalAmount en porte un. La règle échoue lorsque l’export écrit le symbole « € », le nom « Euro », le code ISO numérique 978 ou « eur » en minuscules, car le contrôle distingue majuscules et minuscules. Exemple : currencyID="EUR" est valide, currencyID="€" ne l’est pas.

## Solution

Indiquez dans chaque attribut currencyID un code ISO 4217 alpha-3 valide en majuscules, tel que EUR, USD ou CHF. Générez l’attribut à partir du code de devise de la facture (BT-5), et non d’un libellé d’affichage.

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

## Exemples valides

- currencyID="EUR" sur un montant de ligne
- currencyID="USD" sur un montant de TVA

## Exemples invalides

- currencyID="€" — symbole au lieu d’un code
- currencyID="978" — code ISO numérique au lieu du code alphabétique
- currencyID="eur" — minuscules

## Exemples de code

### XML valide
```
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
```

### XML invalide
```
<cbc:LineExtensionAmount currencyID="€">100.00</cbc:LineExtensionAmount>
```

## Champs concernés

- [Attribut currencyID des éléments de montant](/resources/xrechnung)

## Règles associées

- [BR-CL-04](/resources/kosit-validator-errors/br-cl-04-iso-4217-invoice-currency)
- [BR-CL-05](/resources/kosit-validator-errors/br-cl-05-iso-4217-tax-currency)

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