How to Connect Zid to Odoo, with ZATCA E-Invoicing

GuidesSeptember 19, 20265 min read

Connecting Zid to Odoo keeps your store and your ERP in step: orders become sales orders, stock comes back from Odoo, and — for Saudi businesses — every invoice can be submitted to ZATCA without anyone touching it. This guide covers what the integration should sync, how setup works, and exactly who handles e-invoicing, which is where most projects go wrong.

Short answer: install the TECFY Odoo Connector from the Zid App Market, connect your Odoo, confirm the automatic setup, assign which Zid order statuses create sales orders and invoices, and test one order. For ZATCA, configure e-invoicing in Odoo 19.3 or later, then turn on automatic submission in the connector.

What a Zid–Odoo integration should sync

DataDirectionWhat to check
ProductsZid ↔ OdooNew products are added to Odoo and kept updated
Stock quantitiesOdoo → ZidStock is only ever adjusted in Odoo, never in Zid
CustomersZid → OdooReceivable and payable accounts are set for your company
OrdersZid → Odoo sales ordersWhich Zid status creates the order, the invoice and the payment
Invoices, credit notes, returnsCreated in OdooSubmitted to ZATCA through Odoo when enabled

The same rules apply as with any e-commerce integration: Odoo should be the single source of stock, and every financial document should be created in Odoo so your books and your ZATCA submissions come from one place. If your Odoo has several companies or warehouses, make sure the connector supports them — the TECFY connector does both from a single Zid connection.

Setting up the connection, step by step

  1. Install the app from the Zid App Market. Find the TECFY Odoo Connector in your store's control panel, choose Add app and approve the permissions it requests: reading orders, products and customers, and updating quantities (installing the app).
  2. Choose a dashboard password. It protects the Integration Dashboard only and has nothing to do with your Zid password. A WhatsApp welcome message to your registered number confirms the installation worked.
  3. Connect Odoo with your Odoo address, database, a dedicated Odoo user and your Odoo version (Odoo connection details). If you prefer, TECFY's integration team configures the connection with you.
  4. Let the automatic setup run. Once the connection works, the connector subscribes to the eight Zid events it needs, picks default accounts for your company, enables product sync and pulls your latest 50 products and 50 orders so you have real data to check. Review the result — defaults are sensible, not necessarily right for your business (what happens after you save).
  5. Choose your hosting type. On Odoo.sh or a self-hosted Odoo, quantities sync through TECFY's addon; on Odoo Online, where addons are not allowed, the connector creates the model, fields and scheduled jobs it needs itself (Odoo.sh or Odoo Online).
  6. Assign order statuses — which Zid status creates the sales order, which creates the invoice, and so on. If you use cash on delivery, fill in its status lists too: left empty, COD orders do nothing and show no error.
  7. Test one order and follow it from Zid Events to the Orders screen to a sales order in Odoo, then confirm the error screens are empty (before you go live).

ZATCA e-invoicing with Zid and Odoo

E-invoicing is where responsibilities are most often misunderstood, so it is worth being precise.

  • Odoo does the e-invoicing. It signs each invoice, submits it to ZATCA and receives the response. The certificate, your establishment details and the ZATCA connection are all configured in Odoo, and the connector configures none of them.
  • The connector triggers and tracks it. After it posts an invoice in Odoo it asks Odoo to submit it, does the same for each credit note created on a cancellation or return, and then reads the status back (how e-invoicing works with the connector).

Automatic submission needs Odoo 19.3 or later and the Automatically Send Invoices to ZATCA switch on the connector's Accounting tab. Upgrading alone is not enough: with the switch off, invoices are created as normal but not submitted. Set the ZATCA reasons used for credit notes on the same tab, because ZATCA requires a reason on every credit note (turning automatic submission on).

Submit one invoice by hand from Odoo before you enable automatic submission. If the ZATCA setup in Odoo has a problem, you find it on one invoice instead of dozens.

Why ZATCA rejects invoices

When a document is not accepted, the connector lists it on the ZATCA invoice or credit-note error screen with the authority's own message. The usual causes are:

  • Incomplete establishment details in Odoo, such as the VAT number or address.
  • Incomplete customer details on business (B2B) invoices.
  • An invalid or expired certificate.
  • Tax amounts that don't add up the way ZATCA expects.
  • For credit notes: no ZATCA reason set, or an original invoice that was never accepted. Clear invoice errors first — many credit-note errors disappear once the original invoice is accepted.

Fix the cause in Odoo, then press Retry on the error screen (ZATCA invoice errors).

Choosing a Zid–Odoo connector

Before you commit, check that the connector works with your Odoo hosting and version, handles multiple companies and warehouses if you have them, creates invoices, payments, cancellations and returns rather than just sales orders, and supports ZATCA submission through Odoo. The TECFY Odoo Connector does all of this, with guides in Arabic and English. Plans start at 60 SAR a month with a 7-day free trial, and TECFY is a certified Odoo Silver Partner.

See the Zid Odoo Connector

If something stops syncing

  • Nothing is syncing at all — work through the checks in order: the red token banner, the Zid Events screen, the webhook subscription (it must read 8 of 8), the Odoo connection, and finally the Status tab (nothing is syncing).
  • The connector lost access to your store — reauthorize the app from the Zid App Market (reauthorize the app).

Also selling on Salla? See how to connect Salla to Odoo. Planning your Odoo budget? Read what Odoo really costs in Saudi Arabia.

Frequently asked questions

Can I connect Zid to Odoo Online?

Yes. The TECFY Odoo Connector for Zid runs outside Odoo, so it works with Odoo Online as well as Odoo.sh, self-hosted Enterprise and Community. On Odoo Online it sets up what it needs through Odoo's standard interface instead of installing an addon.

Who submits my invoices to ZATCA — Zid, the connector or Odoo?

Odoo. Odoo signs each invoice and submits it to ZATCA using the certificate and establishment details you configure there. The connector asks Odoo to submit the invoices and credit notes it creates, reads the result and shows anything that was not accepted.

Which Odoo version do I need for automatic ZATCA submission?

Odoo 19.3 or later, with the Automatically Send Invoices to ZATCA switch turned on in the connector's Accounting tab. On earlier versions the connector still creates invoices in Odoo but does not submit them for you.

Why does ZATCA reject an invoice?

Usually incomplete establishment details in Odoo (VAT number or address), incomplete customer details on business invoices, an invalid or expired certificate, or tax amounts that don't add up. Credit notes are also rejected when no ZATCA reason is set, or when their original invoice was never accepted.

What syncs between Zid and Odoo?

Products, stock quantities from Odoo back to Zid, customers, and orders as Odoo sales orders with their invoices, payments, cancellations and returns — across multiple Odoo companies and warehouses.

How much does the Zid Odoo Connector cost?

60 SAR a month (Standard) or 200 SAR a month (Advanced), or 700 and 2,400 SAR a year, excluding 15% VAT. Every plan starts with a 7-day free trial.

Ready to get started with TECFY?

Get in touch

Related articles

to navigate