Saudi Arabia's e-invoicing programme (FATOORAH) moved businesses from simply generating electronic invoices to integrating their systems directly with ZATCA. If you run your own ERP or POS, that integration is now your software's job.
The core technical requirements
Invoices must be produced as structured UBL 2.1 XML, carry a cryptographic stamp from a device certificate issued through ZATCA's onboarding process, and include a QR code. Standard (B2B) invoices are cleared by ZATCA before they are shared with the buyer; simplified (B2C) invoices are reported within 24 hours.
What to check in your system
Confirm that your software can onboard devices, store and rotate certificates securely, chain invoice hashes in sequence, handle credit and debit notes, and retry gracefully when the ZATCA API is unavailable. Archival and audit trails matter as much as the invoice itself.
Build it in, don't bolt it on
We design e-invoicing as a module inside the ERP rather than an external add-on, so numbering, VAT and stock movements stay consistent. Always verify current requirements against ZATCA's official documentation before go-live, as rules and wave dates are updated.