The Chart of Accounts is the backbone of your accounting system. Sadeed ships every new tenant with a curated set of 77 system-managed accounts, numbered to the international standard (1xxx–8xxx) so your financial statements look familiar to any accountant.
Numbering at a glance:
1000–1499 Current Assets — cash, bank, receivables, prepayments, inventory
1500–1999 Non-current Assets — land, buildings, vehicles, equipment, IT, furniture, accumulated depreciation
2000–2499 Current Liabilities — Input/Output VAT, short-term loans, accrued expenses, deposits received, GRNI, project customer advances, suspense for unidentified receipts
2500–2999 Non-current Liabilities — EOSB provision, long-term company loans
3000–3999 Equity — paid-in capital, retained earnings, opening balance, inventory opening balance, owner drawings, project trust opening balance
4000–4499 Operating Revenue — sales, service, rental, commission, returns, discounts allowed
4500–4999 Non-operating Revenue — interest income, other income, discounts earned
5000–5999 Payroll & Personnel (Operating Expense) — basic salaries, allowances, overtime, social insurance, EOS benefit, employee expenses
6000–6999 Direct Project Costs (Direct Expense) — fleet, job materials, subcontracting, cost of goods sold
7000–7999 G&A Overhead (Overhead Expense) — office, marketing, hospitality, government fees, depreciation, rent, utilities
8000–8999 Other / Non-operating Expenses — bank charges, donations & CSR, R&D, inventory impairment & write-off, interest, bad debts, FX differences
What makes them "system":
Every system account has a stable, non-null system_code on the ifrs_accounts table (e.g. CASH_ON_HAND, VAT_INPUT, CAPITAL, COGS, SALES_REVENUE). The system_code is your immutable lookup key — account names may be translated, codes may be renumbered by the accountant, but system_code never changes. Developers fetch them via the helper:
SystemAccount::get('CASH_ON_HAND')
SystemAccount::id('VAT_INPUT')
System accounts cannot be deleted. If you try, Sadeed blocks it with a friendly message and offers "Freeze" instead — toggling Active/Inactive so the account stops appearing in dropdowns without losing its transactional history.
VAT, Project Trust, and Suspense:
Besides the 77 accounts, every tenant also gets 7 system VAT rows: 5% / 10% / 15% × (Input + Output) plus a standalone Zero VAT used whenever a line item must bypass tax. Project trust accounts are built as children of two dedicated system parents — PROJECT_OPENING_BALANCE_EQUITY (3500) and PROJECT_CUSTOMER_ADVANCES (2300) — so every real estate project's fiduciary funds land in a clean, reportable structure without polluting the company's own books. And if money ever lands in your bank without a clear source, post it to UNIDENTIFIED_RECEIPTS (2060) and reclassify once the source is found.
Tips:
- Don't rush to create custom accounts. 77 is already most of what a small-to-medium business needs.
- If you do create custom accounts, pick codes OUTSIDE the system ranges (e.g. start your own sub-accounts at 1200+, 2200+, etc.) so the system seeder's future additions never collide.
- Look up accounts by system_code, not by name — names can be customised per tenant.
- For VAT, use the 5/10/15% system rows — don't create new pairs unless you genuinely operate under a different rate.
- To hide a system account from the UI without losing data, "Freeze" it from the Chart of Accounts list.
Questions about setting up your chart of accounts, adding sub-accounts, or mapping your legacy codes to Sadeed's numbering? Ask below — the Accounting & Finance channel lives for this stuff.
The 77 System Accounts in Sadeed — How the Chart of Accounts is Organised
Login from your company dashboard to comment