
Saman Herath
September 27, 2026

Form C-S, C-S (Lite) and Form C for YA 2026 are due on 30 November 2026. For most Singapore firms, that makes October and November the months when late bank statements finally get cleared. The slow part is rarely the tax computation. It is the stack of DBS, OCBC and UOB statements that still has to become clean ledger lines.
Quick answer: Singapore firms automate bank statements in two layers. A direct bank feed into Xero covers new transactions for connected accounts. The feed misses older months, new clients and unconnected foreign currency accounts. For those, firms run the PDF through an extraction tool that reads every line and checks the balances. The result goes to Xero as statement lines, or to any ledger as a CSV. Reconciliation still happens in your ledger.
We make tofu, so weigh our view with that in mind. The bank details below come from DBS, OCBC, UOB, Xero and IRAS pages, linked in the sources.
IRAS says it plainly: "The annual filing due date for Form C-S/ Form C-S (Lite)/ Form C is 30 Nov".
Firms with a stack of December year end clients feel that date in September. Those accounts need closing before anyone can prepare the return.
Here is the pattern we keep hearing from Singapore firms this season. A client arrives late with a year of statements. Another has three bank accounts but only one is on a feed. A third sends a folder of PDFs covering two years. Each one is a small job. Together they fill October.
| Date | What it means for bank work |
|---|---|
| Now to October | Collect missing statements while the bank still shows them online |
| October to mid November | Convert, check and import backlog statements, then reconcile |
| 30 November 2026 | Form C-S, C-S (Lite) and Form C due for YA 2026 (IRAS) |
Each bank gives you something different. That is why one manual process never fits all three.
| Bank | Official statement | Transaction export | How far back online | Xero connection |
|---|---|---|---|---|
| DBS (IDEAL) | PDF eStatement | Excel (.xls) or PDF | "Up to 7 years", though DBS also says "the available statements are up to August 2020" | Direct feed, set up through DBS IDEAL |
| OCBC (Velocity) | PDF e-Statement | Not stated on OCBC's e-Statements page | Up to 14 months for business accounts, "subject to availability" | Direct feed for business current and savings accounts, including foreign currency |
| UOB (Infinity) | Account statement | PDF, CSV, spreadsheet or fixed length | Account activity for the past 12 months | Feed set up through a UOB registration form |
A few details matter more than they look.
Bank feeds are the best source for new transactions. OCBC says business transactions from the previous day "will appear in Xero the next morning." DBS announced its API feed to Xero in 2017. UOB runs its feed through an online registration form.
The catch is history. Xero's Singapore page offers "the option to pull historical transaction data from the past 90 days or up to 2 years, depending on the bank". Anything older than that, or any account nobody connected, still has to come from statements.
In practice that covers:
So the real question is not feed or statements. It is how fast you can turn the statements into data the feed would have given you.
Five problems came up again and again in conversations with firms this month.
Say you type a long statement by hand and the closing balance is out by a few dollars. Now someone has to find the one line that caused it. Often it is a transposed digit or a line typed twice across a page break. The fix takes longer than the typing.
Statements that cross a year end are the usual trap. A line dated "02 Jan" on a December statement can land in the wrong year. Day and month can also swap when a file moves between Excel settings. Wrong dates break reconciliation and push transactions into the wrong period.
A single multi-currency statement can hold several currency sections one after another. Each section needs its own bank account in the ledger. Typed as one list, the balances will never agree.
Bank exports rarely match what the ledger expects. Some carry several header lines above the data. Some split debits and credits into separate columns. Others put the running balance where the importer wants an amount. Somebody ends up cleaning each file in Excel before it will load.
Say one client has 24 months across three accounts. That is 72 statements. Five such clients and your team spends November typing instead of reviewing.
The workflow is the same whichever bank issued the statement.
Step 3 is the one that saves the most time. A balance check tells you a statement is complete before it reaches the ledger, not three weeks later during review. For a deeper look at the extraction step, see our guide on converting multi-page PDF bank statements to Excel or CSV.
These were the two questions firms asked most, so here are straight answers for tofu. Other tools differ, and our comparison of bank statement extraction tools covers them.
| Ledger | How statement data gets in | Notes |
|---|---|---|
| Xero | Publish directly to the Xero bank account as statement lines | Waitlisted; tofu support enables it. Single-account statements only, dated within the past 12 months. Each statement publishes once. Not available for the Demo Company, inactive organisations or Ledger editions |
| Xero | Export a Xero CSV and import it under bank accounts | The route for statements older than 12 months and for multi-account statements |
| QuickBooks Online | Export with the QBO Bank Statement template, then import under Settings, Import data, Bank data | Manual import step in QuickBooks Online |
| Other ledgers | CSV or Excel export from 40+ templates | Covers Zoho Books, Sage, NetSuite and others |
On reconciliation: tofu does not reconcile. It gets the statement lines into Xero or QuickBooks, checked and coded, and your team reconciles there as usual. That split is deliberate. The ledger is where your matching rules, invoices and audit trail already live.
Note the 12 month limit on direct publishing. For a backlog older than that, or a multi-account statement, the Xero CSV is the route.
tofu is the capture and data-entry layer, not a ledger. For bank statements it reads PDFs from DBS, OCBC, UOB or any other bank, then checks the balances and suggests coding for each line. The result goes to Xero, QuickBooks Online or a CSV for other software. It works on the same PDFs clients already send, so a new client does not need a feed before you can start.
It does not replace the bank feed for day-to-day transactions, and it does not reconcile.
WLP, a Singapore Xero Platinum Partner, cut bank statement processing from 15 min to 2 min per page vs manual Excel entry. Co Founder Li Han Tan put the benefit this way:
"It is even faster than what we previously used. For my consultants who are trying to extract transaction volumes to quote new clients, speed is key. Trying to get back to your clients fast, that helps a lot."
Li Han Tan, Co Founder, WLP (read the WLP case study)
If you have a backlog to clear before 30 November, run a few of your worst statements through it first. Start a free trial or see pricing. For how this fits with the rest of your stack, see bookkeeping automation software for Singapore firms and the tofu Xero integration.
Yes, all three banks offer a feed into Xero for business accounts. OCBC says business current and savings accounts are eligible, including foreign currency accounts. DBS connects through IDEAL, and UOB uses a registration form. Check with the bank or Xero Central for the specific account type, since eligibility can vary.
Xero's Singapore page says you can pull history from the past 90 days or up to 2 years, depending on the bank. Anything before that needs statements. If you take on a client in October to file YA 2026, plan on statements for at least part of the year.
OCBC shows business e-Statements for up to 14 months, subject to availability. DBS says IDEAL shows "up to 7 years" of account statements. The same page adds that "the available statements are up to August 2020", so check IDEAL for older months. UOB Infinity displays account activity for the past 12 months. Download what you need early, before older months drop off.
Bank exports often carry extra header lines, split debit and credit columns, or a layout that differs from the official statement. Xero's importer expects a specific column set. You can clean the file by hand, or extract from the PDF straight into a Xero CSV template.
No. tofu extracts, checks and codes the statement lines, then publishes them to Xero or exports a file for QuickBooks Online and other ledgers. Your team reconciles inside the ledger as usual.
Compare the running balance line by line from the opening balance. The first row where your calculated balance differs from the printed balance is where the error starts. With per-line balance validation on, tofu's review screen marks that row for you. You fix one line instead of rechecking the whole statement.
Treat each currency as its own bank account in the ledger. tofu gives each account and currency on a statement its own section. Multi-account statements export as one file per account.
The workflow is the same, but the feed picture is different. Singapore's three big banks all offer Xero feeds, so the gap is mostly history and unconnected accounts. Our Malaysia bank statement guide covers the local picture there.
Checked against IRAS, DBS, OCBC, UOB, Xero and tofu Help pages in September 2026.