Vertical SaaS · Tax

Acumatica Kenya VAT Return Automation — A Complete Guide

Automating the Kenya VAT3 return in Acumatica: mapping tax zones and categories to the KRA return lines, reconciling output and input VAT, and producing a filing the iTax system will accept.

John Kihiu12 min read

Automating a Kenya VAT return in Acumatica is less about clever code and more about mapping. Acumatica already knows every taxable transaction you posted; the work is lining up its tax zones, tax categories, and tax IDs so the totals fall onto the right lines of the KRA VAT3 return, and so the figure you file matches the figure your ledger will defend in an audit. Get the mapping right once and the monthly return becomes a report you run, reconcile, and export — not a spreadsheet you rebuild from scratch every 20th of the month.

How Acumatica models VAT before you automate anything

Every tax outcome in Acumatica comes from the intersection of a tax zone (attached to the customer or vendor, answering "where is this party for tax purposes") and a tax category (attached to the stock or non-stock item, answering "what kind of thing is being sold"). The combination selects a tax, and each tax carries a rate and a reporting group. For a Kenyan return you typically end up with taxes for standard-rated output (16%), zero-rated output, exempt supplies, and the corresponding input taxes on the purchase side. Before you automate, make sure these are set up cleanly, because the return is only ever as correct as this configuration.

Reporting groups are what feed the return lines

On each tax's Taxes screen there is a Reporting Settings tab where you assign the tax amount and taxable amount to reporting groups. Those groups are the bridge between a posted transaction and a line on the VAT3. If two taxes should roll up to the same return line, they share a reporting group. This is the single most important thing to get right.

Mapping Acumatica taxes to the VAT3 lines

The KRA VAT3 return separates output tax (sales) from input tax (purchases), and within each splits standard-rated, zero-rated, and exempt. Build a mapping table so every tax you use in Acumatica has an unambiguous destination on the return. Keep it in writing and review it whenever a new tax is added.

Acumatica taxReporting groupVAT3 destination
Output VAT 16%Output – StandardStandard-rated sales + output tax
Output Zero-ratedOutput – ZeroZero-rated sales
Output ExemptOutput – ExemptExempt sales
Input VAT 16%Input – StandardStandard-rated purchases + input tax
Input – Capital goodsInput – CapitalPurchases of capital goods

Running and reconciling the tax report

Acumatica prepares the return through Tax Reports (the Prepare Tax Report / Release Tax Report cycle on the Taxes workspace). Preparing a report for a tax agency and period gathers every released document in that period and buckets the amounts by reporting group. The critical discipline is reconciliation: the output tax on the prepared report should tie back to the VAT liability in your GL tax accounts for the same period. If they diverge, the usual culprits are documents posted to the wrong tax, manual GL entries that touched the tax account directly, or documents released after the report was prepared.

Don't release the tax report until you have reconciled it

Releasing the tax report closes the period for tax and marks those documents as reported, so they won't appear on the next one. If you release with an error still in it, correcting it means an adjustment on the following period rather than a clean re-run. Prepare, reconcile against the GL, fix, re-prepare — and only then release.

Producing the file iTax will accept

KRA's iTax portal expects the VAT3 uploaded as its published Excel template with the sales and purchases schedules populated. Acumatica does not ship a Kenya-specific iTax file out of the box, so the practical pattern is to drive the export from the tax report data with a Generic Inquiry or an Analytical Report, shaped to the columns iTax expects (PIN of the counterparty, invoice number, date, taxable value, VAT amount). Exporting the GI to Excel and pasting into the KRA template is a perfectly reasonable first version; only build a bespoke export once the manual step is genuinely the bottleneck.

SQL · GENERIC INQUIRY SOURCE
-- Shape released output-tax detail for the iTax sales schedule.
-- In practice express this as a Generic Inquiry over TaxTran/ARTran;
-- shown as SQL here for clarity.
SELECT
    c.AcctCPF        AS CounterpartyPIN,
    d.RefNbr         AS InvoiceNbr,
    d.DocDate        AS InvoiceDate,
    tt.TaxableAmt    AS TaxableValue,
    tt.TaxAmt        AS VATAmount
FROM   TaxTran tt
JOIN   ARRegister d  ON d.DocType = tt.TranType
                    AND d.RefNbr  = tt.RefNbr
JOIN   Customer c    ON c.BAccountID = d.CustomerID
WHERE  tt.TaxID = 'OUTPUT16'
  AND  d.TaxPeriodID = @period
  AND  d.Released = 1;

Where withholding VAT complicates the picture

Kenya operates a withholding VAT regime for appointed agents, where the buyer withholds 2% of the VAT and remits it directly to KRA. If your client is an appointed withholding agent, or sells to one, the VAT they actually pay or collect differs from the VAT on the invoice, and that difference has to be tracked so the return and the ledger stay honest. Model the withholding as its own tax with its own reporting group rather than netting it silently — it needs to show separately on the return, and treating it as a distinct tax keeps the reconciliation traceable.

Filing cadence and closing the loop

The VAT return in Kenya is monthly, due by the 20th of the following month, and is filed even when there is no activity (a nil return). Build the monthly rhythm into the ERP process: close the sub-ledgers, prepare the tax report, reconcile to the GL, export and file on iTax, then record the payment against the VAT liability account so the balance rolls forward correctly. The value of automating this in Acumatica is not that a single return is faster — it is that every return after the first follows the same repeatable, auditable path.

Wrapping up

The Kenya VAT return is a mapping problem wearing an automation costume. Set up taxes and reporting groups so amounts land on the right VAT3 lines, reconcile the prepared report against the GL before you release it, and drive the iTax export from the same tax data rather than a side spreadsheet. Do that and each month's filing is a routine run rather than a scramble. If you are stuck on something specific, reach out or keep reading through the rest of the Acumatica blog.

John Kihiu
Acumatica ERP Developer · Laravel Engineer

Independent software engineer in Nairobi specialising in Acumatica customisations, Laravel backends, and tax fiscalisation integrations across East and Southern Africa.