BR-KSA-85: Buyer phone must start with 0 or + followed by 4 to 15 digits
If cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Telephone (BT-57) is non-empty, it must match ^(?:0|\+)[0-9]{4,15}$: a leading 0 or + followed by 4 to 15 digits and nothing else. Spaces, dashes and brackets therefore fail.
How to fix it
Write the number without separators, e.g. <cbc:Telephone>+966500000000</cbc:Telephone> or <cbc:Telephone>0500000000</cbc:Telephone>.
ZATCA's official text
[BR-KSA-85]-The Buyer's contact phone number (BT-57) shall start with "0" or "+", followed by a maximum of 15 number and minimum 4 character after the "+" or "0" , if exist.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
string-length(//cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Telephone) > 0 and not(exists(//cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Telephone) and matches(//cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Telephone, '^(?:0|\+)[0-9]{4,15}$'))
Related rules
- BR-KSA-82 · Prepayment lines must carry zero line amounts
- BR-KSA-83 · Exemption reason code in the VAT breakdown needs a reason text
- BR-KSA-84 · Standard-rated (S) VAT rate must be 15 or 5
- BR-KSA-86 · Buyer email should follow the XXX@YYY.ZZ format
- BR-KSA-87 · Tax exchange rate needs source currency, target currency and rate
- BR-KSA-88 · Exchange-rate source currency must equal the invoice currency
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