Skip to main content
Dynamics 365 Finance & OperationsSaaS Tools

Saudi Arabia ZATCA E-Invoicing Compliance

A build-to-order X++ extension that generates ZATCA-compliant XML invoices from F&O,

applies cryptographic stamps and QR codes, and handles clearance and reporting submissions. Built for your legal entities after a fixed quote.

Built to order

What is Saudi Arabia ZATCA E-Invoicing Compliance?

A build-to-order X++ extension that generates ZATCA-compliant XML invoices from F&O, applies cryptographic stamps and QR codes, and handles clearance and reporting submissions. Built for your legal entities after a fixed quote. Built to order by ECOSIRE for Dynamics 365 F&O (build-to-order) — indicative price from $1499.00 USD; request a quote for a scoped proposal.

Saudi Arabia ZATCA E-Invoicing Compliance — A build-to-order X++ extension that generates ZATCA-compliant XML invoices from F&O, applies cryptographic stamps and QR codes, and handles clearance and reporting submissions

What we build

  • XML invoice document generation from posted records in CustInvoiceJour, CustInvoiceTrans and the tax transaction tables, covering sales order invoices, free text invoices, credit notes, debit notes and project invoices
  • Cryptographic stamping with per-document hashing and previous-document hash chaining, with the counter and chain position tracked per device
  • QR code generation in the required encoded structure, embedded into printed and PDF invoice output through report design extensions
  • Clearance route for standard tax invoices with the authority response and stamp written back onto the invoice record before the document is issued
  • Reporting route for simplified invoices with submission-window tracking and per-document status
  • Device and certificate onboarding workflow scoped per legal entity and branch, configurable by an administrator without code changes
  • Compliance workspace listing pending, submitted, cleared, reported, warning and rejected documents with the exact submitted XML and authority response for each
  • Batch framework jobs with batch tasks for submission queues, configurable retry and backoff, and alerting when the authority endpoint is unreachable
  • Seller, buyer, national address, tax category and exemption-reason mapping driven from legal entity, customer and sales tax configuration rather than hard-coded values
  • Audited resubmission action for rejected documents, recording who resubmitted, when, and what changed
  • Data entities over all compliance tables for Data management framework export and OData access by external tax or archiving tools
  • Retention of generated XML and authority responses against the invoice via the Document management framework for your specified archive period

About this Product

The problem

Saudi e-invoicing is not a reporting nicety you can bolt on at year end. Under the Fatoora programme, a taxpayer in scope must produce every invoice in a prescribed XML format, cryptographically stamped and carrying a QR code, and must either submit it for clearance before it is valid or report it within a fixed window. Get the format wrong and the invoice is rejected. Get the sequencing wrong — a gap in the invoice counter, a broken previous-invoice hash chain — and the whole batch behind it is in question.

Dynamics 365 Finance & Operations posts customer invoices, credit notes, debit notes, project invoices and free text invoices from several different places in the application. Each one has its own document journal, its own printing route, and its own tax posting. A compliant solution has to intercept all of them, not just the sales order flow, and it has to do it inside the transaction so that a posted invoice and its cleared document never diverge.

Waves have rolled outward from the largest taxpayers to progressively smaller ones. If your revenue puts you in an upcoming wave, the work is not optional and the date is not negotiable.

What ECOSIRE builds

This is a build-to-order engagement. There is no shrink-wrapped download. After a scoping call and a fixed quote, ECOSIRE builds the extension against your F&O environment, your legal entity structure and your device registration, then delivers it through your LCS pipeline.

Document generation

The extension hooks the posting of customer invoices, credit notes, debit notes, free text invoices and project invoices through event handlers and chain of command, and produces the required XML document from the posted record — not from a report layout. Header and line values come from the actual posted tables (CustInvoiceJour, CustInvoiceTrans, the tax transaction tables and the ledger dimension framework), so what is submitted is what is in your ledger. Seller and buyer identification, tax registration numbers, national address elements, supply dates, line-level tax categories and reasons for exemption are mapped from configurable sources on the legal entity, the customer and the tax setup.

Cryptography and QR

Certificate and key material live in a secured configuration area with a device registration workflow, so an administrator can onboard a device per legal entity and per branch without a developer. Each document is hashed, stamped, and chained to its predecessor so the sequence is verifiable. The QR code is generated in the required encoded structure and embedded in the printed and PDF output, so a customer scanning it sees the values that were submitted.

