Zero VAT rate for intra-community supplies

Error BR-IC-05 EN 16931

In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intracommunity supply" 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 K, RateApplicablePercent is not 0. The VAT rate must be zero for an invoice line marked as an intra-community supply.

What the rule means

Category K denotes an intra-community supply. The corresponding invoice-line VAT rate must be zero.

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

The invoice line is marked as an intra-community supply (K), but its VAT rate is not zero. You can adjust the rate 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 K to 0.
  3. Generate the invoice again and validate it.
What it looks like
✗ Triggers the message
<ram:ApplicableTradeTax>
  <ram:CategoryCode>K</ram:CategoryCode>
  <ram:RateApplicablePercent>5</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
✓ Correct
<ram:ApplicableTradeTax>
  <ram:CategoryCode>K</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 K, the test requires RateApplicablePercent to equal exactly 0.

Where the rule applies

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

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