There are three practical intercompany matching methods. Balance-level matching compares totals per counterparty pair and account category: cheap, fast, and it tells you a difference exists but not where. Invoice-level matching compares individual documents on a matching key: slower, but it locates the difference. Rule-based or automated matching applies tolerance and fuzzy-matching rules to clear the routine population so people only handle exceptions. Most groups should run balance-level monthly and invoice-level only on pairs that fail.
The choice of matching method is usually made implicitly, by whatever the previous controller set up. It deserves a deliberate decision, because the method determines both the cost of the close and the kind of error that survives it.
The useful framing is not 'which is best' but 'which population goes through which method'. A tiered approach costs far less than invoice-matching everything, and catches far more than balance-matching everything.
Both sides report their balance per counterparty pair and account category; the difference is calculated centrally.
Individual documents are matched between the two ledgers on a defined key.
A rules engine — in the ERP, the consolidation tool or a dedicated matching product — clears the routine population automatically and routes exceptions to people.
Reference-based matching on a shared document or transaction ID, amount-and-date matching within a tolerance, and counterparty-pair netting at balance level. Reference-based matching is the only one that scales without generating false matches.
Match in the transaction currency and translate afterwards. Matching on translated amounts creates differences that are purely a rate artefact and consumes review time that should go to real breaks.