Skip to content

Error

FX-SCH-A-000978: Charge reason code without listID

In short

Error: fails the selected checks.

FX-SCH-A-000978 means a non-empty reason code (BT-105) for a whole-invoice charge is not permitted by the standard charge reason list. This rule applies only when ram:ReasonCode has no listID attribute. Replace the value with a permitted code matching your reason, then export and recheck your file.

On this page

What it means

For a whole-invoice charge (BG-21) with ram:ChargeIndicator/udt:Indicator set to true, this rule checks non-empty ram:ReasonCode values against the profile's standard charge reason list, UNTDID 7161. It applies only when listID is absent, not when that attribute is present but empty. This test allows an empty code.

Why it matters

The reason code identifies what the charge is for. When no listID is supplied, this check uses the standard charge reason list.

How to fix it

Correct ram:ReasonCode without listID in the affected header-level ram:SpecifiedTradeAllowanceCharge whose ram:ChargeIndicator/udt:Indicator is true. Examples include FC for freight service and ABL for additional packaging. Put a written explanation in ram:Reason (BT-104). Do not add listID simply to bypass this check. 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[not (@listID)]' 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
Rule text from phive-rules 4.6.4.

Check your file

Drop your e-invoice to see whether FX-SCH-A-000978 still fails, and which other rules do.

Updated 6 November 2026