Double-entry books for Singapore companies

Books that hold up
when somebody checks.

Invoices, bills, the bank, GST and a real general ledger — where a posted entry is corrected by reversal rather than edited, and a closed year is closed. The rules are in the database, not in the form.

  • Free for one company
  • No card
  • Singapore GST at 9%
New journal entryJE-00412
30 Jun 2025
Late supplier invoice
ACCOUNTDEBITCREDIT
6300 · Software1,240.00
2000 · Trade payables1,240.00
The books are closed up to 31 Dec 2025, so nothing can be dated 30 Jun 2025. Reopen that year from Year end if this really belongs there — otherwise date it in the current year.

The same refusal comes back from the database itself, so it holds for anything that skips this screen.

1000What this is

A set of books you can defend.

aXios Books is double-entry accounting for Singapore companies: invoices, bills, the bank, GST, and statements that tie to the ledger they came from. It does the bookkeeping. It does not pretend to do the thinking.

Real double-entry

Every transaction is a journal with debits equal to credits — checked by the database, not by the form. An invoice, a bill, a bank match and a depreciation run all post through the same code, so there is one ledger and no side-tables pretending to be one.

Corrected by reversal, never by editing

A posted entry is never rewritten. A correction is an equal and opposite entry, and both stay in the books. An entry you showed an auditor in March is still exactly that entry in November.

An audit trail that cannot be tidied

Who did what, when, and what changed — appended only. The table refuses updates and deletes at the database level, so the record of an awkward month is not something anybody can quietly improve.

A year end that actually shuts

Closing a year posts the journal that moves the result into retained earnings, and then locks every date in it. Nothing can be added, changed or removed in a closed year — not an invoice, not a bank match — until somebody reopens it, which is itself recorded with a reason.

Those four are not descriptions of good intentions. They are constraints and triggers in Postgres, which is why they hold even for somebody who bypasses the screens entirely.

What it does not do

2000What is in it

The parts, and what each one is for

Nothing here is a roadmap item. Every line below is a screen you can open on the free plan today.

Sales and purchases

  • Invoices and bills, with part payment and approval limits
  • Credit notes both ways — the ones you issue and the ones a supplier sends you
  • Aged debt and aged payables that tie to the control accounts, and say so

The bank

  • Import a CSV; nothing posts until you say so
  • Suggested matches, and rules that remember how a description was coded
  • Reconcile to a date and lock it — a locked period refuses changes

Tax and the year

  • GST F5 at 9%, box by box, with every figure drillable to the entries behind it
  • Fixed assets, straight line or reducing balance, with a monthly charge and disposals
  • A year-end close that posts the journal and locks the year

Control

  • Roles, per-area permissions and an approval limit on bills
  • A full audit trail, append-only, filterable by area and person
  • Several companies in a group, each with its own books

3000A month in the books

Six things, in order

No part of this runs while you are asleep. It is bookkeeping, done in a place that refuses to let you do it wrongly.

  1. 01

    Raise what you sell, record what you buy

    An invoice or a bill posts its own journal — receivable or payable, income or cost, and the GST to the right control account. A credit note corrects one without pretending it never happened, in either direction: the ones you issue and the ones a supplier sends you.

    A bill over the approval limit needs somebody who can approve it.

  2. 02

    Import the statement

    A CSV from the bank. The preview shows every row as it was read, before anything is written, because nobody re-reads four hundred lines afterwards. If the headings are unusual, you say which column is which.

    Importing changes nothing in your books. It records what the bank says.

  3. 03

    Match, and teach it

    Lines that agree exactly with something already in the books are offered with the reason shown, so you can check it rather than trust it. For the ones with no document behind them — the charge, the subscription — write a rule once and it fills in the answer every month after.

    A rule fills in the answer. It never posts on its own.

  4. 04

    Agree the month and lock it

    The reconciliation states the difference between the bank and the books and what explains it. Locking a period fixes it: matched lines in it cannot be changed, and reopening is recorded.

    Locking is a separate permission from matching, on purpose.

  5. 05

    File the GST

    The F5 laid out box by box at 9%, with every figure drillable to the entries behind it — including blocked input tax in Box 5 rather than Box 7, which is the one most often put in the wrong place.

    Prepared for filing. You still file it.

  6. 06

    Close the year

    One journal moves the year’s result into retained earnings, and the year shuts. Afterwards nothing dated inside it can be added, edited or deleted — which is what makes the figures you filed still the figures you filed.

    Reopening takes a reason, and the reason goes in the trail.

4000Reports

Nothing is stored, so nothing can disagree.

Every figure on every report is summed from journal lines the moment you open it. There is no month-end process that has to have been run first, and no cached total that can quietly go stale.

Profit and loss

Any period, with a comparison. Income, cost of sales, operating and other costs, gross and net.

Balance sheet

As at any date, with retained earnings and the year’s result shown separately — and the difference stated rather than assumed.

Trial balance

Every account with a balance, debits and credits, and whether it adds up.

Aged debt and aged payables

By customer and supplier, with unapplied credit notes on the report — because a credit note that has not been set against anything is real money the control account already knows about.

Cash position and a 13-week forecast

What is in the bank, and what the invoices and bills already entered do to it week by week. Money that is already overdue is kept out of the running line unless you ask for it.

GST F5

Box by box at 9%, each figure drillable to the entries behind it.

Fixed asset register

Cost, accumulated depreciation and book value, tied back to the ledger accounts, with the difference shown.

Audit trail

Every entry, approval, match and change, filterable by area and by person. Append-only.

