Docs/Banking & Payments/Reconciliation

Reconciliation

Bank statement reconciliation and payment-to-invoice matching with AI-powered multi-pass algorithms

12 min read

Overview#

Reconciliation is the process of matching and verifying that two independent sets of records agree. Artifi handles two distinct reconciliation domains:

DomainWhat Gets MatchedPurpose
Bank Statement ReconciliationBank statement lines to GL transactionsVerify accounting records match actual bank activity
Transaction ReconciliationPayment transactions to invoice transactionsLink payments to invoices, update aging, track what has been paid

Why Reconcile?#

MotivationDescription
AccuracyVerify all transactions are recorded correctly; catch errors before they compound
Fraud DetectionIdentify unauthorized or suspicious transactions
Aging AccuracyMatch payments to invoices so AP/AR aging reports reflect reality
Cash PositionConfirm actual cash balance versus book balance
ComplianceMeet SOX, audit, and regulatory requirements
Follow-UpIdentify orphaned payments (money paid but no invoice received)

Two Approaches#

ApproachBest ForHow It Works
Interactive (AI Assistant)Bank statement reconciliation, ad-hoc matchingYou talk to the AI assistant, which finds matches and creates them
Automated AgentsHigh-volume bank processing, payment-to-invoice matchingAgents process automatically on schedules, webhooks, or manual triggers

Temporal Ordering#

Reconciliation follows a natural sequence in the accounting workflow:

  1. Invoice created -- Bill processor or manual entry creates AP/AR invoice
  2. Payment created -- Bank transaction processor or payment runs create payment records
  3. Bank reconciliation -- Matches bank statement lines to GL transactions
  4. Transaction reconciliation -- Matches payments to invoices, updates aging
  5. Bills collection -- Follows up on orphaned payments (paid but no invoice received)

Bank Statement Reconciliation#

Bank statement reconciliation ensures every line on your bank statement has a corresponding entry in your accounting system.

How It Works#

Each bank statement line has a reconciliation status:

Unmatched --> Matched --> Reconciled
    |
    +--> Excluded
  • Unmatched -- No GL transaction linked yet
  • Matched -- Linked to a GL transaction
  • Excluded -- Intentionally skipped (duplicates, non-business items, internal transfers)
  • Reconciled -- Fully verified

Interactive Matching (AI Assistant)#

The AI assistant can handle bank reconciliation conversationally:

  1. Lists unmatched lines -- Shows you which statement lines need attention
  2. Finds matching GL transactions -- Searches by amount, date, vendor, and description
  3. Creates matches -- Links statement lines to GL transactions with confidence notes

The AI assistant applies judgment based on the match quality:

ScenarioAction
Exact amount, same date, matching referenceMatches immediately
Amount matches, date within 3 daysMatches with a note
Amount close (within 2%), description similarMatches with explanation
Multiple possible matchesAsks you which one is correct
No match foundFlags for investigation

Automated Bank Processing#

The bank transaction processor agent handles all bank transaction sources automatically:

SourceProcessing
StripeCharges become AR payments, fees become expenses, payouts become bank transfers
Bank (Salt Edge/LHV)Credits matched to AR or recorded as unmatched revenue; debits matched to AP or recorded as unmatched expense
Manual CSV ImportSame processing with heavier description parsing

The agent is triggered automatically by bank connector webhooks, or manually when you import a CSV statement.

Available Operations#

OperationDescription
MatchLink a bank statement line to a GL transaction
UnmatchRemove a match (with audit trail)
ExcludeMark a line as excluded from reconciliation

Handling Exceptions#

Exception TypeAction
Bank feesPost adjusting journal entry, then match
Interest incomePost adjusting journal entry, then match
NSF returnsReverse deposit, update AR, then match
Outstanding checksDocument for next period (will clear later)
ErrorsInvestigate with bank or correct GL

Reconciliation Equation#

Bank Balance (per statement)
+ Deposits in Transit
- Outstanding Checks
+/- Bank Errors
= Book Balance (per GL)

Transaction Reconciliation#

Why Transaction Reconciliation?#

When bank statements are processed, the system creates AP_PAYMENT and AR_PAYMENT transactions confirming money moved. But these payments are standalone -- they have no link to the corresponding invoices. This means:

  • Invoice aging reports may be inaccurate
  • You cannot see which invoices have been paid
  • Amount due and amount paid fields remain stale

Transaction reconciliation fills this gap by matching payments to invoices and updating financial records.

Reconciliation Agent#

The reconciliation agent is an automated system that matches payment transactions to invoice transactions across both AP (vendor) and AR (customer) scopes.

AspectDetail
ScopesVendor (AP) and Customer (AR)
Matching6-pass algorithm: exact, reference, cross-reference, FX tolerance, amount grouping, fuzzy AI
Auto-applyMatches above the confidence threshold are applied automatically
Manual reviewBelow-threshold matches appear in the admin dashboard for human review

