BR-KSA-08: Seller ID needs a valid scheme (CRN, MOM, MLS, SAG, OTH, 700)
cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID (BT-29) must exist with a @schemeID (BT-29-1) of CRN, MOM, MLS, SAG, OTH or 700. The executed check only verifies the ID exists and the scheme; it does not check the 'alphanumeric only' or 'only once' parts of the official text.
How to fix it
Add the seller identifier with its scheme, e.g. <cac:PartyIdentification><cbc:ID schemeID="CRN">1010010000</cbc:ID></cac:PartyIdentification>, using letters and digits only and the first applicable scheme in the order CRN, MOM, MLS, SAG, OTH, 700 per the official text.
ZATCA's official text
[BR-KSA-08]-The seller identification (BT-29) must exist only once with one of the scheme ID (BT-29-1) (CRN, MOM, MLS, SAG, OTH, 700) and must contain only alphanumeric characters. Commercial Registration number with "CRN" as schemeID. MOMRAH license with "MOM" as schemeID. MHRSD license with "MLS" as schemeID. 700 Number with "700" as schemeID. MISA license with "SAG" as schemeID. Other OD with "OTH" as schemeID. In case of multiple commercial registrations, the seller should fill the commercial registration of the branch in respect of which the Tax Invoice is being issued. In case multiple IDs exist then one of the above must be entered following the sequence specified above.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not( exists(cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID) and string-length(cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID/normalize-space(@schemeID)) > 2 and contains('CRN MOM MLS SAG OTH 700', normalize-space(cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID/@schemeID)))
Related rules
- BR-KSA-F-08 · Seller/buyer CRN must be exactly 10 digits
- BR-KSA-F-09 · Seller/buyer '700' number must be 10 digits starting with 7
- BR-KSA-F-12 · Seller/buyer ID schemeID must not contain extra spaces
- BR-KSA-F-13 · Seller/buyer ID must not be a placeholder digit sequence
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