A VAT Breakdown (BG-23) with VAT Category code (BT-118) " Not subject to VAT" shall have a VAT exemption reason code (BT-121), meaning " Not subject to VAT" or a VAT exemption reason text (BT-120) " Not subject to VAT" (or the equivalent standard text in another language).
For category O, both ExemptionReason and ExemptionReasonCode are missing. The VAT breakdown must include an appropriate exemption reason as text or as a code.
The exemption reason explains why the VAT breakdown is treated as not subject to VAT. It must be provided either as the exemption reason text BT-120 or as the exemption reason code BT-121.
No exemption reason is provided for the VAT breakdown with code O. You can add the reason as text or as a code.
- Add either
ExemptionReasonorExemptionReasonCodeto the affectedApplicableTradeTax. - Provide the exemption reason for the transaction not subject to VAT.
- Check the call to
AddApplicableTradeTax(...). - Generate the invoice again and validate it.
<ram:ApplicableTradeTax> <ram:CategoryCode>O</ram:CategoryCode> </ram:ApplicableTradeTax>
<ram:ApplicableTradeTax> <ram:CategoryCode>O</ram:CategoryCode> <ram:ExemptionReason>Not subject to VAT</ram:ExemptionReason> </ram:ApplicableTradeTax>
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 O, the XPath checks whether at least one of the child elements ExemptionReason or ExemptionReasonCode is present.
The rule applies to a document-level VAT breakdown ApplicableTradeTax when its CategoryCode is O.
rule/@context)assert/@test)