What it means
Each ram:AppliedTradeTax inside a ram:SpecifiedLogisticsServiceCharge must contain exactly one direct ram:RateApplicablePercent child. The test counts rate elements; it does not check their values or limit the charge to one tax entry.
Why it matters
Each tax entry has one percentage-rate field in this structure. A missing or repeated rate element breaks that requirement, even if repeated elements contain the same percentage.
How to fix it
Check each tax entry on the affected logistics charge. Add its missing ram:RateApplicablePercent or remove duplicates, keeping the rate that applies to that entry. Do not remove separate tax entries just to leave one rate for the whole charge. Export 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
Element 'ram:RateApplicablePercent' must occur exactly 1 times. 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-000329 still fails, and which other rules do.
Related rules
- FX-SCH-A-000330 At most one partial payment amount per set of terms
- FX-SCH-A-000331 At most one payee per set of payment terms
- FX-SCH-A-000332 Use an allowed source currency code
- FX-SCH-A-000333 Use an allowed target currency code
- FX-SCH-A-000334 Use an allowed line status code
- FX-SCH-A-000335 Use an allowed line status reason code