Clearance and reporting

Standard tax invoices follow the clearance route: the document goes to the authority before it is given to the buyer, and the cleared response with its stamp is written back onto the invoice record. Simplified invoices follow the reporting route, submitted within the required window, with the submission status tracked per document. Both routes run through the batch framework so a queue of documents drains reliably across AOS instances, with configurable retry, backoff and alerting when the authority endpoint is unavailable. Nothing is silently dropped: every document sits in exactly one state — pending, submitted, cleared, reported, warning or rejected — and every state change is logged with the authority's response payload.

Operational surface

A compliance workspace gives the tax team a live view: documents awaiting submission, documents that came back with warnings, documents rejected and why, and the current counter and hash chain position per device. Rejections can be inspected against the exact XML that was sent. A resubmission action is available with full audit trail rather than a quiet retry.

Integration and archiving

All compliance tables are exposed as data entities for Data management framework export and OData access, so your archive obligations and any external tax reporting tool are served from the same data. Generated XML and authority responses are retained against the invoice through the Document management framework for the retention period you specify.

Build discipline

Extension-based X++ in a dedicated model — chain of command, event handlers, table and form extensions. No overlayering, so your existing customisations and your platform update path are untouched.

Who this is for

Organisations running Dynamics 365 Finance & Operations with one or more Saudi legal entities that fall into a Fatoora wave: manufacturers, distributors, contractors, retail groups and services businesses. It is equally relevant to a multinational group where one Saudi entity sits inside a shared F&O instance and must comply without disturbing the other entities' posting behaviour.

If your Saudi operations are still on a separate system and you are mid-migration to F&O, the scoping call should happen early — compliance sequencing and cutover interact.

How delivery works

Scoping call. We establish which document types you issue, which are standard versus simplified, your branch and device structure, your legal entity setup, your F&O version and how your tax codes and exemption reasons are configured. We confirm your wave timing and work backwards from it.

Fixed quote. A written scope lists every document type covered, the compliance workspace, the device onboarding flow, the entities and the batch jobs, with a fixed price. Work starts only after you approve it.

Build. Development happens in a dedicated model, with check-ins that show real generated documents rather than progress text.

Install in test. The deployable package goes into your sandbox through LCS. We onboard a test device, configure the legal entity data, and run your real invoice types end to end against the authority's non-production environment until the output is accepted cleanly.

Production. After sandbox sign-off, the same package is applied to production through your release process, production devices are onboarded, and we are on the call for the first live submissions.

Support. A defined support window follows go-live for defect fixes and configuration questions, with the source code in your hands throughout.

Typical lead time from approved quote to sandbox install is one working week depending on how many document types and entities are in scope. If your wave date is close, say so on the scoping call — sequencing the work around a deadline is part of the conversation.

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

    We install on your instance, hand over the source, and include two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

What you get

  • Complete X++ source in a dedicated model, extension-based with no overlayering, delivered to your source control
  • Signed deployable package installed in your sandbox through LCS, then applied to production after your sign-off
  • Device onboarding performed with your team in sandbox against the non-production authority environment, and again in production at go-live
  • Configured legal entity, branch, tax category and exemption-reason mapping for every document type in scope
  • Security privileges, duties and roles for tax users, AR users and compliance administrators
  • Written functional and technical documentation covering configuration, the document lifecycle, the state model, data entities and troubleshooting rejected submissions
  • Live training for the tax and AR teams plus a defined post-go-live support window covering defect fixes and configuration questions

Who this is for

Head of Tax, Saudi Operations

Carries personal responsibility for a wave deadline and cannot afford rejected documents or a broken invoice sequence. Gets every document type covered from one place, a live compliance workspace, and the submitted XML retained against each invoice for inspection.

Accounts Receivable Supervisor

Issues invoices all day and cannot have posting blocked by a slow external call or an unexplained failure. Gets submission handled in the batch framework with retry and clear per-document status, so a temporary endpoint outage queues work instead of stopping billing.

ERP Applications Manager

Runs a shared F&O instance where a Saudi entity must comply without changing how other countries post. Gets an extension-only model scoped per legal entity, with device configuration, mappings and batch jobs isolated to the entities that need them.

How Saudi Arabia ZATCA E-Invoicing Compliance Compares

