Buyer address must contain a street (BT-50), city (BT-52), country code (BT-55). This rule does not apply on the simplified tax invoices and associated credit notes and debit notes (KSA-2, position 1 and 2 = 02).
What does this mean?
The rule asks the buyer address for three elements and no more: the street name (BT-50) in cbc:StreetName, the city (BT-52) in cbc:CityName and the country code (BT-55) in cac:Country/cbc:IdentificationCode — all inside cac:AccountingCustomerParty/cac:Party/cac:PostalAddress. Its text excludes simplified tax invoices and their credit and debit notes (KSA-2, first and second digits = 02).
The text printed above this page is the Authority's own, as it appears in the extract published with their SDK, and that extract is the source of our whole list. But the message the live interface returns today is longer. We saw it on a real invoice on 2026-09-19, opening with a condition that does not exist in the stored text — Where the Buyer Country Code (BT-55) is other than 'SA' — and then continuing with the same sentence word for word. We have not changed the stored one: it is the Authority's text too, and someone matching their own screen against this page should find the sentence they are holding.
That condition divides the work between two rules, which is the reason this page exists: this one covers the buyer whose country code is not SA and asks three elements of them, while BR-KSA-63 covers the buyer whose country code is SA and asks six — street, building number, postal code, city, district and country code. No tax invoice escapes both: a buyer abroad falls under this one, a buyer at home under that one.
And the invoice we saw the message on was not to a buyer abroad at all. It was a tax invoice to a buyer with no address in the file whatsoever — no street, no city, no country code, because our own system writes no address element when it knows nothing to put in one — and it came back with this rule in its longer wording, together with BR-KSA-63 and two of the buyer-address length codes. So an ABSENT country code lands on the Authority's side of "other than SA" exactly as a foreign code would. We report that as we saw it and no further: the extract we work from gives us each rule's message and severity, not the test behind it, so this is an observation rather than a reconstruction of the condition.
It is a warning: the invoice is cleared and the code returns alongside that acceptance in warningMessages, so no sale is held up over an address nobody has to hand. But accepted is not the same as complete. The tax document stays without a buyer address in your records and in theirs, and the same warning comes back on every invoice to that customer for as long as their record is unchanged.
Why does it happen?
Ordered from the most common to the least — your cause is most likely the first or the second.
- A buyer outside Saudi Arabia whose record was created from an email signature or a purchase order: a name, a city, perhaps a street — and no country code in its field.
- A customer with no address in the file at all, who is then sent a tax invoice. This is the commonest shape, and it is the one that came back to us with this code.
-
The whole address typed as one line into the street field:
cbc:StreetNameis full, and the city and country code never reach fields of their own. - A document that was a counter sale, issued simplified, then reissued as a tax invoice for a buyer whose record was only ever a name and a phone number.
-
A system that assumes Saudi Arabia for every customer and so never asks for a country, sending a foreign buyer out with
SA— which is not a breach of this rule but a false statement about the buyer, and puts them under BR-KSA-63 with six elements instead of three. - Customers imported from a spreadsheet with a single address column that was never split into a street and a city.
How to fix it
3 steps, then send the invoice again.
-
1
Three elements in three fields, and a two-letter country code
Write the street in
cbc:StreetName, the city incbc:CityNameand the country incac:Country/cbc:IdentificationCode— two letters, the ISO code:AE,KW,EG,SA, neverKSAand never the country spelled out. An element whose value you do not have is better left out than sent empty, because an empty element falls under the field-length rules, whose minimum is one character. -
2
A Saudi buyer: three is not enough for them
Once the buyer country code is
SA, six elements are required rather than three under BR-KSA-63, which adds the building number, the district and the postal code. The quickest route to all six is to ask the customer for their national short address — four letters then four digits — or their national address certificate, from which every element comes out separately. The buyer fields, and the rule behind each, are listed in the tax invoice requirements checklist. -
3
And do not invent an address for a document that does not ask for one
The rule excludes simplified invoices and their notes by its own text. If the sale really is a counter sale, the document is simplified and needs no buyer address at all, and padding one into it to silence a warning that does not apply puts something untrue on the document. What separates the two families, and what each requires, is set out in standard versus simplified tax invoices.
This code does not block acceptance, so the invoice you have is compliant. Correct the data so the warnings disappear from future invoices.
Does ZATCA Tools prevent it?
Not blocked, and that is a decision. The buyer address elements are a prompt in ZATCA Tools rather than a condition — the condition is identity: a VAT number, or another identifier with its type. When a tax invoice is issued to a buyer whose address is short of something, a dialog names what is missing and offers two choices, Complete the details or Continue, and the same dialog appears when a saved draft is issued. The API has no dialog: it issues with an incomplete address as long as the buyer is identified, and the warning comes back in its response. Whatever part of the address is known is written element by element, what is missing is left out rather than sent empty, and a buyer with no part of an address at all goes out with no address element. One limit we state outright, because this rule is what exposes it: there is no field anywhere in ZATCA Tools for choosing a buyer country — not in the customer form, not in the API, not in the import — so every buyer address we send carries SA. Which means a buyer abroad cannot be described today as what they are, and their invoice falls under BR-KSA-63 with its six elements instead of this rule with its three.
Related codes
Frequently asked questions
Was my invoice rejected because of the buyer address? +
errorMessages, which reject, apart from warningMessages, which are only recorded. How to read it is covered in ZATCA error codes explained.The message I received is longer than the text shown on this page. Which is right? +
Where the Buyer Country Code (BT-55) is other than 'SA'. That addition is the whole value of this page, which is why we quote it rather than replace the stored text with it.My customer is Saudi. Why did I get a code about a country other than SA? +
Does it apply to credit and debit notes? +
My customer is abroad and has no street in the sense we use. What do I write? +
What is the difference between this and BR-KSA-63, in one line? +
ZATCA Tools builds the signature, the PIH, the counter and the encoding for you, and validates your data before it is sent. Start free, with no credit card.
Start for free