Export outside the EU: zero VAT rate on the allowance

Error BR-G-06 EN 16931

In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" 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 category G allowance, RateApplicablePercent is not zero. The VAT rate must be exactly zero.

What the rule means

Category G identifies an export outside the EU. The rule requires a zero VAT rate for an allowance in this category.

Affected fields BG-20 BT-95 BT-96
Please set the VAT rate of the allowance for exports outside the EU to zero

The allowance for export outside the EU is recorded with a non-zero VAT rate. You can adjust the value in the invoice data.

What to do
  1. Locate the category G 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>G</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>G</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 G, then checks whether RateApplicablePercent equals zero.

Where the rule applies

The rule applies to a document-level allowance in SpecifiedTradeAllowanceCharge whose CategoryCode is G for export outside the EU.

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