Most ZATCA integration issues aren't technical mysteries. They're predictable gaps in data, process or vendor coordination. These are the ones I see most often.
1. Missing invoicing points
A forgotten billing app, branch system or e-commerce platform also issues invoices and isn't included in the plan.
2. Poor customer master data
B2B invoices need correct buyer details such as VAT number and address. Incomplete customer records cause rejections.
3. Old or customised software
Older versions or heavily customised systems may need upgrades before the vendor's compliance module works.
4. Onboarding left too late
Onboarding each unit takes coordination with the Fatoora portal and the vendor. Leaving it to the final week creates avoidable pressure.
5. Untested credit notes
Returns and price corrections must reference the original invoice. These flows are often tested last, or not at all.
6. Offline POS behaviour
Simplified invoices must still be reported within the allowed window. Check what happens when a branch is offline for hours.
7. No rejection procedure
When an invoice is rejected or a warning returned, someone must know how to correct and resubmit it.
8. Nobody owns the project
Finance assumes IT owns it, IT assumes the vendor does. Name one owner with authority across all three.
Key takeaway
Inventory every invoicing point, clean customer data, test returns and offline cases, and name one project owner.
Always confirm current technical requirements in ZATCA's official documentation.