Resource
How to automate bank reconciliation, and what still needs a person
Bank reconciliation confirms that every line on the bank statement is matched to an entry in the books, and that the balances agree. Automation handles the reading, matching and checking. A person still approves postings, resolves what does not match and signs off the month. This guide sets out the nine steps for a Singapore or Southeast Asian SME.
Written by Kyn Technology Pte Ltd (UEN 202622080C), which builds reconciliation systems. This is a description of how the software works, not accounting advice.
On this page
Manual reconciliation costs
In a typical small finance team, reconciliation means downloading statements, pasting them into a spreadsheet, and ticking lines against the accounting system by eye. Three problems follow.
- It is done late. When reconciliation waits for month end, a duplicate payment or missing receipt is found weeks after it happened.
- It depends on one person. When that person is away, it stops.
- Errors hide in totals. A spreadsheet that balances can still contain two offsetting mistakes.
Accounting systems with bank feeds solve part of this. They struggle with banks that do not feed, multiple currencies, statements in PDF only, and two systems that both claim to be the record during a migration.
Nine steps
1. Collect every statement, every month
List each bank account, currency and card in scope, and how its statement arrives: emailed PDF, downloaded CSV, or a bank API. A missing statement is the most common reason a reconciliation stalls. The system should know which statements are expected and chase the ones that have not arrived.
2. Parse each bank format and check the totals
Each bank lays out statements differently, and some change layout without notice. Use one parser per format. After parsing, check the result against the statement’s own printed figures: opening balance plus credits minus debits must equal the closing balance. If it does not, reject the file and flag it. Never load a statement that does not add up.
3. Normalise lines into one ledger
Convert every line into the same shape: account, date, amount, direction, currency, description, reference and source file. Keep the raw text. Mark each line with where it came from so any figure can be traced to the statement page it was read from.
4. Pull open items from the accounting system
Read open invoices, bills, receipts and journals from your accounting system, e.g. Xero, through its API or an export. These are the candidates each bank line can match. Refresh them before every run so a line is not matched to an item someone already cleared.
5. Match in passes, strictest first
Run matching in passes. First, exact amount plus a reference such as an invoice number. Second, exact amount, a date window of a few days and a known counterparty. Third, combinations: one payment covering several invoices, or one invoice paid in parts. Fourth, rules for recurring items such as bank charges, payroll and rent. Each proposed match records which pass found it and why.
6. Review proposals and post on approval
A person reviews proposed matches, in batches for the strict passes and one by one for combinations. Only approved matches are written to the accounting system. Approval records who and when.
7. Resolve unmatched lines
What remains goes to a review list with the closest candidates shown: unknown counterparties, cash deposits, unexplained differences, missing invoices. A person resolves each one, and the decision can become a new rule for next month.
8. Audit the two books against each other
Periodically compare the reconciliation ledger with the accounting system line by line. Report missing and mismatched entries as counts. The target is zero and zero; anything else is a list to fix, not a rounding difference to ignore.
9. Report balances and open lines
Send a short daily or weekly report to the people who need it: balance per account, lines still unmatched, and statements not yet received. Finance owns the month-end sign-off.
What still needs a person
- Approving postings to the accounting system.
- Classifying new counterparties and one-off transactions.
- Cash deposits and payments with no reference.
- Differences caused by fees, foreign exchange or short payments: write off, chase or reclassify.
- Suspected fraud or duplicate payments.
- Month-end sign-off.
Automation shrinks this list. It does not remove it. A system that claims full automatic reconciliation is either posting guesses or hiding unmatched lines.
KYN is not an accounting or tax adviser. Treatment of specific transactions should be decided by your finance team or accountant.
Worked example
A steel fabrication manufacturer in Southeast Asia was moving from an old accounting system to a cloud one. The build created one ledger from both sources.
- 776 bank statement lines and 2,004 accounting rows backfilled.
- Parsers for four bank formats, each checked against the statement’s printed totals.
- Mirror audit against the cloud accounting system: 3,951 journals, 0 missing, 0 mismatched.
- A morning agent chases missing data from the finance team at 08:00 and sends shareholders a cash brief on WhatsApp at 09:00.
The audit count is the useful number. It tells the shareholders that the two books agree, line by line, without anyone re-ticking a spreadsheet.
Starting point
- Gather one month of statements for every account, including one month with corrections or reversals.
- Export the same month’s open and closed items from your accounting system.
- Write down the five most common reasons lines do not match today.
- Decide who approves postings and who signs off the month.
With those four items, a build can be scoped. See bank reconciliation automation for how KYN builds it, invoice chasing for the receivables side, and /pricing for fees.
Frequently asked questions
What is automated bank reconciliation?
Software that reads bank statement lines, matches each one to an invoice, bill, receipt or journal in the accounting system, proposes the matches for approval, and lists what remains for a person to resolve.
Is my accounting system’s bank feed enough?
Often, yes, for one or two local accounts with clean references. A custom build fits when banks do not feed, statements arrive as PDF, there are several currencies, or two systems must be audited against each other.
How often should reconciliation run?
Daily or weekly where statements allow. Problems found within days are cheaper to fix than problems found at month end.
What match rate should I expect?
It depends on how consistently customers and suppliers quote references. Lines with references match readily; cash deposits and unreferenced transfers usually need a person. Measure your own rate on one month before setting a target.
Is it safe to give software access to bank data?
Use read-only statement files or read-only bank access where possible, keep credentials in your own accounts, restrict access by role, and agree retention in writing. Singapore’s PDPA applies to the personal data in statements.
Can it handle foreign-currency accounts?
Yes. Each account is reconciled in its own currency, and conversion differences are listed for a person to treat according to your accounting policy.