Home › E-invoicing reference › Methodology

How this reference is built

Where each fact comes from, how we check it, and what we do when two ZATCA documents disagree.

Sources

We use ZATCA's own documents and pages only, and every fact carries its link and the date we checked it. The core documents:

Checked: 26 October 2026

Codes

We listed the codes from the validation rule files in ZATCA's SDK 238-R3.3.8 (236 codes) and compared them with the tables in the XML Implementation Standard v1.2 (181 codes). 177 are in both, 59 only in the SDK and 4 only in the standard, 240 in all.

Each code's English text is copied as the SDK prints it on rejection, and the severity (error or warning) comes from the same file.

Examples

Each code page has a wrong and a correct example. We start from one of the SDK's official samples, change only the part that breaks the rule, run ZATCA's SDK on the file and confirm the code fires. The untouched sample does not fire it.

Editing the file breaks its signature, so signature codes always fire too and we leave them out. If other rule codes fire alongside, the page names them.

The in-browser XML checker

Each check in the XML checker is written from the rule's text in ZATCA's SDK. We tested it on every valid SDK sample, where nothing fired, and on each rule's wrong example, where its code fired, and it fired no code that the SDK did not.

Labels

When sources disagree

We show both and say which is newer, and we never pick one silently. These are the conflicts we found:

Last updated: 26 October 2026 · What we don't do · Methodology · Correct us · Changelog

First published 2026-10-26 · Archived copy

First 500 restaurants, cafés, bakeries and sweet shops: a SAR 99 monthly cap.

Instead of SAR 149, per branch, for a full year. Free to join, no commitment.

Reserve your seat