ErpZeroZA documentation
How to install ErpZeroZA, how it records South African VAT and prepares the VAT201, how to switch on Barb the Bookkeeper, and how to run a public demo. Written for the accountant who signs off the set-up and the consultant who installs it.
version-16). The code is on GitHub: erpafrica/erpzero-za (MIT). ErpZeroZA is in development; these pages describe what is built as of 30 October 2026. For what ErpZeroZA is and why, see ErpZeroZA: leave Xero.01 · Installing
ErpZeroZA is a Frappe app. It needs ERPNext and csf_za on the same bench, and it never edits either of them, so both can be upgraded as normal.
On Frappe Cloud
- Create a private bench group on Frappe v16 and add the apps: ERPNext (
version-16), csf_za (Starktail/csf_za,version-16) and ErpZeroZA. Builder is optional but recommended for the website. - Deploy the bench group. Deploying only makes an app available; each site installs it separately.
- Create the site from the bench group's Sites tab (a site created elsewhere can't use the group's apps), then install ERPNext, csf_za and ErpZeroZA on it.
- Run the setup wizard with South Africa as the country, ZAR as the currency and a March–February financial year. When the company is saved, ErpZeroZA creates its VAT templates and VAT return settings (§02).
- For updates: deploy the bench group, then press Update Available on each site. The update runs ErpZeroZA's patches, so sites installed earlier get the same set-up.
On your own server
On a bench running Frappe v16: bench get-app erpnext --branch version-16, bench get-app https://github.com/Starktail/csf_za --branch version-16, bench get-app https://github.com/erpafrica/erpzero-za --branch develop, then bench --site yoursite install-app erpnext csf_za erpzero_za. Issues and pull requests are welcome on GitHub.
02 · VAT and the VAT201
The company has one VAT control account (VAT), as in the standard South African chart and in Xero. What decides where a transaction lands on the VAT201 is the tax template chosen on the invoice. ErpZeroZA creates one template per VAT201 field for every company whose country is South Africa, and switches off the single "South Africa Tax" template that the setup wizard creates.
Sales (output tax)
| Template | Rate | VAT201 field | Use it for |
|---|---|---|---|
| Standard rate 15% default | 15% | 1 (value incl. VAT) → 4 (VAT) | Ordinary taxable sales of goods and services (s7(1)) |
| Capital goods sold 15% | 15% | 1A → 4A | Sale of the business's own capital goods or services |
| Zero-rated 0% | 0% | 2 | Zero-rated supplies other than exported goods, e.g. services to a non-resident under s11(2)(l) |
| Exports 0% | 0% | 2A | Goods exported, zero-rated under s11(1)(a) |
| Exempt | – | 3 | Exempt supplies under s12, e.g. residential accommodation (s12(c)) |
Purchases (input tax)
| Template | Rate | VAT201 field | Use it for |
|---|---|---|---|
| Standard rate 15% default | 15% | 15 | Goods and services bought locally, not capital |
| Capital goods 15% | 15% | 14 | Capital goods and services bought locally |
| Imports 15% | 15% | 15A | VAT paid on imported goods, not capital |
| Capital goods imported 15% | 15% | 14A | VAT paid on imported capital goods |
| No VAT | – | not on the return | Suppliers who are not VAT vendors, and costs with no VAT |
Input tax may only be claimed with a valid tax invoice (s16(2)). Above R5,000 that must be a full tax invoice showing the recipient's name, address and VAT number (s20).
Preparing the return
- Open Value-added Tax Return, choose the company and the first and last day of the tax period, and save. The return is named after the company and the period's last month, e.g.
Karoo Kettle Co-202610(the CCYYMM tax period SARS uses). - Click Get transactions for period. Every invoice and journal that touched VAT is listed with its classification. Zero-rated, export and exempt sales are listed too, at their net value, even though they post nothing to the VAT account.
- Classify anything left over (usually journals), check the fields against the source documents, then submit. Field 20 is the VAT payable, or refundable when negative. File the figures on eFiling.
Barb can prepare the draft for you (§03); a person still checks and submits it.
03 · Barb the Bookkeeper
Barb is an AI bookkeeper inside ERPNext: a separate, licensed add-on app (barb) from 2nth.ai, installed alongside ErpZeroZA and switched on per site with a key. She is not open source and is not needed to run ErpZeroZA. Her VAT201 tool uses ErpZeroZA's VAT set-up.
Switching her on
- Ask 2nth.ai for Barb for your site. You get access to the
barbapp and a Barb key. - Add the
barbapp to the bench (on Frappe Cloud, to the bench group), deploy, and install it on the site. - Put the key in the site config as
barb_key(on Frappe Cloud: the site's Site Config tab, Add Config, keybarb_key). There it stays out of database backups and out of sight in the desk. Barb Settings has a key field too, used only when the site config has none. - In ERPNext, open Barb Settings, tick Enabled and save. Leave the Barb URL as it is.
- Reload the desk. Ask Barb appears at the bottom right of every page.
Using her
Ask in plain words. Good first questions: "Prepare my VAT201 for September and October", "Why is this period a refund?", "Who owes us money, and who should I chase first?", or, with an invoice open, "Is this a valid tax invoice?". She answers with the figures, links to the documents behind them, and what to do next.
| She can | She cannot |
|---|---|
| Look up invoices, payments, journals, customers, suppliers, items, accounts and VAT returns | Submit, cancel or delete anything |
| Run the trial balance, P&L, balance sheet, cash flow, general ledger, registers, gross profit and age analyses | Pay, send email or file with SARS |
| Prepare or refresh a draft VAT201 for a period | Reach users, roles, settings or anything outside the books |
| Read the document open on your screen | See anything you can't: she works with your permissions and your companies |
Privacy and records
- Your books stay in your ERPNext. Barb's service decides what to look up; your system runs each lookup as you and sends back only the result. The service holds no password to your system and keeps nothing between questions.
- Each question is recorded in Barb Log: who asked, which lookups ran, the answer, the model used and the tokens it took. Users see their own entries; Accounts Managers see all.
- The model is Anthropic's Claude by default, called through Cloudflare AI Gateway on 2nth.ai's account.
- Barb is not a registered tax practitioner. On a judgement call she explains the rule, names the source and suggests you confirm with your accountant.
04 · Demo guests (showcase mode)
For consultants who want to let prospects try a demo company safely. Off by default; switch it on only on a demo site.
Before you switch it on
- An outgoing email account is set as the default (sign-in links are emailed).
- The demo company exists, with the data you want people to see.
Showcase Settings
| Setting | What it does |
|---|---|
| Enabled | Opens the sign-up form's endpoint and creates the Demo Guest role |
| Demo company | Guests see only this company |
| Barb questions per guest per day | Default 20; applies when Barb is installed |
| Days a guest account stays open | Default 7; signing up again opens it for another period |
| Sign-in link valid for | Minutes, default 60; each link works once |
| Send leads to | Each sign-up is emailed here, with the lead's address as reply-to |
| Marketing consent text | Shown on the form; consent is recorded only when the visitor ticks the box |
What a demo guest can do
Guests get the standard Accounts User, Sales User and Purchase User roles, limited to the demo company, so every screen works as it would for a real bookkeeper: they can open anything and draft invoices, quotations and journals, and ask Barb. On top of that the Demo Guest role switches off submitting, cancelling, deleting anything but their own drafts, and sending email. A guest's sign-up never touches an existing user's account.
Every night the drafts and records guests made are cleared, and guests whose period is up are switched off. Each sign-up is kept as a Showcase Lead: name, email, company, consent, and how often they signed up. What they asked Barb is in Barb Log.
05 · The lean profile
On install, ErpZeroZA stops scheduled jobs for modules a set of books never uses, so a small plan isn't spent on work nobody asked for: CRM and marketing campaigns, Plaid bank feeds, manufacturing BOM costing, quality reviews, helpdesk auto-close and service levels, supplier scorecards, YouTube statistics and Google Calendar sync. It also switches on log clean-up.
Nothing a user sees is switched off: search, email, notifications, recurring documents, projects, assets, stock and the website all keep running. A System Manager can switch the stopped jobs back on in Scheduled Job Type, or all at once with erpzero_za.lean.restore.
06 · Official sources
ErpZeroZA's set-up, these docs and Barb's explanations follow these documents. Where we and a source disagree, the source wins: tell us and we'll fix it.
| Source | Used for |
|---|---|
| Value-Added Tax Act 89 of 1991 | The rate (s7), zero-rating (s11), exemptions (s12), input tax (s16), tax invoices (s20), credit and debit notes (s21), tax periods (s27) |
| SARS VAT 404 – Guide for Vendors, Issue 15 (17 December 2024) | How supplies are classified; capital goods; imports |
| SARS GEN-ELEC-04-G01 – Guide to completing the VAT201 return, revision 11 (12 May 2025) | The VAT201 fields and how each is calculated |
| Tax Administration Act 28 of 2011, s29 | Keeping records for five years |
Check the SARS website for a newer issue before relying on a version number here.
07 · What changed
| Date | Change |
|---|---|
| 30 Oct 2026 | Barb moved into her own licensed add-on app (barb); ErpZeroZA works without her |
| 30 Oct 2026 | Demo guests (showcase mode): email sign-in, guard rails, nightly clean-up, leads by email |
| 30 Oct 2026 | Barb the Bookkeeper: panel, tools, Barb Settings and Barb Log; live on the Karoo Kettle demo |
| 30 Oct 2026 | VAT returns named by tax period (CCYYMM) |
| 29 Oct 2026 | South African VAT: one template per VAT201 field; VAT201 fixes for zero-rated, export and exempt sales |
| 29 Oct 2026 | Lean profile on install; app running on ERPNext v16 on Frappe Cloud |