Two of these can legitimately differ from the ledger — the asset register and the aged reports are built from documents rather than from journals. Both show the tie-out on the screen, with the difference in figures. A report that quietly disagrees with the balance sheet is worse than one that says it does.

5000Control

What one person can do on their own

The useful question about an accounting system is not what it lets you do. It is what it lets one person do quietly.

Permissions per area, not one big switch

Transactions, bank, reports, people, settings — each with view, edit and approve. Every page and every download checks its own; a standing test derives the list of routes from the filesystem and fails if one is added without a guard.

An approval limit on bills

Above the limit, the person who entered it cannot also approve it. Checked where the entry is posted rather than where the button is drawn, so it holds whichever door the request came through.

Signing off is a separate right from doing

Matching the bank is bookkeeping. Locking the period says it has been checked, and the person who did the matching is not always the person who should be saying so. The two are different permissions.

A trail that cannot be edited

Who did what, when, to which record, with what changed. The table refuses updates and deletes — not by convention, by trigger — so an inconvenient month cannot be tidied afterwards by anybody, including us.

More than one company

  • Several companies under one login, each with its own books and its own chart
  • A parent and its subsidiaries, with the holding percentage on record
  • Invite people per company, with their own role in each

6000Singapore

One country, properly.

Every decision below makes this software worse for a company somewhere else. That is the trade, and it is worth saying out loud rather than implying it works everywhere.

GST at 9%
The rate since 1 January 2024. The F5 is laid out box by box, and every figure opens onto the entries behind it, so a number you cannot explain is a number you can click.
Blocked input tax in Box 5
Not Box 7. It is the sort of thing that is obvious once somebody tells you and expensive until they do, so the tax codes carry it rather than leaving it to be remembered.
Records kept five years
IRAS requires it, which is one of the reasons a posted entry here is corrected by reversal rather than edited away.
Singapore dollars only
Enforced by the database, not offered and then half-supported. Foreign-currency invoicing needs rates, revaluation and a translation reserve to be right.
UEN and ACRA names
The registered entity, the trading name and the UEN are on the company record and on the documents you send.
Your financial year, not the calendar
Set the month your year ends in and the reports, the year-end close and the comparatives all follow it.

7000Honestly

What it does not do

Worth reading before the pricing rather than after the first week. If one of these is the thing you need, this is not the product for you yet — and that is a better outcome for both of us than finding out in month two.

No payroll, and no CPF

Singapore payroll means CPF by age and residency, SDL, the self-help group funds, IR8A and AIS. It is a regulated product of its own, and a wrong rate costs you penalties, not us. Run payroll where you run it now and post the journal here.

No bank feeds

You import a CSV. There is no live connection to a bank, so the statement is as current as the file you downloaded. The import is careful about it — it shows you the parsed rows before writing anything, and it will not import the same line twice.

No migration from Xero or QuickBooks

There is no importer. Opening balances and the chart of accounts are entered at setup; history stays where it is. Starting at a year end is the least painful moment.

One currency

Everything is in Singapore dollars, and the database enforces it. Foreign-currency invoicing needs rates, revaluation and a translation reserve to be right, and half of that is worse than none.

Nothing chases your customers

The aged debt report tells you who is late. Sending the reminder is still yours to send.

No AI doing your bookkeeping

Statement matching is suggested by comparing amounts, dates and references, and a bank rule is a phrase you wrote down. Both show their working, and neither posts anything without you. There is no model deciding what an expense is.

The list is kept current deliberately. If something on it ships, it moves up the page; the terms and privacy notice are written the same way, and say plainly where they are still waiting on a lawyer.

9500Pricing

Start free. Grow into Pro.

The accounting is the same on both. Free keeps one company's books for good; Pro is for a team, or for more than one company. Try it for 30 days without a card.

Free

One company’s books, kept properly, free for as long as you like.

S$0

Free forever

  • The whole ledger — invoices, bills, credit notes, the bank, GST
  • Every report, including the year-end close
  • 1 company and 2 people
  • Approval limits and a full audit trail
Start free

No card needed

Pro

30-day free trial

A team, or more than one set of books.

Contact us

Priced for your entities and team · 30-day trial, no card

  • Everything in Free — the accounting is the same
  • As many companies and people as you need
  • A parent and its subsidiaries, with holdings on record
  • Support from the people who wrote it

No card for the trial · we’ll quote before it ends

Free and Pro plans compared
Compare plansFreePro
Double-entry ledger, invoices, bills, credit notes
Bank import, matching, rules and reconciliation
GST F5, fixed assets and the year-end close
Every report, including the cash forecast
Approval limits and the audit trail
Companies1As many as you need
People2As many as you need
Group structure — a parent and its subsidiaries
Support from the people who wrote it

Questions, answered

Is Free really free?

Yes. One company and two people, with the whole ledger — invoices, bills, the bank, GST and every report — for as long as you like. No card.

How does the 30-day Pro trial work?

Everything in Pro is unlocked for 30 days, with no card. We’ll be in touch about pricing before it ends. If you don’t go ahead, your company moves to Free and your books stay exactly as they are.

Why is Pro priced by conversation?

Pro covers anything from one busy company to a group of them. We’d rather quote one clear price for your entities and team than make you decode tiers.

Can I change plans later?

Any time. Move to Pro when you need more people or another company — your books, rules and approvals come with you, and nothing is re-entered.

Keep the books once,
and keep them right.

One company free, for as long as you like. Set up the chart, put in your opening balances and raise the first invoice this afternoon.

Free for one company · 30-day Pro trial · no card