For many finance teams, matching is where the loose minutes disappear: pick up a bank transaction, work out which invoice it belongs to, link it, next. So the question of whether AI can take it over comes up often. The answer is yes, with your confirmation in between, and it is worth knowing exactly how.
Can AI match my bank statements?
Yes. An assistant retrieves your outstanding items, lines up the bank transactions and says per line which invoice it probably is, including the ones it is unsure about. After your approval it matches the payment to the invoice with financial_entries_match. Both entries — the invoice and the bank or cash entry — must already exist in Exact Online.
What matching actually does
A payment on your bank account is at first just an amount with a description. Matching is the act of connecting that transaction to the outstanding item it belongs to. Only after that does your debtor position hold up, does the invoice drop out of your reminder list, and do your ageing reports mean anything.
Which is exactly why the step is sensitive: a wrong link does not show up in a total, but it does propagate into your reminders and your VAT. The error is quiet, and that makes it expensive.
What the connector can do today
| What you want | Tool | Read or write |
|---|---|---|
| Retrieve outstanding items | financial_outstanding_get | read |
| Search receivables | cashflow_receivables_search | read |
| Debtor ageing report | financial_aging_receivables | read |
| Inspect existing bank entries | financial_bank_search, financial_bank_get | read |
| Create a bank entry | financial_bank_create | write |
| Add a line to that entry | financial_bank_add_line | write |
| Match the payment to the invoice | financial_entries_match | write |
With these seven you cover the whole process: the assistant works out which invoices are still open and which bank line fits, creates the bank entry if needed and matches as soon as you approve.
How matching works
Exact Online has no matching in its regular REST API. financial_entries_match therefore uses the Exact XML interface (topic Matching, the same topic you find in Exact itself under Import/export). You only give the entry numbers; the tool looks up year, period, journal, GL account, relation and amount itself.
Where the line is
- Both entries must exist. Importing a bank statement (SEPA file) is not possible through the connection; the assistant then creates the bank entry itself with
financial_bank_createandfinancial_bank_add_line. - Unmatching is only possible in Exact Online. That is why the assistant always shows the proposal with amounts and balance first.
- A non-zero balance is not refused by the tool itself: Exact decides whether that combination may be matched. Check such a case in Exact Online.
cashflow_receivables_updatesounds like it matches, but only updates the description, payment method and payment reference of a receivable.financial_cash_add_line(for cash entries) has no Our reference field. Of the two routes, only the bank route can carry an invoice number.
Why Our reference is the field that matters
On a bank line against a debtor, Our reference is the field that says which invoice this is about. financial_bank_add_line accepts it as ourRef, alongside the account (accountCode), the GL account and the amount. Fill that in properly and the entry is ready with everything needed to make the link — turning the last step into a confirmation rather than a search.
The workflow that works
- Ask for the proposal. For example: "Which invoices for customer Bakkerij de Groot are outstanding, and for what amounts?" Then line up the bank transactions and have the assistant say which invoice fits each amount.
- Ask for the doubtful cases. Explicitly ask which transactions cannot be matched unambiguously. That list is worth more than the easy ones.
- Confirm yourself. Have the bank entry created if needed and approve the proposal; the assistant then matches, for example: "Match entry 14200003 with invoice 14500026."
That is the shape that fits an action which can fail quietly: the assistant does the searching and the matching, you do the confirming.
Where it goes wrong in practice
- Partial payments — an amount that does not equal the invoice. The assistant can propose the combination, but the remainder is your judgement.
- Bulk payments — a customer paying five invoices in one amount. Ask for every combination that adds up to the amount; that is exactly the work where arithmetic beats searching.
- Credit notes — they reduce the amount due and are easily overlooked.
- Bank charges and rounding — small differences you have to deliberately put somewhere.
- Currency differences — with foreign currency the amount on your account is rarely the invoice amount exactly.
What you need
Basic is enough for querying and comparing: that is all reading. If you want the assistant to create the bank entry or match entries as well, you need Advanced, because those are write tools. If read-only is enforced for a colleague, those tools are refused even on Advanced — which is the entire point of that setting.
Further reading: sending payment reminders with AI covers what is left after matching, and forecasting cash flow with AI covers what a correct debtor position lets you do. The full tool list is in the tool catalogue.