Invoice currency code

Error BR-05 EN 16931

An Invoice shall have an Invoice currency code (BT-5).

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

The invoice currency code in ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode is missing or empty.

What the rule means

The invoice currency code states the currency in which the invoice amounts are expressed. It is needed to interpret those amounts.

Affected fields BT-5
Please add the invoice currency code

Your invoice is missing the information that states the currency of its amounts. Add the invoice currency code.

What to do
  1. Set the invoice currency through Currency.
  2. Generate the invoice again and validate it once more.
What it looks like
✗ Triggers the message
<ram:ApplicableHeaderTradeSettlement>
  <ram:InvoiceCurrencyCode/>
</ram:ApplicableHeaderTradeSettlement>
✓ Correct
<ram:ApplicableHeaderTradeSettlement>
  <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
</ram:ApplicableHeaderTradeSettlement>
Check in FactoorSharp
  • FacturXInvoice.Currency (Invoice currency: BT-5)
  • FacturXInvoice.SetTaxCurrencyExchange(taxTotalInAccountingCurrency, accountingCurrency, conversionRate, conversionRateTimestamp) (conversionRate: BT-5)
Technical details

The test checks whether ram:InvoiceCurrencyCode within ram:ApplicableHeaderTradeSettlement is not equal to the empty string.

Where the rule applies

The rule applies to ram:InvoiceCurrencyCode within the invoice settlement information ram:ApplicableHeaderTradeSettlement.

Context (rule/@context)
/rsm:CrossIndustryInvoice
Test expression (assert/@test)
(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!='')