Dentolize · ZATCA E-Invoice Rounding Fix Walkthrough
On this pageLearning objectivesTeach it in five stepsCheck for understandingCommon misconceptions to correctSuggested time

For Training

A short teaching guide. This is a conceptual fix — the goal is that learners can explain it, not click through it.

Learning objectives

By the end, a learner can:

  1. State what the invoice Total represents and why it must match the ZATCA report.
  2. Explain, in plain terms, why the two numbers used to drift by a cent.
  3. Describe what the fix changed and what it deliberately left alone.
  4. Correctly answer the common customer questions (see For Support).

Teach it in five steps

Step 1 — Start from what's on screen

Open Finances → Invoices, expand an invoice, and read the totals block: Subtotal → Discount → Tax → Total. Land the anchor: "This Total is the number the patient pays. Remember it."

(Reference: the invoice totals screenshot in the Walkthrough, Subtotal 500 · Discount 75 · Tax 63.76 · Total 488.76.)

Step 2 — Introduce the second copy

Explain that Saudi clinics must also send each invoice to ZATCA. Show Settings → Zatca Integration and Settings → Business Registration so learners see where reporting is configured. Key idea: "Dentolize rebuilds the invoice into the government's format and re‑computes the totals — it doesn't just copy the stored number."

Step 3 — The rounding idea (the heart of it)

Use a whiteboard, not the app. Two lines, taxable base 100.10 each, 15% VAT:

  • Round once, on the sum: round(0.15 × 200.20) = 30.03 ← what the app does.
  • Round each, then add: round(0.15 × 100.10) + round(...) = 15.01 + 15.01 = 30.02 ← what ZATCA used to do.

One cent apart. Let that land.

Step 4 — The fix

"We made ZATCA round once, on the taxable base — the same rule as the invoice and the same rule ZATCA/EN16931 require (BR‑CO‑17). Now both give 30.03. They match by construction."

Step 5 — The boundaries

  • Single‑line invoices were never affected.
  • Per‑line amounts on the e‑invoice didn't change — only the document total.
  • Past invoices aren't rewritten.
  • It's not a cure‑all: a smaller per‑unit‑discount rounding remains a follow‑up.

Check for understanding

  • Q: Why didn't single‑line invoices have the bug?

A: With one line, "round the sum" and "round each then add" are the same operation.

  • Q: A customer sees "E‑Invoice Not Reported." Is that this bug?

A: No — that's an onboarding/connection state, not rounding.

  • Q: Does the fix change what the patient pays?

A: No. The patient‑facing total was always the source of truth; the fix makes ZATCA agree with it.

Common misconceptions to correct

  • "It's just a cosmetic cent." → In tax reporting, two official records disagreeing is a real problem.
  • "We need to re‑send old invoices." → No; this governs how future e‑invoices are built.
  • "This is a new ZATCA feature." → No; it's an accuracy fix to existing reporting.

Suggested time

10–15 minutes in a compliance/finance onboarding session. No hands‑on environment required.