BR-KSA-33 Rejects the invoice

Invoice counter (ICV) missing or invalid

Counter KSA-16 is an increasing number that is never reset and never repeated. Why it gets rejected, and how it differs from the invoice number.

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

Each invoice must have an invoice counter value (KSA-16).

What does this mean?

The invoice counter value is a positive integer that starts at 1 and increases by one with every document you issue — an invoice, a credit note or a debit note. It belongs to the certificate (CSID), not to the year, the branch or the document type.

It is not the invoice number. The invoice number is text you choose and may contain letters and dashes, such as INV-2026-0042; the counter is digits only, and code BR-KSA-34 rejects any letter in it.

Why does it happen?

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

  • Resetting the counter at the start of a new financial year — the counter is never reset.
  • A separate counter per branch or per document type while there is a single certificate.
  • Using the invoice number itself as the counter, so it carries letters or dashes.
  • Reusing the same value after resending an invoice that failed — a value is consumed the moment it is used.
  • Concurrent issuing from two devices on the same certificate, so both take the same number.

How to fix it

3 steps, then send the invoice again.

  1. 1
    One counter per certificate: it goes up and never back

    Store the last value used with the certificate and increase it by one for each new document. Do not reset it at the turn of the year, and do not split it by branch or by type.

  2. 2
    Gaps are acceptable, repeats are not

    If a send fails and the number has been consumed, move on to the next one. A gap in the sequence is not a violation; reusing a number that has already been used is.

  3. 3
    Digits only

    The value is a positive integer with no leading zeros, no separators and no letters. To avoid BR-KSA-34, generate it from a counter in the database, not from the invoice number text.

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. ZATCA Tools keeps a single counter per establishment and increments it atomically on every issue, credit and debit notes included — and it is never reset when the year changes.

Related codes

Frequently asked questions

Should the counter match the invoice number? +
No, and it is not advisable. The invoice number is for the customer to read and may carry a year or a branch code; the counter is a technical sequence number. Relate them, but do not merge them.
I issued an invoice and then cancelled it — can I reuse its number? +
No. Cancelling in Phase 2 happens through a credit note, not a deletion, and the credit note itself consumes a new counter value.
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