Exempt allowance: zero VAT rate

Error BR-E-06 EN 16931

In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) 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 this exempt allowance, RateApplicablePercent is not zero. The allowance’s VAT rate must be exactly zero.

What the rule means

Code E identifies a VAT category that is exempt from VAT. An allowance in this category therefore requires a zero VAT rate.

Affected fields BG-20 BT-95 BT-96
Please set the VAT rate of the exempt allowance to zero

The exempt allowance is recorded with a VAT rate other than zero. You can adjust the value in the invoice data.

What to do
  1. Locate the relevant allowance in SpecifiedTradeAllowanceCharge.
  2. Check the AddTradeAllowance(...) call and set the VAT rate to zero.
  3. Generate the invoice again and validate it again.
What it looks like
✗ Triggers the message
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:CategoryTradeTax>
    <ram:CategoryCode>E</ram:CategoryCode>
    <ram:RateApplicablePercent>5</ram:RateApplicablePercent>
  </ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
✓ Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:CategoryTradeTax>
    <ram:CategoryCode>E</ram:CategoryCode>
    <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
  </ram:CategoryTradeTax>
</ram:SpecifiedTradeAllowanceCharge>
Check in FactoorSharp
  • TaxCategoryCodes (BT-95)
  • FacturXInvoice.AddTradeAllowance(basisAmount, currency, actualAmount, chargePercentage, reason, taxTypeCode, taxCategoryCode, taxPercent, reasonCode) (BG-20)
  • FacturXInvoice.GetTradeAllowances() (BG-20)
  • FacturXInvoice.TradeAllowanceCharges (BG-20)
  • AbstractTradeAllowanceCharge (Document level allowance: BG-20)
Technical details

The XPath selects allowances with ChargeIndicator equal to false and CategoryCode equal to E, then checks whether RateApplicablePercent equals zero.

Where the rule applies

The rule applies to a document-level allowance in SpecifiedTradeAllowanceCharge whose CategoryCode is E, meaning exempt from VAT.

Context (rule/@context)
//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ ram:CategoryTradeTax[ram:CategoryCode = 'E']
Test expression (assert/@test)
ram:RateApplicablePercent = 0