Singapore · Free chart of accounts template

Singapore Chart of Accounts for Xero with GST Codes (Free)

A free Singapore chart of accounts built for Xero: every account carries its default Xero GST rate, as a readable CSV plus a ready-to-import CSV.

By ExpenseFlow team
· 25 June 2026

Free download · no email required

CSV with the default and other valid Xero GST codes per account. Import file and tax-rate list below.

Download chart of accounts (CSV)

This is a Singapore chart of accounts built specifically for Xero, with the right GST treatment set on every account using Xero’s own Singapore tax-rate names. It ships as a readable reference (CSV) and a ready-to-import CSV that carries the GST code on each account, so a new Xero organisation starts correctly coded at 9% rather than defaulting everything to standard or no tax.

Two files, both for Xero

  • The reference CSV lists every account with its class, its default Xero GST code, the other valid codes where more than one rate legitimately applies, and a note explaining why.
  • The Xero import CSV is formatted to Xero’s chart-of-accounts import, with the real Singapore tax-rate names in the Tax Code column, so accounts arrive already coded.

The Singapore quirks this chart bakes in

Singapore GST behaves differently from the UK or Australia in three ways that this chart encodes so you do not have to remember them per transaction:

  • Entertainment is claimable. Input tax on entertainment food and drink is recoverable in Singapore, so the Entertainment account defaults to Standard-Rated Purchases, not a blocked rate. The exception is benefits for the family of staff, which are blocked.
  • Blocked input tax has its own rate. Private S-plate motor cars, club subscriptions, staff medical costs, and family benefits are blocked under Regulations 26 and 27. These accounts default to Disallowed Expenses, which holds the 9% but bars the claim.
  • Financial supplies are exempt, not zero-rated. Bank fees default to Exempt Purchases, and bank interest income is an exempt supply, because the input-tax consequences differ from zero-rating.

The account GST code is a default, not a rule

In Xero the tax rate on a transaction line is chosen by priority: the contact’s default first, then the item’s, then the account’s default, and you can always override a line by hand. So the GST code on an account is the lowest-priority fallback that prefills the line. That is what you want: a sensible starting point that is right most of the time and easy to change when a transaction differs.

It is also why the CSV lists other valid codes beside the default. The Cost of goods sold account defaults to Standard-Rated Purchases but lists Imports: taxable supplies for stock cleared through Customs, and Reverse charge for imported services. Travel defaults to standard-rated for local fares but lists Zero-Rated Purchases and Out Of Scope Purchases for overseas legs.

What the import leaves out

The import CSV excludes the system control accounts (accounts receivable, accounts payable, the GST account, and retained earnings) because Xero creates them automatically and importing your own would duplicate them. The reference CSV still lists them, marked as system accounts, for completeness.

How to use it

  1. Open the CSV and adapt the account names to the business, keeping the GST defaults.
  2. In Xero, go to Accounting, then Chart of accounts, then Import, and upload the CSV.
  3. Import into a demo or new organisation first, and confirm the Singapore tax rates exist in your org.
  4. Use the other-codes column to brief whoever codes transactions on the legitimate alternatives per account.

Keeping every transaction coded correctly afterwards is the recurring work, and where most GST F5 errors creep in:

  • Dext extracts the GST and supplier from photographed receipts.
  • ExpenseFlow reads each receipt and bill, applies the correct Singapore GST treatment for the supply including the blocked and reverse-charge cases, and posts it into Xero against the right account, so the chart you imported stays correctly coded as volume grows.
  • HReasily and similar tools push payroll entries through, which stay outside the scope of GST.

The chart uses range-based numbering: assets in the 1000s, liabilities 2000s, equity 3000s, revenue 4000s, cost of sales 5000s, and expenses 6000s, with gaps so a new account always has a free number in the right range.

Using QuickBooks instead? See the Singapore chart of accounts for QuickBooks. For the rates themselves, see the Singapore GST codes in Xero reference.

Questions, answered

Common questions

Does the Xero import set the GST code on each account?

Yes. The import CSV fills Xero's Tax Code column with the real Singapore tax-rate names (such as Standard-Rated Purchases, Zero-Rated Purchases, and Exempt Purchases), so each account arrives with its default GST rate already set. You confirm the rates match your organisation during the import.

Why are private car costs coded as Disallowed Expenses?

Because GST Regulations 26 and 27 block input tax on private motor cars, club subscriptions, staff medical costs, and family benefits. Xero's Disallowed Expenses rate records the 9% GST but keeps it out of your claim, which is exactly the treatment those costs need. Commercial vehicles stay on Standard-Rated Purchases.

Is the account GST code fixed, or can I change it per transaction?

It is a default only. Xero sets a transaction line's tax rate by priority: the contact's default first, then the item, then the account's default, and you can override any line. So the account code is the fallback that prefills the line, not a rule that locks it.

Which accounts does the import leave out?

The system control accounts that Xero creates itself: accounts receivable, accounts payable, the GST account, and retained earnings. Importing your own would duplicate them. The readable CSV still lists them, marked as system accounts.

Keep exploring

Stop filling in spreadsheets by hand

A template is a starting point. ExpenseFlow captures receipts, reads the tax automatically, and posts the cleaned record to Xero or QuickBooks Online, so the log keeps itself.

Start free trial