# Multiple Tax Exemption Reason Codes For The Same Tax Category

**URL:** <https://zatca1.discourse.group/t/multiple-tax-exemption-reason-codes-for-the-same-tax-category/8940>\
**Category:** General\
**Created:** [October 30, 2025, 9:09am UTC](https://zatca1.discourse.group/t/multiple-tax-exemption-reason-codes-for-the-same-tax-category/8940 "2025-10-30T09:09:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![samijneidy](https://avatars.discourse-cdn.com/v4/letter/s/c2a13f/32.png) [@samijneidy](https://zatca1.discourse.group/u/samijneidy)\
**Post date:** [October 30, 2025, 9:09am UTC](https://zatca1.discourse.group/t/multiple-tax-exemption-reason-codes-for-the-same-tax-category/8940/1 "2025-10-30T09:09:23Z")

</div>

Hello,  
In case the invoice has multiple invoice lines with the same tax category (different from the standard rate “S”), but with different exemption reason codes (for example, one line has “VATEX-SA-EDU” and other line has “VATEX-SA-32”), how to handle it in the XML?  
The XML implementation standards ensure that each tax category under `<cac:TaxTotal>` with category other than “S” must have `<cbc:TaxExemptionReasonCode>` and `<cbc:TaxExemptionReason>`. So how to list all reason codes for the same tax category?  
I’ve tried to repeat the same tax category under `<cac:TaxTotal>` for each exemption reason, and the XML validator didn’t raise any error. This is how I done it:

```xml
<cac:TaxTotal>
	<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
</cac:TaxTotal>
<cac:TaxTotal>
	<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
	<cac:TaxSubtotal>
		<cbc:TaxableAmount currencyID="SAR">500.00</cbc:TaxableAmount>
		<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
		<cac:TaxCategory>
			<cbc:ID>Z</cbc:ID>
			<cbc:Percent>0</cbc:Percent>
			<cbc:TaxExemptionReasonCode>VATEX-SA-32</cbc:TaxExemptionReasonCode>
			<cbc:TaxExemptionReason>SSSS</cbc:TaxExemptionReason>
			<cac:TaxScheme>
				<cbc:ID>VAT</cbc:ID>
			</cac:TaxScheme>
		</cac:TaxCategory>
	</cac:TaxSubtotal>
	<cac:TaxSubtotal>
		<cbc:TaxableAmount currencyID="SAR">500.00</cbc:TaxableAmount>
		<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
		<cac:TaxCategory>
			<cbc:ID>Z</cbc:ID>
			<cbc:Percent>0</cbc:Percent>
			<cbc:TaxExemptionReasonCode>VATEX-SA-32</cbc:TaxExemptionReasonCode>
			<cbc:TaxExemptionReason>SSSS</cbc:TaxExemptionReason>
			<cac:TaxScheme>
				<cbc:ID>VAT</cbc:ID>
			</cac:TaxScheme>
		</cac:TaxCategory>
	</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
	<cbc:LineExtensionAmount currencyID="SAR">600.00</cbc:LineExtensionAmount>
	<cbc:TaxExclusiveAmount currencyID="SAR">500.00</cbc:TaxExclusiveAmount>
	<cbc:TaxInclusiveAmount currencyID="SAR">500.00</cbc:TaxInclusiveAmount>
	<cbc:AllowanceTotalAmount currencyID="SAR">100</cbc:AllowanceTotalAmount>
	<cbc:PayableAmount currencyID="SAR">500.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
	<cbc:ID>90</cbc:ID>
	<cbc:InvoicedQuantity unitCode="PCE">2</cbc:InvoicedQuantity>
	<cbc:LineExtensionAmount currencyID="SAR">300.00</cbc:LineExtensionAmount>
	<cac:AllowanceCharge>
		<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
		<cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason>
		<cbc:Amount currencyID="SAR">200</cbc:Amount>
	</cac:AllowanceCharge>
	<cac:TaxTotal>
		<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
		<cbc:RoundingAmount currencyID="SAR">300.00</cbc:RoundingAmount>
	</cac:TaxTotal>
	<cac:Item>
		<cbc:Name>Cola</cbc:Name>
		<cac:ClassifiedTaxCategory>
			<cbc:ID>Z</cbc:ID>
			<cbc:Percent>0</cbc:Percent>
			<cbc:TaxExemptionReasonCode>VATEX-SA-33</cbc:TaxExemptionReasonCode>
			<cbc:TaxExemptionReason>SSSS</cbc:TaxExemptionReason>
			<cac:TaxScheme>
				<cbc:ID>VAT</cbc:ID>
			</cac:TaxScheme>
		</cac:ClassifiedTaxCategory>
	</cac:Item>
	<cac:Price>
		<cbc:PriceAmount currencyID="SAR">250.00</cbc:PriceAmount>
		<cac:AllowanceCharge>
			<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
			<cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason>
			<cbc:Amount currencyID="SAR">50</cbc:Amount>
			<cbc:BaseAmount currencyID="SAR">300</cbc:BaseAmount>
		</cac:AllowanceCharge>
	</cac:Price>
</cac:InvoiceLine>
<cac:InvoiceLine>
	<cbc:ID>91</cbc:ID>
	<cbc:InvoicedQuantity unitCode="PCE">2</cbc:InvoicedQuantity>
	<cbc:LineExtensionAmount currencyID="SAR">300.00</cbc:LineExtensionAmount>
	<cac:AllowanceCharge>
		<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
		<cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason>
		<cbc:Amount currencyID="SAR">200</cbc:Amount>
	</cac:AllowanceCharge>
	<cac:TaxTotal>
		<cbc:TaxAmount currencyID="SAR">0.00</cbc:TaxAmount>
		<cbc:RoundingAmount currencyID="SAR">300.00</cbc:RoundingAmount>
	</cac:TaxTotal>
	<cac:Item>
		<cbc:Name>Cola</cbc:Name>
		<cac:ClassifiedTaxCategory>
			<cbc:ID>Z</cbc:ID>
			<cbc:Percent>0</cbc:Percent>
			<cbc:TaxExemptionReasonCode>VATEX-SA-32</cbc:TaxExemptionReasonCode>
			<cbc:TaxExemptionReason>SSSS</cbc:TaxExemptionReason>
			<cac:TaxScheme>
				<cbc:ID>VAT</cbc:ID>
			</cac:TaxScheme>
		</cac:ClassifiedTaxCategory>
	</cac:Item>
	<cac:Price>
		<cbc:PriceAmount currencyID="SAR">250.00</cbc:PriceAmount>
		<cac:AllowanceCharge>
			<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
			<cbc:AllowanceChargeReason>discount</cbc:AllowanceChargeReason>
			<cbc:Amount currencyID="SAR">50</cbc:Amount>
			<cbc:BaseAmount currencyID="SAR">300</cbc:BaseAmount>
		</cac:AllowanceCharge>
	</cac:Price>
</cac:InvoiceLine>

```

Is this complied with ZATCA regulations or s there any other solution?

---

<div class="post-metadata">

**Author:** ![Ankit.K.Tiwari](https://avatars.discourse-cdn.com/v4/letter/a/9d8465/32.png) [@Ankit.K.Tiwari](https://zatca1.discourse.group/u/Ankit.K.Tiwari)\
**Post date:** [October 30, 2025, 9:11am UTC](https://zatca1.discourse.group/t/multiple-tax-exemption-reason-codes-for-the-same-tax-category/8940/2 "2025-10-30T09:11:23Z")

</div>

@samijneidy Could you please give a real scenario where you have multiple exemptions reason codes? VATEX-SA-EDU is for zero rating “Private education service to Saudi citizens” and VATEX-SA-32 is zero rating “Export of Goods”. It is a hypothetical scenario.

---

<div class="post-metadata">

**Author:** ![samijneidy](https://avatars.discourse-cdn.com/v4/letter/s/c2a13f/32.png) [@samijneidy](https://zatca1.discourse.group/u/samijneidy)\
**Post date:** [November 2, 2025, 10:13am UTC](https://zatca1.discourse.group/t/multiple-tax-exemption-reason-codes-for-the-same-tax-category/8940/3 "2025-11-02T10:13:47Z")

</div>

There is no real world scenario, but we are redesigning our system to meet zatca specifications so we stopped at this particular case.

But since it is not a use case, we will ignore it.

Thank you for the help!
