Generation and integration are two different jobs
The rules arrived in two stages. Phase 1, usually called generation, asked businesses to stop issuing invoices as paper or a plain PDF and to produce them from a system in a structured electronic form with a QR code. Phase 2, called integration, asks that system to talk to ZATCA's Fatoora platform directly, so invoices are cleared or reported through the authority instead of only being stored by you.
ZATCA has been moving taxpayers into the integration phase in waves, grouped by annual revenue, and notifies each taxpayer ahead of its own date. Waves, dates and thresholds change over time. Confirm your own date on ZATCA's official website or in your ZATCA account, not from a vendor summary and not from this article. For the technical shape of the connection, read our guide to ZATCA e-invoicing integration.
The practical difference for an owner is where a failure lands. Before integration, a badly formed invoice is an internal problem you can fix quietly. After integration, an invoice your system cannot submit is an operational problem standing in front of a customer.
What your system has to hold before you connect it
Integration is mostly a data problem wearing a technical costume. Connections usually fail because of missing or careless data that nobody minded when invoices were typed by hand.
- Your own identity: VAT registration number, commercial registration details and the legal name exactly as registered, plus the address you actually trade from.
- Buyer details: business-to-business invoices generally carry more buyer information, including the buyer's VAT number, than a simple consumer sale. Confirm which fields are required for each invoice type in ZATCA's published requirements.
- Line-level tax: each line needs a unit price, quantity, discount, tax category and tax rate. Zero-rated and exempt items must be marked as such, not lumped in with standard-rated sales.
- Document identity: a sequence that never repeats or skips, a reliable timestamp, and a unique identifier for every document your system issues.
- A QR code: in general terms it carries a short, machine-readable summary of the invoice, such as the seller's name and VAT number, the timestamp, the total including VAT and the VAT amount. The exact contents and encoding are set by ZATCA's specification, so treat that specification as the source of truth.
If your current records cannot answer those points for last month's sales, fix the data before buying an integration.
Daily operations change more than the invoice template
Issuing is the visible part. Someone at a counter or on a phone creates an invoice, and the system now has to produce a compliant document and pass it to the platform. Your team needs to know what a successful submission looks like, and what to do when a response is slow. Decide in advance whether a sale can complete while a submission is still pending, and who reviews the queue at the end of the day.
Corrections change the most. An issued e-invoice is not a draft you quietly edit or delete. A correction is made by issuing a credit note or a debit note that references the original document, so the trail shows what happened rather than hiding it. Train the team on the difference: a credit note reduces what the buyer owes, a debit note increases it. A return, a pricing error and a late surcharge each have their own correct trail.
Archiving is the quiet third piece. You are expected to keep invoices and their related records for a retention period and to be able to produce them on request. Confirm the current retention rules and any storage conditions on ZATCA's official site before you accept a supplier's word for it.
Off-the-shelf tool or integrating the system you already run
Two honest paths exist, and the right one depends on where your invoice is actually born.
An off-the-shelf invoicing or accounting tool is the shorter route when your selling is straightforward and you are willing to work the way the tool works. Compliance is maintained by the provider, and you inherit their updates. The cost is flexibility: your pricing rules, contracts and workflows must fit the product, and your invoice data lives in someone else's system.
Integrating an existing custom system makes sense when the invoice is the end of a process you already run somewhere else, such as a booking system, a job sheet, a rental contract or a delivery workflow. Rekeying those sales into a second tool creates duplicate data entry and a reconciliation habit that never ends. Here the work is to add a compliant invoicing layer inside the system you already have, then connect that layer to the platform.
Whichever path you take, check any solution or provider's current status on ZATCA's official site, not a badge in a sales deck.
A fictional example of where the invoice is born
Fictional example, not a client result: a Jeddah maintenance business schedules jobs in a custom system. Technicians close a job on their phone, and an office assistant retypes each closed job into a separate invoicing tool every evening. Nothing about that is illegal, and the invoices themselves can be perfectly compliant.
The problem is the gap. Two systems disagree about discounts, a job closed on the last day of the month is invoiced on the first, and a returned part is corrected in one place and not the other. Once submissions run live, that gap becomes visible in a way a spreadsheet never made it.
The useful question is not which tool is better. It is whether the invoice should be created where the work is recorded. If yes, integrate the existing system. If invoicing really is a separate and simple act of selling, a standard tool is the cheaper answer.
What to ask a developer before you sign
You do not need to understand cryptography to buy this well. You need answers you can inspect later.
- Which invoice types are in scope: business-to-business, consumer sales, credit notes, debit notes, and anything unusual such as advance payments?
- What happens when the platform is unreachable or slow? Show me the queue, the retry behaviour and how staff see a stuck invoice.
- Who is responsible for onboarding, certificates and their renewal, and what happens on the day they expire?
- Where are invoices stored, in what format, and how do I export everything if we part ways?
- How will this be tested before go-live, including corrections and edge cases, and who signs off the test results?
- What is the handover: documentation, credentials under my control, and a named person for the first weeks after launch?
- What are the recurring costs after launch, stated separately from the build cost?
A supplier who answers with deliverables rather than reassurance is the one to keep talking to. Ask for the scope in writing before any payment.
A pre-integration checklist you can run yourself
Work through this before the technical project starts. Most delays come from items on this list, not from code.
- Confirm your wave and deadline on ZATCA's official site, and record where you read it.
- Check that your registration details, address and trade name are current and consistent everywhere.
- List every place an invoice is created today, including the manual ones nobody mentions.
- Clean your product and service list: names, prices, tax categories, and anything zero-rated or exempt.
- Decide who owns the platform account, the credentials and the renewals inside your business.
- Write down your correction policy in plain words, then map it to credit and debit notes.
- Agree your archiving and backup arrangement, including who can export the records.
- Set a training date for whoever issues invoices, and a review date a month after launch.
Nothing on that list requires a developer. Doing it first makes the developer's part smaller.
Scoping the work and choosing a next step
Tech Corners is a founder-led software studio in Jeddah. We build invoicing and compliance work into the systems a business already runs, rather than adding a tool beside them. If you are still deciding what to build at all, start with our comparison of a website versus a custom system, then the wider view of digital transformation for a Saudi SME.
- Digital Transformation Assessment: a two-week audit of processes and tools ending in a roadmap report, from 3,000 SAR.
- Custom System / App MVP: a scoped custom web system or mobile app, from 15,000 SAR, with a planning window of 6 to 12 weeks.
- Care Basic: backups, security updates and uptime monitoring once something is live, from 300 SAR/mo.
See the services and packages for what each one includes, then discuss your scope. Bring your confirmed date and your list of invoice sources to the first conversation. Regulatory detail should always be confirmed on ZATCA's official site.