Zum Hauptinhalt springen
NetSuiteSaaS Tools

Saudi Arabia E-Invoicing Compliance (ZATCA Phase 2)

A NetSuite SuiteScript 2.1 solution for ZATCA Phase 2 clearance and reporting,

built to order for your account after a scoping call and fixed quote — nothing is pre-packaged or instantly downloadable.

Auf Bestellung

Was ist Saudi Arabia E-Invoicing Compliance (ZATCA Phase 2)?

A NetSuite SuiteScript 2.1 solution for ZATCA Phase 2 clearance and reporting, built to order for your account after a scoping call and fixed quote — nothing is pre-packaged or instantly downloadable. Built to order by ECOSIRE for Oracle NetSuite (build-to-order) — indicative price from $1499.00 USD; request a quote for a scoped proposal.

Saudi Arabia E-Invoicing Compliance (ZATCA Phase 2) — A NetSuite SuiteScript 2

What we build

  • User Event script on Invoice, Cash Sale and Credit Memo records that generates the ZATCA UBL 2.1 XML payload at approval, mapping the transaction line sublist and tax detail sublist to the required elements
  • Invoice hash chaining and Invoice Counter Value stored on a dedicated custom record, so the document sequence is reconstructable and auditable per device
  • TLV/base64 QR code generation applied to Advanced PDF/HTML templates for both standard and simplified invoices
  • Cryptographic stamping module that signs the XML using the CSID issued to your device, with compliance and production credentials held on a restricted-permission custom record
  • RESTlet-driven clearance flow for standard tax invoices, with the ZATCA response, warnings and cleared XML written back to the transaction
  • Map/Reduce script that batches simplified-invoice reporting inside the 24-hour window, with retry, exponential backoff and per-stage error capture
  • Onboarding Suitelet that submits the CSR and stores the returned compliance and production certificates without exposing them to standard roles
  • Scheduled script that monitors certificate expiry and raises a NetSuite notification before the CSID lapses
  • Tax treatment mapping custom record linking NetSuite tax codes to ZATCA category codes and exemption reasons, so zero-rated and exempt handling is configuration not code
  • OneWorld-aware subsidiary configuration: seller VAT number, CR number, address and device registration held per subsidiary, leaving non-KSA subsidiaries untouched
  • Custom segment and saved search coverage so cleared, reported, rejected and pending documents are reportable alongside your normal financial reporting
  • Suitelet monitoring dashboard with resubmission action on rejected documents, plus role and permission setup so only authorised users can retransmit

Über dieses Produkt

The problem

ZATCA Phase 2 does not let you keep printing invoices out of NetSuite the way you always have. Standard tax invoices must be cleared with the authority before they reach the buyer, and simplified invoices must be reported within 24 hours of issuance. Each document has to be a UBL 2.1 XML file carrying a cryptographic stamp, an invoice hash chained to the previous document, a UUID, and a TLV-encoded QR code. Your device has to be onboarded to the Fatoora portal, hold a valid compliance certificate (CSID), and renew it before it expires.

Native NetSuite gives you the invoice record, the tax engine, the subsidiary structure and the print templates — but it does not generate ZATCA UBL, it does not sign anything, it does not talk to the Fatoora APIs, and it has no concept of an invoice counter value or a previous-invoice hash. Finance teams end up re-keying cleared documents into a portal, or exporting to spreadsheets and losing the audit trail entirely. Once a document fails clearance, nothing in stock NetSuite tells you which invoice broke the chain or how to resubmit it.

What ECOSIRE builds

We build a NetSuite customization — SuiteScript 2.1, SuiteFlow, custom records and saved searches — that lives inside your NetSuite account and turns invoice posting into a compliant e-invoicing lifecycle. This is not a shrink-wrapped product you download. We scope it against your chart of accounts, subsidiaries and item setup, quote a fixed price, then build and deploy it.

Document generation

A User Event script on Invoice, Cash Sale and Credit Memo records assembles the ZATCA UBL 2.1 payload at approval. It maps NetSuite fields to the required XML: seller VAT registration and CR number from the subsidiary, buyer identification from the customer record and its address subrecord, line-level item, quantity, unit price, discount and tax category from the transaction lines, and the tax breakdown from the NetSuite tax detail sublist. Zero-rated, exempt and out-of-scope treatments are driven by a mapping table on a custom record, so tax code changes are configuration, not code.

Cryptographic stamping and hashing

A supporting module produces the invoice hash, chains it to the previous document's hash per counter, generates the UUID, builds the TLV/base64 QR payload and applies the digital signature using the certificate issued to your device. The counter value and the hash chain are stored on a custom record so the sequence is reconstructable and auditable, not held in memory.

Clearance and reporting transmission

RESTlet and Scheduled/Map-Reduce scripts handle the outbound calls. Standard invoices go through the clearance flow synchronously at approval; simplified invoices are queued and reported within the 24-hour window by a Map/Reduce job that batches, retries with backoff, and records every request and response. HTTP failures, validation rejections and warnings are all captured — a warning-cleared document is still cleared, and the solution treats it that way rather than blocking your billing.

