By KYN AI Advisory Team — AI implementation specialists, Singapore
An AI agent reconciles a bank account by matching each bank line to a ledger entry in tiers: exact rules first, fuzzy rules second, a model's suggestion third, and a person for whatever is left. It never forces a match. The goal is that a clean month leaves a short exceptions list, not a long manual job. This article covers the matching rules and the exception handling. For the broader Singapore picture, see how to automate bank reconciliation in Singapore.
What does reconciliation actually require?
You compare two records of the same money: the bank statement and your ledger. Every statement line should pair with a ledger entry, or have a reason it does not. At month end, the difference between the two balances should be fully explained.
Three things go wrong repeatedly:
- Timing. A cheque or transfer is in the ledger this month and clears next month.
- Grouping. One bank deposit covers five invoices, or one invoice is paid in two parts.
- Noise. Bank fees, interest, foreign exchange differences and references typed by the payer.
Matching rules exist to handle these three.
How do the matching tiers work?
Run the tiers in order. A line leaves the process as soon as a tier matches it with confidence.
| Tier | Rule | Example | Action | |---|---|---|---| | 1. Exact | Same amount, same date window, same reference | Transfer of 4,280.00 with invoice number in the reference | Auto-match | | 2. Rule | Known pattern from a table you maintain | "GIRO COLL" lines from one payment provider | Auto-match, listed in the log | | 3. Fuzzy | Amount matches, reference partial, date within a few days | Payer typed "INV 1042" for invoice 001042 | Suggest, person confirms | | 4. Group | Several entries sum to one bank line | One deposit for five invoices | Suggest the set, person confirms | | 5. Model | Agent reads the description and proposes an account | Unknown card fee | Suggest, person confirms |
Tiers 1 and 2 are code and tables, not a language model. They are fast, repeatable and explainable. A model enters only at tier 5, where it proposes and a person decides.
What should the matching rules include?
Write the rules down before you build. A short, specific list works.
- Amount tolerance. Zero for domestic same-currency lines. For foreign currency, a tolerance that covers the bank's rate, set per currency and stated in the rule.
- Date window. The days between the ledger date and the bank date within which a match is allowed. Set it per payment method: transfers differ from cheques.
- Reference parsing. Strip spaces, case and prefixes before comparing. "INV-1042", "inv 1042" and "1042" should compare equal.
- One-to-one by default. A ledger entry matches one bank line, and the reverse. Group matches are a named exception.
- Duplicate guard. The same bank line imported twice must create one row, not two.
- Sign check. A credit never matches a debit entry.
The duplicate guard deserves care. In a manufacturer's ledger we built, 3,309 reconciled rows came through with zero duplicates because each row carried a key from the source line, and a repeat import could not create a second copy.
What goes on the exceptions list?
The exceptions list is the product. It is what the finance lead looks at each day.
Each exception gets a type, so the work can be sorted:
- Unmatched bank line. Money moved with no ledger entry. Usually a missing bill or an unrecorded receipt.
- Unmatched ledger entry. A recorded item with no bank line yet. Often timing.
- Amount difference. A match exists but the amounts differ: part payment, bank charge, or rate.
- Possible duplicate. Two bank lines or entries that look alike.
- Suggested match awaiting confirmation.
Show the item, the agent's closest suggestion, and the reason it was not matched automatically. A reviewer then picks: accept, choose another entry, or create a new entry with a reason.
Age the list. An unmatched bank line older than 30 days should rise to the top, because it will block the month-end close. See the month-end close checklist with agent steps.
How is it different from bank feeds in accounting software?
Bank feeds in packages such as Xero import lines and offer suggested matches. That is useful and cheap. A custom agent adds what the package does not cover well: your own reference rules, grouped matches across several systems, multi-currency handling, and a documented exception workflow with an audit trail. We compare the two in Xero bank feeds vs automated bank reconciliation.
If you have one account and a handful of lines a week, the built-in feed is enough. An agent pays off with several accounts, several entities or high volume.
What controls keep it safe?
- Read access to the bank, never payment rights. The agent imports statements. It cannot initiate a transfer.
- Every match logged with the tier, the rule, the actor and the time.
- Undo. A reviewer can unmatch any line, and the log records it.
- Sign-off. A named person signs the month's reconciliation. The agent prepares it.
- Changes to rules are versioned, so you can tell which rule version matched a line.
Money movement and filings stay with a named person. The agent's role is to compare and propose.
How do you test the rules before relying on them?
Use last quarter's data. Run the tiers on a period your team already reconciled by hand, then compare. Count lines matched correctly, lines matched wrongly, and lines left as exceptions. Wrong matches matter most: a wrong match hides a problem, an exception reveals one. Tighten the rules until wrong matches are zero in the test, even if that adds exceptions. The approach is the same as in hallucination checks for business agents.
What does a worked month look like?
Take a company with 220 bank lines in a month (illustrative). The tiers sort them like this.
| Tier | Lines matched | |---|---| | 1. Exact | 150 | | 2. Rule | 40 | | 3. Suggested, confirmed by a person | 18 | | Left as exceptions | 12 |
The person reviews 30 lines, not 220. The 12 exceptions are where the work is: a deposit that covers three invoices, a payment with no reference, an overseas receipt that arrived net of bank charges.
For a grouped deposit, the agent proposes the invoice combination that sums to the bank amount and shows the alternatives. If two combinations fit, it does not pick one. It lists both and waits.
Keep the results by month. If the exceptions share climbs, a payer changed how it writes references or a rule went stale. Fix the rule table, not the individual lines, so next month's volume falls.
Where KYN fits
KYN built a one-ledger reconciliation for a manufacturer: statement lines and accounting rows in one place, 3,309 reconciled rows, zero duplicates. Every system runs in a cloud account in the client's name, with named accounts, row-level security and every action logged with the actor.
The first 14 days are a review of your stack and interviews with your team. A full build ships in under 90 days. See finance systems.
Frequently asked questions
Can an AI agent fully automate bank reconciliation?
It can match most lines on its own. A person still signs off the month and resolves the exceptions. We do not recommend automatic matching of uncertain lines, since a wrong match hides an error.
Does the agent need access to my bank account?
It needs the statements, not the ability to pay. Read-only statement files or a read-only bank API are enough. Payment rights stay with your people.
What if my bank references are messy?
Messy references are normal. The tiers are built for them: normalise the text, match on amount and date, and send partial matches to a person with a suggestion.
Checked 30 October 2026.
Curious whether Marketing agents fits your business? Talk to KYN on WhatsApp — no forms, just a conversation.