Zero VAT rate for VAT-exempt invoice lines

Error BR-E-05 EN 16931

In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT", the Invoiced item VAT rate (BT-152) shall be 0 (zero).

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

For an invoice line with tax category E, RateApplicablePercent is not 0. The VAT rate must be zero for an invoice line marked as VAT-exempt.

What the rule means

Category E means “exempt from VAT”. The corresponding invoice-line VAT rate must therefore be zero.

Affected fields BG-25 BT-151 BT-152
Please set the VAT rate of the VAT-exempt invoice line to zero

The invoice line is marked as VAT-exempt (E), but its VAT rate is not zero. You can adjust this in the invoice line's tax details.

What to do
  1. Check TradeLineItem.TaxCategoryCode and TradeLineItem.TaxPercent for the invoice line concerned.
  2. Set the rate for tax category E to 0.
  3. Generate the invoice again and validate it.
What it looks like
✗ Triggers the message
<ram:ApplicableTradeTax>
  <ram:CategoryCode>E</ram:CategoryCode>
  <ram:RateApplicablePercent>5</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
✓ Correct
<ram:ApplicableTradeTax>
  <ram:CategoryCode>E</ram:CategoryCode>
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
Check in FactoorSharp
  • TradeLineItem.TaxCategoryCode (BT-151)
  • TradeLineItem.TaxPercent (BT-152)
  • TradeLineItem.TaxType (BT-151-0)
  • TaxCategoryCodes (BT-151)
Technical details

For ApplicableTradeTax with CategoryCode E, the test requires RateApplicablePercent to equal exactly 0.

Where the rule applies

The rule applies to an invoice line's ApplicableTradeTax with CategoryCode E and checks its RateApplicablePercent.

Context (rule/@context)
//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ ram:ApplicableTradeTax[ram:CategoryCode = 'E']
Test expression (assert/@test)
ram:RateApplicablePercent = 0