Store integrations

Connect your Shopify store to e-invoicing

Five minutes of setup — after that every Paid order in your store automatically becomes a signed simplified invoice, reported to the Zakat, Tax and Customs Authority, with no manual step at all.

How does it work?

When any order in your store is paid, Shopify sends an instant notification to our platform. We turn the order (products, quantities, discounts, shipping) into a Phase 2 compliant simplified tax invoice, sign it with your business certificate and report it to the Authority — all within seconds of payment. You will find the invoice on the Invoices page in our platform, with a QR code ready to share or print.

Paid order in Shopify Signed simplified invoice Reported to ZATCA ✓

Before you start

If you see the "Install via Shopify" button on the settings page, that is the easiest route — your store address and one approval are all it takes, and you skip every manual step below. This guide covers the manual connection with API keys.
  • A ZATCA Tools account connected to the Fatoora platform — finish the connection from the settings page first.
  • Store owner permission (or Manage apps) in the Shopify admin.
  • The store currency is Saudi riyal (SAR) — orders in other currencies are ignored.

Step 1 · Create a custom app in your store

  1. In the Shopify admin open Settings ← Apps and sales channels.
  2. Click Develop apps then Allow custom app development (if you are asked to).
  3. Click Create an app and name it something like ZATCA Tools.

Step 2 · Grant read access to orders

  1. Inside the app open the tab Configuration then Admin API integration ← Configure.
  2. Search for read_orders and enable it — this is the only permission we need.
  3. Save with Save.
We ask for no write permission at all — we cannot change your store, your products or your orders in any way.

Step 3 · Install the app and copy the keys

  1. Open the tab API credentials and click Install app.
  2. Copy Admin API access token — it starts with shpat_ and it is shown once only.
  3. From the same page copy API secret key — we use it to verify that the notifications really do come from your store.

Step 4 · Connect the store in ZATCA Tools

Open Settings → Store connections and click Connect store, then enter:

  • Store domain — in the form my-store.myshopify.com (not the custom domain).
  • Admin API access token and API secret key from the previous step.

When you click "Connect store", we check that the keys are valid and enable order notifications automatically — no manual webhook setup is needed.

Step 5 · Try it with a real order

Create a paid order in your store (or mark an existing order as paid from the Shopify admin), then open the Invoices page in our platform — you will find its invoice issued and reported within seconds. A counter of issued invoices also appears on the store card on the settings page.

Test orders (the Bogus Gateway payment method) are ignored on purpose, and no invoices are issued for them.

Details worth knowing

  • Invoice type: Simplified (B2C) — the correct type for online store orders. It is reported to the Authority within the statutory window (24 hours).
  • VAT: If your store is set to "prices include tax", we separate the VAT out of the price; otherwise we add 15%. Either way, the invoice total matches what the customer actually paid.
  • Discounts and shipping: Cart discounts appear as a discount on the invoice, and shipping fees appear as a separate line.
  • Every invoice draws on your plan's balance — track what is left from your dashboard.
  • Refunds: Any refund in your store issues a credit note automatically linked to the order's invoice, for the amount actually refunded.
  • Business invoices (B2B): Three ways to capture the buyer's VAT number — (1) a ready-made block called "VAT number (ZATCA)" that you drag and drop onto the cart page from Online Store → Customize → Add block; (2) best for your regular customers: save the number once on the customer record (the Note field or a Tag), and every order they place becomes a tax invoice automatically; (3) when you create an order by hand from the admin, type the number in the Notes field. Whenever a valid number and a complete billing address are present (street, city, postal code, and a 4-digit building number inside the address), we issue a Standard tax invoice with immediate clearance — otherwise a simplified one automatically, and you can still issue the tax invoice by hand from the platform.
  • Pausing: From the store card in settings you can stop automatic invoicing and resume it whenever you like, without losing the connection.

Frequently asked questions

Does the customer see anything in my store?

No — the integration is entirely behind the scenes and changes nothing in the buying experience. The invoice is issued in our platform, and you can share or print it from there.

My store uses a custom domain — what do I put as the store address?

Always use the original myshopify.com address — you will find it under Settings ← Domains in the Shopify admin.

What about unpaid orders (cash on delivery)?

The invoice is issued the moment the order is marked paid in Shopify — which is the correct behaviour under the regulations: a simplified tax invoice is issued when the sale is completed.

And do you support other platforms?

Yes — WooCommerce with an official plugin on WordPress, and an API for any other system — tell us which platform you need.

Stuck on any step? Contact us — we will connect your store with you during business hours.