What it means
A discount on the whole invoice (BG-20) can have a written reason (BT-97), a reason code (BT-98), or both. In the Basic profiles of Factur-X and ZUGFeRD, this rule checks a non-empty ram:ReasonCode against the profile's permitted UNTDID 5189 codes. It applies where ram:ChargeIndicator/udt:Indicator equals false. It does not check whether a reason has been supplied.
Why it matters
A standard reason code identifies the kind of discount without requiring software to interpret free text. A written reason does not make an invalid accompanying code valid.
How to fix it
Check the reason code for the affected discount. Choose a permitted code that matches the actual reason, rather than entering free text in the code field. Alternatively, remove ram:ReasonCode and put the written explanation in ram:Reason. Export and recheck your file.
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' is not allowed. Where this rule applies
| Rule set | Version |
|---|---|
| Factur-X 1.09 BASIC | 1.0.9-2 |
| ZUGFeRD 2.5 BASIC | 2.5.2 |
Check your file
Drop your e-invoice to see whether FX-SCH-A-000520 still fails, and which other rules do.
Related rules
- FX-SCH-A-000521 Use a valid VAT category code for an invoice charge
- FX-SCH-A-000522 Use an allowed tax type code for an invoice charge
- FX-SCH-A-000523 Use a valid reason code for an invoice charge
- FX-SCH-A-000524 Use an allowed due date format code
- FX-SCH-A-000525 Use a valid currency code on the invoice VAT total
- FX-SCH-A-000526 Use a valid currency code on the accounting VAT total