Skip to main content
This guide walks through the reconciliation lifecycle in Matcher, from initial setup to reviewing results. It focuses on the concepts and decisions involved at each stage. For step-by-step API instructions with request and response examples, see the Matcher API quick start.

The reconciliation lifecycle


Every reconciliation in Matcher follows the same five-stage lifecycle:
1

Define scope

Create a context that describes what you are reconciling and how often.
2

Connect sources

Register the systems whose transactions you want to compare.
3

Set rules

Configure the criteria Matcher uses to pair transactions.
4

Run matching

Upload data and let Matcher find pairs, starting with a preview before committing.
5

Resolve exceptions

Review unmatched transactions and decide how to handle them.
The sections below explain each stage.

Define scope with a context


A context is the top-level container for a reconciliation workflow. It answers three questions:
  • What are you reconciling? For example, a bank account against your general ledger.
  • What type of pairing? One-to-one, one-to-many, or many-to-many.
  • How often? Daily, weekly, monthly, or on demand.
Pairing typeWhen to useExample
1:1Each transaction has exactly one counterpartBank statement vs. ledger entries
1:NOne record maps to several on the other sideA single invoice paid in installments
N:MMultiple records on both sides relate to each otherBatch payments split across accounts
Most reconciliations start with 1:1. You can change the pairing type later as your process evolves.

Connect data sources


Each context needs at least two sources: the systems whose transaction data you want to compare. A source represents a single data feed such as a bank statement, a ledger export, or a payment gateway file.

Source types

TypeTypical use
BANKBank statements and account extracts
LEDGERGeneral ledger or ERP exports
GATEWAYPayment processor data (Stripe, Adyen, etc.)
CUSTOMAny other structured data

Field mapping

Transaction files from different systems rarely use the same column names. Field maps translate your source columns into Matcher’s standard schema so transactions can be compared. For example, a bank file might call the transaction date “Post Date”, while your ledger calls it “posting_date”. Field maps normalize both to Matcher’s date field. Every transaction must provide at least four fields after mapping:
FieldDescription
transaction_idUnique identifier within the source
amountTransaction value
currencyISO 4217 currency code (e.g., USD, BRL)
dateTransaction date

Set match rules


Rules define how Matcher decides whether two transactions are the same. You can stack multiple rules with different priorities. Matcher evaluates them in order: only transactions left unmatched by the first rule pass to the next.

Rule types

RuleWhat it doesWhen to use
ExactRequires identical values on the selected fieldsWhen data is clean and systems are in sync
ToleranceAllows small numeric or date differencesWhen bank fees, rounding, or processing delays cause minor discrepancies
Date lagPermits a configurable date windowWhen settlement dates differ between systems
  1. Priority 1 — Exact rule on amount, currency, and date. This catches all perfect matches first.
  2. Priority 10 — Tolerance rule with a small amount tolerance (e.g., 1%) and a 2-day date window. This catches near-matches caused by fees or timing.
As you observe results over time, adjust rules or add new ones to improve your match rate.
API reference: Create match rule

Run matching


Once sources are configured and data is uploaded, you can run the matching engine.

Preview first, commit second

Matcher supports two execution modes:
ModeBehavior
Dry runCalculates matches and generates a preview. Nothing is persisted.
CommitPersists the results: confirmed matches, confidence scores, and exceptions.
Always start with a dry run. Review the preview to verify match quality before committing.

Understanding confidence scores

Every match receives a confidence score from 0 to 100:
Score rangeMeaningAction required
90–100High confidenceAuto-confirmed, no action needed
60–89Medium confidenceFlagged for manual review
Below 60Low confidenceNot matched — becomes an exception
Scores are determined by how closely the transactions align across the matched fields and which rule produced the match. Exact rules yield higher scores than tolerance rules.

Resolve exceptions


Exceptions are transactions that Matcher could not pair automatically. They represent the items that need human attention.

Exception severity

Matcher classifies each exception by severity based on the transaction amount and how long it has been unmatched:
SeverityCriteriaSuggested SLA
CriticalAmount >= 100,000 or unmatched >= 120 hours24 hours
HighAmount >= 10,000 or unmatched >= 72 hours72 hours
MediumAmount >= 1,000 or unmatched >= 24 hours5 days
LowAll others7 days

Resolution options

  • Force match — Manually pair the transaction with a counterpart when you know they belong together.
  • Create adjustment — Record a correcting entry to account for the difference.
  • Unmatch — If a confirmed match is incorrect, undo it so both transactions return to the unmatched pool.
  • Dispatch — Route the exception to an external system (e.g., JIRA, Slack) for investigation.

Example scenario


A fintech company reconciles its daily bank statement against internal ledger records. Setup:
  • Context: “Daily Bank Reconciliation”, type 1:1, interval daily
  • Two sources: Chase Bank statement (BANK) and General Ledger (LEDGER)
  • Two rules: Exact match (priority 1) and Tolerance match with 1% and 2-day window (priority 10)
Daily workflow:
  1. Finance uploads the bank statement and ledger export.
  2. Matcher runs a dry run. The preview shows 95% of transactions matched with high confidence.
  3. The team reviews the preview and commits the results.
  4. Five transactions remain as exceptions: two have small fee differences, three have no counterpart.
  5. The team resolves the fee exceptions by creating adjustments. The three missing transactions are escalated for investigation.

Next steps