Editions¶
SAE Books ships as a single binary. The edition you run — and the features that are live — is controlled by your licence key and environment variables. There is no separate paid codebase.
Editions matrix¶
Five editions ship from a single codebase, arranged as a strict superset
(Community ⊂ Offline ⊂ Business ⊂ Pro ⊂ Enterprise). Upgrading never
removes a feature you already had.
| Feature | Community | Offline | Business | Pro | Enterprise |
|---|---|---|---|---|---|
| Ledger | |||||
| Double-entry journal entries | yes | yes | yes | yes | yes |
| Invoices, bills, payments, credit notes | yes | yes | yes | yes | yes |
| Chart of accounts (AU standard seed) | yes | yes | yes | yes | yes |
| GST / BAS preparation | yes | yes | yes | yes | yes |
| P&L, balance sheet, trial balance | yes | yes | yes | yes | yes |
| Fixed assets v1 (straight-line depreciation) | yes | yes | yes | yes | yes |
| Fixed assets v2 (diminishing-value, partial disposal, bulk import) | no | yes | yes | yes | yes |
| Foreign currency (FX) + revaluation | no | yes | yes | yes | yes |
| Inventory (weighted-average cost) | no | yes | yes | yes | yes |
| Projects + budgets | no | yes | yes | yes | yes |
| Purchase orders | yes | yes | yes | yes | yes |
| Users and access | |||||
| Single admin user | yes | yes | yes | yes | yes |
| Granular permissions matrix (45 codes × custom roles) | no | yes | yes | yes | yes |
| Multiple companies per install (company switcher) | no | no | yes (cap 2) | yes (cap 3) | yes (unlimited) |
| Themes | |||||
| All UI themes (default, MYOB Classic, cloud, dense) | no | yes | yes | yes | yes |
| Extended audit modes | |||||
| Immutable ledger audit mode | yes | yes | yes | yes | yes |
| Open journal + hybrid audit modes | no | yes | yes | yes | yes |
| Outbound email | |||||
| SAE-hosted SMTP relay (invoice / statement delivery) | no | yes | yes | yes | yes |
| Compliance integrations | |||||
| ABR lookup (entity name / GST status by ABN) | no | no | yes | yes | yes |
| Bank feeds (SISS / ACSISS daily sync) | no | no | yes | yes | yes |
| Stripe + Paperless integrations | no | no | yes | yes | yes |
| AI document extraction (receipt / invoice OCR) | no | no | yes | yes | yes |
| ATO SBR e-lodgement (BAS, STP via SAE lodge relay) | no | no | no | yes | yes |
| LEI / GLEIF lookup | no | no | no | yes | yes |
| UK Companies House lookup | no | no | no | yes | yes |
| QBO data import (migration tooling) | no | no | no | yes | yes |
| Ad-hoc SQL query tool | no | no | no | yes | yes |
| Audit snapshot service | no | no | no | yes | yes |
| Scheduled automated backups | no | no | no | yes | yes |
| Per-company SISS credentials | no | no | no | no | yes |
| Support | |||||
| Community forum | yes | yes | yes | yes | yes |
| Priority support (defined response SLA) | no | no | no | no | yes |
| Signed releases + LTS branches | no | no | no | no | yes |
How edition gating works¶
The active edition is resolved at startup in this order:
- USB licence (Offline) — an Ed25519-signed licence file on a USB drive whose hardware ID is bound to the licence.
- Portal JWT (Business / Pro / Enterprise) — a signed JWT from
license.saebooks.com.au, cached locally and refreshed daily. - Community — fallback when no licence is present; no key required.
For development and testing, SAEBOOKS_EDITION in .env overrides the resolver entirely (a warning is logged so a misconfigured production box is obvious):
Feature gates in the code are transparent: require_feature(FLAG_BANK_FEEDS) returns 404 (not 403) on editions without the flag, so lower-tier installs don't advertise routes they can't fulfil.
Pricing¶
Current pricing is at saebooks.com.au/editions. Subscription licences are bound per install (per ledger_id); Offline is a perpetual USB-bound licence (one per physical drive).
AGPLv3 and forking¶
The entire codebase — including Enterprise feature code — is published under AGPLv3. You can fork it, run it, and modify it. The copyleft applies: if you distribute a modified version or run it as a service for others, you must publish your changes under the same licence.
The SAE Engineering relays (license, lodge, feeds) are private commercial services. A fork of the API binary cannot use SAE Engineering's Stripe keys, ATO Machine Credential, or SISS Data Services agreement. Forkers who want those integrations need to establish their own agreements.
Changing edition¶
To move between subscription tiers (Business / Pro / Enterprise), apply a new portal JWT from your account portal and restart:
The resolver picks up the refreshed JWT on start. No data migration, no reinstall. The feature flags flip in seconds.
To return to Community, remove any cached JWT/USB and set SAEBOOKS_EDITION=community in .env. Your data is untouched.