Provide the reason for an export outside the EU

Error BR-G-10 EN 16931

A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Export outside the EU" shall have a VAT exemption reason code (BT-121), meaning "Export outside the EU" or the VAT exemption reason text (BT-120) "Export outside the EU" (or the equivalent standard text in another language).

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

For category G, both ExemptionReasonCode and ExemptionReason are missing. At least one must state the reason export outside the EU; the text may use the equivalent standard wording in another language.

What the rule means

The reason export outside the EU must be stated in the VAT breakdown. It can be provided as a reason code or as a reason text.

Affected fields BG-23 BT-118 BT-121 BT-120
Please add the reason for the export outside the EU

The VAT breakdown for exports outside the EU (G) is missing a reason. You can provide either a reason code or a reason text.

What to do
  1. Provide ExemptionReasonCode with the reason code for export outside the EU, or enter the corresponding text or standard wording in ExemptionReason.
  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:ApplicableTradeTax>
✓ Correct
<ram:ApplicableTradeTax>
  <ram:CategoryCode>G</ram:CategoryCode>
  <ram:ExemptionReason>Export outside the EU</ram:ExemptionReason>
</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 category G, the test requires at least one of ExemptionReason or ExemptionReasonCode; it does not require both.

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:ExemptionReason) or (../ram:ExemptionReasonCode)