Mobile app development
Native iOS and Android, or Flutter and React Native when one codebase serves you better. Arabic-first RTL layouts, local payment gateways and offline resilience for patchy coverage.
Inovsion builds mobile apps, AI systems and ZATCA-compliant ERP and e-invoicing platforms for Saudi businesses — engineered for Vision 2030 ambitions, Arabic-first users and local regulatory reality.
Four practices, one delivery team. Most Saudi engagements combine at least two — an app that needs an AI layer, or an ERP that needs e-invoicing to be legal.
Native iOS and Android, or Flutter and React Native when one codebase serves you better. Arabic-first RTL layouts, local payment gateways and offline resilience for patchy coverage.
Generative AI, LLM assistants, document extraction, forecasting and computer vision — scoped against a measurable business outcome, not a demo, and deployed with data residency in mind.
Finance, inventory, procurement, HR and operations in one platform — with VAT and ZATCA e-invoicing built in from the start rather than bolted on after an audit finding.
When off-the-shelf software forces you to change how you work, we build around your actual process — integrated with what you already run, and owned by you.
E-invoicing in Saudi Arabia is not a PDF with a logo on it. ZATCA requires invoices to be generated in a structured format, cryptographically stamped, and either cleared with or reported to the Fatoora platform. We build that into your systems.
The generation phase requires invoices to be created and stored electronically in a structured format, with a QR code on simplified invoices and the mandatory VAT fields present and correct.
The integration phase connects your invoicing system to ZATCA itself. Invoices move as UBL 2.1 XML, carry a cryptographic stamp and UUID, and follow either the clearance or the reporting path depending on invoice type.
Under Phase 2 every invoice follows one of two routes, and which one it takes is decided by the invoice type — not by your preference. Getting this wrong is the most common design mistake we see in half-finished integrations.
Standard tax invoices — typically B2B and B2G — must be submitted to the Fatoora platform and cleared before you share them with the buyer. ZATCA validates the invoice, applies its own stamp, and returns a cleared document. That cleared version is the one the buyer is entitled to receive.
Design consequence: your ERP has to tolerate a synchronous round trip and a rejection, so the user-facing flow needs a queue and a clear error state.
Simplified tax invoices — typically B2C, the receipt handed over at the till — go to the customer immediately, complete with QR code. They are then reported to ZATCA within 24 hours of issuance. The customer is never kept waiting on a network call.
Design consequence: the store-and-forward queue is the real system. It must be durable, retry safely, and never silently drop an invoice.
Vendors tend to describe Phase 2 as a checkbox. It isn't — it's a set of specific technical obligations, each of which has to be right for the invoice to be accepted. Here is what your invoicing system genuinely has to do.
Invoices must be produced as structured UBL 2.1 XML — or as PDF/A-3 with the XML embedded inside it. The XML is the invoice; the human-readable rendering is a convenience. Field-level validation is strict, so mapping your ERP's data model onto the required elements is most of the real work.
Each invoice carries a cryptographic stamp generated with keys held by your e-invoicing solution. It proves the invoice came from an onboarded system and hasn't been altered since. Key storage and rotation are security decisions, not paperwork.
Every EGS unit — each e-invoicing generation solution, whether that's an ERP instance or a till — is onboarded with ZATCA to obtain a cryptographic stamp identifier (CSID). Onboarding is per unit, so a chain of twenty branches is twenty onboardings, and renewal has to be operationalised rather than remembered.
Every invoice needs a UUID and a hash of its own content. The hash is what makes tampering detectable after the fact, and it must be computed over exactly the canonical form ZATCA expects — a subtle source of rejections when it isn't.
Each invoice records the previous invoice hash (PIH), linking your invoices into an ordered chain. This is where naive implementations break: parallel tills, retries and restores can all fracture the chain. Sequencing has to be designed deliberately, per EGS unit.
Simplified invoices carry a QR code encoding the mandated fields in the specified format, so anyone can verify the invoice from the printed receipt. Standard invoices carry a QR code once cleared.
Invoices, their XML and the responses from ZATCA must be stored electronically, tamper-resistant, and retrievable on request. In practice this means an immutable store and an audit trail you can hand to an inspector without a three-week export project.
Invoices must carry the mandatory VAT fields and Arabic content where required. This sounds trivial until you find that your product master has no Arabic names and your address fields don't split the way the specification wants.
Inovsion has built and delivered an ERP-integrated ZATCA e-invoice solution: EGS onboarding and integration, broad ERP compatibility, and automated compliance and validation. It sits alongside your finance system rather than replacing it.
Your ERP or POS keeps doing what it already does well — pricing, stock, ledgers, customers. Our layer takes the invoice data it produces, maps it to UBL 2.1, stamps it, talks to Fatoora, handles clearance or reporting, and writes the outcome back. If ZATCA changes a specification, the change lands in one isolated component instead of scattering through your finance code.
Integration method depends on what your system exposes, and we pick the least invasive option that is still reliable:
We work across cloud and on-premise deployments, on AWS or Microsoft Azure, with data residency treated as a design constraint from day one.
A ZATCA integration stalls on missing information far more often than on missing code. These four things let us scope accurately instead of padding an estimate.
Your VAT registration number and the legal entity structure behind it. Group registrations and multiple entities change how EGS units are organised, so we need this before, not after, the design.
Which systems issue invoices today, their versions, whether they're cloud or on-premise, and what integration surface they expose. Include the till in the branch that everyone forgets — it's an EGS unit too.
The split between standard and simplified invoices, monthly volumes, peak rates, and whether you issue credit and debit notes, exports or self-billed invoices. Volume decides architecture; invoice types decide scope.
One named person in finance who can decide what a compliant invoice looks like for your business and sign it off. Without that, testing has no arbiter and go-live slips.
We keep a dedicated page on our ZATCA e-invoicing solution covering the architecture, EGS onboarding and the integration options in full — plus a longer written guide to the programme for finance and IT teams who have to make the call together.
Related: ERP development · Construction ERP · Restaurant POS · Custom applications · Our work
We build the compliance layer around your current ERP, POS or billing system. Replacing a working finance platform to satisfy a regulator is rarely the cheapest path.
We validate invoice structure, stamping and the clearance and reporting flows in ZATCA's developer sandbox before anything touches a live tax position.
Requirements and onboarding waves have moved repeatedly since launch. We isolate the compliance layer so a specification change is a contained update, not a rewrite.
Note: ZATCA's onboarding waves, thresholds and technical specifications are updated periodically. We confirm the current requirements that apply to your business against ZATCA's published guidance at the start of every engagement — we don't rely on yesterday's rules.
Right-to-left is a design decision, not a CSS flag flipped at the end. We plan layout, typography, numerals and content flow for Arabic from the first wireframe.
VAT, ZATCA e-invoicing and data residency shape architecture. We treat them as requirements at design time, which is considerably cheaper than discovering them at audit time.
The same team delivers across Saudi Arabia, the UAE and India — useful when you operate regionally and want one platform rather than three divergent ones.
The people who scope your build are the people who deliver it. No bait-and-switch between the pitch and the sprint.
Source code, infrastructure, documentation and IP are yours. No lock-in to a proprietary platform you can't leave.
Launch is the start. We offer monitoring, iteration and support agreements so the system keeps working when the market and the rules move.
We map your process, systems, users and compliance obligations, then write down what success actually means.
A costed plan with the risky assumptions tested early — integrations, data model, compliance flow.
Two-week increments you can use, with QA, security review and sandbox testing throughout.
Deployment, handover, documentation and an agreed support model so nothing goes quiet after go-live.
Domain knowledge shortens discovery and avoids expensive wrong turns.
Storefronts, POS and marketplaces with Mada, Apple Pay and ZATCA-compliant billing.
Payments, lending and wallets built to regulatory and security expectations.
Fleet, warehouse and last-mile visibility across the Kingdom.
Patient apps, scheduling and records with clinical safety and privacy first.
Listings, CRM, leasing and property management platforms.
Project controls, site progress, HSE and cost tracking.
Asset monitoring, field operations and trading platforms.
Citizen services and digital transformation aligned to Vision 2030.
ZATCA e-invoicing, branded Fatoora, is the Saudi Zakat, Tax and Customs Authority programme requiring VAT-registered businesses to issue invoices electronically in a structured format rather than as paper or a plain PDF. It rolls out in two phases: a generation phase and an integration phase that connects your system to ZATCA directly.
Phase 1 (Generation) requires compliant electronic invoices to be generated and stored, including a QR code on simplified invoices. Phase 2 (Integration) adds direct integration with the Fatoora platform: invoices as UBL 2.1 XML, a cryptographic stamp and UUID, and either clearance or reporting depending on the invoice type.
Standard tax invoices — typically B2B and B2G — must be cleared by ZATCA before you share them with the buyer. Simplified tax invoices — typically B2C — go to the customer immediately and are reported to ZATCA afterwards, within the required window.
Yes, and that's usually the right call. We build the compliance layer — Fatoora integration, XML generation, cryptographic stamping, QR codes and the clearance or reporting flow — and connect it to the ERP, POS or billing platform you already run, rather than replacing a finance system that works.
An EGS (E-invoicing Generation Solution) is any unit that generates invoices — an ERP instance, a POS till, a billing service. Each unit is onboarded with ZATCA, which issues it a CSID (cryptographic stamp identifier). The CSID is what allows that unit's invoices to be cryptographically stamped and accepted. Onboarding is per unit rather than per company, so twenty branches means twenty onboardings. We automate the onboarding and the renewal cycle rather than tracking it in a spreadsheet.
It depends on the path. A standard invoice that fails clearance is not a valid tax invoice, so you cannot issue it to the buyer until the problem is fixed and it clears. A simplified invoice has already reached the customer, so a rejection on reporting is a compliance issue to correct rather than a blocked sale. In our experience most rejections come from field-level data problems rather than the integration itself, which is why we validate against the rules before submission and surface failures on a dashboard instead of in a log file.
Usually not. Compliance is about what your invoices contain and where they go, not about which vendor's badge is on your finance system. We build the e-invoicing layer around the ERP or POS you already run — our delivered ERP-integrated ZATCA e-invoice solution covers EGS onboarding and integration across a broad range of ERPs, with automated compliance and validation. Replacing a working finance platform to satisfy a regulator is expensive and rarely necessary. If we do recommend a change, it will be for a reason that stands on its own.
We build and validate against ZATCA's developer sandbox and simulation environments first, so invoice structure, cryptographic stamping, hashing, PIH chaining and both the clearance and reporting flows are exercised without touching a live tax position. We then run your real invoice types through the flow — including the awkward ones such as credit notes, debit notes and exports — with your finance owner signing each off, before we onboard the production EGS units and cut over.
Yes. We work across Saudi Arabia including Riyadh, Jeddah, Dammam and the Eastern Province, and also serve the UAE and India. Projects run remotely with on-site workshops where they genuinely help.
A focused mobile app MVP is typically 10–16 weeks. ERP and e-invoicing integrations depend on how many systems they touch and usually run 8–20 weeks. We scope precisely after a discovery workshop rather than quoting blind.
Tell us what you're trying to build or which compliance deadline you're up against. You'll get a straight answer about scope, cost and timeline — not a sales sequence.
Prefer email? [email protected]