Texte officiel de la règle
[BR-CL-03] currencyID MUST be coded using ISO code list 4217 alpha-3
Le texte normatif est en anglais ; il est cité tel quel.
Pourquoi cette erreur apparaît
Chaque montant porte un attribut currencyID qui doit être un code alphabétique ISO 4217 à trois lettres. En UBL, la règle contrôle cet attribut sur cbc:Amount, cbc:BaseAmount, cbc:PriceAmount, cbc:TaxAmount, cbc:TaxableAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, cbc:TaxInclusiveAmount, cbc:AllowanceTotalAmount, cbc:ChargeTotalAmount, cbc:PrepaidAmount, cbc:PayableRoundingAmount et cbc:PayableAmount ; en CII, sur ram:TaxTotalAmount. Elle échoue sur les codes en minuscules (eur), les symboles, les codes numériques (978) ou les codes contenant des espaces, généralement à cause d'un modèle qui recopie la devise telle qu'elle est affichée à l'utilisateur.
Comment corriger
Renseignez currencyID avec le code ISO 4217 à trois lettres en majuscules : EUR, USD, GBP, CHF, SEK, PLN. Utilisez une seule constante pour tout le document, normalement la valeur de cbc:DocumentCurrencyCode / ram:InvoiceCurrencyCode, et générez l'attribut à partir d'elle plutôt que montant par montant. En CII, seul ram:TaxTotalAmount porte un currencyID ; les autres montants CII n'en ont pas. Supprimez les espaces et n'utilisez jamais le symbole de la devise.
Exemple (valide)
<cbc:PayableAmount currencyID="EUR">238.00</cbc:PayableAmount>
Ce que le validateur vérifie
Élément vérifié (contexte):
UBL
cbc:Amount | cbc:BaseAmount | cbc:PriceAmount | cbc:TaxAmount | cbc:TaxableAmount | cbc:LineExtensionAmount | cbc:TaxExclusiveAmount | cbc:TaxInclusiveAmount | cbc:AllowanceTotalAmount | cbc:ChargeTotalAmount | cbc:PrepaidAmount | cbc:PayableRoundingAmount | cbc:PayableAmountTest (XPath):
((not(contains(normalize-space(@currencyID), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNH CNY COP COU CRC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UYW UZS VES VED VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWG ', concat(' ', normalize-space(@currencyID), ' '))))CII
ram:TaxTotalAmount[@currencyID]Test (XPath):
((not(contains(normalize-space(@currencyID), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNH CNY COP COU CRC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLE SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UYW UZS VES VED VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWG ', concat(' ', normalize-space(@currencyID), ' '))))
Corriger automatiquement
Cette erreur peut être corrigée automatiquement : déposez le fichier dans le vérificateur et cliquez sur « Corriger automatiquement ».
La même vérification par API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRègles liées
BR-CL-01Code de type de facture non conforme à UNTDID 1001BR-CL-04Code devise de la facture non conforme à ISO 4217BR-CL-05Le code de devise fiscale DOIT utiliser la liste ISO 4217 alpha-3BR-CL-06Le code de date d'exigibilité de la TVA DOIT utiliser une restriction de UNTDID 2005BR-CL-07L'identifiant de schéma de l'identifiant d'objet DOIT utiliser une restriction…BR-CL-08Le code de sujet de la note doit utiliser UNCL4451BR-CL-10Schéma d'identifiant de partie non conforme à ISO 6523 ICDBR-CL-11Tout identifiant de schéma d'identifiant d'immatriculation DOIT utiliser l'une…
Questions fréquentes
Que signifie BR-CL-03 ?
BR-CL-03 est une règle de base en 16931 : currencyID MUST be coded using ISO code list 4217 alpha-3
Ma facture sera-t-elle rejetée à cause de BR-CL-03 ?
Oui. BR-CL-03 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 BR-CL-03 ?
Toute facture EN 16931 : Factur-X / ZUGFeRD 2.x (profils EN 16931, EXTENDED, XRECHNUNG), XRechnung, Peppol BIS Billing 3.0 et les CIUS nationales. Syntaxe : UBL et CII.
Source: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Catalogue généré à partir des jeux de règles officiels le 2026-10-15.