BR-KSA-49: EDU/HEA exemption requires buyer national ID (BT-46, scheme NAT)
When any cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory has cbc:TaxExemptionReasonCode 'VATEX-SA-EDU' or 'VATEX-SA-HEA' (BT-121), the buyer must have cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID (BT-46) with schemeID='NAT' (BT-46-1).
How to fix it
Add the buyer's national ID: <cac:PartyIdentification><cbc:ID schemeID="NAT">…</cbc:ID></cac:PartyIdentification> under cac:AccountingCustomerParty/cac:Party.
ZATCA's official text
[BR-KSA-49]-If the tax exemption reason code (BT-121) is equal to VATEX-SA-EDU or VATEX-SA-HEA, then the other buyer ID (BT-46) is mandatory and must be national ID (BT-46-1 = NAT).
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not(exists(//cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID) and (//cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID/@schemeID) = 'NAT')
Related rules
- BR-KSA-14 · Buyer ID must use an allowed scheme ID
- BR-KSA-23 · VAT-exempt (E) breakdown needs an exemption reason code (BT-121)
- BR-KSA-24 · Not-subject-to-VAT (O) breakdown needs a reason code (BT-121)
- BR-KSA-25 · Simplified invoice with EDU/HEA exemption needs the buyer name
- BR-KSA-69 · Zero-rated (Z) VAT breakdown needs a reason code (BT-121)
- BR-KSA-81 · Standard invoice without buyer VAT number needs another buyer ID
Validate your invoice against ZATCA's rules
Paste the XML and see every error and warning. It runs in your browser; the invoice goes nowhere.
Validate an invoice or try Matheel