BR-KSA-40 🏢 Seller Address & Identity error

BR-KSA-40: Seller VAT Number Must Be 15 Digits Starting & Ending with 3

BR-KSA-40: الرقم الضريبي للبائع يجب أن يتكون من 15 رقماً يبدأ وينتهي بـ 3

Official ZATCA Specification:

If it exists in the invoice, the seller VAT registration number or the seller group VAT registration number (BT-31) must contain 15 digits. The first and the last digits must be '3'.

XPath Context: /ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID

📌 Overview & Impact

Seller VAT registration number (BT-31) must contain exactly 15 digits, where the 1st digit is '3' and the 15th digit is '3'.

الوصف بالعربية: رقم التسجيل الضريبي للبائع (BT-31) يجب أن يتكون من 15 رقماً بالضبط، يبدأ بالرقم 3 وينتهي بالرقم 3.

⚠️ Common Causes for Rejection

  • VAT number contains dashes, spaces, or country code prefix like 'SA300...'
  • VAT number length is less or more than 15 digits
  • First or last digit is not '3'
  • VAT number in invoice does not match the VAT number embedded in the active CSID certificate

How to Fix & Resolve

1

Strip Non-Digit Characters

Clean your VAT number string to contain only digits (e.g. 300000000000003).

2

Match Active CSID Certificate

Ensure the VAT number in PartyTaxScheme/CompanyID exactly matches the Subject VAT of the active onboarding CSID.

💻 Code Comparison: Invalid vs Compliant UBL 2.1 XML

❌ Invalid XML (Rejected by ZATCA) Invalid Payload
<cac:PartyTaxScheme>
  <cbc:CompanyID>SA-300123456789003</cbc:CompanyID>
  <cac:TaxScheme>
    <cbc:ID>VAT</cbc:ID>
  </cac:TaxScheme>
</cac:PartyTaxScheme>
✓ Valid XML (Compliant UBL 2.1) Valid Payload
<cac:PartyTaxScheme>
  <cbc:CompanyID>300123456789003</cbc:CompanyID>
  <cac:TaxScheme>
    <cbc:ID>VAT</cbc:ID>
  </cac:TaxScheme>
</cac:PartyTaxScheme>

Verify Your Invoice XML Online

Use Qeemah's free developer tools to inspect transforms, C14N digests, and Phase 2 QR codes.

Frequently Asked Questions

Can I use my Commercial Registration (CRN) in place of the VAT number?

No, the VAT number goes in PartyTaxScheme/CompanyID, while the CRN goes in PartyIdentification/ID with schemeID='CRN'. Both are required.

Stop Fighting Cryptic ZATCA XML Errors

Qeemah handles Phase 2 e-invoicing, cryptographic signing, and real-time clearance automatically. Integrate in minutes.