Official rule text
[PEPPOL-EN16931-CL007] Currency code must be according to ISO 4217:2005
Why this error occurs
The value must come from a fixed code list and the value in your file is not on it. Common causes: a free-text value instead of a code ("Invoice" instead of 380), a code from an older list version, lower-case codes, or a code valid in another standard but not in this one.
How to fix it
Replace the value with a code from the list named in the rule text (UNTDID 1001 for document types, UNTDID 5305 for VAT categories, ISO 4217 for currencies, ISO 3166-1 for countries, UN/ECE Recommendation 20/21 for units, EAS for electronic addresses, ISO 6523 ICD for scheme identifiers). Codes are case-sensitive.
What the validator checks
Checked element (context):
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):
some $code in $ISO4217
satisfies @currencyID = $codeCII
ram:TaxTotalAmount[@currencyID]Test (XPath):
some $code in $ISO4217
satisfies @currencyID = $code
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
PEPPOL-EN16931-CL001Mime code must be according to subset of IANA code listPEPPOL-EN16931-CL002Reason code MUST be according to subset of UNCL 5189 D.16BPEPPOL-EN16931-CL003Reason code MUST be according to UNCL 7161 D.16BPEPPOL-EN16931-CL006Invoice period description code must be according to UNCL 2005 D.16BPEPPOL-EN16931-CL008Electronic address identifier scheme must be from the codelist "Electronic Address…
Frequently asked questions
What does PEPPOL-EN16931-CL007 mean?
PEPPOL-EN16931-CL007 is a peppol bis billing 3.0 rule: Currency code must be according to ISO 4217:2005
Will my invoice be rejected because of PEPPOL-EN16931-CL007?
Yes. PEPPOL-EN16931-CL007 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.
Which formats does PEPPOL-EN16931-CL007 apply to?
Invoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well. Syntax: UBL and CII.
Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue generated from the official schematron on 2026-10-14.