RoleAxis

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

  • Saudi 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 approval
  • Invoice hold

    Park a disputed or duplicate bill so it cannot be paid until a human clears it.

    Executes on approval
  • Supplier queries

    A drafted question to the supplier when a bill and its PO disagree, sent only on approval.

    Executes on approval
  • ZATCA return pre-check

    The VAT return reconciled to the ledger before filing; e-invoice fields validated. Not built.

    Planned

“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).

One finding, start to finishExample · synthetic data
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 →