6-Pass Matching Algorithm#

The matching algorithm runs per vendor or customer, processing remaining items from each pass. All amount comparisons use functional currency amounts.

Pass 1: Exact Amount Match

  • Confidence: 1.0 (highest)
  • Strategy: Same party + exact amount + date within 90 days
  • Matches the closest-dated invoice first

Pass 2: Reference Number Match

  • Confidence: 0.95
  • Strategy: Payment reference matches invoice reference (case-insensitive)
  • Amount must be within tolerance ($5 or 1%)

Pass 3: Cross-Reference Match

  • Confidence: 0.92 -- 0.95
  • Strategy: Searches for invoice reference tokens inside payment descriptions, and vice versa
  • Example: payment description "Payment for INV-2025-0042" matches invoice reference "INV-2025-0042"

Pass 4: Approximate Amount Match (FX Tolerance)

  • Confidence: 0.85 -- 0.95 (varies by difference percentage)
  • Strategy: Matches amounts within FX tolerance (hard cap: never match more than 5% difference)
DifferenceConfidence
Less than 0.5%0.95
0.5% -- 1.5%0.92
1.5% -- 3.0%0.88
3.0% -- 5.0%0.85
Over 5.0%No match

Pass 5: Amount Grouping

  • Confidence: 0.50 -- 0.95 (variable)
  • Matching patterns:
    • 1:1 -- Single payment to single invoice
    • 1:N -- One payment covers multiple invoices (sum matches)
    • N:1 -- Multiple payments cover one invoice

Pass 6: AI Fuzzy Match

  • Confidence: 0.70
  • Called only when a party has both unmatched payments and unmatched invoices after passes 1-5
  • Uses AI to identify fuzzy matches from descriptions and context

What Happens When a Match Is Confirmed#

  1. Invoice financials updated -- Amount paid increases, amount due decreases, status changes to "paid" or "partial"
  2. Payment reconciliation status updated to "reconciled"
  3. Below-threshold matches are recorded but not applied -- they appear in the dashboard for manual review

Variance Resolution#

When a payment matches an invoice but amounts differ:

ScenarioAction
Multi-currency differenceFX gain/loss journal entry posted automatically
Same-currency differenceLeft for manual resolution in the admin dashboard
Rounding (under $0.01)Ignored

The admin dashboard shows a "Write Off" button for small differences (up to $100). Larger differences require adjustment transactions through normal workflows.

Multi-Currency Matching#

All matching passes compare transactions in functional currency (the entity's base currency), not document currency. This enables matching a EUR payment to a USD invoice when the entity operates in USD, accounting for exchange rate differences.


Bills Collector Agent#

After transaction reconciliation, some payments may have no matching invoice -- meaning the business paid but never received documentation. The bills collector agent identifies these orphaned payments and sends email reminders to vendors requesting invoices.

How it works:

  1. Identifies unmatched AP payments grouped by vendor
  2. Checks reminder escalation history (1st notice, 2nd notice, final notice)
  3. Composes and sends email reminders at configurable intervals (default: 7, 14, and 30 days)

Configuration:

SettingDefaultDescription
Minimum payment amount$50Skip small payments
Lookback period90 daysHow far back to search
Reminder intervals7, 14, 30 daysEscalation timing
Max vendors per run100Processing limit

Admin Dashboard#

Bank Statements Page#

Flat list of all bank statement lines showing reconciliation status, with filters for entity, bank account, status, date range, and search. Stats cards show total lines, unmatched, matched, and excluded counts.

Reconciliation Runs#

List of all reconciliation agent runs with match statistics. Each run shows scope (vendor/customer), match ratio, amount matched, and duration.

Run Detail#

Detailed view of a reconciliation run showing:

  • Summary stats -- Scanned, matched, partial, review, unmatched, match rate
  • Items table -- Party, payment details, invoice details, match status, method, confidence, applied amount, difference
  • Actions -- Confirm match, write off small differences, reject incorrect matches
  • Void -- Reverse all applied matches in a run (restores invoice financials)

Common Use Cases#

Monthly Bank Reconciliation#

  1. Import bank statement (CSV, MT940, or via bank connector)
  2. AI assistant or agent analyzes and matches each line
  3. Handle exceptions (bank fees, interest, NSF returns)
  4. Verify completion when all lines are resolved

Automated Payment-to-Invoice Matching#

  1. Bank statements processed automatically by the bank transaction processor
  2. Reconciliation agent matches payments to invoices using the 6-pass algorithm
  3. High-confidence matches are applied automatically
  4. Low-confidence matches appear for manual review in the dashboard

Following Up on Missing Invoices#

  1. Transaction reconciliation identifies payments with no matching invoice
  2. Bills collector agent sends reminders to vendors
  3. When invoices arrive, they are processed and matched to the existing payments

Subscribe to new posts

Get notified when we publish new insights on AI-native finance.