ZATCA simplified invoice reporting in WooCommerce
For consumer sales, ZATCA requires a simplified tax invoice to be reported within 24 hours. Raseedo creates that invoice when a WooCommerce order is paid. It signs the UBL 2.1 XML with your store's certificate, adds a QR code and sends the document to ZATCA in the background. You can continue handling orders while the reporting job runs. This feature is part of the free plugin.
From a paid order to a ZATCA report
Once you have completed onboarding and enabled Issue e-invoices, the plugin follows this sequence for a paid order.
-
The order is paid in WooCommerce. Raseedo prepares a simplified tax invoice based on that order. The invoice is an XML document using UBL 2.1, the format used for ZATCA Phase 2 integration.
-
Raseedo signs the XML using the certificate obtained during Fatoora onboarding. The signature belongs to your store's e-invoicing setup. The plugin keeps the signed document on your site.
-
The invoice receives a QR code. It includes the seller name and VAT number, the date and time, the invoice total and VAT amount, plus the invoice hash and digital signature. These values are held in ZATCA's TLV format.
-
Raseedo adds the invoice counter (ICV) and previous invoice hash (PIH). Each new document follows the prior document in the chain. Documents are created one at a time so two paid checkouts do not produce a broken sequence.
-
A background job, run through Action Scheduler, sends the signed invoice to the Fatoora API. Simplified invoices use reporting: the invoice is issued and then reported to ZATCA. They do not wait for the pre-issue clearance used for B2B standard invoices.
-
Raseedo stores ZATCA's response with the signed XML. If ZATCA rejects a document, its reason appears in the E-invoices tab and in a WooCommerce order note. You can review the response rather than treating every queued document as accepted.
Reporting within 24 hours
The 24-hour limit comes from ZATCA. Raseedo queues reporting as background work so submission does not depend on keeping an admin screen open. This also separates document creation from network communication with the Fatoora API.
If the connection fails or ZATCA has an outage, the plugin retries for hours within that window. A retry does not mean ZATCA has accepted the invoice. Check the E-invoices tab for rejected documents or submissions that remain pending. Site Health also warns when documents have waited too long.
What your customer sees
Your customer gets a bilingual Arabic and English invoice page with the QR code. They can open it using the link from their WooCommerce order page or an order email. Access requires the order key.
The customer page is separate from the technical XML and the response saved on your site. Your accounting record includes the signed document, while the buyer sees a page intended for reading. The QR code carries the Phase 2 hash and signature as well as the seller and invoice amounts.
Refunds and setup
A refund creates a credit note that refers back to the original invoice and records the refund reason. It uses the same document sequence and is reported to ZATCA when the original transaction used a simplified invoice. Read the credit note process for full and partial refunds.
Before issuing invoices, add your seller details and complete onboarding with a six-digit OTP from the Fatoora portal. The setup guide covers the steps needed to connect your WooCommerce store.