Solution · Finance Operations
Saudi VAT invoice checking that holds the bill, not just flags it
RoleAxis reads every open supplier bill in your accounting system, recomputes the VAT line against the 15% rate, and drafts a hold for any bill where the tax charged does not match. Your accountant approves the hold; the bill cannot be paid until it is corrected. The exposure, expected tax minus tax charged, shows on your monthly value statement as riyals protected.
Nothing executes without approval.
What it does
- Executes on approvalSaudi VAT check
Each bill's tax line against the 15% rate. On approval the bill is held until an accountant corrects it; the tax line itself is never touched.
- Executes on approvalInvoice hold
Park a disputed or duplicate bill so it cannot be paid until a human clears it.
- Executes on approvalSupplier queries
A drafted question to the supplier when a bill and its PO disagree, sent only on approval.
- PlannedZATCA return pre-check
The VAT return reconciled to the ledger before filing; e-invoice fields validated. Not built.
“Executes on approval” writes to your system once approved; “Recommends” records the decision for your team to act on; “Planned” is not built and does not run.
How approval works here
A VAT finding is a draft in the approval queue with the bill number, the rate found, the expected rate and the riyal exposure. Any approver on your team can approve it. Tax-rate changes and tax filings are on the blocked list and can never be drafted, the engine refuses before a draft row exists.
Connector note
Live on Odoo (the hold is written as a to-do on the bill plus its review flag) and on Qoyod (the finding and approval are recorded; your accountant applies the hold in Qoyod by hand; that connector is read-only today).
- Finding
- VAT on bill INV-2231 applied at 5%, expected 15%
- Amount
- 1,840 SAR exposure
- Decision
- Accountant approves the hold
- Result
- Bill held in your system; 1,840 SAR protected on the value statement; audit row FIN-TAX-DISCREPANCY
Questions
Does it change the tax line on the bill?
No, and it never will through RoleAxis. Tax-rate changes are blocked at the engine level. It holds the bill so a person corrects it.
Does it check e-invoices or file the return?
Not yet. A ZATCA return pre-check is planned and shown as such; it is not built and does not run.
What if the supplier is right and the rate was legitimately 5%?
Reject the draft with a note. The rejection is logged with the reason, nothing is written to your system, and the amount is not counted as protected.
Credentials encrypted, tenants isolated, owner sign-off above 20,000 SAR, tax and bank changes never drafted, an append-only audit log. The full list, with what enforces each item: security and control →