Skip to content

Cash matching that closes the month in days

Bank transactions arrive through open banking, pair with ledger entries automatically and get flagged for anomalies, so people review only the exceptions.

Example project

Based on a project our team built. Client details are left out or changed, and the demo uses invented data.

Sector
Organisation managing grant and donor funds
Typical duration
8 to 12 weeks
A grid of bank transactions with date, description, amount, paired journal entry, confidence, anomaly check and status

Typical client situation

A finance team that manages grant and donor funds across several bank accounts and currencies and reconciles them against the accounting system every month. Funder reporting depends on the books being closed on time.

Challenge

Reconciliation is done by hand in spreadsheets. Someone retypes each statement line, searches the ledger for a matching entry and ticks it off, so a single month takes days and errors slip through.

Unmatched items are discovered late, often when a donor asks a question. There is no record of who changed a match or why, which makes audits slow and uncomfortable.

Solution

The solution is a Dataverse model for statements, transactions and pairings, with a model-driven app for the finance team. Bank transactions are fetched through open-banking APIs, with a connections screen that shows the last sync and consent validity of every account, so nobody uploads files. A business process flow moves each statement from synced to booked.

Power Automate flows send and fetch entries through the REST API of the accounting system. A C# plugin pairs each transaction to a journal entry using amount, date and reference, and stores a confidence score and a status: auto-paired, proposed, needs a look or open. Currency conversion differences are booked automatically to the FX differences account.

Anomaly detection screens every transaction and flags a possible duplicate payment, an unusual amount or a new payee, with the reason shown on the line. When a small difference needs a write-off, an approval card is sent to the approver in Microsoft Teams and the decision is recorded on the statement timeline. A second plugin writes a change history, and results export to CSV for posting.

  • Bank feeds through open-banking APIs with a connections screen and last sync per account

  • Anomaly detection that flags duplicates, unusual amounts and new payees with a reason

  • Write-off approval cards in Microsoft Teams, recorded on the statement timeline

  • Automatic pairing with a confidence score and a clear status per transaction

  • Automatic booking of currency conversion differences

  • Change history of every edit and CSV export of the results

Stack

  • Dataverse
  • Model-driven apps
  • AI Builder
  • Power Automate
  • C# plugins
  • REST APIs
  • Power BI

Screens from the demo

We rebuilt this solution as a demo with invented data, so you can see how it works without exposing any client system. Click through it yourself.

Open the interactive demo
A statement form with a process bar from Synced to Booked, match review figures and a timeline with a Teams approval card and anomaly flags
Fig. 1The statement timeline shows the open-banking sync, automatic FX posting, anomalies flagged and a write-off waiting for approval in Teams.
A bank connections grid with bank, account, method, last sync, lines today, consent validity and status
Fig. 2The connections screen shows every bank feed with its last sync and consent validity, so statements arrive without uploads.

What it is built to deliver

Transactions arrive through open-banking APIs, with no file uploads
Live bank data
Duplicates, unusual amounts and new payees are marked with a reason
Anomaly flags
Write-offs are approved on a card and logged on the timeline
Teams approvals

Recognize the situation?

Tell us where your process is stuck. We will tell you honestly whether we can help.