Skip to content

Error

FX-SCH-A-000523: Use a valid reason code for an invoice charge

In short

Error: fails the selected checks.

FX-SCH-A-000523 means a reason code (BT-105) for a charge on the whole invoice has no listID attribute and is not permitted. Use an allowed UNTDID 7161 code that describes the charge, such as FC for freight, or remove the code and enter a written reason (BT-104) in ram:Reason. Export and recheck your file.

On this page

What it means

In the Basic profiles of Factur-X and ZUGFeRD, this rule checks a non-empty ram:ReasonCode without a listID attribute on a charge on the whole invoice (BG-21). The charge is identified by ram:ChargeIndicator/udt:Indicator equal to true. The code is checked against the permitted UNTDID 7161 list. Reason codes with a listID attribute are outside this rule's scope; that does not establish that they are valid. This rule does not check whether a reason has been supplied.

Why it matters

A standard reason code identifies the kind of charge without requiring software to interpret free text. A written reason does not make an invalid accompanying code valid.

How to fix it

Check the charge's reason code (BT-105) and replace it with a permitted code that matches the actual charge. Alternatively, remove ram:ReasonCode and write the reason (BT-104) in ram:Reason. Do not add a listID attribute merely to avoid this check. Export and recheck.

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 BASIC 1.0.9-2
ZUGFeRD 2.5 BASIC 2.5.2
Rule text from phive-rules 4.6.4.

Check your file

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

Updated 6 November 2026