Onboarding, certificates and renewal

We build the onboarding utility that submits the CSR, stores the compliance and production credentials in a restricted custom record, and a scheduled reminder that flags certificate expiry before it stops your invoicing.

Operational visibility

A custom Suitelet dashboard plus saved searches show cleared, reported, rejected and pending documents with their ZATCA response codes. Rejected documents can be corrected and resubmitted from the record itself. The cleared XML and the QR-bearing PDF/A-3 output are stored on the transaction as file cabinet attachments, so the statutory copy is the one the customer received.

Who this is for

Businesses running NetSuite that are in scope for a ZATCA Phase 2 wave — whether that is a single Saudi entity or a OneWorld account where the KSA subsidiary needs compliance while other subsidiaries are untouched. It suits companies with real transaction volume, mixed B2B and B2C flows, or multiple NetSuite roles issuing invoices, where a manual portal workaround is not sustainable.

It is a poor fit if you issue a handful of invoices a month and are content keying them into the Fatoora portal by hand.

How delivery works

1. Scoping call. We walk your NetSuite account: subsidiaries, tax codes, item types, transaction forms, the roles that approve invoices, and your current Fatoora onboarding status. We confirm which document types are in scope. 2. Fixed quote. You get a written scope and a fixed price before any code is written. Changes after that are quoted separately, not billed silently. 3. Build. We develop against your sandbox as an SDF project. You see progress on real records, not slideware. Typical lead time is one working week depending on scope and how fast sandbox access and test data arrive. 4. Install in sandbox, then production. We deploy the unmanaged bundle/SDF project to your sandbox, run clearance and reporting against the ZATCA simulation environment with your own data, and only then promote to production and switch to the production endpoint. 5. Support. A defined support window after go-live covers defects, ZATCA response-code questions and configuration adjustments.

You own the resulting SuiteScript and customizations outright. There is no runtime lock, no per-invoice fee to us, and no obligation to keep us engaged after the support window.

What we do not claim

We do not issue your certificates — ZATCA does. We do not guarantee an authority will never reject a document; we build the validation, error surfacing and resubmission path so that when it happens you can see why and fix it. Regulatory specifications change, and we tell you plainly when a change is inside your support window and when it is a new scope.

How delivery works

  1. 1

    Scoping call

    A short call to confirm the workflow, your platform version and where the integration boundaries sit.

  2. 2

    Fixed quote

    You receive a written scope and a fixed price. Nothing is built until you approve it.

  3. 3

    Build and test

    We develop against a copy of your configuration and test it there. Typically two to four weeks.

  4. 4

    Install and support

    Wir installieren auf Ihrer Instanz, übergeben den Quellcode und schließen zwei Wochen Go-live-Support ein. Fehler im von uns gelieferten Code beheben wir kostenlos.

Was Sie bekommen

  • Complete SuiteScript 2.1 source (User Event, Map/Reduce, Scheduled, RESTlet, Suitelet and library modules) delivered as an SDF project you own
  • Unmanaged bundle or SDF deployment installed in your sandbox account and then promoted to production
  • Custom records, custom fields, custom segments, roles and permission configuration created and documented in your account
  • Advanced PDF/HTML invoice templates carrying the compliant QR code for standard and simplified documents
  • Configuration workbook covering subsidiary registration details, tax code to ZATCA category mapping, and endpoint settings
  • Written administrator and finance-user guide plus a live handover training session covering onboarding, monitoring and resubmission
  • Defined post-go-live support window for defects, ZATCA response-code triage and configuration adjustments

Für wen das ist

Financial Controller, Saudi entity

Owns the VAT return and the statutory invoice archive, and is personally exposed if documents are not cleared or reported on time. Needs cleared XML stored against every transaction in NetSuite and a single view of anything that failed, rather than reconciling a portal export against the general ledger.

NetSuite Administrator

Is asked to make ZATCA work without breaking custom transaction forms, approval workflows or the existing print templates. Gets SuiteScript deployed to sandbox first, source they can read and maintain, and a configuration layer that keeps tax mapping out of the code.

Regional Finance Director, OneWorld group

Runs several subsidiaries where only the KSA entity is in scope and cannot accept a change that disturbs consolidated reporting elsewhere. Gets subsidiary-scoped configuration so compliance applies where it must and nowhere else, with saved searches that roll into existing group reporting.

Wie Saudi Arabia E-Invoicing Compliance (ZATCA Phase 2) im Vergleich abschneidet

