BR-KSA-EN16931-02 Rejects the invoice

Tax currency code (BT-6) is not SAR

The field whose presence BR-KSA-68 checks has its value checked here: three letters, SAR, and nothing else. A business that invoices in a foreign currency still accounts for its VAT in riyals, because the two currencies are two fields rather than one.

The message text as the Authority sends it in English, unedited

VAT accounting currency code (BT-6) must be "SAR".

What does this mean?

Three rules sit on the same field, and telling them apart shortens the journey. BR-KSA-68, an error, asks whether the element exists. This one, also an error, asks what its value is. BR-KSA-EN16931-09, a warning, governs what the document must carry once the field is declared. You are on the second: the element is there, and its value is not SAR.

The value is literal: SAR, the ISO 4217 code in capitals, in cbc:TaxCurrencyCode at invoice level.

It is not the billing currency. The document currency (BT-5), in cbc:DocumentCurrencyCode, is free — sell in dollars and you write dollars. The accounting currency is fixed by the jurisdiction rather than by the deal: VAT is a Saudi liability declared in riyals, so it never follows the first field.

Two neighbouring rules read this declaration. BR-KSA-89 requires the target currency code (KSA-38), where present, to be the same as BT-6, and BR-KSA-CL-02 requires every currencyID attribute to match the invoice currency except the invoice total VAT amount in accounting currency (BT-111). Changing BT-6 moves what is around it, which is why it is written as a constant once and left alone.

Why does it happen?

Ordered from the most common to the least — your cause is most likely the first or the second.

  • One line of mapping copying the document currency into the tax currency — the commonest cause by far, and one whose effect only shows on the first invoice in a foreign currency.
  • A lower-case sar, a stray trailing space, or a currency symbol in place of the ISO code.
  • Writing the currency name in Arabic or in words in a field that takes a three-letter Latin code.
  • An international accounting system with a company-level functional currency in dollars or dirhams, writing that value here as though it were the accounting currency.
  • The numeric ISO code 682 instead of the alphabetic one.

How to fix it

3 steps, then send the invoice again.

  1. 1
    Write it as a constant, not as something derived

    cbc:TaxCurrencyCode with the value SAR, on every document: invoice, credit note and debit note. Do not derive it from the document currency, from establishment settings, or from the customer record — on a Saudi e-invoice there is nothing to derive in this field.

  2. 2
    And leave the billing currency to your deal

    BT-5 stays whatever you actually sold in. The document amounts are expressed in it, and the VAT amount in the accounting currency is converted to riyals at the rate your business uses. BR-KSA-97, a warning, expects those two VAT figures to differ once the invoice currency is not SAR — so identical figures on a foreign-currency invoice are a sign of a conversion that never happened.

  3. 3
    Then review the SAR tax block

    Declaring the accounting currency brings a second tax total into scope, holding the VAT amount in SAR with no breakdown inside it, which is the subject of BR-KSA-EN16931-09. It is a warning rather than a rejection, which is why it is usually the first thing to appear once the value of this field is right.

Once corrected, send the invoice again. A rejected invoice was never recorded with the Authority, so it needs no credit note — send the corrected invoice itself.

Does ZATCA Tools prevent it?

Yes, and for the same reason as BR-KSA-68: the accounting currency is written into the payload builder as the constant SAR, and there is no currency column anywhere in the product — not on the establishment, not on the invoice — from which a different value could be derived. That is the honest version of the sentence: the value cannot be wrong because the case that makes it interesting, invoicing in a foreign currency, is not supported here at all.

Related codes

Frequently asked questions

I sell in dollars. Do I write dollars in this field? +
No. Dollars belong in the document currency (BT-5); the accounting currency (BT-6) stays SAR. Two fields with two meanings: what you sold in, and what the VAT is accounted in — and the second does not change with the buyer's country or the currency of the contract.
Is a lower-case sar accepted? +
The official message quotes the value in capitals, and ISO 4217 codes are written in capitals. What we read from the compiled schematron is the text of the rule and its severity, not the test, so we cannot tell you whether the check is case-sensitive — and there is no reason to find out when capitals are the standard form.
Do I have to send exchange-rate fields? +
What we can confirm from the rules themselves is that they are conditional rather than absolute: BR-KSA-88 and BR-KSA-89 require, where those fields exist, the source currency to name the invoice currency and the target currency to name the accounting currency. Whether they must be present in the first place is not something we can read here, and that is a question for zatca.gov.sa.
You fixed this one — now avoid the next

ZATCA Tools builds the signature, the PIH, the counter and the encoding for you, and validates your data before it is sent. Completely free for now, and no credit card.

Start for free

← All ZATCA error codes