ERP & Business Systems
ZATCA compliance your ERP handles on its own
Every sales invoice has to reach ZATCA in the right XML format, signed and cleared, before it reaches your customer. We connect that requirement straight into the ERP you already run, so finance stops copying numbers into a separate portal.
2 to 4
weeks to a working integration
4
ERPs supported: Odoo, Dynamics, SAP, Zoho
0
invoices typed twice
The direct answer
ZATCA e-invoicing integration connects your ERP directly to the Zakat, Tax and Customs Authority's e-invoicing platform, so every invoice is generated, stamped and reported in the required format without anyone touching a separate portal. It's built for Saudi companies on Odoo, Dynamics 365, SAP or Zoho who are past Phase 1 (generation) and need Phase 2 (integration and live reporting) working inside the system finance already uses.

What this removes.
Two systems, one invoice
Today
Finance issues the invoice in the ERP, then re-enters the same data into a separate e-invoicing tool to get it cleared.
With the system
The ERP generates the compliant XML and sends it for clearance the moment the invoice is confirmed, once.
Rejected invoices go unnoticed
Today
A ZATCA rejection sits in an inbox for days before anyone in finance sees it and fixes the underlying record.
With the system
Rejections flow back into the ERP against the original invoice, so the person who issued it sees the fix needed right away.
Credit notes break the chain
Today
Credit and debit notes get raised manually and don't always carry the reference back to the original cleared invoice.
With the system
Credit and debit notes inherit the original invoice reference automatically and follow the same clearance path.
Audit season scramble
Today
Proving which invoices cleared, which failed and why means pulling records from two systems by hand.
With the system
Clearance status, QR codes and cryptographic stamps live on the invoice record itself, ready for any audit.
What lands in your hands.
XML generation and mapping
Your ERP's invoice fields mapped to ZATCA's UBL 2.1 schema, including VAT breakdowns and buyer details.
Cryptographic stamping and QR codes
Invoices signed with the required cryptographic stamp and QR code before they leave the ERP.
Clearance and reporting connection
Direct API connection to ZATCA's platform for real-time clearance (B2B) or simplified reporting (B2C).
Credit and debit note handling
Adjustments carry the original invoice reference automatically and clear through the same path.
Rejection and error routing
A ZATCA rejection routes back to the original invoice inside the ERP with the reason attached.
Bilingual invoice templates
Arabic and English invoice layouts that meet ZATCA's field requirements without a second template to maintain.
Systems and platforms we work with
- Odoo
- SAP
- Dynamics 365
- Oracle
- Zoho
- HubSpot
- Salesforce

Five stages. You sign off every one.
Read each stage as a small contract: what we need from you, what lands in your hands, and the sentence that has to be true before we move on.
- System and compliance audit3 to 5 days
- XML mapping and stamping build1 to 2 weeks
- Clearance API connection3 to 5 days
- Parallel run on live invoices1 to 2 weeks
- Live operation and supportongoing
System and compliance audit
3 to 5 days
We check which ERP and version you run, your current invoice fields against ZATCA's requirements, and whether you have completed Phase 1 onboarding.
- Grant read access to your ERP invoice module
- Share your current ZATCA onboarding status
- A gap report against ZATCA field requirements
- A confirmed integration approach for your ERP
We move on when the gaps between your current invoices and ZATCA's requirements are documented and agreed.
XML mapping and stamping build
1 to 2 weeks
We build the mapping from your ERP's invoice data to the ZATCA XML schema and wire in cryptographic stamping and QR generation.
- Answer questions on VAT categories and edge cases
- Provide a test environment for the build
- Working XML generation from real invoice data
- Stamped, QR-coded invoices in test
We move on when a sample batch of your real invoices generates valid, correctly signed XML.
Clearance API connection
3 to 5 days
We connect the ERP to ZATCA's clearance and reporting endpoints and build the rejection-handling path back into your invoice records.
- Confirm your ZATCA API credentials
- Review the rejection-handling workflow
- A live connection to ZATCA's sandbox environment
- Rejections routed back to the source invoice
We move on when invoices clear or get correctly rejected through the sandbox with the right reason surfaced.
Parallel run on live invoices
1 to 2 weeks
The integration runs alongside your current process on real invoices, so you can confirm clearance rates and timing before switching over fully.
- Keep issuing invoices as normal
- Flag any invoice that doesn't clear as expected
- Daily clearance checks during the run
- Fixes for anything the parallel run surfaces
We move on when a full week of live invoices clears correctly with no unresolved rejections.
Live operation and support
ongoing
The integration goes live for production invoicing. We monitor clearance rates and stay available if ZATCA's requirements or your ERP setup change.
- Issue invoices through the ERP as normal
- Flag any ERP changes that touch invoicing
- Ongoing monitoring of clearance and rejections
- A direct line to us for support
We move on when production invoicing runs through the integration with monitoring and support in place.
Asked before signing.
What determines the cost of a ZATCA integration project?
Cost tracks which ERP you run, how customized your current invoice module already is, and whether you're integrating one entity or several with different VAT registrations. A standard Odoo or Zoho connection costs less than a custom SAP build with multiple legal entities. We scope and price after seeing your setup, not before.
We've already done Phase 1. What does this add?
Phase 1 means you can generate a compliant invoice. Phase 2 means that invoice gets cryptographically stamped, sent to ZATCA for clearance or reporting, and the response comes back into your system automatically. If you're still exporting invoices to a separate tool or portal, you haven't finished Phase 2 yet, and that's what this integration closes.
Does this work with Arabic invoices and our existing ERP customizations?
Yes. Arabic invoice fields are standard, not an add-on, and we build the ZATCA mapping around your existing ERP customizations rather than asking you to strip them out first. If you've heavily customized your invoice module, we account for that during the audit stage.
Where does our invoice and VAT data go, and who can see it?
Invoice data flows only between your ERP and ZATCA's official endpoints, the same channel your Phase 1 setup already uses. We don't route your data through a separate outside system, and nothing we build trains an external model on your records. Access follows the permissions already set up in your ERP.
Stop treating ZATCA as a second system
Tell us which ERP you run and where you are in ZATCA onboarding, and we'll scope what the integration looks like for your business, no commitment before that.