What it means
This rule checks ram:ReasonCode inside ram:AppliedTradeAllowanceCharge under ram:GrossPriceProductTradePrice, but only where ram:ChargeIndicator/udt:Indicator has the text false. A non-empty reason code must belong to the profile's permitted UNTDID 5189 discount reason codes. An empty value passes this check.
Why it matters
The code identifies why you have applied the price discount. It must use the profile's permitted discount reasons, not a charge reason or an arbitrary value.
How to fix it
Check the reason assigned to the discount on the affected line's unit price before discounts. In the XML, correct ram:ReasonCode inside the discount's ram:AppliedTradeAllowanceCharge under ram:GrossPriceProductTradePrice. Choose the permitted code that matches the actual reason, then export again and recheck the 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 EXTENDED | 1.0.9-2 |
| ZUGFeRD 2.5 EXTENDED | 2.5.2 |
Check your file
Drop your e-invoice to see whether FX-SCH-A-001033 still fails, and which other rules do.
Related rules
- FX-SCH-A-001034 The unit price charge has duplicate charge indicators
- FX-SCH-A-001035 The unit price charge needs exactly one amount
- FX-SCH-A-001036 The unit price charge has a reason code that is not allowed
- FX-SCH-A-001037 The unit price basis quantity has a unit code that is not allowed
- FX-SCH-A-001038 The seller of a line can have at most one role code
- FX-SCH-A-001039 The seller of a line can have at most one description