# ZATCA e-invoicing (Saudi Arabia)

> Register ArmPOS with ZATCA's Fatoora system so your invoices and credit notes are reported and cleared.

*Section: Integrations · Updated: 2026-10-19 · Needs the plan feature: zatca*

By the end you will know how a shop in Saudi Arabia registers ArmPOS with ZATCA's Fatoora system, so its invoices are reported and cleared as the law asks.

> **Note:** This is for shops registered for VAT in Saudi Arabia. It was written from ArmPOS's screens and code and was **not run** against ZATCA. ZATCA E-Invoicing comes with some plans only.

## What it does

Once set up, each sale becomes a signed tax invoice and each sale return a credit note, sent to ZATCA's Fatoora gateway: **reported** for a sale to a consumer (simplified invoice), **cleared** for a sale to a business with a VAT number (standard invoice). POS sales are always simplified. A sale whose customer has a 15-digit VAT number starting and ending with 3 is standard. The receipt carries ZATCA's QR code.

## Before you start

- In **[Settings › System Settings](/app/settings/System_settings)**, tab **ZATCA**: the **Company Name (Arabic)**, the **VAT Number** (15 digits, starting and ending with 3) and **Enable ZATCA QR on Sales Receipts**.
- Your **CRN** and national address.
- A one-time password (OTP) from the Fatoora portal: **fatoora.zatca.gov.sa › Onboard New Solution Unit/Device**.

## Set it up

1. **Open [Settings › ZATCA E-Invoicing](/app/settings/zatca_settings)**, tab **Configuration**.
2. **Pick the Environment:** **Sandbox** to try, **Simulation**, then **Production** for real invoices. Changing it later means onboarding again.
3. **Fill the EGS Unit / CSR Details** (Common Name, Organization Name, Branch, CRN, Business Category, Supported Invoice Types) and the **National Address** (Building No. has 4 digits, Postal Code 5).
4. **Tick Enable ZATCA Phase 2** and **Auto-submit new invoices**, and **click Submit.**
5. **Open the Onboarding tab,** type the **OTP from the Fatoora portal**, and **click Start Onboarding.** ArmPOS makes its key, gets its certificates and runs ZATCA's compliance checks. The status ends on **Ready (Production CSID active)**. On the sandbox any 6 digits are accepted.

![ZATCA E-Invoicing (Phase 2), Onboarding tab: Environment sandbox, Onboarding Not started, Company VAT Number "— set it in System Settings", Device Serial (EGS), Invoice Counter (ICV) 0, the note to set the VAT number first, OTP from the Fatoora portal, Start Onboarding and Regenerate CSR.](https://armpos.online/storage/help/840858ddb3-zatca-e-invoicing-1-onboarding.webp)
*Set the VAT number in System Settings first; then onboard with the OTP from Fatoora.*

## Follow what was sent

The **Documents** tab lists every invoice and credit note with its type, counter, **Status** (**Reported**, **Cleared**, **Failed** or **Pending**) and ZATCA's remarks. **XML** downloads the signed document; **Retry** sends a failed one again.

> **Warning:** - On **Production**, invoices go to ZATCA for real and can't be withdrawn: editing or deleting a sale changes nothing there. Correct a sale with a return, which sends a credit note.
> - Keep **Auto-submit** on: in manual mode there is no button to send a pending invoice.
> - A refused document is marked **Failed** and the sale stays; the people who manage settings are told.

## What's next

[Receipt and POS settings](/app/help/receipt-and-pos-settings) has **Show ZATCA QR** and the bilingual receipt layout.