CriterionECOSIRECustom BuildCompetitorDynamics 365 Finance & Operations Native
XML generation, cryptographic stamping and QR code for Saudi e-invoicingIncludedPartial supportIncludedPartial support
Coverage of sales order, free text, project invoices, credit and debit notes in one buildIncludedPartial supportPartial supportPartial support
Full X++ source code delivered in your own modelIncludedIncludedNot includedNot included
Extension-only build with no overlayeringIncludedPartial supportPartial supportIncluded
Device onboarding performed by your own administrators, credentials never leaving your environmentIncludedPartial supportPartial supportPartial support
Compliance workspace showing submitted XML and authority response per documentIncludedPartial supportPartial supportNot included
Fixed price agreed before any development startsIncludedNot includedPartial supportNot included
Available as an instant download todayNot includedNot includedIncludedPartial support

Frequently asked questions

Can I buy and install this immediately?
No. This is built to order. A scoping call establishes your document types, entity and branch structure and wave timing, you receive a fixed quote, and only then does development start. Typical lead time from approved quote to a working install in your sandbox is one working week. If your wave date is tight, raise it on the call so the schedule is planned around it.
Which versions and editions of Dynamics 365 does this support?
Dynamics 365 Finance and Dynamics 365 Supply Chain Management — the Finance & Operations application — on supported service update versions, in cloud-hosted and Tier 2 or higher sandbox environments deployed via LCS. It is not a Business Central app. On-premises F&O deployments can be scoped, but outbound connectivity to the authority and certificate handling need to be confirmed during scoping.
Does this cover both clearance and reporting, and all invoice types?
Yes to both routes: standard tax invoices go through clearance before issuance, simplified invoices are reported within the required window. Coverage of document types is scoped explicitly in the quote and normally includes sales order invoices, free text invoices, project invoices, credit notes and debit notes. If you issue documents from a flow not listed in the quote, tell us during scoping — it is cheaper to include it than to add it after go-live.
Who handles device onboarding and the certificates?
The extension provides an administrator-driven onboarding flow so your team performs it, once in sandbox against the non-production environment and again in production at go-live, with ECOSIRE on the call both times. Certificate and key material stays inside your environment in a secured configuration area; ECOSIRE never takes custody of your production credentials.
What happens if a submission is rejected or the authority endpoint is down?
Nothing is silently dropped. Every document is in exactly one tracked state and the full authority response is stored against it. Submission runs in the batch framework with configurable retry and backoff, so an endpoint outage queues documents rather than blocking invoice posting, and alerting fires when the queue stops draining. Rejected documents can be inspected against the exact XML sent and resubmitted through an audited action.
Regulations change. What happens when the authority updates the specification?
The mappings, tax categories, exemption reasons and endpoint configuration are data, not code, so a large share of changes are handled by reconfiguration. Structural changes to the XML or the cryptographic requirements need a code change; those are quoted as a change to the build if they fall inside your support window's scope, or as a separate small engagement if they do not. Because you hold the source, you are never locked into ECOSIRE to make that change.

Request a Quotation

Tell us about your Saudi Arabia ZATCA E-Invoicing Compliance requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.

Pairs well with

Revenue Recognition for ASC 606 & IFRS 15
Built to order

Revenue Recognition for ASC 606 & IFRS 15

A build-to-order performance-obligation and deferred revenue engine for Dynamics 365 Finance & Operations. Scoped to your contract types, quoted at a fixed price, then built and deployed to your environments.

From $1499.00Starting point — quoted to your scope
View specification
Romania e-Factura E-Invoicing
Built to order

Romania e-Factura E-Invoicing

A build-to-order X++ extension that pushes Romanian sales invoices to the ANAF e-Factura platform as UBL 2.1, polls authorisation status and keeps an auditable trail. ECOSIRE builds it for your F&O environment after a fixed quote.

From $1499.00Starting point — quoted to your scope
View specification
Stripe Payments Connector
Built to order

Stripe Payments Connector

Brings Stripe charges, refunds, disputes, fees and payouts into Dynamics 365 Finance & Operations as reconcilable customer payments and journal entries. Built to order for your entity, currency and ledger setup.

From $999.00Starting point — quoted to your scope
View specification
Subscription & Recurring Billing
Built to order

Subscription & Recurring Billing

A build-to-order subscription, usage and milestone billing engine for Dynamics 365 Finance & Operations. Scoped to your pricing model, fixed-quoted, then built and deployed into your sandbox and production.

From $1499.00Starting point — quoted to your scope
View specification