VAT return summary from a CSV of invoices

Drop a sales and a purchases export and get the ZATCA VAT return box by box — plus the rows whose VAT does not add up. Nothing is uploaded.

Updated 21 August 2026

1. Load a file

3. The return

    This adds up what you gave it and points at what looks wrong. It is not a filing, it does not know your corrections or credit carried forward, and it cannot see anything your export left out. Check it against your ledger before you type it into the portal.

    Doing this every week? The same screen in the Fatoza app keeps the supplier's ledger, allocates payments against each bill, and carries the numbers into the return instead of into a download.

    Open it in the app

    Preparing a VAT return is not hard. Discovering at the deadline that the books and the invoices disagree is hard, and that is what most of the day goes on.

    This takes an invoice export — the one your accounting system already produces — and lays it out as the ZATCA return, box by box, in the order the form asks for them. Then it points at the rows that will cause a problem.

    What it does

    Reads the file your system actually exports. Comma or semicolon delimited, Excel’s UTF-8 byte order mark, quoted fields containing commas, Arabic-Indic digits, parenthesised negatives for credit notes. The unglamorous half of this tool is the parser.

    Maps the columns once. It guesses from the header names — including the Arabic ones and the shapes Tally and Zoho produce — and you correct anything it got wrong from a dropdown.

    Asks where each tax treatment goes. If your export has a type or treatment column, every distinct value in it gets a row and a destination box. Zero-rated, exempt and export are three different boxes that look identical in a total, so this is the one thing the tool refuses to guess silently.

    Combines sales and purchases. Add the sales export, then the purchases export. Both feed the same return.

    The part that earns its keep

    A pivot table gives you correct totals for incorrect data, without comment. This flags:

    • Rows where VAT is not 15% of the taxable amount, with the rate the figures actually imply. Mixed-rate invoices are legitimate; a 7.2% line usually is not.
    • VAT charged on a line treated as zero-rated, exempt or an export.
    • Standard-rated lines carrying no VAT.
    • Duplicate invoice numbers — a file exported twice, or a credit note sharing its invoice’s number. Both wreck the totals invisibly.
    • Rows outside the period you selected, counted separately rather than dropped silently, so a date-format misread is loud instead of quiet.
    • Rows with no readable date.

    Findings are grouped, not listed per row. Two hundred separate warnings is a wall nobody reads; “VAT is not 15% — 11 lines: 14, 22, 37” is something you fix.

    Reverse-charge imports

    Box 9 carries VAT that you self-assess as output and deduct as input. For a fully taxable business those cancel, which is why it is tempting to leave the output leg out entirely — you would get the right bottom line and the wrong return. The summary shows both legs.

    If your business is partially exempt, your input deduction is restricted and this tool does not model that. It will overstate the deduction, and it says so on screen when a reverse-charge figure is present.

    What it is not

    It is not a filing tool, and it does not know your corrections from previous periods or your credit carried forward — boxes 14 and 15 are yours to fill in. It cannot see anything your export left out. Treat it as a check on figures you already have, run before the deadline rather than after it.

    The guide to filing a Saudi VAT return covers what each box means and what usually causes a gap.

    Frequently asked questions

    Is my data uploaded anywhere?

    No. The file is read and parsed inside your browser. You can disconnect from the network and it still works — which is the only reason dropping a full sales ledger into a web page is a reasonable thing to do.

    Which columns does it need?

    A taxable amount and a VAT amount at minimum. If your export only has a total including VAT, map that instead and the taxable amount is derived. Date, invoice number, customer and tax treatment are all optional but each one makes the checks better.

    Why does it ask where zero-rated rows go instead of working it out?

    Because zero-rated, exempt and export are three different boxes and they look identical in a total. A wrong guess there would be invisible — the bottom line would still be right — and it would put figures in the wrong place on the return. So it asks.

    Can I combine sales and purchases?

    Yes, that is the intended use. Map and add the sales export, then map and add the purchases export. Both feed the same return.

    Does it file the return?

    No. It gives you the figures to type into the portal, and it does not know your corrections from previous periods or your credit carried forward. Check it against your ledger first.

    Related

    People also search for

    vat return calculator saudi arabia · prepare zatca vat return · vat return from excel · vat reconciliation tool · zatca vat return boxes explained

    Start free. Keep your data.

    The demo runs on sample data in your browser. Nothing to install, nothing to sign up for.