Lessons From Being ZATCA-Compliant in Saudi Arabia From Day One
When TtaKkaa decided to support the Saudi market, it was clear that compliance with Zakat, Tax and Customs Authority (ZATCA) requirements wasn't optional. The lesson here isn't just "we built the feature," but how the right decisions were made from the start instead of fixing things later.
Decision one: get Phase 1 right instead of chasing everything at once
ZATCA requirements are split into phases, and Phase 1 focuses on a simplified tax invoice with a QR code. The TtaKkaa team decided to build this phase correctly from the start instead of trying to cover every phase at once and ending up with a half-working solution. This decision saved significant time and reduced the chance of implementation gaps.
Decision two: one component to generate the code, not two
From the start, it was clear an invoice could be generated from two places: directly from the cashier, or from the billing center in the dashboard. Instead of building two separate components to generate the QR code (one per source), the TtaKkaa team built one shared component (a TLV builder) used by both. This decision prevented a likely problem: a mismatch in the code format between a cashier receipt and a billing-center invoice for the same store.
Decision three: relying on registered store data, not manual entry per invoice
The VAT number and business name are registered once in the store settings, then pulled automatically for every invoice. This reduced the chance of human error that would come from every cashier having to enter this data manually every time.
The deeper lesson: compliance isn't an add-on feature, it's part of the core design
The lesson the TtaKkaa team took away: when building for a market with clear regulatory requirements (like ZATCA), compliance has to be part of the core design from day one, not a feature bolted on later. If the team had built the cashier first and tried to add compliance afterward, they would have had to rebuild large parts of it.
The numbers, honestly
TtaKkaa currently covers Phase 1 fully, which is enough for most small and mid-size stores in Saudi Arabia. The TtaKkaa team is aware bigger requirements may come later, and the current design (the shared component, centralized store data) makes it easier to extend to other phases if needed.
If you run a store in Saudi Arabia
Read our detailed guide to the ZATCA invoice on TtaKkaa receipts, and check our receipt printer buying guide so the code prints clear enough to scan.
Écrit par The TtaKkaa team
avec l'équipe Ttakka
Essayez Ttakka dans votre commerce
Démarrez un essai gratuit et voyez la caisse Ttakka fonctionner le jour même.
Essayer gratuitementQuestions fréquentes
Why did TtaKkaa start with only Phase 1 instead of every ZATCA requirement?
Phase 1 (the simplified tax invoice with a QR code) is what the vast majority of small and mid-size stores need, so it made sense for the TtaKkaa team to build that first before more complex requirements.
Was this decision made quickly, or after research?
It was made after reviewing the official Zakat, Tax and Customs Authority requirements, and confirming the design would work consistently across every invoice type (from the cashier and from the billing center).