Skip to content
Compliance & finance

ZATCA Phase 2 e-invoicing

Signing, clearance and reporting in full — and the signing keeps working when the line drops

Lets a Saudi merchant meet Phase 2 e-invoicing in full: UBL 2.1 XML invoices, XAdES-BES cryptographic signatures, the nine-tag TLV QR code, the invoice hash chain, real-time clearance for B2B, near-real-time reporting for B2C, and certificate and EGS device management — all of it continuing to work with no connection.

Saudi Arabia

What this covers

  • Structurally valid UBL 2.1 XML for every document type
  • ECDSA cryptographic signing in XAdES-BES, with the private key in the operating system’s secure store
  • The Phase 2 QR code with all nine TLV tags
  • The invoice hash chain (PIH), maintained and unbroken — each invoice linked to the one before it
  • A standard invoice (B2B) is cleared with ZATCA before it is issued
  • A simplified invoice (B2C) is reported within 24 hours
  • A credit note (381) referencing the original invoice’s UUID
  • A debit note (383) carrying its adjustment reason
  • Self-billing — the one purchase-side document the buyer raises on the supplier’s behalf, gated by an authorisation recorded against that supplier
  • EGS device onboarding and certificate lifecycle management through hybrid provisioning
  • Offline operation — B2C invoices signed locally inside the 24-hour tolerance; B2B invoices queued until the connection returns
  • A retry engine — rejected and pending invoices are re-sent by a scheduled sweep, with escalating backoff
  • A compliance dashboard — every invoice’s status, the rejection reason, and an archive of ZATCA’s own responses
  • Document archive — the signed XML and ZATCA’s response, both kept for audit

Offline signing is the practical difference. When the line drops, systems that sign on the server stop issuing legal invoices. Wameed signs on the device — so the selling continues and every invoice is still valid.

Where this stops

  • The automatic sweep covers pending and rejected invoices only. An invoice carrying a warning, or one a person has excluded from submission, is never sent automatically — that exclusion is a human decision and stays one.

We write this here because finding it out during implementation is far worse than reading it now.

Related features

All features
  • The till

    A complete sale with no internet — ZATCA signing and printing included

    18 capabilitiesSee the detail

  • Plan: Professional

    General ledger

    Real double-entry, posted from yesterday’s sales on its own

    11 capabilitiesSee the detail

  • Offline mode & sync

    The queue is the truth until it is acknowledged — no sale is lost in an outage

    9 capabilitiesSee the detail

  • Security & data protection

    Card data is never stored, backups are encrypted, and every security event is logged

    10 capabilitiesSee the detail

See it on your shop

Thirty minutes on your products, your tax setup and your hardware — not a slide deck.