Set the reverse-charge allowance VAT rate to zero

Error BR-AE-06 EN 16931

In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" 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

The VAT rate in ram:RateApplicablePercent for the reverse-charge allowance is not equal to 0. For this category, the stated rate must be zero.

What the rule means

VAT category AE represents reverse charge; the corresponding VAT rate for the allowance must be zero.

Affected fields BG-20 BT-95 BT-96
Please set the VAT rate for the reverse-charge allowance to zero.

A VAT rate other than zero is entered for an allowance with category AE. Adjust the rate for this allowance.

What to do
  1. Find the allowance with category AE.
  2. Set its VAT rate to 0 using AddTradeAllowance(...).
  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>AE</ram:CategoryCode>
  </ram:CategoryTradeTax>
  <ram:RateApplicablePercent>20</ram:RateApplicablePercent>
</ram:SpecifiedTradeAllowanceCharge>
✓ Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator>
    <udt:Indicator>false</udt:Indicator>
  </ram:ChargeIndicator>
  <ram:CategoryTradeTax>
    <ram:CategoryCode>AE</ram:CategoryCode>
  </ram:CategoryTradeTax>
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</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

In the context of the reverse-charge allowance, the test checks whether ram:RateApplicablePercent is numerically equal to 0.

Where the rule applies

The rule applies to a document-level allowance identified as an allowance by ram:ChargeIndicator and as reverse charge by ram:CategoryCode with AE.

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