What it means
Line discounts (BG-27) and charges (BG-28) use ram:SpecifiedTradeAllowanceCharge. This rule selects line blocks containing ram:ChargeIndicator/udt:Indicator with the value false, then requires one ram:ChargeIndicator in each selected block. A block with no indicator is outside this rule's context.
Why it matters
The indicator distinguishes a discount from a charge. Repeating it creates an invalid structure and can introduce conflicting classifications within the same block.
How to fix it
In the affected ram:SpecifiedTradeAllowanceCharge under ram:SpecifiedLineTradeSettlement, remove the repeated ram:ChargeIndicator elements. Leave one containing udt:Indicator set to false. Do not remove separate, genuine discounts merely because there is more than one discount on the line. Correct the XML output and check the new 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
Element 'ram:ChargeIndicator' must occur exactly 1 times. Where this rule applies
| Rule set | Version |
|---|---|
| Factur-X 1.09 BASIC | 1.0.9-2 |
| Factur-X 1.09 EN 16931 | 1.0.9-2 |
| Factur-X 1.09 EXTENDED | 1.0.9-2 |
| ZUGFeRD 2.5 BASIC | 2.5.2 |
| ZUGFeRD 2.5 EN 16931 | 2.5.2 |
| ZUGFeRD 2.5 EXTENDED | 2.5.2 |
Check your file
Drop your e-invoice to see whether FX-SCH-A-000543 still fails, and which other rules do.
Related rules
- FX-SCH-A-000544 Give each line discount one amount
- FX-SCH-A-000545 Use a permitted line discount reason code
- FX-SCH-A-000546 Keep one indicator in each line charge
- FX-SCH-A-000547 Give each line charge one amount
- FX-SCH-A-000548 Use a permitted line charge reason code
- FX-SCH-A-000549 Give each line one amount excluding VAT