Skip to content Skip to footer

ZATCA E-Invoicing Integration in RivDesktop: How Phase 2 Fatoora Integration Works, Step by Step

As the Phase 2 e-invoicing integration waves expand, every business is asking the same question: how do my invoices reach the Zakat, Tax and Customs Authority (ZATCA) without complexity? In RivDesktop, ZATCA e-invoicing integration with the Fatoora platform is built into the system itself and covers everything from device onboarding to tracking the last rejected invoice. This guide explains how it works, step by step.

1. Before integration: correct business details

The system validates the seller’s details before any onboarding: business name, VAT number (15 digits, starting and ending with 3), commercial registration, building number, street, district, city, and the 5-digit postal code. Any missing item is flagged before you start, so you don’t discover it after an invoice is rejected.

2. Device onboarding with OTP

From File Options → Tax → Integration Settings (ZATCA), you choose the environment (simulation or production) and enter the OTP from the Fatoora portal. The system then handles the rest automatically:

  • Generating the keys and the certificate signing request (CSR).
  • Obtaining the compliance certificate.
  • Running 6 compliance checks: invoice, credit note and debit note, for both simplified and standard tax invoices.
  • Obtaining and saving the production certificate.

To protect you from mistakes, the integration status indicator turns red if the selected environment does not match the actual certificate.

3. Simplified or standard? The system decides

The cashier or accountant doesn’t need to choose the invoice type. If the customer has a valid Saudi VAT number, the invoice is treated as a standard tax invoice (B2B) that goes through clearance; otherwise it is treated as a simplified invoice submitted via reporting. Sales returns become a credit note linked to the original invoice.

You can also specify which sales invoice types are integrated: invoice, credit note, debit note, or exclude a type from integration.

4. Exemptions and zero rating

The system supports the approved exemption codes per item or customer, including: export of goods, export of services, international transport, qualifying medicines and medical equipment, qualifying metals, financial services, life insurance, real estate, and out-of-scope supplies.

5. Signing, QR and XML at the moment of saving

When an invoice is posted, the system generates a digitally signed XML (UBL) file and a QR code ready to print immediately, and it maintains the invoice counter (ICV) and the hash chain (PIH) safely even if you have more than one cashier device running at the same time.

Before submission, it validates mandatory fields locally, such as the buyer’s name, VAT number and national address on a standard tax invoice, and the original invoice reference on notes.

6. Three submission modes

Mode When it suits you
Automatic on posting The invoice is sent in the background after posting, with a retry every minute for pending invoices.
Scheduled All pending invoices are sent once a day at the hour you set.
Manual You send them yourself from the integration report after review.

You control the number of resubmission attempts and the interval between them, as well as the submission start date, so old invoices that predate the integration are not sent.

7. Integration and posting report: every invoice and its status

The report lists the period’s invoices with the status of each one:

  • Not sent.
  • Signed, awaiting submission.
  • Pending (server not responding).
  • Rejected, with the rejection reason translated into clear language.
  • Accepted via reporting.
  • Accepted via clearance.

From the same screen you can send the selected invoices, send all pending ones, validate only without sending, or export the XML. For a cleared standard tax invoice, the file and QR code stamped by ZATCA replace the local copy.

8. A notification bell that doesn’t forget

The notification bell on the main screen shows the number of unsent, pending or rejected invoices, and a single click opens the integration report. No invoice slips through without follow-up.

Is your business in the next wave?

ZATCA has announced Wave 25, which covers businesses whose taxable revenue exceeded SAR 187,500, with integration starting on 1 February 2027. Read the Wave 25 guide, and for the rest of the system’s modules read the RivDesktop guide.

FAQ

Is RivDesktop integrated with the Fatoora platform for Phase 2?

Yes. It onboards the device with an OTP, signs every invoice, generates the QR and XML, and submits it for clearance or reporting according to its type.

How does the system decide whether an invoice is simplified or standard?

Automatically: if the customer has a valid Saudi VAT number, it is a standard tax invoice (clearance); otherwise it is simplified (reporting).

What happens if an invoice is rejected?

It appears in the integration report with a Rejected status and the rejection reason translated, its count shows in the notification bell, and it is reprocessed in the next submission after correction.

Does the integration work with more than one cashier device?

Yes, the system maintains the invoice counter and hash chain safely across devices.

Book a demo: 📲 +966 55 200 7190 · ✉️ Info@riv-erp.com

See Riv-ERP in action

Two editions: RivDesktop on your own server, or Riv-ERP Cloud on Oracle Cloud.

Book a demo
★★★★★5.028 Google reviews