KriteriumECOSIREBenutzerdefinierter BuildKonkurrentNetSuite nativ
ZATCA-compliant UBL 2.1 XML generated from NetSuite transactionsIm Lieferumfang enthaltenTeilweise UnterstützungIm Lieferumfang enthaltenNicht im Lieferumfang enthalten
Cryptographic stamping and invoice hash chaining stored auditably in NetSuiteIm Lieferumfang enthaltenTeilweise UnterstützungIm Lieferumfang enthaltenNicht im Lieferumfang enthalten
Direct clearance and 24-hour reporting transmission from the ERPIm Lieferumfang enthaltenTeilweise UnterstützungIm Lieferumfang enthaltenNicht im Lieferumfang enthalten
You own the SuiteScript source with no per-invoice fee to the vendorIm Lieferumfang enthaltenIm Lieferumfang enthaltenNicht im Lieferumfang enthaltenTeilweise Unterstützung
Subsidiary-scoped configuration in OneWorld leaving other entities untouchedIm Lieferumfang enthaltenTeilweise UnterstützungTeilweise UnterstützungTeilweise Unterstützung
Rejection triage and in-record resubmission workflowIm Lieferumfang enthaltenTeilweise UnterstützungTeilweise UnterstützungNicht im Lieferumfang enthalten
Fixed-price scoped build against your own chart of accounts and tax codesIm Lieferumfang enthaltenTeilweise UnterstützungNicht im Lieferumfang enthaltenNicht im Lieferumfang enthalten
Available as an instant download with no build phaseNicht im Lieferumfang enthaltenNicht im Lieferumfang enthaltenTeilweise UnterstützungNicht im Lieferumfang enthalten

Häufig gestellte Fragen

Is this something I can download and install today?
No. Every ECOSIRE NetSuite app is built to order. After a scoping call we issue a fixed quote, then build against your sandbox. Typical lead time is one working week from approved quote to sandbox install, depending on scope, how many document types are involved, and how quickly sandbox access and representative test data are provided.
Which NetSuite editions and versions do you support?
We build for current NetSuite releases using SuiteScript 2.1, which requires SuiteCloud Development features enabled in your account. Both standard NetSuite and OneWorld are supported — OneWorld is where the subsidiary-scoped configuration matters most. You need a sandbox or Release Preview account for the build phase, and administrator access to deploy the SDF project. We are not affiliated with, endorsed by, or certified by Oracle or NetSuite.
Do you obtain the ZATCA certificate for us?
No — certificates are issued by ZATCA to your registered device against your credentials. We build and run the onboarding utility that generates and submits the CSR and stores what the authority returns, and we walk your team through it on your sandbox first. The Fatoora portal relationship stays yours.
What happens when ZATCA rejects a document?
The rejection code and message are written back to the NetSuite transaction and surfaced on the monitoring Suitelet and saved searches. The document is not silently dropped. Once the underlying data is corrected, an authorised role can resubmit from the record. Warning-level clearances are recorded as cleared, because they are — we do not block your billing on a warning.
How do you handle credit memos, debit notes and corrections?
Credit and debit documents are generated with the correct ZATCA document type code and the reference to the original invoice, and they go through the same clearance or reporting path as the document they correct. The exact set of correction scenarios in scope is confirmed during scoping, because the right answer depends on how your team currently issues them in NetSuite.
What happens if the ZATCA specification changes after go-live?
We tell you plainly whether the change is a defect fix covered by your support window or new scope that needs a quote. Specification updates that require new fields, new document types or a new signing approach are new scope. Because you own the SuiteScript outright, you are also free to have your own team or another developer make the change.

Angebot anfordern

Beschreiben Sie Ihre Anforderungen an Saudi Arabia E-Invoicing Compliance, und wir senden Ihnen Preise, Lizenzoptionen und ein maßgeschneidertes Angebot – in der Regel innerhalb eines Werktags.

Keine Zahlung jetzt. Dies sendet eine Angebotsanfrage an unser Team – wir melden uns per E-Mail mit Preisen und nächsten Schritten.

Passt gut zu

Sage to NetSuite Migration Toolkit
Auf Bestellung

Sage to NetSuite Migration Toolkit

A build-to-order toolkit that extracts, maps, stages and loads Sage master data, dimensions and multi-year transactional history into NetSuite, with reconciliation reports at every step. Built for your chart of accounts after a fixed quote.

Ab $999.00Einstiegspreis – Angebot nach Ihrem Umfang
View specification
Sales Tax & VAT Determination Engine
Auf Bestellung

Sales Tax & VAT Determination Engine

A NetSuite tax determination engine built to order for your account: jurisdiction rate logic, nexus threshold monitoring, exemption certificates and filing summaries. Scoped, quoted, then built.

Ab $1499.00Einstiegspreis – Angebot nach Ihrem Umfang
View specification
Singapore InvoiceNow & Peppol Access
Auf Bestellung

Singapore InvoiceNow & Peppol Access

A build-to-order NetSuite SuiteApp that turns your invoices and credit memos into Peppol BIS Billing 3.0 documents and exchanges them through your Access Point. ECOSIRE builds it for your account after a scoped quote.

Ab $999.00Einstiegspreis – Angebot nach Ihrem Umfang
View specification
Subscription Billing & Revenue Recognition Suite
Auf Bestellung

Subscription Billing & Revenue Recognition Suite

A NetSuite subscription billing and ASC 606 revenue recognition suite built to order for your account — usage rating, mid-term amendments and multi-element allocation, scoped and quoted before we build.

Ab $1499.00Einstiegspreis – Angebot nach Ihrem Umfang
View specification