What it means
Each ram:ApplicableTradeTax under ram:ApplicableHeaderTradeSettlement must contain exactly one ram:CategoryCode for the VAT breakdown row (BG-23). This rule counts the elements. It does not check whether the code is allowed or whether a VAT rate is required.
Why it matters
The VAT category identifies the row's VAT treatment, such as S for standard-rated VAT, Z for zero-rated VAT, E for exempt from VAT or AE for reverse charge. The profile provides one category element per row.
How to fix it
Check the intended VAT category for the affected VAT breakdown row. Add ram:CategoryCode if it is missing, or retain the correct code in one element if it is repeated. Do not add a VAT rate solely to satisfy this rule. Export and check the corrected file again.
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:CategoryCode' must occur exactly 1 times. Where this rule applies
| Rule set | Version |
|---|---|
| Factur-X 1.09 BASIC WL | 1.0.9-2 |
| 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 WL | 2.5.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-000178 still fails, and which other rules do.
Related rules
- FX-SCH-A-000179 Use an allowed Basic WL VAT category code
- FX-SCH-A-000180 Use an allowed Basic WL VAT point date code
- FX-SCH-A-000181 Use an allowed VAT exemption reason code
- FX-SCH-A-000183 Use one marker in each header discount block
- FX-SCH-A-000184 Each discount on the whole invoice needs exactly one amount
- FX-SCH-A-000185 Each header discount needs exactly one VAT details block