Accounting
Transaction matching: the definitive guide
Written by

Yogi Goel, CEO
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is transaction matching in accounting?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Transaction matching is the process of connecting related records across systems, such as bank activity against the general ledger or a payment processor against the bank, to establish that the activity each system recorded is consistent and to surface what has no counterpart. Matching runs first and feeds reconciliation: the matched population becomes the supporting evidence, and the reconciliation explains the remaining differences."
}
},
{
"@type": "Question",
"name": "Can AI match transactions to the general ledger?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, as preparation. AI transaction matching can convert plain-language instructions into candidate rules, run trial reconciliations against the team's own data for the team to test and approve, normalize inconsistent descriptions, and rank candidates. Repeatable relationships still run through controlled logic and validations, and ambiguous matches, adjustments, and the final accounting conclusion stay with a named human reviewer. The AI prepares the matches and the evidence; accountants review and approve."
}
},
{
"@type": "Question",
"name": "Does transaction matching software handle many-to-many matching at volume?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Purpose-built engines can, but reliability depends on the size and quality of the candidate population; entity, currency, counterparty, settlement ID, and date partitions are what keep the combinations from exploding. Maxima matches one-to-one, one-to-many, and many-to-many relationships, such as batch deposits covering dozens of receipts or settlement groups spanning hundreds of orders, at millions of transactions, with continuous ingestion normalizing source files before matching begins. The practical test is a trial on your own volume, since combination-finding is where weaker engines slow down or misfire."
}
},
{
"@type": "Question",
"name": "How accurate is automated transaction matching?",
"acceptedAnswer": {
"@type": "Answer",
"text": "There is no meaningful universal accuracy percentage, because a quoted rate depends on the denominator and on whether it counts coverage or correctness. Separate the two. Measure coverage by both line count and value, and pin down what the denominator excludes. Then measure correctness: the false-match rate, how many automatic matches were later broken or reopened, alongside the aging of unresolved items. A high match rate is useful only when the matched relationships are defensible, which is what the validations, exception routing, and human approval in a controlled workflow exist to protect."
}
},
{
"@type": "Question",
"name": "What is the difference between transaction matching and reconciliation?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Transaction matching connects records across systems to prove that both sides recorded the same activity. Reconciliation starts where matching ends: it explains whatever the matching could not connect, classifies the residual items (timing differences, fees, errors, missing entries), and produces the documented evidence that the account balance is correct. Matching builds the population; reconciliation accounts for the exceptions. The two run in sequence, and the quality of the reconciliation depends directly on the quality of the matching underneath it."
}
},
{
"@type": "Question",
"name": "What cardinality types should transaction matching software support?",
"acceptedAnswer": {
"@type": "Answer",
"text": "At minimum, one-to-one, one-to-many, many-to-one, and many-to-many. One-to-one covers simple wires and unique references. One-to-many and many-to-one cover batched deposits, summarized journal entries, and settlement payouts. Many-to-many covers the hardest case: multiple settlement batches against multiple order groups with no shared reference, where amounts only agree in combination. The practical differentiator is not whether a vendor claims support for all four, but whether the engine produces accurate, defensible grouped matches at your transaction volume and cardinality."
}
}
]
}
On the third of the month, someone on the accounting team downloads the bank file, the Stripe payout report, and the general ledger detail, then starts building lookup keys in a spreadsheet. The payout on the statement is one line. The revenue behind it is four hundred order records, net of fees and two refunds. None of that work is analysis. All of it stands between the team and a cash number a controller can sign.
Transaction matching software exists to take that work away from people. This guide explains what transaction matching is, why the shape of a match matters more than vendors admit, where rule engines quietly fail, how matching behaves at real volume and across real systems, and what to ask before buying. It is written for controllers and accounting managers evaluating a purchase, not for a demo audience.
What transaction matching is and where it sits in the close
Transaction matching connects related records across two or more systems to establish that the activity each system recorded is consistent. Completeness takes one more control: matching can only prove relationships among the records it receives, so the source populations, the counts and totals arriving from each system, have to be verified as complete before a match rate means anything. The classic pairs are bank activity against the general ledger, a payment platform against the bank, and an AP or procurement system against the ERP. Each pair answers the same underlying question: does every transaction that happened in one system have its counterpart, at the right amount, in the other?
A small example shows why the question matters. The bank statement shows a deposit of $14,875.00. The billing system says the day's collected invoices total $15,000.00. Neither number is wrong. The $125.00 difference is processor fees withheld at settlement, and a correct match ties the deposit to the invoices and isolates the fee for its own entry. Miss the relationship and the books either overstate cash or carry an unexplained difference into the close.
Matching sits upstream of reconciliation, and the sequence matters: matching connects the transaction populations, and the reconciliation then explains whatever the matching could not connect. Done well, the matched population becomes the audit support for the reconciliation built on top of it: when an auditor tests the cash balance, the evidence is the set of matched transactions plus a short, documented list of exceptions. That is also why cash is where matching programs start. Cash touches every close, carries the highest transaction frequency, and is the account where an unexplained difference is least acceptable.
One-to-one, one-to-many, many-to-many: why cardinality matters
The shape of a match, its cardinality, decides how hard the work is.
One-to-one is the easy case when references are unique: a wire on the bank statement against a single ledger entry, same amount, close dates. Any tool handles that, and so does a VLOOKUP.
One-to-many, and its mirror image many-to-one, is where spreadsheets start to strain. A single bank deposit represents forty customer checks batched by the bank. A single summarized journal entry represents a full day of ledger activity that must tie to dozens of individual bank lines. The one payout in this guide's opening scene is the many-to-one case: thousands of underlying orders collapsing into one settlement line. The direction matters for how the engine searches, but either way it has to keep the members of the group, not just the fact that two totals agree.
Many-to-many is where most manual processes stop trying. Several settlement batches on one side correspond to several groups of orders and refunds on the other, with no shared reference number and amounts that only agree in combination. The matching engine has to find the combination, not just compare rows.
A compact example makes the combination problem concrete. The billing system shows two days of orders: $52,400.00 across 312 orders on Monday and $47,600.00 across 285 orders on Tuesday, with a refund batch of $2,300.00 issued Tuesday. The processor pays out in three deposits that ignore day boundaries: $30,000.00, $40,000.00, and $26,215.50, having withheld $1,484.50 in fees across the batch. No deposit equals any day. The correct match ties all three bank lines to the 597 orders and the refund batch as one balanced group: $100,000.00 of orders, less $2,300.00 of refunds, less $1,484.50 of fees, equals the $96,215.50 that landed in the bank, with the $1,484.50 recorded separately as processor fee expense. A determined person can solve that once in a spreadsheet. Solving it every day, across every account, is what consumes a team.
The four shapes at a glance:
Shape | Example | What makes the match defensible |
|---|---|---|
One-to-one | A wire against a single ledger entry | A unique reference, matching amount and counterparty, compatible dates |
One-to-many | One deposit against forty batched customer checks | The batch identifier, plus proof the members sum to the bank line |
Many-to-one | Hundreds of orders settling into one payout | The settlement window and a complete gross-to-net bridge |
Many-to-many | Several settlement batches against several order groups | Partitions such as entity, currency, and date, plus evidence for every member on both sides |
Many enterprise vendors claim support for all four shapes. The meaningful differences show up in three places. Accuracy, when the volume is high enough that candidate combinations explode. Tie-breaking, when two groupings are equally plausible. And evidence, what each grouped match can show when a reviewer or auditor asks why those specific records belong together. Maxima's matching handles one-to-one, one-to-many (and its many-to-one mirror), and many-to-many relationships with continuous ingestion that parses, joins, and normalizes messy bank and subledger files before matching begins, and each match records the rule and source rows behind it.
Rule engines vs. agent-prepared matching (and the false-match problem)
Here is the practical version of a comparison most vendor pages blur: every serious matching engine runs on rules. Keys, amounts, tolerances, date windows, text patterns. The real differences between products are who writes and maintains the rules, what the system does when a rule is uncertain, and what an exception carries when it reaches a person.
In the legacy pattern, a system administrator encodes the rules, often with consultants during implementation. Preparers and reviewers can usually see the rules but often cannot change them, so when a bank changes its statement layout or a new entity comes online, the fix waits in the admin's queue while unmatched items pile up. The matching process develops a queue behind the queue: exceptions wait for accountants while rule changes wait for someone else. Under uncertainty, these engines fail in one of two directions. Loosen the rules and false matches appear: pairs that tie on amount but belong to different transactions entirely. Picture two customers each paying $24,750 on the same day while the bank truncates both references: an amount-and-date rule sees two plausible candidates, and picking one just to clear the record leaves total cash correct while customer-level activity is wrong. Wrongly matched items are worse than unmatched ones, because a false tie hides a real difference until it surfaces later, sometimes after sign-off. Tighten the rules instead and the match rate drops, or the engine routes low-confidence pairs into a suggested-match queue, which returns the work to the humans the tool was bought to relieve. BlackLine's own rule design separates automatic rules from suggested ones, and Maxima's operating model comparison with BlackLine covers where that trade-off bites during close.
Agent-prepared matching changes the ownership and the iteration loop rather than the existence of rules. In Maxima, the team describes matching logic in plain language and the Reconciliation Rule Agent converts it into working rules, so changes do not depend on an administrator or an IT ticket. Describing rules in everyday language is spreading across the category, so treat it as a baseline expectation rather than a differentiator. What matters is what happens next. The agent inspects the schemas and sample data, translates instructions into candidate rules, and runs trial reconciliations against the team's own transactions, so the logic is tested and approved on real data before it goes live. Execution stays consistent: agentic interpretation is applied where the data is ambiguous, accounting validations run where outcomes must be identical every time, and judgment calls route for human approval by name. In production this is the difference between a match rate that decays as the business changes and one that gets maintained as part of the work.
Zendesk saw it directly: Maxima reports that after moving its NetSuite-to-Coupa SOX reconciliations from BlackLine to Maxima, match rates rose from 88% to over 98% while the SOX control kept running automatically and stayed ready for audit. Maxima also reports the workflow contributed to a 16% faster close. These are specific customer outcomes on one workflow, not universal promises. SpotOn's controller describes the same ownership shift: accountants adjust matching logic directly through no-code operators, without IT tickets and without weakening control.
High-volume matching across bank, billing, and subledger data
Volume changes matching from an annoyance into a structural problem. A company with real payment activity sees 100,000 to more than a million bank lines a month. Spreadsheets stall long before that, and month-end batch matching turns the first days of close into a spike: the whole month's volume lands at once, on the days the team can least afford it.
Two design decisions determine whether a platform survives that scale. The first is continuous operation. Maxima ingests bank, billing, and subledger data around the clock, so matching happens as transactions arrive during the month and close begins with most of the month already matched. Continuous does not have to mean instant; the right cadence depends on the source and the risk, but problems should surface while their operational context is still fresh. The second is where the transaction-level detail lives. Maxima keeps the full matching detail and its lineage in its own layer while posting summarized, finished entries natively to the ERP, so the ERP stays fast without carrying millions of raw rows. Maxima's finance graph holds those transaction-level relationships in one model, which is what makes the lineage navigable instead of archived.
Raw record count can mislead here. Clearing a million exact one-to-one records is a throughput test; resolving a smaller population of ambiguous many-to-many groups is the harder one, and the second is where engines actually separate. Continuous operation and transaction-level lineage are what make that scale workable, and the published results come from environments that put both to the test:
Scale AI consolidated more than ten disparate data sources into one continuous automated reconciliation process; its chief accounting officer reports closing two to three days faster with over 98 percent automation.
Rippling automated reconciliation across 148 bank accounts and $55B in transaction volume, cut reconciliation time by more than half, moved four people to higher-value work, and saved the team roughly 700 hours a month.
Matching across systems: bank-to-GL, AP and procurement, billing and payments, payroll, subledger-to-GL
A matching program is only as useful as the systems it can see. The practical map looks like this.
Bank to GL. The foundation. Maxima connects directly to banks including JPMorgan, Goldman Sachs, SVB, and Wells Fargo, with coverage across thousands of institutions through the Quiltt banking network, pulling transaction feeds without manual downloads. GL-to-bank matching at the transaction level is what makes a bank reconciliation statement a review exercise instead of an investigation.
AP and procurement to GL. Invoices and payments in a procurement platform must tie to what the ERP recorded. Maxima connects to Coupa and Zip directly, bringing purchase requests and approvals in alongside the invoices; the Zendesk case above is exactly this shape, NetSuite-to-Coupa reconciliations run as automated SOX controls.
Billing and payments to GL. Stripe and Chargebee connect directly, and this row is why many teams buy matching software in the first place: processor fees withheld from payouts, net settlement across days, partial matches where a payment covers only part of an invoice, and refunds landing in a different period than the sale. Three-way matching applies here in its accounting sense, tying the GL, the processor or card-gateway feed, and internal systems to one another. That is distinct from the procure-to-pay meaning of the term, matching an invoice to a purchase order and goods receipt, which is a different workflow and out of scope for a close team's matching program.
Payroll and expense to GL. A payroll run carries gross earnings, employee deductions, employer taxes, benefits, and net pay; the bank often shows one funding debit while the GL posts several expense and liability lines. Maxima connects payroll systems including Rippling, Workday, and ADP, along with travel, expense, and corporate card activity from Navan, Brex, and Ramp, so run-level and card-level detail ties to both the bank and the ledger.
Subledger to GL. Detail in a revenue, AR, or fixed-asset subledger must agree with its control account. Warehouse sources, including Snowflake, BigQuery, and Databricks, extend the same matching to data that never passes through an operational system's export screen.
On the ERP side, per Maxima's integrations catalog, Maxima supports NetSuite natively with a full API integration, including direct posting and transaction linking, and Sage Intacct with live financial sync and agent-prepared entry posting. Oracle ERP connects with live financial reads and approved-entry posting back to the ledger, SAP provides ERP transaction access, and Workday contributes financial and workforce data, with scheduled SFTP feeds available for systems without a native connector.
Exception handling and transaction-level lineage
A match rate is a headline; the exceptions are where the accounting happens. The operating model to look for is exceptions-only review: the matched population clears automatically under the configured rules and tolerances, and people spend their time on the residual, classified by type (timing items, netting components such as fees, data and mapping failures, genuine ambiguities and errors) and aged by how long it has been open. A tolerance can identify a likely relationship; it does not explain or account for the difference. The full outcome framework for those differences is covered in the bank reconciliation guide linked above, so this section stays on what the software should do with them.
Two capabilities separate a matching tool from a matching workflow. One is that exceptions should arrive ready to resolve. In Maxima, journal entries are prepared directly from unreconciled items, with account and department coding proposed where the source data supports it and a question routed to a person where it does not, and the system will not accept an entry that does not balance. The proposed entry then routes for human approval; the agent prepares, a named accountant reviews. Under Maxima's security framework, a journal entry, reconciliation, or adjustment requires explicit human sign-off before it reaches the GL.
The other is lineage, and it starts with a mindset correction. Many accounting teams operate at the GL level and treat upstream transaction data as someone else's problem, yet the context that explains why numbers move lives in that upstream detail, in billing events, payroll runs, processor settlements, and purchase activity. When matching does not capture and connect that context, the team reconstructs it by hand later, with all the error and delay that implies. Every match should therefore be traceable from the source rows through the rule that connected them, the validations that ran, any reviewer changes, the approvals, and the timestamps, down to the entry that posted. That source-to-GL lineage is what lets a reviewer re-perform any match on demand instead of taking the engine's word for it, and it is the evidence an auditor evaluating automated controls under PCAOB AS 2201 will ask to walk through. Open items that cannot be resolved in the period are tracked and carried into review rather than silently dropped, so nothing ages in the dark.
Get the matched population right, and the exception list becomes the whole job: short, classified, and owned. Everything else in the close sits on top of that population, which is why matching quality is reconciliation quality, one level down.
How to evaluate transaction matching software
Feature lists converge; operating behavior does not. These are the questions that expose the difference, put to the vendor and tested in a trial.
What is the measured false-match rate, and what is the denominator? A match rate alone rewards loose rules, and a quoted percentage can count lines or dollars, one side of a grouped match or both. Ask for the reopened-match rate and how the product surfaces low-confidence pairs.
Will the trial run on your data? Insist on your own transactions, at your cardinality and your volume, including a month-end file. Sample datasets flatter every engine. Stronger still, let the vendor configure on one historical period and test on a later one it has not tuned.
What happens when the source population is incomplete? Ask to reconcile expected source counts and totals to imported, rejected, duplicated, matched, and unresolved records. A clean match over an incomplete population is still a control failure.
What does an exception carry when it reaches a person? A flag, or the context, source rows, and a proposed entry? The answer decides whether exceptions take minutes or afternoons.
Can an auditor re-perform a match? Lineage from source rows to posted entry, exportable and reviewable, or a log that shows something happened without showing why.
How does finished work reach the ERP? Native posting with transaction linking, or export files someone still has to import.
Does matching run continuously or at month-end? Continuous matching moves the work off the close's critical path; batch matching concentrates it there.
What happens when a bank or processor changes its file format? The most revealing question on the list, because someone's month depends on the answer.
Buyer shapes differ, and the honest orientation is that close-suite matching modules, data-reconciliation specialists, ERP-native tools, and agentic platforms that prepare the downstream work are four different purchases.
Buyer shape | Best when your bottleneck is | Natural boundary |
|---|---|---|
Close-suite matching module | Coordinating close tasks that include matching as one step | Matching depth limited by the suite's broader scope |
Data-reconciliation specialist | High-volume bank or payment matching as a standalone program | Often stops at the match; downstream entries and exceptions handled separately |
ERP-native tool | Simple one-to-one matching within a single ERP | Cardinality and source-system coverage limited to what the ERP ingests |
Agentic platform | End-to-end preparation from matching through journal entries and reconciliation | Requires connecting source systems into the platform's data layer |
The vendor-by-vendor comparison walks the market in detail; the questions above tell you which shape you actually need.
The hardest matches in your close are the ones your ERP was never built to find. See batch deposits, processor payouts, and many-to-many settlements arrive matched, with entries prepared for your review.
Frequently asked questions
What is transaction matching in accounting?
Transaction matching is the process of connecting related records across systems, such as bank activity against the general ledger or a payment processor against the bank, to establish that the activity each system recorded is consistent and to surface what has no counterpart. Matching runs first and feeds reconciliation: the matched population becomes the supporting evidence, and the reconciliation explains the remaining differences.
Can AI match transactions to the general ledger?
Yes, as preparation. AI transaction matching can convert plain-language instructions into candidate rules, run trial reconciliations against the team's own data for the team to test and approve, normalize inconsistent descriptions, and rank candidates. Repeatable relationships still run through controlled logic and validations, and ambiguous matches, adjustments, and the final accounting conclusion stay with a named human reviewer. The AI prepares the matches and the evidence; accountants review and approve.
Does transaction matching software handle many-to-many matching at volume?
Purpose-built engines can, but reliability depends on the size and quality of the candidate population; entity, currency, counterparty, settlement ID, and date partitions are what keep the combinations from exploding. Maxima matches one-to-one, one-to-many, and many-to-many relationships, such as batch deposits covering dozens of receipts or settlement groups spanning hundreds of orders, at millions of transactions, with continuous ingestion normalizing source files before matching begins. The practical test is a trial on your own volume, since combination-finding is where weaker engines slow down or misfire.
How accurate is automated transaction matching?
There is no meaningful universal accuracy percentage, because a quoted rate depends on the denominator and on whether it counts coverage or correctness. Separate the two. Measure coverage by both line count and value, and pin down what the denominator excludes. Then measure correctness: the false-match rate, how many automatic matches were later broken or reopened, alongside the aging of unresolved items. A high match rate is useful only when the matched relationships are defensible, which is what the validations, exception routing, and human approval in a controlled workflow exist to protect.
What is the difference between transaction matching and reconciliation?
Transaction matching connects records across systems to prove that both sides recorded the same activity. Reconciliation starts where matching ends: it explains whatever the matching could not connect, classifies the residual items (timing differences, fees, errors, missing entries), and produces the documented evidence that the account balance is correct. Matching builds the population; reconciliation accounts for the exceptions. The two run in sequence, and the quality of the reconciliation depends directly on the quality of the matching underneath it.
What cardinality types should transaction matching software support?
At minimum, one-to-one, one-to-many, many-to-one, and many-to-many. One-to-one covers simple wires and unique references. One-to-many and many-to-one cover batched deposits, summarized journal entries, and settlement payouts. Many-to-many covers the hardest case: multiple settlement batches against multiple order groups with no shared reference, where amounts only agree in combination. The practical differentiator is not whether a vendor claims support for all four, but whether the engine produces accurate, defensible grouped matches at your transaction volume and cardinality.
Move closer to an audit-ready, real-time close

Request demo
Insights, news and content
The latest
See all


