← Blog Guides 6 min read · 7 October 2026

ZATCA e-invoicing for Shopify and WooCommerce stores: direct answers

A dark cover card with a shopping bag icon and the words: ZATCA e-invoicing for Shopify and WooCommerce, direct answers
Every paid order becomes a signed e-invoice reported to ZATCA; every refund becomes a credit note.

These are the questions Saudi store owners ask most about Phase 2 e-invoicing on Shopify and WooCommerce, answered directly. Each answer stands on its own. For the full walk-through of a store's documents, read e-invoicing for online stores in Saudi Arabia.

Shopify

Every paid order becomes a Phase 2 e-invoice. Install the ZATCA Tools app from the Shopify App Store and connect your business to Fatoora once with an OTP. Each paid order then becomes a signed simplified invoice, reported to ZATCA within seconds. A refund becomes a credit note for the refunded amount. The app reads orders only. Setup details are in the Shopify guide.

WooCommerce

A free plugin does the same for WordPress stores. It needs WordPress 6.0 or later and VAT enabled at 15%. Orders are invoiced when marked paid or completed, whatever the payment method. Refunds and cancellations become credit notes, and edits to an invoiced order issue the difference. Business buyers can enter their VAT number, CR number and short national address at checkout. Setup details are in the WooCommerce guide.

What each invoice carries

Each invoice is a Phase 2 document: an XML file signed with your business's own certificate, a QR code, a counter and the hash of the document before it. A simplified invoice for a consumer goes to the customer straight away and is reported to ZATCA within the 24-hour window; in practice it is reported within seconds of payment. A tax invoice for a business buyer is cleared by ZATCA before it reaches the buyer. Both are kept for you, with their PDF, for the six years the archive requires.

Tips, gift cards and orders shipped abroad on Shopify

Not every line of a Shopify order is a taxable sale. A tip added by hand with no tax, and a gift card sold, appear on the invoice as out of scope, so the invoice's VAT matches what Shopify collected. An order shipped to a customer outside Saudi Arabia that was charged no VAT is invoiced as a zero-rated export with its exemption reason. The treatment is read from the order, never guessed.

Custom stores and your own systems

If you sell through your own software, the ZATCA Tools API issues an invoice from one JSON request, and the open-source Python SDK signs and sends from inside your application.

Before you connect

  • Your VAT number, CR number and national address as registered with ZATCA. The district is the field most often missing.
  • A one-time code from the Fatoora portal. It works once and expires after an hour.
  • Check whether your business is already required to integrate with the Phase 2 check: revenue above SAR 187,500 in any of 2022 to 2025 puts you in Group 25, with an integration deadline of 1 February 2027.

Start here: one week free, no payment, from the day you connect, then very competitive plans: 49 SAR a month for Growth and 149 for Business, on a smooth, fast system that signs each invoice and sends it to ZATCA in seconds.

Frequently asked questions

How do I connect my Shopify store to ZATCA e-invoicing? +
Install the ZATCA Tools app from the Shopify App Store, then connect your business to the Fatoora platform once with a one-time code (OTP) from the Fatoora portal. From then on every paid order becomes a signed Phase 2 simplified invoice, reported to ZATCA within seconds of payment, with no manual step.
Is there a ZATCA e-invoicing plugin for WooCommerce? +
Yes. ZATCA Tools publishes a free, open-source (GPL) WordPress plugin. It needs WordPress 6.0 or later and VAT enabled in WooCommerce at 15%. Each order marked paid or completed, whatever the payment method, becomes a signed e-invoice reported to ZATCA, and the invoice number and PDF link appear on the thank-you page, in the order email and in the customer account.
What happens when I refund an order? +
A refund becomes a credit note linked to the order's invoice, for the amount actually refunded, on both Shopify and WooCommerce. On WooCommerce, cancelling an invoiced order issues a full credit note, and editing it issues the difference. A reported invoice is never deleted or edited.
What about cash on delivery? +
On Shopify the invoice is issued when the order is marked paid. On WooCommerce a cash-on-delivery order is invoiced when it moves to Processing; if the customer then refuses the parcel, mark the order Cancelled, not Failed, so a credit note follows.
My prices include VAT. Will the invoice total match what the customer paid? +
Yes. If the store is set to prices including tax, the VAT is extracted from the price; otherwise 15% is added. Either way the invoice total equals what the customer paid. Discounts show on the line they applied to and shipping is a line of its own.
A business customer wants a tax invoice with their VAT number. Is that possible? +
Yes. On WooCommerce the checkout offers a business option that asks for the VAT number, the CR number and the short national address, and a tax invoice is issued once the national address is complete. On Shopify the buyer's VAT number is captured from the order, and a tax invoice is issued for a customer approved as a business with a complete national address, or for a company order through Shopify B2B. Under SAR 1,000, Article 53 allows a simplified invoice for any buyer, and it carries the buyer's VAT number.
Does the app change my checkout or need write access to my store? +
No. The Shopify app reads orders only and has no write access to your store, products or orders. The checkout does not change; after the invoice is issued, a PDF copy goes to the customer's email when the order has one.
Which orders are not invoiced automatically? +
Test orders through Shopify's Bogus Gateway are ignored on purpose. On WooCommerce, an order not charged a uniform 15% VAT, for example with tax disabled, exempt items or another rate, is not invoiced automatically; the reason shows on the order so you can issue it from the platform.
Do I need an accounting program as well? +
Not for e-invoicing. The integration issues, signs and reports the invoices and keeps them; an accounting program is a separate choice for ledgers, inventory or payroll.
How much does it cost? +
One week free, no payment, from the day you connect, then very competitive plans: 49 SAR a month for Growth and 149 for Business.
I run a custom store or my own system, not Shopify or WooCommerce. What then? +
Use the ZATCA Tools REST API: one JSON request per invoice, documented in English at zatcatools.com/docs/api. For a Python system there is also the open-source ZATCA Tools SDK, which signs and sends to ZATCA from inside your application.
Ready to connect your business?

Connecting is free and takes under five minutes.

Start for free