What it means
This rule checks ram:ReasonCode inside a header-level charge (BG-21), where ram:ChargeIndicator/udt:Indicator is true, only when the reason code element has no listID attribute. Non-empty values must belong to the profile's UNTDID 7161 code list. Empty values pass. An element with any listID attribute, including an empty attribute, is outside this rule's context.
Why it matters
A recognised charge reason code describes the charge in a standard form. This check does not establish whether codes carrying a listID attribute are valid.
How to fix it
Correct ram:ReasonCode in the relevant header-level ram:SpecifiedTradeAllowanceCharge. Choose a code that describes your charge. If you use text instead, remove the code and retain ram:Reason (BT-104). Do not add listID merely to avoid this check. Generate the file again and recheck it.
Once the file is corrected, check it again for free: Validate a ZUGFeRD invoice
Or fix the invoice in a form and download the corrected file, for 1 credit: Fix a rejected e-invoice Beta
The rule as published
Value of 'ram:ReasonCode[not (@listID)]' is not allowed. Where this rule applies
| Rule set | Version |
|---|---|
| Factur-X 1.09 EN 16931 | 1.0.9-2 |
| ZUGFeRD 2.5 EN 16931 | 2.5.2 |
Check your file
Drop your e-invoice to see whether FX-SCH-A-000604 still fails, and which other rules do.
Related rules
- FX-SCH-A-000605 Use format code 102 for the due date
- FX-SCH-A-000606 Check the currency code on the VAT total
- FX-SCH-A-000607 Check the VAT accounting currency on the VAT total
- FX-SCH-A-000608 Card details need one ID element
- FX-SCH-A-000609 Use a recognised payment method code
- FX-SCH-A-000610 Use a recognised VAT accounting currency code