BR-KSA-49: EDU/HEA exemption requires buyer national ID (BT-46, scheme NAT)

Explained by Matheel from ZATCA's rule text and the condition SDK 3.4.8 executes · Updated

Error: the invoice is rejectedConditional, see belowFields: BT-121, BT-46, BT-46-1

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

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