Set the tax amount to zero for exports outside the EU

Error BR-G-09 EN 16931

The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" 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 a VAT breakdown in category G, the tax amount in CalculatedAmount is not zero. G denotes an export outside the EU.

What the rule means

For the export outside the EU category, the tax amount in the VAT breakdown must be zero.

Affected fields BT-117 BG-23 BT-118
Please set the tax amount to zero for exports outside the EU

The VAT breakdown is marked as an export outside the EU (G), but its tax amount is not zero. You can adjust the amount in the invoice and validate it again.

What to do
  1. Set CalculatedAmount to 0 in the VAT breakdown with CategoryCode G.
  2. Check the tax information supplied through AddApplicableTradeTax(...).
  3. Generate the invoice again and validate it.
What it looks like
✗ Triggers the message
<ram:ApplicableTradeTax>
  <ram:CategoryCode>G</ram:CategoryCode>
  <ram:CalculatedAmount>5.00</ram:CalculatedAmount>
</ram:ApplicableTradeTax>
✓ Correct
<ram:ApplicableTradeTax>
  <ram:CategoryCode>G</ram:CategoryCode>
  <ram:CalculatedAmount>0</ram:CalculatedAmount>
</ram:ApplicableTradeTax>
Check in FactoorSharp
  • TaxCategoryCodes (BT-118)
  • FacturXInvoice.AddApplicableTradeTax(basisAmount, percent, taxAmount, typeCode, categoryCode, allowanceChargeBasisAmount, exemptionReasonCode, exemptionReason, lineTotalBasisAmount) (BG-23)
  • FacturXInvoice.AnyApplicableTradeTaxes() (BG-23)
  • FacturXInvoice.GetApplicableTradeTaxes() (BG-23)
  • FacturXInvoice.Taxes (BG-23)
Technical details

For CategoryCode G, the test checks whether the associated CalculatedAmount is numerically equal to zero.

Where the rule applies

The rule applies to ApplicableTradeTax in the VAT breakdown when CategoryCode has the value G.

Context (rule/@context)
//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ ram:CategoryCode[. = 'G']
Test expression (assert/@test)
../ram:CalculatedAmount = 0