The first few days of every month used to disappear into one task: matching a month of bank lines to the ledger by hand, one transaction at a time, inside AccountsIQ.
If you run AccountsIQ, you know the close I mean. The platform is good at what it is built for, multi-entity and multi-currency books that consolidate cleanly, which is exactly why finance teams with complex structures choose it. But the monthly bank reconciliation and close still eat real days, and most of those days are mechanical: read a bank line, find the matching entry in the ledger, post it, allocate it, repeat a few hundred times, then prove the whole thing ties.
So we built an AI controller that does the mechanical part and leaves the judgement to a person. If you run AccountsIQ and the monthly bank reconciliation is eating your days, this is how we automated it without putting the books at risk.
What the AI controller actually does
It reads the bank statement, matches each line to the right entry in the ledger, posts the month as payments, journals and receipts, allocates each one, and then reconciles, statement against ledger, to the cent. At the end you get a clean close and a record of every decision it made.
One thing I want to be straight about, because the word AI gets attached to everything right now. Most of this is not AI. The matching is deterministic code: a known supplier, a recurring charge, an exact amount on an exact date all resolve with plain rules, and that is what you want, because rules are predictable and you can test them. AI earns its place only on the lines that are genuinely ambiguous, where something has to reason about what a transaction probably is. The reliability comes from keeping those two jobs separate.
How it interfaces with AccountsIQ
AccountsIQ has an open API, and that is what makes this possible without screen-scraping or fragile robot clicking. We read through the API (the chart of accounts, the trial balance, transactions, open invoices) and we write through it (journals, payments, allocations).
Because this is a live financial ledger and not a sandbox, a few rules are not negotiable:
- Read before every write. The controller reads the current state of the ledger first and posts only the genuine gap, so it never enters something that is already there.
- One writer. The automation is the single thing that writes to the books. That alone removes the messy collisions you get when two people post to the same account in the same week.
- Capture the real transaction ID, then read it back. A write is not done because the API returned success. It is done when we read it back off the ledger and confirm it is there and correct.
- An append-only audit log of every read and every write, so there is a line-by-line record of exactly what the system did and when.
None of this is glamorous, but when you tie to the cent on both sides of the ledger, even a non-financial person like myself can understand that this works.
The testing is the product
We run close to four hundred automated tests against this system. Not for show. When code can post real money to a real ledger, "it mostly works" is the most dangerous sentence going. I wrote separately about auditing those tests and what I found, but the short version belongs here too.
The tests that matter most are the two guards. One refuses to post to the live books unless it is given an explicit, typed confirmation, so nothing fires by accident. The other reads the ledger before posting to check the line is not already entered, so the system physically cannot double-post. Those two get tested the hardest, because they are the ones standing between a normal Tuesday and a call to a client I do not want to make.
Early on, this system once missed half a bank statement in a single month. We caught it, and I wrote about that too. The fix was not less automation. It was a completeness check that now proves every single statement line is accounted for, posted or held, before anyone trusts the close.
Who this is for
If you run AccountsIQ, close more than one entity every month, and the bank reconciliation is eating days you would rather spend on the work only a person can do, this is exactly what we build. We are a small fractional AI ops team, and AccountsIQ automation is one of the things we do well, because we have done it on a live, audited, multi-entity book and learned where it bites rather than where it looks good on a slide. We do it two times per month and build the reporting around how you actually close.
And if you are on the AccountsIQ team and you have read this far: we are building on your API in the open, carefully, with the ledger's safety as the first rule. I would happily compare notes.
I did not set out to become the person who automates other people's month-end close, but if I am going to do it and get good at it, I am your specialist.
Monthly Revenues $11,000 | Clients 2 | Prospects (AI outbound agent now live) | Team: Me + part time Jan (CTO)
Day 95 of 365.