Invalid currency identifier for the invoice-line tax amount

Error FX-SCH-A-001142 Factur-X

Value of '@currencyID' is not allowed.

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

The value of currencyID on TaxTotalAmount is not present in the code list used for this check. This rule checks the amount whose currency corresponds to InvoiceCurrencyCode.

What the rule means

The currency identifier of the invoice-line tax amount must be a value permitted by this rule. This ensures that the amount's currency is stated unambiguously and in accordance with the rule.

Please provide an allowed currency identifier for the invoice-line tax amount

The currency identifier on TaxTotalAmount does not match a value allowed by this rule. You can update the value in the invoice.

What to do
  1. Locate the invoice-line TaxTotalAmount whose currencyID matches the invoice currency.
  2. Check that the value of currencyID is included in the code list used for this check.
  3. Regenerate the invoice and validate it again.
Technical details

The test checks whether the evaluated code value is empty or occurs in the enumeration with identifier 31 in FACTUR-X_EXTENDED_codedb.xml.

Where the rule applies

The rule applies to TaxTotalAmount within an invoice line's SpecifiedLineTradeSettlement when its currencyID matches the invoice currency.

Context (rule/@context)
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]
Test expression (assert/@test)
string-length($codeValue31)=0 or document('FACTUR-X_EXTENDED_codedb.xml')/codedb/cl[@id=31]/enumeration[@value=$codeValue31]